Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: Krümmung einer Linie

  Alt 6. Aug 2009, 23:45
Ich hab nun ein mehrstufiges gemischtes Verfahren gebastelt. Das was ich oben beschrieben hatte, liefert je nach Krümmung der Linie sehr instabile Ergebnisse auf längeren geraden Abschnitten, zum Teil auch direkt benachbarte Punkte auf schnurgerader Strecke.

Nun mach ich es so:
- Zwei mal jeden 2. Punkt aus der Liste entfernen, damit ich nachher nicht nur 0°/45°/90° zwischen zwei benachbarten Punkten habe. Die Genauigkeit der Linie ist danach eh noch viel zu hoch, daher kein zu goßer Verlust für meine Zwecke.
- Dann für jeden Punkt den Winkel den er mit dem vorausgegangenen, und dem nachfolgenden bildet bestimmen. Ist dieser kleiner als eine gesetzte Grenze, Punkt löschen. Das ganze so oft über die gesamte Liste, bis alle Fälle gekillt sind.
- ABER! Ich bräuchte schon noch auch auf geraden Teilen so ab und an einen Punkt. Das ist natürlich ein Sonderwunsch der mir auch erst beim Basteln auffiel. Daher lösche ich nur dann einen Punkt, wenn damit die Länge des resultierenden Segmentes eine weitere wählbare Grenze nicht überschreitet.

So muss ich nicht erst rechenintensiv und fehleranfällig Tangenten schätzen, und was ich bisher gesehen habe schaut recht brauchbar aus. Es ist wie so oft die gesunde Mischung - sogar bei Algorithmen Ich hoffe dass ich damit so weiter arbeiten kann. Danke dir für die Denkanstöße!
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat