怎么判断点在线上???(10分)

  • 主题发起人 主题发起人 ikari_shinji
  • 开始时间 开始时间
I

ikari_shinji

Unregistered / Unconfirmed
GUEST, unregistred user!
高手说让我看帮助...英文不济...
 
方法应该不止一种,通过计算距离可能能判断。
线两点到点的距离之和为线的长度。
或是通过直线函数(高中课本里应该有)来做,输入点的一个坐标(x)到函数中,计算出点的另一个坐标(y),看是否相等
 
TGLine = packed record
case Integer of
0: (X1, Y1, X2, Y2: Longint);
1: (Pt1, Pt2: TPoint);
end;


class function TGPointUtils.PtInLine(APt: TPoint;
ALine: TGLine): Boolean;
begin

Result := (APt.Y - ALine.Pt1.Y) * (APt.X - ALine.Pt2.X) -
(APt.Y - ALine.Pt2.Y) * (APt.X - ALine.Pt1.X) = 0;
end;
 
...怪我没有说清楚,我的意思是在mapx给定的地图上给定一个曲线&一个点,如何判断点在曲线上?
 
后退
顶部