|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Определить тип четырехугольника |
|
C/C++ - Определить тип четырехугольника
|
Misanthrope Сообщения: 474 |
Профиль | Отправить PM | Цитировать
Задача такая, вводятся координаты четырех точек (x;y) и нужно определить вид полученного четырехугольника (квадрат, прямоугольник, трапеция и т. д.). проблема в том, как это сделать т. е. математически определить тип этого четырехугольника (формула нужна)
|
|
------- Отправлено: 01:47, 24-09-2010 |
Старожил Сообщения: 154
|
Профиль | Отправить PM | Цитировать Проверка на квадрат и прямоугольник делается через скалярное произведение векторов и сравнение их длин. А призма, если не ошибаюсь, - это трёхмерная фигура.
|
Отправлено: 02:13, 24-09-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Misanthrope Сообщения: 474
|
Профиль | Отправить PM | Цитировать Цитата belk94:
|
|
------- Отправлено: 02:14, 24-09-2010 | #3 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать Просчитать длину каждой стороны. Если попарно совпали - прямоугольник. Все 4 одинаковы - квадрат. Ну и так далее
|
------- Отправлено: 02:23, 24-09-2010 | #4 |
Misanthrope Сообщения: 474
|
Профиль | Отправить PM | Цитировать Цитата Delirium:
|
||
------- Отправлено: 02:28, 24-09-2010 | #5 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 02:43, 24-09-2010 | #6 |
ИО Капитана Очевидности Сообщения: 5387
|
Профиль | Отправить PM | Цитировать Длины сторон и диагоналей определяются по формуле Пифагора - квадратный корень из суммы квадратов разностей координат по осям ((Xa - Xb)2 + (Ya - Yb)2). Причём сам корень извлекать не обязательно - ведь числа будут только сравниваться между собой.
Квадрат: все стороны равны и диагонали равны. Ромб: все стороны равны, диагонали не равны Прямоугольник: стороны попарно равны, диагонали равны. Параллелограмм: стороны попарно равны, диагонали не равны Цитата Hector:
|
|
------- Отправлено: 07:26, 24-09-2010 | #7 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать Hector, ты с векторной математикой знаком?
Коллинеарность и перпендикулярность векторов говорит о чем либо? Я бы предложил сравнивать скаляры длин векторов (их нормы) и далее смотреть, как они соотносятся со свойствами известных 4х угольников. Кстати, попутно вопрос и замечание. Необходимо отслеживать, откуда и куда идет вектор. Т.е. чтобы не получилась фигура "песочных часов". Ну и вообще отследить, что с чем сравнивается. Воот еще такая заметка. Тебе надо будет определить Эпсилон минимального расхождения. Т.е. когда начнется непосредственно вычисления, очень малые дробные части будут неизбежно потеряны. И при малых расхождениях векторов фигура будет восприниматься как ромб допустим, не являясь таковым на самом деле. Цитата El Scorpio:
Но там предъявляется требование к углам основания. Чтобы отличить от параллелепипеда или в общий 4х угольник. |
|
------- Отправлено: 09:23, 24-09-2010 | #8 |
ИО Капитана Очевидности Сообщения: 5387
|
Профиль | Отправить PM | Цитировать Цитата lxa85:
Цитата lxa85:
Определить размер угла можно по косинусу. Точное значение угла вычислять не обязательно - достаточно определить знак косинуса разности углов линий, составляющих данный угол. http://ru.wikipedia.org/wiki/%D0%A1%...BD.D0.B8.D1.8F |
||
------- Отправлено: 02:04, 27-09-2010 | #9 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Java - Тип RECORD | ManHack | Программирование и базы данных | 9 | 01-10-2009 21:55 | |
Как определить MIME тип расширения | firedevil | Хочу все знать | 1 | 17-05-2009 13:26 | |
[решено] как определить какой у мя процессор и тип памяти? | Triz | Хочу все знать | 1 | 07-03-2008 21:55 | |
MS-SQLServer 7.0 КАК Определить тип сортировки? | Iskatell | Программирование и базы данных | 3 | 05-12-2003 22:15 | |
тип сервера? | modem | Хочу все знать | 1 | 02-03-2003 05:49 |
|