假设我们有一个矩形或正方形,我们知道它的角落的x,y坐标(4个角)。
还假设我们在该广场内有一个点,我们知道它的坐标(x,y),它的速度(km / h),它的航向(航向是以方向度测量的,0是北方,180是南方等等)和它具有这些属性的时间点(以秒为单位的纪元时间)。
我们如何计算点将退出矩形的时间点(以秒为单位的纪元时间)以及出口的坐标(x,y)?
答案 0 :(得分:1)
您需要先找到相交的边缘。制作用于沿两个坐标移动的方程式并计算第一次交叉时间。
请注意,对于地理坐标,您可能需要更复杂的计算,因为Lat / Lon坐标定义的“矩形”在地球表面上确实是弯曲的梯形。在this page上查看“给定起点和方位的两条路径的交点”以获取旅行时间。
vx = V * Cos(heading + Pi/2) //for y-axis north=0
vy = V * Sin(heading + Pi/2)
x = x0 + vx * t
y = y0 + vy * t
//potential border positions
if vx > 0 then
ex = x2
else
ex = x1
if vy > 0 then
ey = y2
else
ey = y1
//check for horizontal/vertical directions
if vx = 0 then
return cx = x0, cy = ey, ct = (ey - y0) / vy
if vy = 0 then
return cx = ex, cy = y0, ct = (ex - x0) / vx
//in general case find times of intersections with horizontal and vertical edge line
tx = (ex - x0) / vx
ty = (ey - y0) / vy
//and get intersection for smaller parameter value
if tx <= ty then
return cx = ex, cy = y0 + tx * vy, ct = tx
else
return cx = x0 + ty * vx, cy = ey, ct = ty