![]()
Doc
![]() offline
Опыт:
63,163Активность: |
polarz
Сабж, нужен аналог для рассчета по z.
Да я нуб, но никогда такое не юзал. |
![]() |
#1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
XOR
![]() offline
Опыт:
38,159Активность: |
|
![]() |
#2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Doc
![]() offline
Опыт:
63,163Активность: |
X, спасибо. Один вопрос: как рассчитать угол t? То есть мне нужно прибавить к текущему t угол, на который нужно повернуть. |
![]() |
#3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]() offline
Опыт: отключен
|
angle+t ? |
![]() |
#4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Doc
![]() offline
Опыт:
63,163Активность: |
ScorpioT1000, не, вот смотри во что я переделал
((код jass
polarx(c, dist, a, t) = c + dist * Cos(bj_DEGTORAD * a) * Sin(bj_DEGTORAD * t)
polary(c, dist, a, t) = c + dist * Sin(bj_DEGTORAD * a) * Sin(bj_DEGTORAD * t) polarz(c, dist, a, t) = c + dist * Cos(bj_DEGTORAD * t) anglecord(xA, yA, xB, yB) = (bj_RADTODEG * Atan2(yB - yA, xB - xA)) distcord(Xa, Ya, Za, Xb,Yb, Zb) = (SquareRoot((Xb - Xa) * (Xb - Xa) + (Yb - Ya) * (Yb - Ya) + (Zb - Za) * (Zb - Za))) void StaticRotate(float a, float t){ d = distcord(.p[i].x1, .p[i].y1, .p[i].z1, .x, .y, .z) an = anglecord(.x, .y, .p[i].x1, .p[i].y1) tn = anglecord(.z, .y, .p[i].z1, .p[i].y1) на шару ставил, как правильно? .p[i].x1 = polarx(.x, d, an + a, tn + 1) .p[i].y1 = polary(.y, d, an + a, tn + 1) .p[i].z1 = polarz(.z, d, an + a, tn + 1) } )) |
![]() |
#5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]() offline
Опыт: отключен
|
t это вертикальный угол, если он не важен равен пи, т.е. 1, т.е. 180 гр |
![]() |
#6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Doc
![]() offline
Опыт:
63,163Активность: |
ScorpioT1000, нет, он важен, простой поворот я итак сделал. Теперь надо с вертикальным -.- |
![]() |
#7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
agentex
![]() offline
Опыт:
34,834Активность: |
там кривые формулы для сферических, правильней так:
ну, вообще есть 3 варианта - сферические координаты, цилиндрические и векторно (если без углов). как ни странно для каждого конкретного случая нужен свой подход. |
![]() |
#8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]() offline
Опыт: отключен
|
поворот чего ? |
![]() |
#9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Doc
![]() offline
Опыт:
63,163Активность: |
|
![]() |
#10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]() offline
Опыт: отключен
|
где ты его взять хочешь? у камеры? будет десинк
ScorpioT1000 добавил: http://www.dropmocks.com/mPFFx |
![]() |
#11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Doc
![]() offline
Опыт:
63,163Активность: |
ScorpioT1000, нет, я хочу взять pitch угол между двумя точками же. |
![]() |
#12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]() offline
Опыт: отключен
|
вот на рисунке beta это твой a, а alpha это твой t что непонятного еще может быть?
ScorpioT1000 добавил: какая в жопу разница между какими точками, на рисунке тоже 2 точки, ну сделай векторами тогда |
![]() |
#13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Doc
![]() offline
Опыт:
63,163Активность: |
ScorpioT1000, блин, я уже нихрена не понимаю. Вот допустим конкретный пример: есть куб, описанный 8 точками. Как нам повернуть этот куб на 30 градусов по оси y(?) и одновременно повернуть на 30 по оси z? То есть тупо наклонить его. |
![]() |
#14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DioD
![]() ![]() offline
Опыт:
45,134Активность: |
если плохо с пространственным воображением, есть универсальный метод, берёшь спичечный коробок и смотришь как он ведёт себя в пространстве.
куб с жесткими гранями невозможно просто так повернуть, так как верхняя грань и нижняя пройдут различное расстояние, советую прочитать про дифференциал на автомобилях, поможет понять как происходят повороты. |
![]() |
#15
+3/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]() offline
Опыт: отключен
|
диод тупость сказал) |
![]() |
#16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
agentex
![]() offline
Опыт:
34,834Активность: |
к примеру так
|
![]() |
#17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]() offline
Опыт: отключен
|
z - vertical
spheric -> decart(x,y,z)
x = Cos(a)*Cos(b)*distance y = Sin(a)*Cos(b)*distance z = Sin(b)*distance decart -> spheric(distance,a,b) distance = sqrt(x*x + y*y + z*z) a = ATan2(y, x) b = ATan2(z, SquareRoot(x*x + y*y)) |
![]() |
#18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
agentex
![]() offline
Опыт:
34,834Активность: |
можно и так, раньше именно так и считал даже будет быстрее наверно изза отсутсвия +z*z |
![]() |
#19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]() offline
Опыт: отключен
|
я векторами вобще делаю ) вычитаем вектор 1 из вектора 2 получаем вектор направления |
![]() |
#20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|