![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Попадает ли точка в замкнутый многоугольник
kudatsky © (2010-04-22 11:54:00)На экране находится не выпуклый многоугольник, заданный координатами X1,Y1,X2,Y2,X3,Y3 и т.д. Задана точка X,Y. Как определить, находится ли точка внутри фигуры ? Нет ли для этого системной функции ?
Leonid Troyanovsky (2010-04-22 12:27:00) [61]
> Дмитрий Белькевич (22.04.10 12:14) [2]
> Системной - не видел.
PtInRegion ?
--
Regards, LVT.
kudatsky (2010-04-22 12:26:00) [62]Дмитрий, спасибо !
Сейчас буду разбираться !
Дмитрий Белькевич (2010-04-22 12:14:00) [63]
function IsPointInPolygon(X, Y: integer; TepmPolyLine: TDAPoint): boolean;
var
i, n: integer;
begin
i := 0;
n := Length(TepmPolyLine) - 1;
Result := False;
repeat
if not ((y > TepmPolyLine[i].Y) xor (y <= TepmPolyLine[i + 1].Y)) then
if x - TepmPolyLine[i].X < (y - TepmPolyLine[i].Y) * (TepmPolyLine[i + 1].X - TepmPolyLine[i].X) /
(TepmPolyLine[i + 1].Y - TepmPolyLine[i].Y) then
Result := not Result;
i := i + 1;
until i >= n;
end;
TDAPoint = array of TPoint;
Системной - не видел.
oldman (2010-04-22 12:11:00) [64]
> Нет ли для этого системной функции ?
Огорчу. Нет.