Hilfe bei Schleife zur bestimmung von Koordinaten



  • Danke für die schnelle Antwort.

    Punkte die auserhalb stehn sollen einfach Schwarz gefärbt werden.



  • GT schrieb:

    Punkte die auserhalb stehn sollen einfach Schwarz gefärbt werden.

    Und was soll dann in pxMap und pyMap stehen? Immerhin enthalten die ja Koordinaten, keine Farben.

    Jedenfalls musst du nur prüfen, ob der Abstand des Punktes zum Mittelpunkt des Bildes größer ist als dein Radius. Dafür brauchst du keine Winkelfunktionen, da reicht auch der Satz des Pythagoras.



  • Ahso ja in pxMap und pyMap sind Arrays deren Index die Punkte des ZielBilds sind also:

    pxMap 1 und pyMap 0 wären dann auf dem ZielBild:

    x: 1 y: 0

    so hab ich die Funktion jedenfalls verstanden. Und in diese Arrays gehören dann die Koordinaten vom QuellBild auf die sich der Neue Punkt bezieht.

    In meinem Fall wäre dann bei Width 500 Height 200.

    pxMap[250] = 0
    pyMap[100] = 0

    weil die den Mittelpunkt des Kreis darstellen.

    Also das mit dem Prüfen hab ich verstanden also abfragen ob der Punkt weiter vom Mittelpunkt entfernt ist als mein Radius.

    Aber ich versteh nicht wie ich die Punkte von QuellBild in ZielBild so anordnen kann damit sie einen Kreis ergeben.



  • GT schrieb:

    AUnd in diese Arrays gehören dann die Koordinaten vom QuellBild auf die sich der Neue Punkt bezieht.

    In meinem Fall wäre dann bei Width 500 Height 200.

    pxMap[250] = 0
    pyMap[100] = 0

    Das bedeutet also, dass die 0/0-Ecke des Quellbilds (mutmaßlich links oben) in die Mitte des Zielbilds abgebildet werden soll? Also doch irgendeine Verzerrung?

    GT schrieb:

    Aber ich versteh nicht wie ich die Punkte von QuellBild in ZielBild so anordnen kann damit sie einen Kreis ergeben.

    Indem du alle Punkte weglässt, die nicht dazugehören. Wie du diese Information in deinen Arrays verpacken willst, (weil die ja nur Koordinaten speichern können), musst du selbst wissen.



  • Das bedeutet also, dass die 0/0-Ecke des Quellbilds (mutmaßlich links oben) in die Mitte des Zielbilds abgebildet werden soll? Also doch irgendeine Verzerrung?

    Ja das stimmt voll und ganz entschuldige scheine mich wohl nicht richtig ausgedrückt zu haben.

    Also du meinst wenn ich einfach die abfrage mache ob der Punkt enthalten ist oder nicht dann Kriege ich meine Restpunkte die dann nicht schwarz sind?

    Aber die muss ich doch dann auch noch richtig in mein Array setzen und das ist der Springende Punkt.

    So generel wenn ich einen Pytagoras mit den Punkten von x und y machen würde und dan "c" länger als mein Radius ist muss ich ihn ausschliesen? Richtig?



  • GT schrieb:

    Also du meinst wenn ich einfach die abfrage mache ob der Punkt enthalten ist oder nicht dann Kriege ich meine Restpunkte die dann nicht schwarz sind?

    Was heißt "kriegen"? Wird denn jeder Punkt des Zielbilds aus einem Punkt des Quellbilds ermittelt? Wie genau sieht die Verzerrung aus?

    GT schrieb:

    So generel wenn ich einen Pytagoras mit den Punkten von x und y machen würde und dan "c" länger als mein Radius ist muss ich ihn ausschliesen? Richtig?

    Der Hinweis auf Pythagoras beruhte auf der Annahme, dass du einfach nur eine kreisförmige Maske über dein Bild legen willst. Aber das ist ja offenbar gar nicht der Fall.



  • Ähm ich versuche mal zu erklären und Hoffe damit sind deine Fragen dann beantwortet.

    Also ich habe einen File Dialog der mit dem ich mir ein Bild aussuche (QuellBild). Auf dieses Bild habe ich dann einen Pointer. Größe lässt sich ermitteln womit ich dann alle Punkte habe Width * Heigth. Das soweit.

    Dann hab ich 2 Parameter die Angeben wie groß das ZielBild wird (Width & Height) dann lass ich die scheife durchlaufen die ich gepostet hab und das ist dann eine 1 zu eins abbildung des Bildes. Da ich für Width und & Height in diesem fall die von QuellBild genommen habe.

    Aber ich muss mir jetzt im ZielBild einen Kreis erstellen mit Durchmesser von der Kürzeren Seite. Und in diesem Kreis soll dann vom MittelPunkt der Im QuellBild 0,0 ist das Gesammte Bild dargestellt werden.

    Und der Index der beiden Array entspricht den Koordinaten des ZielBilds und in diese Arrays muss ich die Punkte schreiben auf die sich das ZielBild im QuellBild bezieht. Und der eindeutigeste Punkt ist halt:

    pxMap[width/2] = 0
    pyMap[height/2] = 0

    also die Mitte vom Ziel Bild ist die Linke Obere Ecke vom QuellBild.

    Hoffe das gut erklärt... weil ich komm damit nicht so gut zurecht.



  • GT schrieb:

    Aber ich muss mir jetzt im ZielBild einen Kreis erstellen mit Durchmesser von der Kürzeren Seite. Und in diesem Kreis soll dann vom MittelPunkt der Im QuellBild 0,0 ist das Gesammte Bild dargestellt werden.

    Leider gibt es ziemlich viele Möglichkeiten, das zu tun.

    GT schrieb:

    also die Mitte vom Ziel Bild ist die Linke Obere Ecke vom QuellBild.

    Ja, das hatten wir schon. Leider lässt das noch unendlich viele Möglichkeiten offen, wie die Abbildung aussieht. Wo landen denn die anderen Eckpunkte? Wo landen die Ränder des Quellbilds?

    Oder kannst du vielleicht ein Beispielbildpaar posten?



  • Ja so im Prinzip solls ein wenn ich ein Bild mit Karomuster einlade soll ein Bild mit Spinnennetz rauskommen.

    Ich schau wegen Beispiel Bildern.



  • Willst du eine Anamorphose für einen Zylinderspiegel erzeugen?



  • Anamorphose sicher nicht.

    Zylinderspiegel wohl eher.

    Es geht vorallem darum das ich die Punkte beliebig der Größe des ZielBildes setzen kann der Rest wird von der Funktion interpoliert.




Anmelden zum Antworten