Bild auf Polygon mappen

Hi Leutz :wink:))

Ich habe wieder mal ein kleines Grafikproblem. Ich habe ein Bild als BMP-Datei und möchte dieses auf ein Polygon mappen. Kennt einer von euch einen hilfreichen Link? Mit dem Füllen eines Polygons wäre mir auch schon geholfen :wink:))

cu Stefan.

Hallo Stefan,

Ich gehe mal davon aus, daß es sich um beliebige Polygone handelt(3, 4, 5 -eckig, usw.) Mit OpenGL kannst Du so etwas leicht erledigen. Wenn Du OpenGL nicht nutzen möchtest, wird es etwas schwieriger. Dann mußt Du die Polygonkanten abscannen und die Extrema der Scanlinien speichern, dann kannst Du es mit einer Farbe füllen, Texturieren ist noch etwas schwerer.
Such mal mit Metager.de oder so nach polygon filling, scan converting, texturing.

Gruß Patrick

Hi Patrick :wink:))

Ich kann OpenGL nicht benutzen. Es geht darum, ein plattformunabhängiges Grafik-Programm zu entwickeln. Der Input passiert via XML und der Output geschieht in Form eines Bildes.

Ich habe mir jetzt Folgendes überlegt. Ich bestimme das kleinste Rechteck, in das das Polygon reinpasst. Das mache ich, indem ich mir alle x- und y-Koordinaten ansehe und daraux x_min, x_may, y_min und y_max bestimme.

Innerhalb dieses Rechtecks lasse ich nun eine horizontale Linie von y_min bis y_max entlang der y-Richtung steppen. Auf dieser Linie untersuche ich für jede x-Koordinate, ob sie innerhalb oder außerhalb des Polygons liegt. Das mache ich, indem ich zähle, wie oft die aktuelle Horizontale eine Kante des Polygons bis zur aktuellen x-Koordinate geschnitten hat. Ist diese Anzahl ungerade, bin ich im Polygon, ist sie gerade, bin ich außerhalb des Polygons.

Für jeden Punkt innerhalb des Polygons schaue ich in meinem Bild nach, welcher Farbwert einzusetzen ist und schreibe diesen ins Polygon.

Ich weiß nicht, ob das die optimale Lösung ist. Aber zumindest funktioniert sie und ist sogar recht schnell :wink:))

Trotzdem Danke für deine Hilfe …

cu Stefan.