Ich habe ein Problem, das fast wie ein klassisches CS-Problem aussieht, alle Schnittpunkte von bestimmten Liniensegmenten zu finden.Intersect n Liniensegmente (auf ganzzahligem Gitter)
Die leichte Modifikation ist die Tatsache, dass:
1. Ich alle Segmente an ihren Schnittpunkten
2. Die resultierenden Teilsegmente haben ganzzahlige Koordinaten müssen aufteilen müssen.
Wenn ich einfach den Standard-Sweepline-Algorithmus anwende, um alle Schnittpunkte zu finden und die Koordinaten dieser Punkte auf Integer umsetze, bekomme ich manchmal neue Schnittpunkte, die durch das Verschieben von Schnittpunkten auf das Integer-Gitter verursacht werden.
Ich kann diesen Algorithmus wiederholt anwenden, und wahrscheinlich (ich kann es nicht beweisen), in einer begrenzten Anzahl von Schritten erreichen einen Zustand, in dem ich keine neuen Schnittpunkte finden. Aber ich bin überzeugt, dass es eine einfachere, elegantere Lösung geben muss.
Ich habe versucht, ein Papier über einen solchen Algorithmus zu finden, aber irgendwie konnte ich keinen finden, der genau dieses Problem behandeln würde.
Kannst du mich auf solch ein Pape hinweisen, oder auf eine Beschreibung eines Algorithmus, der von Grafikbibliotheken (wie Boost Polygon Library) verwendet wird?
Vielen Dank.
Sie sagen, sollte * truncate * (oder * rund *) anstatt * Cast *. –