Punkte auf Bezierkurve < Sonstiges < Hochschule < Mathe < Vorhilfe
|
Hallo
Falls meine Frage im falschen Bereich des Forums ist, bitte verschieben.
Ich möchte in vb.net ein kleines Tool programmieren, welches eine Bezierkurve zeigt, diese mit der Maus verschieben kann und in gleichmäßigen Abstand auf der Kurve Punkte plazieren.
Das klappt auch alles, bis zuletzt. Die punkte werden je nach Form nicht gleichmäßig auf der Bezierkurve aufgeteilt.
In Mathematik bin ich an die 20Jahre zurück, so bitte ich um Nachsicht.
Ich zeichne eine Bezierkurve mit P0(Anfang), P1(Kontrollpunkt 1), P2(Kontrollpunkt 2), P3(Ende)
Nun möchte ich auf die Länge 5 Punkte gleichmäßig verteilen.
Dazu habe ich diese Formel bekommen:
p.X = bzpoints(0).X * t ^ 3 + bzpoints(1).X * 3 * t ^ 2 * (1 - t) + bzpoints(2).X * 3 * t * (1 - t) ^ 2 + bzpoints(3).X * (1 - t) ^ 3
p.Y = bzpoints(0).Y * t ^ 3 + bzpoints(1).Y * 3 * t ^ 2 * (1 - t) + bzpoints(2).Y * 3 * t * (1 - t) ^ 2 + bzpoints(3).Y * (1 - t) ^ 3
Wenn ich so eine Schleife laufen lasse für t = 0 to 1 step 0.2 habe ich unregelmäßige Abstände zwischen den 5 Punkten.
Je nachdem wie die Kontrollpunke stehen.
Weiß jemand wie ich auf die Bezierkurve Punkte gleichmäßigen Abstandes berechnen kann?
Screenshot 1 (Gerade Bezierkurve ... korrekte Aufteilung über t):
http://www.eisbaer-manager.de/downloads/Screen1.gif
Screenshot 2 (Kontrollpunkte verändert ... ungleichmäßiger Abstand zwischen den Punkten):
http://www.eisbaer-manager.de/downloads/Screen2.gif
Scheint so, als t (0-1) nicht gleichmäßig über die Bezierkurve "läuft"
Hat jemand eine Ahnung davon :-(
Danke vielmals
Hannes
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 11:20 Fr 26.01.2007 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|