Hallo Gibt es eine möglichkeit auzurechnen in welchen winkel punkt a zu punkt b steht ?
z.B. punkt a ist nen feil das man den so macht das er immer auf punkt b zeigt
keine ahnung wie ich es nenen soll aber kennt ihr villeicht nen weg ?
Danke =)
Hallo Gibt es eine möglichkeit auzurechnen in welchen winkel punkt a zu punkt b steht ?
z.B. punkt a ist nen feil das man den so macht das er immer auf punkt b zeigt
keine ahnung wie ich es nenen soll aber kennt ihr villeicht nen weg ?
Danke =)
stichwort "vektoren"
musst aber ein bisschen was in mathe draufhaben
Hallo
Wäre gut wenn Du etwas genauer wärst oder eine Skizze machen würdest. Schau dir aber mal die Winkelfunktionen Sinus,Cosinus und Tangens an (Kann dir den Link nicht geben,bin am Handy). Sonst melde dich einfach
dUDALUS
Edit
Auch eine gute Idee. Mit den 2 Vektoren den 3ten ausrechnen und dann den Cosinussatz anwenden um den Winkel zu berechnen
sowas in der art gibs ja schon sprichtwor "SetPlayerCameraLookAt" und "SetPlayerCameraPos" dan schau punkt a immer auf pubkt b und davon will ich halt den winkel wissen =D
ja nihr wist schon was ich meine umgekertes "GetXYInFrontOfpoint" der findet halt nciht den punkt sondern den winkel =D
Hallo
Ok, rechne die Unterschiede der beiden Koordinaten aus und benutze dann den Cosinussatz...ich kanns dir morgen schreiben wenn Du dich gedulden kannst.
x1-x2 gleich x
y1-y2 gleich y
z1-z2 gleich 2
X hoch 2 Plus y hoch 2 gleich diagonale im Quadrat.Dann den Sinussatz verwenden
Ich schreibs dir morgen.
dUDALUS
hab schon bei wikipedia geguckt aber ich blick da nicht durch xD
und das ist nur 2D 3D wäre dan noch im einiges schwerer oder ? xD
Float:GetAngleBetweenPoints(Float:X1,Float:Y1,Float:X2,Float:Y2)
{
new Float:angle=atan2(X2-X1,Y2-Y1);
if(angle>360)angle-=360;
if(angle<0)angle+=360;
return angle;
}
so einfach ? xD ich teste es mal danke schön =)
Edit1:
ah schon fast richtig
glaube da hat sich aber was vertagen den er dreht sich genau im gegen sat zu mir in die anderen richtung also ich lauf nach rechts und das ding dreht sich nach rechts
Edit2:
Float:GetAngleBetweenPoints(Float:X1,Float:Y1,Float:X2,Float:Y2)
{
new Float:angle=atan2(Y2-Y1,X2-X1);
angle = angle-90;
if(angle>360)angle-=360;
if(angle<0)angle+=360;
return angle;
}
so funtz es =) danke noch mal