2016-03-04 40 views
0

假设我想要一个精灵在某个点附近循环。我可以使用drawOval方法围绕这个点画一个圆,但是如何获得这个椭圆的特定坐标,在这个坐标上可以绘制移动的精灵。如何获取绘制圆的坐标Java2D

+0

如何设置精灵的位置而不真正绘制圆,这是一个解决方案吗?你可以改变角度的价值,并根据那个更新位置? –

+0

@FlorisVelleman我不认为这是可能的任何其他方式,除非你想抓住屏幕,并执行一些边缘检测和形状识别:) – EvilTak

+0

@EvilTak你可以在一个空白的框架上画圆,并恢复所有的X,Y位置绘制。这也可以有效地得到OP的答案,尽管这似乎是一个非常奇怪的解决方案。 –

回答

1

要获得的椭圆的周长(或椭圆形),则可以使用下面的式(posXposY是椭圆形和widthheight的中心COORDS分别是椭圆形的宽度和高度的所有点):

x = posX + cos(angle) * width * 0.5 
y = posY + sin(angle) * height * 0.5 

其中角度从0到2 * PI弧度。

您可以在几秒钟内类似delta_time * speed其中delta_time是花了渲染的最后一帧的时间(或者更确切地说,自上一帧时间)和speed增加angle是速度(unit/second)为您想要的雪碧移动。