| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Dec 2002
Beiträge: 15
| 3D Vektorechunung
hallo Habe Folgends Problem. Ich habe eine einfach Linie,von der ich Anfang und Endpunkt (y,x)weiß, und einen Zylinder in 3D Skizzirt. Wenn ich mir das ganze jetzt 3D Vorstelle, und sage die Linie hat den Anfangspunkt (x,y,0) und den Endpunkt (x,y,10), wobei x,y Variabel sind, wie kann ich berechnen wo die Linie eine Ebene des Zylinders schneidet. Ebene soll parallel zur Grundfläche des Zylinders sein. Vielen dank für eure Hilfe. |
| | |
| | #2 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.321
|
falls dein zylinder gerade steht (also nicht frei im raum gedreht ist), dann: von "oben" betrachtet ist das "Schnittpunkte Strecke durch einen Kreis". berechnung siehe: http://www.SeibsProgrammLaden.de/fra...on/Mathe/flash diese zwei punkte stellen senkrecht je eine linie (entlang des zylindermantels) dar. somit musst du nur noch den schnittpunkt von diesen linien mit deiner linie berechnen. ein kinderspiel (stahlensatz). ----- in 3d- programmen wird i.d.R. ein objekt als viele rechtecke und dreiecke behandelt. durchdringung linie durch eine ebene gibt es in jeder besseren formelsammlung. wenn du selbiges gerade nicht zur hand hast: (ist übrig geblieben, von einer internetseite von mir zu COFFEE und Cinema 4D :-) ![]() Drei Punkte im Raum (=zwei Vektoren) definieren eine Ebene. Das Kreuzprodukt liefert einen Vektor, der senkrecht auf dieser Ebene liegt. Durch die Normalisierung wird der Vektor auf einen Radius von 1 skaliert. Denn es interessiert nur das Neigungsverhältnis. Der Vektor von vLa zu vFa wird mit dem Kreuzprodukt der Fläche multipliziert. Das Ergebnis ist das Lot (die kürzeste Strecke) vom Punkt vLa auf die Ebene. Der Vektor von vLa zu vLb wird ebenfalls mit dem Kreuzprodukt der Fläche multipliziert. Also eine Linie von vLa zu vLb, senkrecht zur Dreiecksfläche projeziert. Mit dem selben Teilungsverhältnis dieser beiden Vektoren wird die Linie vLa zu vLb geteilt, um den gesuchten Punkt vP zu erhalten. ![]() Zur Feststellung, ob der ermittelte Punkt vP sich innerhalb oder außerhalb der Dreiecksfläche befindet dient wieder das Kreuzprodukt. Es wird gebildet mit den Dreiecken: vFa,vFb,vP vFb,vFc,vP vFc,vFa,vP Liegt der Punkt vP innerhalb, dann zeigen alle drei Kreuzprodukte in die gleiche Richtung, andernfalls zeigt ein Kreuzprodukt in die entgegengesetzte Richtung. ----- ööööh, jetzt ist's aber klar oder?
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Dec 2002
Beiträge: 15
|
Hallo Danke mal für diene ausführliche Antwort. Habe selber noch mal ordentlich nachgedacht, und bin draufgekommen, dass das ein gar nicht so komplexes Problem ist. Meine Idee dazu: Ich habe den Zylinder. Durch den Zylinder habe ich eine Streck, von der ich Anfangs und Endpunkt kenne. dh ich kann mir ganz einfach in der Vektorform die Geradengleichung aufstellen g=(x,y,z)=(x1,y1,z1) +s(x1-x2,y1-y2,z1-z2) Naja und immer dort wo mein g die Ebenen schneidet weiß ich die Z Kordinate dieses Punktes. Und wenn mir eine der 3 Kordinaten des Punktes bekannt ist, ist es auch ein leichtes die x,y Kordinaten zu berechnen. Ich hoffe da habe ich recht, und vielen Dank noch mal für deine Hilfe mfg xbs |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |