Doc
offline
Опыт:
63,163Активность: |
polarz
Сабж, нужен аналог для рассчета по z.
Да я нуб, но никогда такое не юзал. |
06.01.2011, 23:25 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
XOR
offline
Опыт:
38,284Активность: |
|
06.01.2011, 23:53 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
X, спасибо. Один вопрос: как рассчитать угол t? То есть мне нужно прибавить к текущему t угол, на который нужно повернуть. |
07.01.2011, 00:07 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
angle+t ? |
07.01.2011, 00:12 | #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) } )) |
07.01.2011, 00:15 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
t это вертикальный угол, если он не важен равен пи, т.е. 1, т.е. 180 гр |
07.01.2011, 00:19 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
ScorpioT1000, нет, он важен, простой поворот я итак сделал. Теперь надо с вертикальным -.- |
07.01.2011, 00:24 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,534Активность: |
там кривые формулы для сферических, правильней так:
ну, вообще есть 3 варианта - сферические координаты, цилиндрические и векторно (если без углов). как ни странно для каждого конкретного случая нужен свой подход. |
07.01.2011, 03:34 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
поворот чего ? |
07.01.2011, 06:56 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
|
07.01.2011, 11:29 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
где ты его взять хочешь? у камеры? будет десинк
ScorpioT1000 добавил: http://www.dropmocks.com/mPFFx |
07.01.2011, 12:55 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
ScorpioT1000, нет, я хочу взять pitch угол между двумя точками же. |
07.01.2011, 12:55 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
вот на рисунке beta это твой a, а alpha это твой t что непонятного еще может быть?
ScorpioT1000 добавил: какая в жопу разница между какими точками, на рисунке тоже 2 точки, ну сделай векторами тогда |
07.01.2011, 13:00 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
ScorpioT1000, блин, я уже нихрена не понимаю. Вот допустим конкретный пример: есть куб, описанный 8 точками. Как нам повернуть этот куб на 30 градусов по оси y(?) и одновременно повернуть на 30 по оси z? То есть тупо наклонить его. |
07.01.2011, 13:05 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
если плохо с пространственным воображением, есть универсальный метод, берёшь спичечный коробок и смотришь как он ведёт себя в пространстве.
куб с жесткими гранями невозможно просто так повернуть, так как верхняя грань и нижняя пройдут различное расстояние, советую прочитать про дифференциал на автомобилях, поможет понять как происходят повороты. |
07.01.2011, 13:12 | #15
+3/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
диод тупость сказал) |
07.01.2011, 13:17 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,534Активность: |
к примеру так
|
07.01.2011, 13:23 | #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)) |
07.01.2011, 13:25 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,534Активность: |
можно и так, раньше именно так и считал даже будет быстрее наверно изза отсутсвия +z*z |
07.01.2011, 13:27 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
я векторами вобще делаю ) вычитаем вектор 1 из вектора 2 получаем вектор направления |
07.01.2011, 13:31 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|