旋转滞后2D

时间:2012-02-04 16:42:27

标签: php javascript bitmap rotation 2d

我有一个位图(web ,2048x1365)并在其上放一个点(

绝对大小为1px)。 当我旋转位图(在服务器上)时,我也想旋转点(使用Javascript)。

我知道旋转方程式:

$cs=cos($radian);
$sn=sin($radian);

$x2=($x*$cs)-($y*$sn);
$y2=($x*$sn)+($y*$cs);

但不知怎的,我有一个滞后......

我的代码(在PHP中):

$width=2048;
$height=1365;

$radian=$rot*M_PI/180;

$cs=cos($radian);
$sn=sin($radian);

$center_x=$width/2;
$center_y=$height/2;

$x-=$center_x;
$y-=$center_y;

$x2=($x*$cs)-($y*$sn);
$y2=($x*$sn)+($y*$cs);

$x=$x2+$center_x;
$y=$y2+$center_y;

$ rot = 6°,我必须转移(约)$ x2 + 30,$ y2 +85
$ rot = 21°,我必须换$ x2 + 40,$ 2 +380
$ rot = 90°,我必须转移$ x2 -340,$ y2 -340
$ rot = 180°,这很好 $ rot = 270°,我必须换$ x2 +340,$ y2 +340

我不明白这种滞后......

要提供帮助,here is an example。点是广场的中心。角度为10°时,我必须为3个点添加x + 180和y + 70。

非常感谢您的帮助

1 个答案:

答案 0 :(得分:0)

从评论中复制到问题:

图像尺寸在旋转时不会改变吗?

旋转后计算角落的位置,你应该得到旋转的图像尺寸

(然后您可以从中计算新的旋转中心。)