我已经查了好几个星期了。我没有物理学的背景,希腊语使解释变得非常混乱。
我主要在MySQL中制作游戏,主要是为了应对挑战。这个概念是一个闲置的RPG,有点像在线EVE,但它是完全自动化的...
因此,地图位于3d中,其中x,y,z代表每个尺寸。我有公式可以找到MySQL中两点之间的距离:
(POW((X-@x),2)+POW((Y-@y),2)+POW((Z-@z),2))
如果您将距离除以速度,我们可以获得到达的时间。问题是,如何找出物体在飞行中的位置?
找到两点之间的距离:
create table stars (id int auto_increment primary key, x decimal(65,8),y decimal(65,8), z decimal(65,8));
insert into stars (x,y,z) VALUES ("0","0","0"),("1000.00","3000.00","2500.00");
set @id = 1,
@x = (select x from stars where id =@id),
@y = (select y from stars where id =@id),
@z = (select z from stars where id =@id);
SELECT (POW((X-@x),2)+POW((Y-@y),2)+POW((Z-@z),2)) as distance
FROM stars where id = 2;
travel_time将是距离/速度。在不考虑加速度或重力的情况下,如何确定物体在飞行中途的位置?
我相信这是公式:
!(https://i.gyazo.com/9f097dc9f13e644a72ec84d8abcd9033.png)!
答案 0 :(得分:0)
$$ \ Big(\ frac {(1-t)x_1 + tx_2} {2},\ frac {(1-t)y_1 + 2y_2} {2},\ frac {(1-t)z_1 + tz_2} {2} \大) $$
答案 1 :(得分:0)
创建表Test(id整数,x十进制(65,8),y十进制(65,8),z十进制(65,8));
插入Test(id,x,y,z)值(1,0,0,0),(2,1000,2000,3000);
set @id = 1;
设置@x =(从Test中选择x,其中id = @ id);
set @ y =(从Test中选择y,其中id = @ id);
设置@z =(从Test中选择z,其中id = @ id);
set @distance =(选择sqrt((POW((X- @ x),2)+ POW((Y- @ y),2)+ POW((Z- @ z),2))作为距离测试的距离,其中id = 2);
设置@travel_time =(选择@ distance / 100);
设置@t =(选择1 / @ travel_time);
选择(1- @ t) @x + @t x,(1- @ t) @y + @t y,(1- @ t)测试中的 @z + @t z