Beliebige Punkte auf einen Vektor ermitteln, wie?
-
Hallo,
Ich habe da ein kleines Problem und zwar habe ich ein Programm geschrieben, welches Vektoren im Raum darstellt und um die Richtung eines Vektors zu kennzeichnen muss man ja eine Pfeilspitze noch an den Vektor anbringen.
Das Problem ist aber das die Spitze( einfache Kegel ) am ende des Vektors aufgesetzt wird, spricht |--------------|>. Nun suche ich nach einer Lösung wie ich das Stück, das der Länge der Spitze entspricht von der Vektorlämge abziehen kann UND dann irgendwie auf die sich nun neu ergebenden Punkte( x, y, z ) komme. Wie mach ich das?Hier noch mal ein Bild, die sollte eigentlich mehr sagen als 1000 Worte
http://www.bilder-hosting.de/show/27XSP.htmlHoffe Ihr könnt mir dabei helfen.
Gruß Tobi.
-
Du kannst doch einfach die Länge des Vektors berechnen, und davon die (konstante) Länge des Pfeils abziehen. Dann berechnest du einen Faktor a, mit dem du den alten Vektor multiplizieren musst um auf die neue, kleinere Länge zu kommen.
Wenn du das dann ausrechnest, hast du den Startpunkt des Kegels.
-
Deine Pfeilspitze sollte normalerweise nicht noch über den Vektor hinausgehen, sondern die Spitze der Spitze sollte am Ende des Vektors sein.
Dann würde sich das andere Problem auch erübrigen.
-
Jan schrieb:
Deine Pfeilspitze sollte normalerweise nicht noch über den Vektor hinausgehen, sondern die Spitze der Spitze sollte am Ende des Vektors sein.
Dann würde sich das andere Problem auch erübrigen.gut erkannt deswegen kam ich auch mit meiner frage hier her
@Rodney hab das eben noch net ganz verstandne könntest du mir evtl. die Formeln geben? oder noch besser nen link zu dem thema?
wie ich dich verstanden haben meinst du:
- Laenger vom Vektor a, l = Wurzel( x² + y² + z² )
- dann l - SPITZEN_LENGTH = GESUCHTE_LENGTH
- dann mit SPITZEN_LENGTH * faktor = GESUCHTE_LENGTH
- das umstellen nach: faktor = GESUCHTE_LENGTH / SPITZEN_LENGTH
- und mit faktor multipliziere ich die alten werte von x, y und z ?meinste das so???
Gruß Tobi.
-
position der kegelbasis = normalisierter vektor * (länge des vektors - höhe des kegels)
-
cpt. obvious schrieb:
position der kegelbasis = normalisierter vektor * (länge des vektors - höhe des kegels)
position der kegelbasis = endpunkt meines vektor ?
normalisierter vektor = a / |a| ?
dann kegellänge vom |a| abziehen und dann mal nemmen, richtig?
Gruß Tobi.
-
danke für eure hilfe so gehts
Gruß Tobi.