по прежнему может быть
Я не знаю, что было прежде.
Дабы не утруждать Вас поиском, что, несомненно, очень тяжело, приведу цитату из первого сообщения темы:
"Основное наблюдение, которое мы должны сделать - это заметить факт, что величина векторного произведения двух 3-мерных векторов равна площади параллелограмма, построенного на них.
Однако эта площадь также равна произведению основания на высоту параллелограмма"
Там ещё и картинка с формулкой есть. Могу и её процитировать.
-- Пт апр 16, 2010 23:48:56 --Попробую объяснить ещё раз и проще.
Изначально задача была определить кратчайшее расстояние, на котором ЛА пролетел от точки, т.к. координаты обновляются раз в секунду, а это порядка 30м пролёта. Задачу я решил, спасибо ссылочке
http://algolist.manual.ru/maths/geom/di ... ntline.php , причём как и хотел - без тригонометрии, одними умножениями и сложениями.
Теперь задача немного иная (но, спасибо модератору, под название темы ещё и не то подходит).
Надо определить угол на точку и расстояние до неё. Смотрим на рисунок:
d - текущая координата, а - предыдущая координата. с - точка, куда надо попасть. Угол cde - искомый угол доворота.
Т.к. точки d, a, c заданы трёхмерными координатами (значение которых я могу перевести в систему Си), то длину вектора dc найти не проблема. Но чтобы получить угол cde нужно либо проекцией вычислить координату точки e и длину de, либо получить длину ce, равную (как я предполагаю) высоте параллелограмма abcd. Которую можно получить по формуле
. Ну а дальше арксинус или арккосинус отношения сторон прямоугольного треугольника dce.
От сюда два вопроса:
1) будет ли ce равен высоте h параллелограмма?
2) Есть ли другой способ получения угла cde, без тригонометрических функций? Ибо с точки зрения ассемблера, лучше я сделаю сотню сложений и сдвигов, чем вычислю один арккосинус (кроме, разьве что, табличного метода, что не точно и громоздко в памяти).
Надеюсь, задачу обрисовал понятно.