Hallo Experten,
auf einem Panel zeichne ich mehrere gefüllte geschlossene Pfade des Typs[highlight=c#]System.Drawing.Drawing2D.GraphicsPath[/highlight]Ein Pfad kann neben Geraden auch kubische Bézierkurven, sowohl konvex als auch konkav geformt, enthalten. Fertig sieht das in etwa so aus, wie der Grundriss einer Modelleisenbahnschiene ohne jegliche Details.
Wenn der Benutzer auf das Panel klickt, erfahre ich den Punkt des Klicks.
Ich möchte wissen,
- ob der Punkt außerhalb aller Pfade liegt,
- auf welchem Pfad der Punkt liegt oder
- innerhalb welchen Pfades der Punkt liegt.
Ich habe folgendes gefunden:
http://www.koders.com/csharp/fid9C02...?s=thread#L282
und zwei Probleme damit
1. Der Pfad hier besteht nur aus Geraden. Ich bezweifle, dass der Algorithmus mit Krümmungen klarkommt.
2. Der Kern des Algorithmus besteht aus den Bedingungen "Punkt liegt in X-Richtung zwischen zwei anderen Punkten" und "Ein Rechteck hat einen größeren Flächeninhalt als ein anderes". Ich verstehe die Idee dahinter nicht.
Kennt jemand einen Algorithmus, der mit Bézierkurven klarkommt?
auf einem Panel zeichne ich mehrere gefüllte geschlossene Pfade des Typs[highlight=c#]System.Drawing.Drawing2D.GraphicsPath[/highlight]Ein Pfad kann neben Geraden auch kubische Bézierkurven, sowohl konvex als auch konkav geformt, enthalten. Fertig sieht das in etwa so aus, wie der Grundriss einer Modelleisenbahnschiene ohne jegliche Details.
Wenn der Benutzer auf das Panel klickt, erfahre ich den Punkt des Klicks.
Ich möchte wissen,
- ob der Punkt außerhalb aller Pfade liegt,
- auf welchem Pfad der Punkt liegt oder
- innerhalb welchen Pfades der Punkt liegt.
Ich habe folgendes gefunden:
http://www.koders.com/csharp/fid9C02...?s=thread#L282
und zwei Probleme damit
1. Der Pfad hier besteht nur aus Geraden. Ich bezweifle, dass der Algorithmus mit Krümmungen klarkommt.
2. Der Kern des Algorithmus besteht aus den Bedingungen "Punkt liegt in X-Richtung zwischen zwei anderen Punkten" und "Ein Rechteck hat einen größeren Flächeninhalt als ein anderes". Ich verstehe die Idee dahinter nicht.
Kennt jemand einen Algorithmus, der mit Bézierkurven klarkommt?
Comment