Страница 1 из 1

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

СообщениеДобавлено: 21 апр 2018, 22:55
NOVA
Решение треугольника по двум сторонам и углу не между ними в пространстве. Есть такие храбрецы? Интернет что-то молчит и плачет.
Теорема синусов выводит на арксинус числа большего единицы.
Теорема косинусов выводит на нелинейное уравнение.
Как быть то? Вот он перед глазами, а решить его не получается. Будем плакать вместе с интернетом или...
Суть задачи... Суть задачи вникнуть в суть задачи.
Есть треугольник со сторонами 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.
Может кто знает какие формулы поудобнее? Гугл забросан элементарными уравнениями.

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

СообщениеДобавлено: 22 апр 2018, 08:59
Shekn
Через арксинусы находи. У реального треугольника аргумент арксинуса не будет больше 1-цы, так как если a - большое, а b - маленькое, то и sin B - тоже маленькое. И там всё нормально получится. Это же треугольник, а не произвольные три числа.

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

СообщениеДобавлено: 22 апр 2018, 20:45
ikhtd
ну тогда ладно, я не против. я ж не ученый, я просто прикидывался.

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

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

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

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

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

СообщениеДобавлено: 23 апр 2018, 19:10
NOVA
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)). Работает как Калаш, если воткнуть модуль под корнем.