我正在使用allegro来绘制线条。 在该线上的某个点处,选择一个角度,并从该点绘制一条新线,以获得原始长度的一小部分。 Allegro使用矢量系统来移动点,即我将有一个向量crtSpeed(0,-60),它将图像更新为Y上的60像素距离。我能够找出行做一些基本触发的终点。
所以基本上,我有两点,并且需要花费一定的时间在两点之间旅行。我不知道如何将该信息转换为适用的矢量。 举一个例子,我有点 开始(400,300)和结束(600,200)。让我们说这条线有十秒的时间 - 如何得到使该线发生所需的crtSpeed向量?
答案 0 :(得分:0)
你得到了:
你想:
首先你需要你的Δx和Δy(我用C-like伪代码写这个):
dx = end.x - start.x
dy = end.y - start.y
您希望在整个持续时间内覆盖此距离。也就是说,您希望以Δx/持续时间像素/秒移动。但你想要像素/帧,所以你除以帧率(1 /(帧/秒)=秒/帧,像素/秒*秒/帧=像素/帧)。
xSpeed = dx/duration/framerate
ySpeed = dy/duration/framerate