![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 19.06.2008
Сообщений: 5
|
![]()
Привет, всем. Кто знает, как проверить является ли четырёх угольник выпуклым, если даны координаты всёх вершин
Последний раз редактировалось SARA; 19.06.2008 в 19:40. |
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
из wikipedia:
Цитата:
|
|
![]() |
![]() |
![]() |
#4 |
Регистрация: 19.06.2008
Сообщений: 5
|
![]()
и как это определить а паскале
|
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 26.10.2007
Сообщений: 1,244
|
![]()
В определение которое привели написанно как определить выпуклый ли он или нет.
Четырёхугольник один из видов многоугольника.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым, Попытка глубже понимать уже попахивает литром... |
![]() |
![]() |
![]() |
#6 |
Регистрация: 19.06.2008
Сообщений: 5
|
![]()
Так а как в паскале это определить?
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 20.06.2008
Сообщений: 95
|
![]()
Предоставляю мой вариант решения. Я исходил из следующих соображений: внутренний угол, образованный любыми двумя соседними гранями не должен быть больше 180 градусов. Отсюда алгоритм:
1) Ввод координат вершин, причем последовательно против часовой стрелки. 2) Проверяем угол между первой гранью и второй (также против часовой стрелки): - находим угол a1 между первой гранью и осью Ox; - находим угол a2 между второй гранью и осью Ox; - если условие (a2-a1<0)and(a2-a1>-PI)or(a2-a1>PI) выполнится, то значит многоугольник вогнутый. 3) Аналогично п.2 проверяем углы между 2-й и 3-й, 3-й и 4-й и т.д. гранями.
Не забывайте оставлять отзывы (кнопочка в левом нижнем углу сообщения)
![]() |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 20.06.2008
Сообщений: 95
|
![]()
Исходник на паскале:
Код:
Не забывайте оставлять отзывы (кнопочка в левом нижнем углу сообщения)
![]() |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 20.06.2008
Сообщений: 95
|
![]()
Написано криво (спешил), но вроде работает
![]()
Не забывайте оставлять отзывы (кнопочка в левом нижнем углу сообщения)
![]() |
![]() |
![]() |
![]() |
#10 |
Регистрация: 19.06.2008
Сообщений: 5
|
![]()
Спасибо, помог!
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проверить тип переменной | satana | Общие вопросы Delphi | 10 | 20.11.2010 21:43 |
Как проверить строку? | nikleb | PHP | 6 | 07.07.2008 22:04 |
выпуклый стиль ToolButton | andrey4623 | Общие вопросы Delphi | 2 | 04.03.2008 19:19 |
Как проверить существование потока? | John_chek | Общие вопросы Delphi | 3 | 17.01.2008 15:16 |