Beschreibung | ||
Diese Funktion berechnet den Winkel aus X- und Y-Längen. Es ist somit die erweiterte Tangensfunktion. Beachte, dass diese Funktion etwas anders als ATAN funktioniert, und keine Arcustangens-Funktion ist.
| ||
Parameter | ||
Y = vertikaler Abstand (Gegenkathete) X = horizontaler Abstand (Ankathete) | ||
Rückgabewert | ||
Es wird ein Winkel in Grad zurückgeliefert. Es sind alle Winkel im Berech von 0 bis 360° möglich (bzw. -180° bis 180°). Die Grafik zeigt den Zusammenhang zwischen Winkel und Tangenswert.
| ||
Beispiel | ||
Dieses Beispiel zeigt zwei bewegende Kreise. Der erste und schnellere Kreis läuft quer über dem ganzen Bildschirm. Der zweite ist langsamer und versucht ständig den ersten über möglicht direkten Weg zu erreichen. GRAPHICS 640,480,16,1 SETBUFFER BACKBUFFER() SEEDRND MILLISECS() DIM x(1),y(1),w(1),s(1) x(0)=RAND(0,639) y(0)=RAND(0,639) w(0)=RAND(0,359) s(0)=3 x(1)=RAND(0,639) y(1)=RAND(0,639) s(1)=2 WHILE KEYHIT(1)=0 COLOR 0,0,0 RECT 0,0,640,480 COLOR 255,255,255 w(0)=w(0)+RAND(-10,10) minx=x(0)-x(1) miny=y(0)-y(1) minx2=-(x(1)-640-x(0)) miny2=-(y(1)-480-y(0)) minx3=x(0)-640-x(1) miny3=y(0)-480-y(1) IF ABS(minx2)<ABS(minx) THEN minx=minx2 IF ABS(miny2)<ABS(miny) THEN miny=miny2 IF ABS(minx3)<ABS(minx) THEN minx=minx3 IF ABS(miny3)<ABS(miny) THEN miny=miny3 w(1)=ATAN2(miny,minx) FOR i=0 TO 1 x(i)=x(i)+COS(w(i))*s(i) y(i)=y(i)+SIN(w(i))*s(i) IF x(i)<0 THEN x(i)=640+x(i) IF x(i)>639 THEN x(i)=x(i)-640 IF y(i)<0 THEN y(i)=480+y(i) IF y(i)>479 THEN y(i)=y(i)-480 OVAL x(i)-5,y(i)-5,10,10,1 NEXT FLIP WEND WAITKEY() END | ||
Siehe auch | ||
ACOS, ASIN, ATAN, COS, SIN, TAN |