Java 如何迭代直线上的点?

Java 如何迭代直线上的点?,java,Java,在Java2D中,有没有一种方法可以迭代一条直线上的所有点 我浏览了类文档,没有看到任何内置的内容。如果不是,是否最好扩展类并编写我自己的方法来计算直线方程,然后通过每个点?(这是否真的可以作为直线的理论方程,它实际绘制的像素似乎略有不同)对于匀速直线上移动的物体,其坐标是时间的仿射函数: x(t) = vx*t + x0 y(t) = vy*t + y0 其中,(vx,vy)是恒定速度(或速度)矢量,(x0,y0)是原点位置(时间0) 我建议你读一些基本的入门课程 所以你可能不想“在线上迭代

在Java2D中,有没有一种方法可以迭代一条直线上的所有点


我浏览了类文档,没有看到任何内置的内容。如果不是,是否最好扩展类并编写我自己的方法来计算直线方程,然后通过每个点?(这是否真的可以作为直线的理论方程,它实际绘制的像素似乎略有不同)

对于匀速直线上移动的物体,其坐标是时间的仿射函数:

x(t) = vx*t + x0
y(t) = vy*t + y0
其中,
(vx,vy)
是恒定速度(或速度)矢量,
(x0,y0)
是原点位置(时间0)

我建议你读一些基本的入门课程

所以你可能不想“在线上迭代”,只想在屏幕上移动一些东西,也就是每次计算它的位置


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

听起来你好像在试图沿着边界框的线条做一些事情。本质上,你应该在你的精灵周围有一个虚构的盒子。然后只需检查边界框何时与直线相交。当它这样做时,您将向相反方向移动精灵


您为什么要这样做?理论上,一条线有无数个点(屏幕上画的总是近似值)。你们如何处理这条线的缩放?我正试图让一个精灵沿着一条倾斜的斜坡移动,这是一条线。因此,当直线向上或向下移动时,精灵坐标跟随直线的坐标。我认为最好的方法是迭代每个点或几个点,然后将它们添加到sprite坐标中。也许这很傻,但我想不出更好的解决方案了。看看这个问题,似乎有一个迭代器。我从未使用过Java2D,但看起来这正是您想要的。