Показать сообщение отдельно
Старый 26.09.2012, 18:33   #8
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Движение точки в системе координат

Попробуй в этом направлении копать:
Как перевести вектор из одного базиса в другой?

а вообще на блитце я вот так поворачивал и все работало:
Function VectorRoller(selectedmesh,alfa#,beta#,gama#)

surf=GetSurface(selectedmesh,1)
qverts=CountVertices (surf)

For i=0 To qverts-1

;for simulation rotateentity
;x0#=saveddata#(i,0)
;y0#=saveddata#(i,1)
;z0#=saveddata#(i,2)

;for simulation turnentity
x0#=VertexX(surf,i)
y0#=VertexY(surf,i)
z0#=VertexZ(surf,i)

;alfa vocrug z
x1#=x0#*Cos(alfa)+y0#*Sin(alfa)
y1#=-x0#*Sin(alfa)+y0#*Cos(alfa)
z1#=z0#

;beta vokrug x

x2#=x1#
y2#=y1*Cos(beta)+z1*Sin(beta)
z2#=-y1*Sin(beta)+z1*Cos(beta)

;gama wokrug y
x3#=x2*Cos(-gama)+z2*Sin(-gama)
y3#=y2
z3#=-x2*Sin(-gama)+z2*Cos(-gama)

VertexCoords surf,i,x3,y3,z3

Next
UpdateNormals selectedmesh;it makes this function in two times slower
End Function
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Izunad (26.09.2012)