Here is a function that will return a new point [Rotate around non-origin pivot point]
(x,y) is current point
(cx,cy) is pivot point to rotate
=a= is angle in degrees
$_rotation = 1; # -1 = counter, 1 = clockwise
$_precision = 2; # two decimal places
function returnRotatedPoint($x,$y,$cx,$cy,$a)
{
# http://mathforum.org/library/drmath/view/63184.html
global $_rotation; # -1 = counter, 1 = clockwise
global $_precision; # two decimal places
// radius using distance formula
$r = sqrt(pow(($x-$cx),2)+pow(($y-$cy),2));
// initial angle in relation to center
$iA = $_rotation * rad2deg(atan2(($y-$cy),($x-$cx)));
$nx = number_format($r * cos(deg2rad($_rotation * $a + $iA)),$_precision);
$ny = number_format($r * sin(deg2rad($_rotation * $a + $iA)),$_precision);
return array("x"=>$cx+$nx,"y"=>$cy+$ny);
}
atan2
(PHP 4, PHP 5)
atan2 — 2 変数のアークタンジェント
説明
float atan2
( float $y
, float $x
)
この関数は、2 つの変数 x および y のアークタンジェントを計算します。 y / x のアークタンジェントを計算するのに似ていますが、 2 つの引数の符号を用いて結果の象限を定義することが異なっています。
この関数は、結果を -PI から PI の間(両端を含む)のラジアンで返します。
パラメータ
- y
-
被除数。
- x
-
除数。
返り値
y /x のアークタンジェントをラジアンで返します。
atan2
Monte Shaffer
09-Jun-2007 03:35
09-Jun-2007 03:35
reubs at idsdatanet dot com
24-May-2003 05:01
24-May-2003 05:01
Just a note:
PHP's atan2 function receives parameters in (y,x) and Excel receives it in (x,y) format. Just in case you are porting formulas across. :)