2013-11-04 39 views
0

我有一个小小的游戏,我用javascript和Raphael.js(我很新),我基本上只是一个圆形的圆形,一个矩形旋转。这工作得很好,很棒! 代码变换是:Raphael.js在变换后得到矩形的坐标

this.self = this.self.animate({ transform : this.transform }, 250); 

不过,我需要找到后,我制作动画的矩形COORDS,但getBBox()不断得到同样的COORDS。有没有人有什么建议?一个视觉图片的变换将是: enter image description here

所以我需要转换后的炮塔坐标。我需要找到炮塔前方,所以我知道子弹需要从哪里出来!任何建议将被认真考虑!

回答

1

enter image description here

通过使用旋转数,将帮助你找到坐标。可以说旋转角度是q = 45度。

这意味着,通过一个罪(Q)y改变和变化x通过 - 一个余弦(Q)。

编辑

注重于所有情况。在这种情况下,两个坐标都减少了,但如果你转向东南方向,那么y增加,并且x减少。或者如果西北部:yx减少。

+0

所以公式是y = a * sin(a)和x = aa(cos(a))? – samuraiseoul

+0

差不多:对于这种情况,y = y - a * sin(45),x是正确的 – Brian

+0

啊y - = a * sin(a)? – samuraiseoul

0

变换只是一种视觉效果,它不会影响坐标。 你知道炮塔的宽度,你知道旋转角度。 使用sin & cos来计算新的坐标。数学公式((i * Math.PI)/ 180)* R + x; Y = Math.sin((i * Math.PI)/ 180)* R + y;

我 - 角 的R - 炮塔 x和y的宽度 - 炮塔偏移

+0

我知道三角形我拥有所有的一面。两边是圆的半径,另一边是矩形的宽度。但我不擅长数学,我不知道如何获得新的坐标。 ( – samuraiseoul