| |
|
|
Peter Mallow | Ich habe ein Punkt gegeben, der im dreidimensionalen Raum die Koordinaten x=0.6,y=0.5,z=0.5 besitzt. Ich betrachte den Raum unter einen Drehwinkel Alpha=302° und einen Neigungswinkel Betha=18°. Sind also die Blickwinkel (siehe Bild). Uch bin mir nicht sicher, wie die Winkel genau heißen. Jetzt möchte ich die Koordinaten im zweidimensionalen Koordinatensystem berechnen, so dass ich den Punkt im Raum auf ein Blatt Papier darstellen könnte.
In diesem Bild sieht man den Punkt im Raum mit Berücksichtigung der Blickwinkel. So stell ich mir das vor:
und jetzt möchte ich die Koordinaten des Punktes für das 2D-Koordinatensystem errechnen, die man hier im Bild ablesen könnte:
1. Habe Probleme das Problem richtig zu beschreiben, weil mir die Vorraussetzungen in Mathe noch fehlen. Wie nennt man solche Berechnungen? 2. Wie kann ich die X und Y-Koordinaten des Punktes für das zweidimensionale Koordinatensystem berechnen? Auf die Formel für die x-Koordinate bin ich selbst durch stundenlanges testen gekommen: x = y * cos(alpha) + x * sin(alpha) aber den Zusamenhang für y habe ich nur zum Teil herrausgefunden: y = -(z * cos(betha) - x * sin(betha)) <- gilt nur wenn alpha = 0
kann mir jemand bitte helfen?
(Beispiel: [...] für das Programm GeoGabra) |
|
|
| WinXP Pro SP2, XProfan 9 + XPSE AMD Athlon 64 X2 3800 | 27.08.2006 ▲ |
|
|
|
|
| Wie man das nennt? IMHO einfach nur Koordinatensystemumrechnung. Das hier sollte Dir helfen: [...] |
|
|
| |
|
|
|
| Nachtrag: Wenn es Dir um eine ogl -Spielerei geht dann gibts dafür Testfunktionen. |
|
|
| |
|
|
|
Jac de Lad | KompilierenMarkierenSeparierentmat![0,0]:=cos(alpha!)*cos(gamma!)-sin(alpha!)*sin(beta!)*sin(gamma!);
tmat![1,0]:=sin(alpha!)*cos(gamma!)+cos(alpha!)*sin(beta!)*sin(gamma!);
tmat![2,0]:=cos(beta!)*sin(gamma!);
tmat![0,1]:=-sin(alpha!)*cos(beta!)*cos(gamma!)-cos(alpha!)*sin(gamma!);
tmat![1,1]:=cos(alpha!)*sin(beta!)*cos(gamma!)-sin(alpha!)*sin(gamma!);
tmat![2,1]:=cos(beta!)*cos(gamma!);
proc calcx
parameters x!,y!,z!
Return xleft%+dx%*(0.5+scalx!*(tmat![0,0]*x!+tmat![1,0]*y!+tmat![2,0]*z!/(zmax!-zmin!)))
endproc
proc calcy
parameters x!,y!,z!
Return yleft%+dy%*(0.5-scaly!*(tmat![0,1]*x!+tmat![1,1]*y!+tmat![2,1]*z!/(zmax!-zmin!))));
endproc
Wenn ich mich nicht irre. Die Formel, leicht erweitert, verwende ich zur Darstellung der Graphen in Parcival.
xleft%,yleft%,dx%,dy% geben den Ausschnitt in einem Control an, in das gezeichnet werden soll (z.B. STATIC oder Window). scalx! und scaly! sind die Skalierung (als Standard würde ich 0.2 empfehlen). xmin!, xmax!, ymin!, ymax!, zmin! und zmax! sind Die Koordinaten, des 3D-Ausschnittes in dem dargestellt wird.
Die Matrix muss für jeden Winkel neu berechnet werden und die Declaration der Variablen fehlt noch! Die Ergebisse ist der Punkt im Control, in das gezeichnet werden soll.
Jac |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 27.08.2006 ▲ |
|
|
|
|
Peter Mallow | erstmal danke
guck mir das beispiel von Jac noch mal genauer an |
|
|
| WinXP Pro SP2, XProfan 9 + XPSE AMD Athlon 64 X2 3800 | 29.08.2006 ▲ |
|
|
|
|
Jac de Lad | Bitte nich hauen, wenns nich klappt. Der Originalquellext is in Delphi, kann sein, dass ich was falsch übersetzt habe.
BTW: Wennde mal sehen willst, wie das dann aussieht, gib bei Search einfach Parcival ein, lad dir die neuste Version runter, starte das Demoprogramm und staune!
Jac |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 29.08.2006 ▲ |
|
|
|