Da bin ich schon bei meiner Schattenrecherche drauf gestoßen. Jetzt kann ich mir die Suche danach heute Abend sparen und bin eher fertig.
Auch das ginge. Du müsstest an jeder Ecke prüfen, ob der Vektor, in dessen Richtung sich der Schatten ausbreiten soll, ins Polygon reingeht oder aus dem Polygon rauskommt. Das kannst du leicht tun, indem schaust, ob das Skalarprodukt des Vektors mit den Normalen der beiden angrenzenden Kanten positiv oder negativ ist. Ich habe mal eine Skizze dazu gemacht. Positives Skalarprodukt ist in der Skizze blau, negatives Skalarprodukt ist rot. Somit ergeben sich für die Ecken drei verschiedene Fälle:
- Rot/Rot: Die Ecke bleibt wo sie ist.
- Blau/Blau: Die Ecke wird verschoben.
- Rot/Blau: Eine zusätzliche Kante wird eingefügt.
Wobei bei dieser Lösung zu beachten ist, dass die Richtung der Normalen davon abhängt, in welcher Richtung das Polygon gewickelt ist. Man muss also definieren, welche Richtung positiv ist.
Ich beneide Euch Studiosos oft! Da kann ich leider nicht folgen.
Wenn das mit meiner oben beschriebenen Regionen-Kopier-und-Vereinigungsorgie einigermaßen performant funktioniert werde ich es erst mal damit versuchen.
Ansonsten ... mal schauen ...
EDIT: Ahh! Doch!!! Cool! Jetzt habe ich es verstanden!
Vielleicht kriege ich das sogar umgesetzt.