Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Определить тип четырехугольника

Ответить
Настройки темы
C/C++ - Определить тип четырехугольника

Аватара для Hector

Misanthrope


Сообщения: 474
Благодарности: 38


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: Hector
Дата: 24-09-2010
Описание: вместо трапеции написал призма, пришлось исправить)
Задача такая, вводятся координаты четырех точек (x;y) и нужно определить вид полученного четырехугольника (квадрат, прямоугольник, трапеция и т. д.). проблема в том, как это сделать т. е. математически определить тип этого четырехугольника (формула нужна)

-------
Information must be free!
Нет границ, есть только препятствия


Отправлено: 01:47, 24-09-2010

 

Старожил


Сообщения: 154
Благодарности: 11

Профиль | Отправить PM | Цитировать


Проверка на квадрат и прямоугольник делается через скалярное произведение векторов и сравнение их длин. А призма, если не ошибаюсь, - это трёхмерная фигура.

Отправлено: 02:13, 24-09-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Hector

Misanthrope


Сообщения: 474
Благодарности: 38

Профиль | Отправить PM | Цитировать


Цитата belk94:
А призма, если не ошибаюсь, - это трёхмерная фигура. »
да, это я ошибся, имелась ввиду трапеция

-------
Information must be free!
Нет границ, есть только препятствия


Отправлено: 02:14, 24-09-2010 | #3


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Просчитать длину каждой стороны. Если попарно совпали - прямоугольник. Все 4 одинаковы - квадрат. Ну и так далее

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 02:23, 24-09-2010 | #4


Аватара для Hector

Misanthrope


Сообщения: 474
Благодарности: 38

Профиль | Отправить PM | Цитировать


Цитата Delirium:
Ну и так далее »
А для трапеции?

-------
Information must be free!
Нет границ, есть только препятствия


Отправлено: 02:28, 24-09-2010 | #5


ИО Капитана Очевидности


Contributor


Сообщения: 5387
Благодарности: 1105

Профиль | Отправить PM | Цитировать


Длины сторон и диагоналей определяются по формуле Пифагора - квадратный корень из суммы квадратов разностей координат по осям ((Xa - Xb)2 + (Ya - Yb)2). Причём сам корень извлекать не обязательно - ведь числа будут только сравниваться между собой.

Квадрат: все стороны равны и диагонали равны.
Ромб: все стороны равны, диагонали не равны
Прямоугольник: стороны попарно равны, диагонали равны.
Параллелограмм: стороны попарно равны, диагонали не равны

Цитата Hector:
А для трапеции? »
Трапеция: две стороны (противоположные) равны, а третья больше четвёртой.

-------
Самое совершенное оружие, которым забиты арсеналы богатых и процветающих наций, может легко уничтожить необразованного, больного, бедного и голодного. Но оно не может уничтожить невежество, болезнь, нищету и голод. (Фидель Кастро)

Почему всех осужденных за измену Родине при Сталине реабилитировали при Горбачёве по отсутствию состава преступления? Потому что при Горбачёве измену Родине перестали считать преступлением.


Отправлено: 07:26, 24-09-2010 | #7


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Hector, ты с векторной математикой знаком?
Коллинеарность и перпендикулярность векторов говорит о чем либо?
Я бы предложил сравнивать скаляры длин векторов (их нормы) и далее смотреть, как они соотносятся со свойствами известных 4х угольников.
Кстати, попутно вопрос и замечание.
Необходимо отслеживать, откуда и куда идет вектор. Т.е. чтобы не получилась фигура "песочных часов". Ну и вообще отследить, что с чем сравнивается.
Воот еще такая заметка. Тебе надо будет определить Эпсилон минимального расхождения. Т.е. когда начнется непосредственно вычисления, очень малые дробные части будут неизбежно потеряны. И при малых расхождениях векторов фигура будет восприниматься как ромб допустим, не являясь таковым на самом деле.
Цитата El Scorpio:
Трапеция: две стороны (противоположные) равны, а третья больше четвёртой. »
2 Стороны параллельны друг другу. Их равенство не обязательно
Но там предъявляется требование к углам основания. Чтобы отличить от параллелепипеда или в общий 4х угольник.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:23, 24-09-2010 | #8


ИО Капитана Очевидности


Contributor


Сообщения: 5387
Благодарности: 1105

Профиль | Отправить PM | Цитировать


Цитата lxa85:
2 Стороны параллельны друг другу. Их равенство не обязательно »
да, перепутал с равнобедренной трапецией.

Цитата lxa85:
Но там предъявляется требование к углам основания. »
Углы у одной параллельных сторон должны быть не больше 90 градусов,*а у другой - не меньше.
Определить размер угла можно по косинусу. Точное значение угла вычислять не обязательно - достаточно определить знак косинуса разности углов линий, составляющих данный угол.
http://ru.wikipedia.org/wiki/%D0%A1%...BD.D0.B8.D1.8F

-------
Самое совершенное оружие, которым забиты арсеналы богатых и процветающих наций, может легко уничтожить необразованного, больного, бедного и голодного. Но оно не может уничтожить невежество, болезнь, нищету и голод. (Фидель Кастро)

Почему всех осужденных за измену Родине при Сталине реабилитировали при Горбачёве по отсутствию состава преступления? Потому что при Горбачёве измену Родине перестали считать преступлением.


Отправлено: 02:04, 27-09-2010 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Определить тип четырехугольника

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход