Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Попадает ли точка в замкнутый многоугольник


Страницы:   1 2 3 4

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]


> Нет ли для этого системной функции ?


Огорчу. Нет.


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо