我有两个点和一个时间,我如何找出向量

I have two points and a time, how do i find out the vector?

本文关键字:时间 向量 一个 何找出 两个      更新时间:2023-10-16

我正在使用快板来..画线。在线上的某个点上,选择一个角度,并从该点绘制一条新线,以获得原始长度的一小部分。Allegro 使用矢量系统来移动点,即我将有一个矢量 crtSpeed(0, -60),它将图像更新 Y 上 60 像素的距离。我能够通过一些基本的三角形找出线的终点。

所以基本上,我有两个点,在两点之间旅行应该需要一定的时间。我不知道如何将这些信息转化为适用的载体。举个例子,我有要点开始(400, 300) 和结束 (600, 200)。假设它有十秒钟来绘制这条线 - 如何推导出使这条线发生所需的 crtSpeed 向量?

你会得到:

  • 起点和终点坐标(x 和 y,像素单位)
  • 速率(帧/秒单位)
  • 持续时间(以秒为单位)

你想要:

  • 速度矢量(像素/帧单位)

首先,您需要∆x和∆y(我用类似C的伪代码编写):

dx = end.x - start.x
dy = end.y - start.y

您希望在持续时间内覆盖此距离。 也就是说,您希望以 ∆x/持续时间像素/秒的速度移动。 但是你想要像素/帧,所以你除以帧速率(1/(帧/秒)=秒/帧,像素/秒*秒/帧=像素/帧)。

xSpeed = dx/duration/framerate
ySpeed = dy/duration/framerate