R ^ 2 bir rotasyon yapmak nasıl?

0 Cevap php

Ben matematik bir görünüşte basit bir sorun ile şaşırıp: i ie i (x / y) tarafından verilen bir noktası var, bir 2-boyutlu kartezyen koordinat sisteminde puan döndürmek gerekir ve bir açı gama ve i koordinatlarını almak gerekiyor Bu nokta gama dönersem ...

Örnek: x = 2 ve y = 0 ve dönme açısı 90 ° ise, sonuçta elde edilen noktası olacaktır x '= 0, y' = -2 (döndürülmüş saat yönünde)

bu yüzden net (http://en.wikipedia.org/wiki/Rotation_matrix) bu formülü buldu ve bunu test etmek için bazı kod uygulanmaktadır:

$x = 1; echo "x: " . $x . "<br>";
$y = 1; echo "y: " . $y . "<br>";
$gamma = 45; echo "gamma: " . $gamma . "<br>";

$sinGamma = sin(deg2rad($gamma));
$cosGamma = cos(deg2rad($gamma));

$x2 = $x*$cosGamma - $y*$sinGamma; echo "x2: " . $x2 . "<br>";
$y2 = $y*$cosGamma + $x*$sinGamma; echo "y2: " . $y2 . "<br>";

Bu 90/180/270 derecelik açılarla sadece BÜYÜK çalışırken, başka bir şey toplam bok neden olacaktır!

yani:

x = 1 ve y = 1 ve gama = 45 ° ise, elde edilen nokta x-ekseni üzerinde exactly koyacak ... iyi - komut yukarıdaki çıktı olur:

x: 1
y: 1
gamma: 45
x2: 1.11022302463E-16
y2: 1.41421356237

i sth yanlış anladın? (Okulun benim için uzun bir süre üzerinde ^ ^) nasıl ben bu hakkı alabilirim?

0 Cevap