Вниз
Скачать: CL | DM;

Point In Poligon   Найти похожие ветки 

← →
NikB   (2003-09-09 01:02) [0]

Zdravstvuite!

Segodnia mne muchit problema opredelenie pronadlejit li odno point (x,y) poligonu ((x0,y0),(x1,y1),..,(x3,y3)).

Prochital to cto nashel, no ne ponial pochemu ne vsegda poluchaetsa. (Navernoie points poligona nado sortirowat ili chert znaet)

Budu ochen blagodaren, esli pokajete kak bistro opredelit prinadlejnost.

Zdes vnizu napishu dva metoda, kotorie ne vsegda rabotaiut:


Function PointInPolygon(Const P:TPoint; Const Poly:Array of TPoint):Boolean;
{ slow... Var Region:HRGN;
begin
Region:=CreatePolygonRgn(Poly,1+High(Poly),0);
result:=(Region>0) and PtInRegion(Region,p.x,p.y);
DeleteObject(Region);
end;
}
Var i,j : Integer;
begin
result:=False;
j:=High(Poly);
for i:=0 to High(Poly) do
begin
if (((( Poly[i].Y <= P.Y ) and ( P.Y < Poly[j].Y ) ) or
(( Poly[j].Y <= P.Y ) and ( P.Y < Poly[i].Y ) )) and
( P.X < ( Poly[j].X - Poly[i].X ) * ( P.Y - Poly[i].Y )
/ ( Poly[j].Y - Poly[i].Y ) + Poly[i].X )) then begin
result:=not result;
end;
j:=i; { +1? }
end;
end;


← →
NikB   (2003-09-09 17:37) [1]

Okonchiwaem diskusiu :)
Okazalos, chto problema ne v PointInPolygon (perfectno rabotaet) sobitie OnMouseEnter tSurfaceSerie in TeeChart rabotaet vsegda kak 2D (i v 3D mode).
Spasibo vsem, kto hotel ili dumal chto hochet otvetit mne!



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.015 c
14-25597
_mandrake_
2003-12-17 14:12
2004.01.09
Может кто знает, возможно ли с компа (через инет) позвонить на


6-25491
how
2003-10-12 14:51
2004.01.09
IMAP component


1-25338
Кен
2003-12-08 06:30
2004.01.09
Как можно БЫСТРО найти в массиве одинаковые числа ?


14-25542
Style
2003-12-18 18:57
2004.01.09
Бета-чай :))) Я плакалъ


3-25245
yuray76
2003-12-10 12:04
2004.01.09
Gbak на удаленной машине




   Наверх