如何在直线上迭代点?

时间:2012-08-02 17:36:58

标签: java

有没有办法迭代java 2D中一行上的所有点?

我查看了类文档并且看不到它内置的任何内容。如果没有,扩展类并编写我自己的方法来计算行的等式然后通过它会更好吗每一点? (这实际上是否可以作为一条线的理论方程,它实际绘制的像素似乎略有不同)

2 个答案:

答案 0 :(得分:2)

对于在恒定速度的线上移动的东西,其坐标是时间的仿射函数:

x(t) = vx*t + x0
y(t) = vy*t + y0

其中(vx,vy)是恒定速度(或速度)向量,(x0,y0)是原点位置(在时间0)。

我建议您阅读kinematics

的一些基本入门课程

所以你可能不希望"迭代线#34;但只是在屏幕上移动一些东西,即在每个时间点计算它的位置。

(我在法国高中时学过这样的方程式)

答案 1 :(得分:1)

听起来你正试图沿着边界框做一些事情。基本上,你应该在你的精灵周围有一个假想的盒子。然后检查边界框何时与该线相交。当它发生时,你会以相反的方向移动你的精灵。

This question on Game Development Stack Exchange should help.