Registriert: Mi Aug 20, 2003 09:15 Beiträge: 70 Wohnort: Italien
Das muss man, soweit ich weis, mit Hilfe einer (3x3)Matrix berechnen(so wie das auch die Grafikkarte intern macht), die je nach Winkel anders ist.
Siehe dazu das Mathe-tutorial von DGL:
Du multiplizierst den Vektor (<radius>,0,0) mit dieser Matrix und erhälst deinen Punkt.
wenn es dein Problem erlaubt, kannst du die Berechnung direkt der GraKa überlassen.
P.S: An HomerS: die Formel(n) für einen Winkel wären so einfacher:
x = cos * entf
y = sin * entf
_________________ "Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt" Albert Einstein
@Lith:
Ich glaube(bin mir nicht sicher) der Horizontale Winkel gibt den Winkel zwischen y-Achse und Richtung des Vertex an.
Der Vertikale Winkel gibt den Winkel zwischen x-Achse und Richtung an.
Probiere jetzt mal die Lösungsvorschläge aus.
Registriert: Mi Aug 28, 2002 19:27 Beiträge: 568 Wohnort: Chemnitz / Sachsen
also so wie du das beschreibst, kann es sich eigentlich nur noch um polarkoordinaten handeln. (Punkte auf einer Kugel mit dem Radius r)
da jeder ein tafelwerk / eine formelsammlung zuhause hat, ist es eigentlich schnell nachzuschauen, da gibt es das unter vektorrechnung / lineare algebra (?).
ich brauchte das auch vor kurzem, habs aber leider nicht mehr im kopf.
ist aber an sich ganz einfach !!!
Hab grad in meiner Formel sammlung rumgestöbert allerdings nur für 2D gefunden und das ganze bereitet mir große Probleme
Hab zwar Mathe als LK aber liegt wahrscheinlich daran dass ich ferien hab und andere dinge zur zeit mein Gehirn beanspruchen(Partys,Sex,Musik,Basketball)
KAnn niemand ein einfaches Beispiel geben oder sind alle Denkfaul(wie ich)???
Registriert: Mo Mai 06, 2002 20:27 Beiträge: 479 Wohnort: Bremen
Okay, es ist spät und ich bin nicht mehr ganz wach/nüchtern, aber ich bin mir trotzdem ziemlich sicher, dass sich mit deiner Problembeschreibung nicht viel anfangen lässt:
"Vertikalwinkel ist die Neigung, d.h. also zwischen der xy-Ebene und der
z-Achse." ---> Demnach wäre der Winkel immer 90° denn die z-Achse steht nunmal senkrecht auf der xy-Ebene. Immer!
Egal... im prinzip musst du den X-Vektor nehmen und um den Horizontalwinkel um die z-Achse drehen. Das machst du z.B. über Sin/Cos oder über eine geeignete Matrix. Dann kommt es drauf an zu welcher Achse der Vertikalvektor denn nun angegeben wird. Jedenfalls bildest du zwischen dem soeben transformierten X-Vektor (v) und eben dieser Achse ein Kreuzprodukt und rotierst dann v um denn Ergebnissvektor des Kreuzprodukts, so das er im richtigen Winkel steht. Jetzt sollte er in die richtige Richtung zeigen... und mit einer skalierung um den Betrag der Distanz hast du den Ortsvektor für deinen Punkt.
Registriert: Mo Mai 06, 2002 20:27 Beiträge: 479 Wohnort: Bremen
*klick* Ach, du meinst wohl Kugelkoordinaten? Nun, ich weiß zwar immer noch nicht zu welcher Achse der horizontale bzw Winkel bei dir angegeben ist, aber bei uns in der Schule war's so, dass der horizontale Winkel (alpha) zur X-Achse und der vertikale (beta) zur Z-Achse angegeben wurde. (in OpenGL ist das Koordinatensystem ander gedreht!) dann kannst du den Vektor bestimmen in dem du rechnest
v = Länge * sin beta * cos alpha * (1,0,0)
+ Länge * sin beta * sin alpha * (0,1,0)
+ Länge * cos beta * (0,0,1)
Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.