• Определить принадлежность точки заданному выпуклому многоугольнику. На паскаль абс, питон или с++

Ответы 6

  • В Интернете на поисковике посмотрите фразу "Проверка принадлежности точки многоугольнику. Метод трассировки лучом"
    • Автор:

      abdón
    • 6 лет назад
    • 0
  • Там будут алгоритмы, рисунки и пояснения.
    • Автор:

      kaiden
    • 6 лет назад
    • 0
  • а какой из методов описан?Учёт числа пересечений или Учёт числа оборотов
    • Автор:

      lady31
    • 6 лет назад
    • 0
  • Чет/нечет пересечений. Вы же видите: c:=not c; - инверсия при очередном пересечении.
  • А вот счетчика оборотов нет. И в конце if c then Writeln('Внутри')else Writeln('Не внутри')
    • Автор:

      helena
    • 6 лет назад
    • 0
  • PascalABC.NET 3.4.0, сборка 1671 от 31.05.2018Внимание! Если программа не работает, обновите версию!begin  var n:=ReadInteger('Число сторон многоугольника:');  var xp:=new real[n];  var yp:=new real[n];  Writeln('Введите парами координаты вершин');  for var i:=0 to n-1 do Read(xp[i],yp[i]);  var (x,y):=ReadReal2('Введите координаты точки:');  var (i,j,c):=(0,n-1,False);  while i<n do begin    if ((yp[i]<=y) and (y<yp[j]) or (yp[j]<=y) and (y<yp [i]))      and (x<(xp[j]-xp[i])*(y-yp[i])/(yp[j]-yp[i])+xp[i]) then c:=not c;    j:=i;    i+=1;    end;  if c then Writeln('Внутри')  else Writeln('Не внутри')end.ПримерыЧисло сторон многоугольника: 5Введите парами координаты вершин-5 2 2 6 7 3.1 4.3 -5 -6 -6Введите координаты точки: 2.1 1.7ВнутриЧисло сторон многоугольника: 5Введите парами координаты вершин-5 2 2 6 7 3.1 4.3 -5 -6 -6Введите координаты точки: -2 5Не внутри
    • Автор:

      clare
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years