gpt4 book ai didi

java - java中以给定速度将物体以直线从点(x1,y1)移动到点(x2,y2)的方法

转载 作者:行者123 更新时间:2023-12-03 00:54:25 25 4
gpt4 key购买 nike

我必须编写一种方法,以给定的速度将对象(例如圆)从一个坐标直线移动到另一个坐标。物体必须到达目标点并停止。速度与物体到达该点所需的时间相关(例如,速度 = 15 相当于时间 = 15 毫秒)。如果有人能在这里帮助我数学,我将感激不尽。

最佳答案

从p0点匀速移动到p1点的插补公式为:

p(t) = p0*(1-t) + p1*t

其中 t 是从开始时的 0 到结束时的 1 变化的时间,以及 pp0p1 是 (x,y) 坐标对。由于 Java 没有内置的方法来编写插值公式,因此您只需将其并行应用于 x 和 y 分量即可。结果是:

t = (time_now - start_time) / total_time;
x = x0*(1-t) + x1*t;
y = y0*(1-t) * y1*t;

这就是核心计算。要使对象移动,请按照下列步骤操作:

  1. [给定:start_time、total_time、x0、y0、x1、y1]
  2. 将圆放在 (x0, y0) 处并设置 time_now = start_time
  3. 直到 time_now == start_time + total_time,使用上述计算 (x, y),将圆圈移动到 (x, y),并增加 time_now。

时间增量可以是由 System.getTimeMillis() 确定的常规挂钟时间。

关于java - java中以给定速度将物体以直线从点(x1,y1)移动到点(x2,y2)的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4962608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com