2D - Angle, Nxz, Distance
Низнаю, наверное уже были такие функции, просто я не нашёл их, и решил изобрести сам.
Для изобретения этих функций, хватает 9 классов образования (основное). 1. Расстояние: Описание: Функция возвращает расстояние между двух точек. Здесь я ничего не изобретал, а только основывался теореме Пифагора (Применима только для прямоугольного треугольника) (g1*g1)+(g2*g2)=(b*b), где: g1 и g2 - катеты, а b - гипотенуза. Сперва мне нужно узнать длину двух катетов, и затем по формуле вычислить длину Гипотенузы. Код:
Function Distance2D#(x1#,y1#,x2#,y2#) y1 - Y Координата Источника. x2 - X Координата Цели. y2 - Y Координата Цели. 2. Угол: Описание: Функция возвращает угол от точек источника, к точкам цели. Здесь пришлось пробовать различные математические функции, и реализация данной функции можно делать двумя способами: с помощью ATan (АТангенс) + ещё написать небольшие условия; с помощью ATan2, что есть тот же АТангенс, только имеет возможность вычислять всё сам, из двух координат. После тестов, ATan2 выдал лучший результат производительности. Код:
Function NVtoA#(sx#,sy#,tx#,ty#) sy - Y Координата Источника. tx - X Координата Цели. ty - Y Координата Цели. 3. Угол в Координаты: Описание: Функции вычисляют координаты: x и y, относительно угла. Здесь ничего сложного придумывать не пришлось, правда 90 градусов от угла отнять нужно, а почему - я не вникал. Код:
Function AtoNX#(angle#) Вот пример для БлицМакса, с использованием данных функций. Автор: МоКа |
Re: 2D - Angle, Nxz, Distance
cos(a - 90) = -sin(a)
sin(a - 90) = cos(a) Уточни, пожалуйста: какие координаты относительно какого угла? |
Re: 2D - Angle, Nxz, Distance
Не совсем понял вопроса, но насчёт:
Цитата:
AtoNX - Узнаём координату X из угла. AtoNY - Узнаём координату Y из угла. Угол будет вычислятся по стандарту из двух линий: вертикальная вверх, от точки угла, и указанная координата. К примеру если угол 45 градусов, то AtoNX(угла)=0.707... ; AtoNY(угла)=-0.707... |
Re: 2D - Angle, Nxz, Distance
Ну это, имхо, просто вычисление синуса и косинуса угла. Функция оторвана от контекста.
Я так понял, это переход от сферических координат в прямоугольные. Тогда имеет смысл добавить значение "ро" в список входных параметров, чтобы не приходилось на него умножать в самом коде. |
Re: 2D - Angle, Nxz, Distance
Ух, не считайте меня столь образованным, я конечно понял написанное, но подобно сообщение могу и не понять ;).
Это имхо, но дело уже каждого, кто будет использовать эти функции, и если ему нужно то он будет их изменять как ему угодно. Цитата:
alcoSHoLiK - вижу что вы образованный человек. А я вот необразованный, не имею никаких оброзований, кроме минимального, поэтому для меня подобное может даётся и просто, но по началу время потребляет - что есть усилия, и результат. :) |
Re: 2D - Angle, Nxz, Distance
Цитата:
Цитата:
Код:
Return 180 - ATan2((tx-sx),(ty-sy)) |
Re: 2D - Angle, Nxz, Distance
Сделал все поправки в первом посте, которые заметил Cyan. :)
|
Re: 2D - Angle, Nxz, Distance
А мои поправки?)
|
Re: 2D - Angle, Nxz, Distance
Всё сделал, извеняюсь, просто что-топоспешил как-то :)
|
Часовой пояс GMT +4, время: 20:20. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot