2017-07-18 4 views
1

Ich programmiere eine zufällig generierte Spline-Kurve, indem ich zuerst Kontrollpunkte erzeuge und dann mit spicy.splev interpoliere. Here ist ein Beispiel.Wie erkennt man Selbstkollision in Spline-Kurve?

Jetzt möchte ich überprüfen:

a) Wenn der Spline mit sich selbst kollidiert. b) wenn a) Ich möchte den Schnittwinkel bekommen.

Die Punkte werden in einem numpy Array wie gespeichert:

np.array =[[ 1.00000000e+01 -4.65000000e+02] 
      [ 1.78319153e+01 -4.60252579e+02] 
      ...] 

Jede Idee, wie man diesen Ansatz? Wäre es eine Option, nach jedem Liniensegment zu suchen, wenn es mit einem anderen vom Spline kollidiert? Danke im Voraus!

+0

Je nachdem, wie viele Segmente Sie sie gegen jede ave Überprüfung andere wäre definitiv eine Option? Sind Sie besorgt über die Leistung oder warum haben Sie das nicht versucht? – obachtos

+0

Ich könnte die Anzahl der Zeilen für Tests verringern und später erhöhen. Ich habe versucht, einige Ansätze, aber kollinearen Linien waren der Flaschenhals. Ich denke, 500 Segmente sollten überschaubar sein? Eine Lösung mit mehreren Operatoren wäre am besten. Aber ich denke, dass das Testen von Liniensegmenten gegeneinander die am besten geeignete Lösung für mein Problem sein sollte. – schlank

+0

Warum ist Kollinearität ein Problem? – obachtos

Antwort