Bonjour a tous,
j'ai réalisé une interface utilisateur qui permet de faire translater, zoomer, et pivoter un objet 3D.
Jusqu'à la tout fonctionne bien.
En revanche je rencontre un probléme lorsque je fait pivoter ma camera en vertical puis en horizontal, les axes changent:
Je m'explique!
en fait je désire que mon objet soit toujours a plat comme pour une carte en 3D.
Si je suis en vu de dessus pas de problème, la rotation que j'effectue sur mon bouton "rotation"
sprite(1).camera.rotate(0,0,-0.5)
Fonctionne bien, Mais lorsque je change l'axe vertical, la rotation fait pivoter l'objet sur l'axe Z se qui fait basculer l'objet.
Normal vous me direz.
Mais c'est là tout le problème. j'aimerais que lorsque j'incline la camera sur l'axe vertical et que ensuite je fasse un rotation horizontale la camera agisse comme une orbite.
Comme dans cette exemple
http://director.mediabox.fr/index.php?act=...ew_post&f=6
Merci pour ce forum riche en info
Mathieu
Nos formations à venir :
Rotation orbitale probléme
Débuté par mathbell, août 20 2009 08:41
#1
Posté 20 août 2009 - 08:41
#3
Posté 20 août 2009 - 10:09
Hello mathbell,
Je pense que pour un tel comportement de camera la solution la plus simple mathématiquement parlant est la suivante ;
- Redresser l'angle de la camera
- Avant la caméra au dessus du point visé
- Effectuer la rotation en Z
- Reculer la camera de la même distance qu'elle a été avancé
- Réappliquer l'angle de la camera
J'ai utilisé cette méthode pour un projet 3D et ça fonctionnait sans problème.
Je pense que pour un tel comportement de camera la solution la plus simple mathématiquement parlant est la suivante ;
- Redresser l'angle de la camera
- Avant la caméra au dessus du point visé
- Effectuer la rotation en Z
- Reculer la camera de la même distance qu'elle a été avancé
- Réappliquer l'angle de la camera
J'ai utilisé cette méthode pour un projet 3D et ça fonctionnait sans problème.
#4
Posté 20 août 2009 - 10:15
Re-salut
J'ai trouvé , en attendanr des news de votre part ce scipt:
model.rotate(vector(0,0,0), vector(0,0,1), 20, sprite(1).camera)
cela permet de faire décrire une rotation parallèle à la caméra autour du centre de l’écran à l’objet
donc avec mon bouton cela donnerai :
property pClick
on mouseenter(me)
-- curseur de souris entre sur le bouton
pClick = 0
end
on mousedown(me)
if(pClick) then return
sprite(1).rotate(vector(0,0,0), vector(0,0,1), 20, sprite(1).camera)
end
on mousewithin(me)
pClick = 1
sprite(1).rotate(vector(0,0,0), vector(0,0,1), 20, sprite(1).camera)
end
mais director me dis qu'il y a une erreur ?
Handler not fonud object
sprite(1).rotate(vector(0,0,0), vector(0,0,1), 20, sprite(1).camera)
#rotate
pouvez vous m'aider ?
Mathieu
J'ai trouvé , en attendanr des news de votre part ce scipt:
model.rotate(vector(0,0,0), vector(0,0,1), 20, sprite(1).camera)
cela permet de faire décrire une rotation parallèle à la caméra autour du centre de l’écran à l’objet
donc avec mon bouton cela donnerai :
property pClick
on mouseenter(me)
-- curseur de souris entre sur le bouton
pClick = 0
end
on mousedown(me)
if(pClick) then return
sprite(1).rotate(vector(0,0,0), vector(0,0,1), 20, sprite(1).camera)
end
on mousewithin(me)
pClick = 1
sprite(1).rotate(vector(0,0,0), vector(0,0,1), 20, sprite(1).camera)
end
mais director me dis qu'il y a une erreur ?
Handler not fonud object
sprite(1).rotate(vector(0,0,0), vector(0,0,1), 20, sprite(1).camera)
#rotate
pouvez vous m'aider ?
Mathieu
1 utilisateur(s) li(sen)t ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)









