![]() |
|
Модераторы: bsa |
![]()
|
|
| Alexey91 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 18.9.2008 Репутация: нет Всего: нет |
Здравствуйте как можно вычислить значения углов многоугольника (произвольный, только несамопересекающийся), зная его стороны?
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Alexey91, никак. нужно знать еще и углы. потому что только треугольники однозначно определяются сторонами. Представь равносторонний шестиугольник. А теперь возьми за два противоположных угла и вытяни в прямую. Получилась вырожденная фигура. Площадь ее равна 0. Но фактически, твоему условию соответствует.
|
|||
|
||||
| Gluttton |
|
|||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: нет Всего: 54 |
Alexey91, никогда не сталкивался, но думаю, что как вариант можно находить каждый угол для некоторой точки рассматривая ее в совокупности с левым и правым соседом как треугольник.
-------------------- Слава Україні! |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 12 Всего: 72 |
Alexey91, Gluttton,
Как уже ответил bsa, это невозможно. Нужна дополнительная информация. например: 1. Знать углы - 1 для 4 угольника, 2 для 5 угольника etc. Последние 3 вычисляются. 2. Знать диагонали (N-3) штуки, как и углов. 3. В многоугольник можно вписать окружность 4. Вокруг многоугольник можно описать окружность - определить радиус окружности, дальше элементарно. 5. Многоугольник максимальной площади из возможных a) Предполагаются что углы A, B, C, ... b) Вычисляется формула площади S(A, B, C, ...) c) Вычисляются производные dS/dA, dS/dB, dS/dC, ... d) Решается система дифуров dS/dA = 0; dS/dB = 0, dS/dC = 0, ... Это сообщение отредактировал(а) math64 - 10.10.2011, 18:39 |
|||
|
||||
| rodnover |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 7.4.2009 Репутация: 2 Всего: 10 |
А его "стороны", случайно, координатами не задаются? ;)
|
|||
|
||||
| Alexey91 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 18.9.2008 Репутация: нет Всего: нет |
rodnover, пробую как стороны заданные координаты
Ну если стороны отпадают, то тогда же можно вычислить угол как арккосинус косинуса между векторами? То только тогда, что брать за вектор? Получается одна точка на плоскости задается двумя координатами (x,y) А вектор будет 4 параметра (Xi,Yi,Xi+1,Yi+1) Попробовал сделать вычисление в цикле для 3-х вершин с координатами (2,8) (6,8) (3,3)
Но проблема, что сумма углов треугольника < 180 градусов. Видимо где-то ошибка. Это сообщение отредактировал(а) Alexey91 - 13.10.2011, 09:37 |
|||
|
||||
| rodnover |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 7.4.2009 Репутация: 2 Всего: 10 |
Формулы у тебя странные.
http://ru.wikipedia.org/wiki/%D0%A1%D0%BA%...%BD%D0%B8%D0%B5 Еще на рисунок внимательно посмотри - как вектора расположены.
|
|||
|
||||
| math64 |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 12 Всего: 72 |
Можно упростить так:
Если используется Qt:
Это сообщение отредактировал(а) math64 - 13.10.2011, 13:38 |
||||
|
|||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |