вот еще мой пост из серии изучаем ode

)
изучаем сочленение типа hinge (Сгибание)
теперь обясняю что такое точка сойденения (anchor) и что такой ось поворота (axis)
anchor ето точка сойденения обектов body 1 и body2
координаты точки задаются командой ODE_dJointSetHingeAnchor(joint,x#,y#,z#)
координаты задаются глобальные ! ето важно
тоесть мы получаем сообствено триугольник
----c
----/\
---/--\
--/----\
a/____\b
где a и b ето body 1 и body 2 соотвествено
и c ето anchor
длина отрезка ac и длина отрезка bc всегда const
может изменятся в очень маленьком диапазоне
если растояние сильно изменится - система или 'взорвется' или ode выдаст ошибку
растояние между ab может менятся от 0 до ac+bc
ось поворота тожет очень важный аргумент
она задается командой ODE_dJointSetHingeAxis (joint, x#, y#, z#)
значение x,y,z ето координаты вектора , начало вектора - точка anchor
ось что показана на рисунке можно задать вот так ODE_dJointSetHingeAxis (joint, 0, 1, 0)
теперь реализуем ето все в ode

)
test_space=ODE_dSimpleSpaceCreate(space)
space2%=space%
space%=0
g.TODEGeom = New TODEGeom
g\mesh=CreateCube()
MoveEntity g\mesh,0,5,-20
EntityColor g\mesh,0,255,0
g\body = ODE_dBodyCreate()
g\geom = ODE_create_object("cube",g\body,g\mesh,1,1,1,1)
tode1=Handle(g)
body1=g\body
ODE_dSpaceAdd(test_space,g\geom)
g.TODEGeom = New TODEGeom
g\mesh=CreateCube()
MoveEntity g\mesh,0,15,-20
EntityColor g\mesh,0,255,0
g\body = ODE_dBodyCreate()
g\geom = ODE_create_object("cube",g\body,g\mesh,1,1,1,1)
tode2=Handle(g)
body2=g\body
ODE_dSpaceAdd(test_space,g\geom)
joint2 = ODE_dJointCreateHinge()
ODE_dJointAttach joint2, body2, body1
ODE_dJointSetHingeAnchor(joint2, 0,10, -20)
ODE_dJointSetHingeAxis joint2, 1, 0, 0
space%=space2%
вот код обекта который я создал
сообствено обект ето два кубика ... один снизу и другой сверху
между ними (ровно посредине) находится точка сойденения (альфа - я так ее назвал)
