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

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

Находится ли точка в полигоне 2D?


Moroz4 ©   (2008-04-22 15:16:00) 

как узнать находится ли точка в полигоне 2D?


DVM   (2008-04-22 15:42:00) [1]

function PtInPolygon(const Points: TPoints; P: TPoint): Boolean;
var
 Cnt, I, J: Integer;
begin
 Result := False;
 Cnt := Length(Points);
 J := Cnt - 1;
 for I := 0 to Cnt - 1 do
 begin
   if ((Points[I].y <= P.y) and (P.y < Points[J].y)) or
     ((Points[J].y <= P.y) and (P.y < Points[I].y)) then
   begin
     if (P.x < (Points[J].x - Points[I].x) * (P.y - Points[I].y) /
       (Points[J].y - Points[I].y) + Points[I].x) then
       Result := not Result;
   end;
   J := I;
 end;
end;


MBo   (2008-04-22 15:38:00) [2]

http://local.wasp.uwa.edu.au/~pbourke/geometry/insidepoly/
http://tog.acm.org/editors/erich/ptinpoly/
http://en.wikipedia.org/wiki/Point_in_polygon


DVM   (2008-04-22 15:27:00) [3]

PtInRegion + CreatePolygonRgn


Наверх

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