Так ну ладно спецы. Такой вопрос. Решение треугольника.

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Так ну ладно спецы. Такой вопрос. Решение треугольника.

Сообщение NOVA 21 апр 2018, 22:55

Решение треугольника по двум сторонам и углу не между ними в пространстве. Есть такие храбрецы? Интернет что-то молчит и плачет.
Теорема синусов выводит на арксинус числа большего единицы.
Теорема косинусов выводит на нелинейное уравнение.
Как быть то? Вот он перед глазами, а решить его не получается. Будем плакать вместе с интернетом или...
Суть задачи... Суть задачи вникнуть в суть задачи.
Есть треугольник со сторонами abc и противолежащими углами ABC соответственно.
Допустим нам известны две стороны a,b и один угол не между ними B. Как найти все стороны?
По теореме косинусов сторону не вывести. Так как получается нелинейное уравнение.
b^2 = a^2 + c^2 - 2*a*c*Cos(B);
2*a*c*Cos(B) - c^2 = - b^2 + a^2;
2*a*c*Cos(B) - c^2 = - b^2 + a^2;
Как видим c не выводится.
Пробовал найти углы по теореме синусов.
b/Sin(B)=a/Sin(A);
Sin(A)=a*Sin(B)/b;
A =ArcSin (a*Sin(B)/b);
Проблема в том, что число из которого мы получаем арксинус не должно быть больше единицы. А у меня свободный треугольник где длина сторон может быть какой угодно длины. Хоть 200.
Может кто знает какие формулы поудобнее? Гугл забросан элементарными уравнениями.
Аватара пользователя
NOVA
Адепт
 
Сообщения: 1741
Зарегистрирован: 17 май 2011, 11:45
Откуда: Дядя Саша from Mother Russia

Re: Так ну ладно спецы. Такой вопрос. Решение треугольника.

Сообщение Shekn 22 апр 2018, 08:59

Через арксинусы находи. У реального треугольника аргумент арксинуса не будет больше 1-цы, так как если a - большое, а b - маленькое, то и sin B - тоже маленькое. И там всё нормально получится. Это же треугольник, а не произвольные три числа.
https://tugcga.github.io/
Аватара пользователя
Shekn
UNIт
 
Сообщения: 95
Зарегистрирован: 05 фев 2016, 14:20

Re: Так ну ладно спецы. Такой вопрос. Решение треугольника.

Сообщение ikhtd 22 апр 2018, 20:45

ну тогда ладно, я не против. я ж не ученый, я просто прикидывался.
Скрытый текст:
Объективная реальность это - что в жизни не может быть более одного пути, который в свою очередь обусловлен максимальным существующим давлением. (второй _ttp://habrahabr.ru/post/202654/)
ikhtd
Адепт
 
Сообщения: 1124
Зарегистрирован: 24 мар 2014, 12:20

Re: Так ну ладно спецы. Такой вопрос. Решение треугольника.

Сообщение Paul Siberdt 23 апр 2018, 01:41

NOVA продолжает философствовать,игнорируя векторную алгебру. (popcorn)
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Так ну ладно спецы. Такой вопрос. Решение треугольника.

Сообщение kor1b 23 апр 2018, 14:33

Может я неправильно понял условие. Но если у тебя ∆ABC, где стороны a, b, c лежат напротив углов А, В, С СООТВЕТСТВЕННО, и у тебя даны стороны a, b, то угол между ними уже С. Значит по теореме косинусов все отлично выводится c^2=a^2+b^2-2*a*b*cos(C). Ну а дальше по теореме синусов
kor1b
UNITрон
 
Сообщения: 172
Зарегистрирован: 25 дек 2017, 20:32

Re: Так ну ладно спецы. Такой вопрос. Решение треугольника.

Сообщение NOVA 23 апр 2018, 19:10

Paul Siberdt писал(а):NOVA продолжает философствовать,игнорируя векторную алгебру. (popcorn)

Преобразования Хафа чтоли? Не пробовал. Но вижу адски тормозное решение.
Все остальные калибровочные песни из интернета не имеют ничего общего с Matrix4x4 в юнити. Гомография базиса посредством теорем синусов как-то пободрее работает в реалтайме. Но пока не совсем правильно. Не удаётся получить данные фокусного расстояния и размера базиса, чтобы все три вектора стали ортогональные. Вероятно сказывается растягивание x.y.
kor1b писал(а):Может я неправильно понял условие. Но если у тебя ∆ABC, где стороны a, b, c лежат напротив углов А, В, С СООТВЕТСТВЕННО, и у тебя даны стороны a, b, то угол между ними уже С. Значит по теореме косинусов все отлично выводится c^2=a^2+b^2-2*a*b*cos(C). Ну а дальше по теореме синусов

Не правильно Вы поняли. Переменную b оттуда не вытащить. А переменная "с" не нужна потому, что "Угол не между ними" в названии треда написал я.
Вот правильное уравнение. Умные люди подсказали.
c = a*cos(B) + Mathf.Sqrt(a^2*(cos^2((B) - 1) + b^2)). Работает как Калаш, если воткнуть модуль под корнем.
Аватара пользователя
NOVA
Адепт
 
Сообщения: 1741
Зарегистрирован: 17 май 2011, 11:45
Откуда: Дядя Саша from Mother Russia


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 22