Einen Skalierungsfaktor finden



  • Ich erzeuge in einer for-loop mehrere Linien. Diese werden an bestimmten Positionen dann gezeichnet. Jedoch will nun als Bedingungen hinzufügen, dass diese Linien einen (exponentiallen) Skalierungsfaktor haben, wo zunächst die Linien bis zur Mitte kleiner werden und dann wieder mit dem selben Faktor wachsen. Vorstellen kann man sich das in etwa so: https://i.stack.imgur.com/HbYRI.jpg

    Wie kann ich nun in C++ diesen Skalierungsfaktor erstellen? Danke schon mal!



  • double scaleFactor = 1;



  • manni66 schrieb:

    double scaleFactor = 1;

    Das bringt mich leider nicht sehr viel weiter.



  • vickal93 schrieb:

    Wie kann ich nun in C++ diesen Skalierungsfaktor erstellen? Danke schon mal!

    Das ist ja eher ein mathematisches, als ein C++ Problem. Du brauchst eine Funktion, die abhängig von X das gewünschte Ergebnis liefert.

    Leider bin ich in Mathe nie besonders gut gewesen, aber schau dir halt mal die Formel einer Parabel an...



  • Suchst du sowas wie

    s(x)=c_0exx_0/c_1+c_2s(x) = c\_0 e^{|x-x\_0|/c\_1}+c\_2

    Mit:
    ss Skalenfaktorfunktion
    x0x_0 "Mitte"
    cnc_n Konstanten

    Wobei dein Bild jetzt eher so aussieht, als wäre die Linienlänge linear und die Abstände exponentiell.



  • vickal93 schrieb:

    manni66 schrieb:

    double scaleFactor = 1;

    Das bringt mich leider nicht sehr viel weiter.

    Das beantwortet deine Frage. Deine eigentliche Frage "Kann mir einer mal meine Hausaufgaben lsöen" natürlich nicht.



  • temi schrieb:

    vickal93 schrieb:

    Wie kann ich nun in C++ diesen Skalierungsfaktor erstellen? Danke schon mal!

    Das ist ja eher ein mathematisches, als ein C++ Problem. Du brauchst eine Funktion, die abhängig von X das gewünschte Ergebnis liefert.

    Leider bin ich in Mathe nie besonders gut gewesen, aber schau dir halt mal die Formel einer Parabel an...

    Okay, aber das ist schon mal ein guter Hinweis, probiere ich mal aus, danke



  • wob schrieb:

    Suchst du sowas wie

    s(x)=c_0exx_0/c_1+c_2s(x) = c\_0 e^{|x-x\_0|/c\_1}+c\_2

    Mit:
    ss Skalenfaktorfunktion
    x0x_0 "Mitte"
    cnc_n Konstanten

    Wobei dein Bild jetzt eher so aussieht, als wäre die Linienlänge linear und die Abstände exponentiell.

    Das scheint mit plausibel zu sein, nach so einer Formel suche ich auch.
    Ich habe mal die Linien alle auf eine Höhe gebracht und sie sinken bzw. wachsen tatsächlich nicht linear, obwohl das eventuell auf dem ersten Blick so scheinen mag.



  • manni66 schrieb:

    vickal93 schrieb:

    manni66 schrieb:

    double scaleFactor = 1;

    Das bringt mich leider nicht sehr viel weiter.

    Das beantwortet deine Frage. Deine eigentliche Frage "Kann mir einer mal meine Hausaufgaben lsöen" natürlich nicht.

    ... nur das ich aus dem Alter zwecks "Hausaufgaben machen" schon längst raus bin. 😉 Zur Erklärung: es geht hier bei um ein kleines Programm, was ich für mich selbst programmiere und an diesem Punkt (noch) nicht weiter komme.



  • vickal93 schrieb:

    manni66 schrieb:

    vickal93 schrieb:

    manni66 schrieb:

    double scaleFactor = 1;

    Das bringt mich leider nicht sehr viel weiter.

    Das beantwortet deine Frage. Deine eigentliche Frage "Kann mir einer mal meine Hausaufgaben lsöen" natürlich nicht.

    ... nur das ich aus dem Alter zwecks "Hausaufgaben machen" schon längst raus bin. 😉 Zur Erklärung: es geht hier bei um ein kleines Programm, was ich für mich selbst programmiere und an diesem Punkt (noch) nicht weiter komme.

    Die Ausreden sind immer gleich...



  • manni66 schrieb:

    vickal93 schrieb:

    manni66 schrieb:

    vickal93 schrieb:

    manni66 schrieb:

    double scaleFactor = 1;

    Das bringt mich leider nicht sehr viel weiter.

    Das beantwortet deine Frage. Deine eigentliche Frage "Kann mir einer mal meine Hausaufgaben lsöen" natürlich nicht.

    ... nur das ich aus dem Alter zwecks "Hausaufgaben machen" schon längst raus bin. 😉 Zur Erklärung: es geht hier bei um ein kleines Programm, was ich für mich selbst programmiere und an diesem Punkt (noch) nicht weiter komme.

    Die Ausreden sind immer gleich...

    Ich finde es ehrlich gesagt sehr schade, dass meine Ehrlichkeit als "Ausrede" gewertet wird.
    Naja, ich werde meinen Beitrag später editieren, um meinen Fortschritt zu zeigen. Falls jemand noch Vorschläge oder Tipps hat, bin ich gerne offen dafür.


  • Mod

    vickal93 schrieb:

    Naja, ich werde meinen Beitrag später editieren, um meinen Fortschritt zu zeigen. Falls jemand noch Vorschläge oder Tipps hat, bin ich gerne offen dafür.

    Ich empfehle sehr, Updates nicht durch das Editieren alter Beiträge zu liefern. Niemand wird sich auf Verdacht alte Beiträge ansehen, ob vielleicht jemand etwas da dran geändert hat, und erst recht wird niemand überlegen, was denn nun geändert wurde. Wenn du neue Informationen hast, zu denen du neue Fragen hast, dann mach einen neuen Beitrag dazu.



  • SeppJ schrieb:

    vickal93 schrieb:

    Naja, ich werde meinen Beitrag später editieren, um meinen Fortschritt zu zeigen. Falls jemand noch Vorschläge oder Tipps hat, bin ich gerne offen dafür.

    Ich empfehle sehr, Updates nicht durch das Editieren alter Beiträge zu liefern. Niemand wird sich auf Verdacht alte Beiträge ansehen, ob vielleicht jemand etwas da dran geändert hat, und erst recht wird niemand überlegen, was denn nun geändert wurde. Wenn du neue Informationen hast, zu denen du neue Fragen hast, dann mach einen neuen Beitrag dazu.

    Alles klar, dem Hinweis werde ich folgen 👍



  • vickal93 schrieb:

    ... nur das ich aus dem Alter zwecks "Hausaufgaben machen" schon längst raus bin. 😉 Zur Erklärung: es geht hier bei um ein kleines Programm, was ich für mich selbst programmiere und an diesem Punkt (noch) nicht weiter komme.

    Dass du dir die Aufgabe nicht selbst gestellt hast, hast du ja quasi schon selbst geschrieben. Das:

    vickal93 schrieb:

    Ich habe mal die Linien alle auf eine Höhe gebracht und sie sinken bzw. wachsen tatsächlich nicht linear, obwohl das eventuell auf dem ersten Blick so scheinen mag.

    ...lässt für mich keine andere Interpretation zu.

    Du willst also hier eine Aufgabe lösen die jmd. anderes erstellt/gestellt hat. Die Idee "Hausaufgaben machen" liegt da nicht fern. Falls es sich um irgendwelche Übungsaufgaben handelt - aus einem Buch, Webseite etc. - und du vermeiden willst dass jmd. glaubt du willst hier Hilfe bei Hausaufgaben, dann schreib einfach dazu woher die Aufgabe kommt.



  • So, nachdem ich nicht vorhatte, dass dieser Thread zu einer Rechtfertigung mutiert, wo ich erkläre, das es keine Hausaufgabe/gestellte Aufgabe/Arbeit von jemand anderen ist, will ich eins klar stellen:
    Ich arbeite ein einem eigenem Programm, welches so nirgends in keiner Aufgabenstellung zu finden ist. Hierbei detektiere ich in einem Bild eine Wand anhand von OpenCV und diese segmentiere. Der OpenCV-Teil tut hier gar nichts zur Sache, aber durch die Segmentierung entstehen die besagten Linien, denen ich nun einen Skalierungsfaktor beifügen will.

    Ich hoffe, dass nach dieser Klarstellung bitte keine Vorwürfe mehr kommen, sondern konstruktive Beiträge bzw. Ideen.



  • Mechanics in der Forentechnik schrieb:

    Ich finde aber auch die Situation hier im Forum bedenklich. Ob der Umgangston hier das Problem ist, weiß ich nicht. Jedenfalls kommen aber nicht viele neue dazu, und wenn, dann sind viele davon schnell wieder weg.

    Das ist schon rätselhaft...

    Mal ernsthaft, es ist doch egal, ob es eine Hausaufgabe ist oder nicht. Es ist ja nicht so, dass das Forum hier mit derartigen Anfragen überschwemmt wird.

    Für mich ist die Frage von vickal93 völlig okay, wer nix Sinnvolles beizutragen hat, der schreibt hier eben nichts und geht weiter.

    Was wurde hier vor Jahren noch Code gepostet - allein das Erstellen vieler Posts hat wohl jeweils mehrere Stunden gedauert. Die Basis war wesentlich breiter, wieviele Registrierte sind in diesem Subforum noch halbwegs regelmäßig aktiv? 7-10?

    Und bei diesem Problem hätte vickal93 durchaus gute Chancen gehabt, dass einer irgendwas Brauchbares hat, das dann mit Hilfestellung zur Modifikationen seitens des TE zielführend wäre.

    Ich bin hier auch nur noch ab und zu als Unregistrierter unterwegs. Der Ton war schon immer etwas rauer aber was einige bspw. hier in diesem Thread schon wieder von sich gelassen haben, kann einem wirklich auf den Sack gehen.

    Von den Mods wird das Ganze toleriert, teilweise auch noch befeuert.

    Einen schönen Abend allerseits.



  • @Vickal: Was für eine Repräsentation hast du denn für deine Linien?
    Ansonsten hat wob glaube ich einen guten Ansatz geliefert.


  • Mod

    @genervt: Dein Beitrag ist 100% OT.

    Die bisherigen Antworten fallen deshalb zwangsläufig wenig befriedigend aus, weil es der Frage an Präzision mangelt.
    Einerseits wird etwas sehr Spezifisches ("wie", "in C++") gefragt, andererseits aber ist der gegebene Kontext viel zu allgemein und unpräzise gehalten. Wo ist denn der Code, dem etwas hinzugefügt werden soll? Niemand möchte hier viel Energie darauf verwenden, nur um herauszufinden, was denn eigentlich die Frage konkret sein soll.


Anmelden zum Antworten