请问如何判断一点是否在某个已知区域内(在线等待急......)(50分)

  • 主题发起人 主题发起人 lwgygz
  • 开始时间 开始时间
L

lwgygz

Unregistered / Unconfirmed
GUEST, unregistred user!
已知区域为一个不规则封闭图形,用Polygon(P)得到,其中P的各点均知道。请问如何判断点
P1(x,y)已知是否在P所包含的区域内???
 
有一个函数可解决
原形为:function PtInRect; external user32 name 'PtInRect'
直接用就行了.
 
或者用另一个:function PtInRegion; external gdi32 name 'PtInRegion'
 
多谢两位,但是你们说的PtInRect函数只能对没有旋转的(即水平或垂直的矩形框)有用,如果
矩形旋转了一个角度的话,这个函数好象没有办法判断!而我现在要判断的是有一个角度的矩形。
 
用CreatePolygonrgn 建一个区域,再用PtInRegion判断就行了。
 
如何用createpolygonrgn建立一个区域呢?
 
to 97jr:
自己看API帮助吧!
 
可以看一下:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1277180
 
FPnts: array of TPoint;
FRgn: HRgn;

begin
FPnts[1] :=Point();
FPnts[2] :=Point();
FPnts[3] :=Point();
FPnts[4] :=Point();
FRgn := CreatePolygonRgn(FPnts, 4, ALTERNATE);

if PtInRegion(FRgn, X, Y) then
begin
end;
end;
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部