Hallo, Hat jemand eine Idee, nach welchem Algorithmus Paint die Polygone ausmalt. Ich hätte da folgenden gefunden: https://de.wikipedia.org/wiki/Punkt-in-Polygon-Test_nach_Jordan Gibt es da vielleicht noch effektivere Verfahren :), hier muss ja jeder Pixel einzeln überprüft werden? Danke :)
Alexander M. schrieb: > hier muss ja jeder > Pixel einzeln überprüft werden? Nicht unbedingt. Du kannst ja z.B. zeilenweise drüberlaufen, und innerhalb jeder Zeile die Schnittpunkte mit dem Polygon bestimmen. Zwischen diesen ändert sich nix, also kannst du immer einen ganzen Schwung nebeneinanderliegender Pixel gleich behandeln.
Εrnst B. schrieb: > Alexander M. schrieb: >> hier muss ja jeder >> Pixel einzeln überprüft werden? > > Nicht unbedingt. Du kannst ja z.B. zeilenweise drüberlaufen, und > innerhalb jeder Zeile die Schnittpunkte mit dem Polygon bestimmen. > Zwischen diesen ändert sich nix, also kannst du immer einen ganzen > Schwung nebeneinanderliegender Pixel gleich behandeln. Oh guter Punkt. Danke!
Εrnst B. schrieb: > Nicht unbedingt. Du kannst ja z.B. zeilenweise drüberlaufen, und > innerhalb jeder Zeile die Schnittpunkte mit dem Polygon bestimmen. Es kann doch passieren, dass es kein regelmäßiges Polygon ist und dann kann es auf jeder Zeile passieren, dass es jeweils mehrere Schnittpunkte gibt, sodass die Pixelzeile aus mehreren Segmenten besteht. Sehe ich das richtig?
Bernd S. schrieb: > gibt, sodass die Pixelzeile aus mehreren Segmenten besteht. > Sehe ich das richtig? ja. Dann gibt's mehrere Schnittpunkte. Diese lassen sich aber recht einfach finden, weil die "Test-Gerade" schön waagerecht mit konstantem y läuft. Der Check ob es einen Schnittpunkt zu einem Polygon-Segment gibt, ist fix mit ein paar "<" und ">"-Vergleichen erledigt, nur das genaue Berechnen der x-Koordinate braucht dann Division/Multiplikation.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.