Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
2 / 2 / 5
Регистрация: 01.10.2013
Сообщений: 203

Находится ли точка с заданными координатами на одной из сторон многоугольника.

01.10.2013, 22:23. Показов 1500. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Многоугольник задан координатами своих вершин. Определить, находится ли точка с заданными координатами на одной из сторон многоугольника.

Помогите пожалуйста. Вот что я наработал

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
uses crt;
var
  N, ix, iy, x, y: integer;
  ax:array [1..100] of integer;
  ay:array [1..100] of integer;
  
begin
  write('Введите количество сторонон многоугольника ');
  readln(N);
  write('Введите координаты (x) вершин многоугольника: ');
  for ix:= 1 to N do
    read(ax[ix]);
  write('Введите координаты (y) вершин многоугольника: ');
  for iy:= 1 to N do  
    read(ay[iy]);
  write('Введите координаты точки ');
  readln(x,y);
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.10.2013, 22:23
Ответы с готовыми решениями:

Находится ли точка с заданными координатами на одной из сторон многоугольника.
Знающие люди помогите пожалуйста с задачей. Вот задание: Многоугольник задан координатами своих вершин. Определить, находится ли...

Определить четверть, в которой находится точка с заданными координатами
Здравствуйте помогите мне с задачами срочно я вас прошу!!! Переменные k присвоят номер четверти на координатной плоскости , в которой...

Находится ли точка с произвольно заданными координатами в заштрихованной области
Составить программу, позволяющую определить, находится ли точка с произвольно заданными координатами в заштрихованной области. Если точка...

6
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
02.10.2013, 11:58
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
uses crt;
const t=0.001;
function IsLine(x1,y1,x2,y2,x,y:real):boolean;
var p:real;
begin
if x1=x2 then {если сторона вертикально}
 begin
  if (x=x1) and(((y<=y1)and(y>=y2))or((y>=y1)and(y<=y2))) then IsLine:=true
  else IsLine:=false;
 end
else
 begin
  p:=(x-x2)/(x1-x2);
  if (abs(p*y1+(1-p)*y2-y)<t)and((p>=0)and(p<=1))then IsLine:=true
  else IsLine:=false
 end;
end;
 
var N, i, x, y, i1: integer;
    ax:array [1..100] of integer;
    ay:array [1..100] of integer;
    f:boolean;
begin
write('Введите количество сторонон многоугольника ');
readln(N);
write('Введите координаты вершин многоугольника в порядке обхода: ');
for i:=1 to N do
 begin
  writeln('Вершина ',i);
  write('x='); readln(ax[i]);
  write('y='); readln(ay[i]);
 end;
ax[n+1]:=ax[1]; {замкнем}
ay[n+1]:=ay[1];
writeln('Введите координаты точки ');
readln(x,y);
f:=false;
i:=1;
while(i<=n)and not f do
if IsLine(ax[i],ay[i],ax[i+1],ay[i+1],x,y) then
 begin
  f:=true;
  i1:=i
 end
else i:=i+1;
if f then
 begin
  if i1=n then write('Точка лежит на стороне 1-',n)
  else write('Точка лежит на стороне ',i1,'-',i1+1)
 end
else write('Точка не лежит на стороне');
readln
end.
2
2 / 2 / 5
Регистрация: 01.10.2013
Сообщений: 203
03.10.2013, 00:02  [ТС]
Спасибо)

Добавлено через 29 минут
Pascal
1
2
3
4
5
begin
  p:=(x-x2)/(x1-x2);
  if (abs(p*y1+(1-p)*y2-y)<t)and((p>=0)and(p<=1))then IsLine:=true
  else IsLine:=false
 end;
Не могли бы вы разъяснить эту часть кода?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
03.10.2013, 07:13
Честно говоря в геометрии тоже не очень. Попробуйте разобраться сами, почитав например это
http://algolist.manual.ru/math... /otr2d.php
и другие ссылки по запросу Принадлежность точки отрезку

Добавлено через 5 минут
Здесь кратко изложена суть
http://gospodaretsva.com/urok-... rezku.html
0
0 / 0 / 0
Регистрация: 07.10.2013
Сообщений: 3
07.10.2013, 20:48
В строчке "if (abs(p*y1+(1-p)*y2-y)<t)and((p>=0)and(p<=1))then IsLine:=true" присутствует переменная t, которой раньше не появлялось. Что это за переменная и что такое IsLine?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
08.10.2013, 07:24
Цитата Сообщение от Happymilk Посмотреть сообщение
Что это за переменная и что такое IsLine?
Код вообще-то смотрели?
Это функция определения принадлежности точки отрезку, написана в строках 3-17
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function IsLine(x1,y1,x2,y2,x,y:real):boolean;
var p:real;
begin
if x1=x2 then {если сторона вертикально}
 begin
  if (x=x1) and(((y<=y1)and(y>=y2))or((y>=y1)and(y<=y2))) then IsLine:=true
  else IsLine:=false;
 end
else
 begin
  p:=(x-x2)/(x1-x2);
  if (abs(p*y1+(1-p)*y2-y)<t)and((p>=0)and(p<=1))then IsLine:=true
  else IsLine:=false
 end;
end;
Добавлено через 1 минуту
Цитата Сообщение от Happymilk Посмотреть сообщение
присутствует переменная t, которой раньше не появлялось.
То же самое, глазки свои протрите...
строка 2
Pascal
1
const t=0.001;
это точность сравнения вычисленных вещественных чисел.
0
0 / 0 / 0
Регистрация: 07.10.2013
Сообщений: 3
09.10.2013, 21:16
Прошу прощения. Сонный был.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.10.2013, 21:16
Помогаю со студенческими работами здесь

Определить область, в которой находится точка с заданными координатами
Помагите построить программу на паскале 1)Дано а,b если а-(b^2)&gt;2 вычеслить Z=(a+b)/4+Ln(a) если z&gt;3.5 , вычеслить t=...

Определить номер области N в которой находится точка М(х,у) с заданными координатами

Определить номер области, в которой находится точка с заданными координатами
Определить номер N области, в которой находиться точка M(x,y) с заданными координатами. Границы области относить к области с наибольшим...

Определить номер N области, в которой находится точка М(х,у) с заданными координатами
Определить номер N области, в которой находится точка М(х,у) с заданными координатами. Границы области относить к области с наибольшим...

Определить номер области, в которой находится точка с заданными координатами №2
С этим можете помочь? Задание такое же как вверху


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru