Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
ВнизЗадача на паскале... Найти похожие ветки
← →
$tranger © (2004-05-09 20:21) [0]Господа, помогите, плиз, решить задачу на паскале: "Задан призвольный многоугольник массивом координат своих вершин (x1,y1)...(xN,yN) в порядке их обхода, и точка (х,у). Определить, находится ли точка в многоугольнике"
← →
pasha_golub © (2004-05-09 20:25) [1]Требуется уточнение: многоугольик выкулый?
Если да, то рассматриваем знак тричлена для каждой из пар точек.
← →
Palladin © (2004-05-09 20:28) [2]от точки строится линия до окаймляющего прямоугольника и считается количество пересечений с ребрами многоугольника, персечение с углом многоугольника считается за единицу. четное количество - не входит, не четное - входит... для любого многоугольника.
← →
cdadmitriy © (2004-05-09 20:29) [3]http://alglib.manual.ru/geometry/ispip.php
← →
cdadmitriy © (2004-05-09 20:30) [4]FROM :
http://alglib.manual.ru/geometry/ispip.php
(************************************************
Этот модуль сгенерирован транслятором AlgoPascal.
************************************************)
uses Math, Ap;
function IsPointInPolygon(x : Double;
y : Double;
N : Integer;
const XPO : TReal1DArray;
const YPO : TReal1DArray):Boolean;forward;
function IsPointInPolygon(x : Double;
y : Double;
N : Integer;
const XPO : TReal1DArray;
const YPO : TReal1DArray):Boolean;
var
I : Integer;
XPI : TReal1DArray;
YPI : TReal1DArray;
label __Finalizing;
begin
//Initializers
XPI := TReal1DArray.Create;
YPI := TReal1DArray.Create;
//Body
XPI.SetBounds(0, N);
YPI.SetBounds(0, N);
for I:=1 to N do
begin
XPI[I] := XPO[I];
YPI[I] := YPO[I];
end;
XPI[0] := XPI[N];
YPI[0] := YPI[N];
i := 0;
Result := False;
repeat
if not ((y>YPI[i]) xor (y<=YPI[i+1])) then
begin
if x-XPI[i]<(y-YPI[i])*(XPI[i+1]-XPI[i])/(YPI[i+1]-YPI[i]) then
begin
Result := not Result;
end;
end;
i := i+1;
until not (i<=n-1);
//Finalizers
__Finalizing:
XPI.Destroy;
YPI.Destroy;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c