Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-01-2004, 08:38   #1 (permalink)
xbs
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.
xbs ist offline   Mit Zitat antworten
Alt 22-01-2004, 22:19   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
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
hgseib ist offline   Mit Zitat antworten
Alt 23-01-2004, 10:04   #3 (permalink)
xbs
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
xbs ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele