CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Probleme de maths

countag
countag
Niveau 5
20 avril 2006 à 21:22:50

bonjour,

j ai un petit problème de maths pour comprendre les rotations 3D autour d un axe donc j ai fait un petit shema :

http://perso.wanadoo.fr/clshigesa/cercle2.jpg

mais je sais plus comment on calcul cet angle ><

countag
countag
Niveau 5
20 avril 2006 à 21:25:40

je me suis trompez sur le shema c est pas de longueur Z(toujours!) mais de longueur Xdistance

sangohan42
sangohan42
Niveau 9
20 avril 2006 à 21:32:10

cercle trigo? je sais pas ^^ dsl

countag
countag
Niveau 5
20 avril 2006 à 21:33:43

regarde ce que j ai representez puis ma question est je repete : comment on calcul l angle : ?

[R]Viper
[R]Viper
Niveau 10
20 avril 2006 à 21:56:29

Avec les coordonnées du point de caméra, on pourrait le trouver.

Egounet
Egounet
Niveau 6
20 avril 2006 à 21:58:05

ton schema est pas tres clair, explique un peu plus la situation

_Xaar
_Xaar
Niveau 10
20 avril 2006 à 21:59:00

Il faut que tu fasse une troisième droite pour obtenir un triangle rectangle, puis après tu calcule le cosinus (
http://tanopah.jo.free.fr/seconde/transfo3.html
) et tu fait un inverse cosinus sur une calculette pour obtenir l´angle.

countag
countag
Niveau 5
20 avril 2006 à 22:10:33

Viper : je cherche pas a calculer les points de suite mais une formule general comme : c = A/B

Egounet : j essaie juste de faire tourner une camera autour d un axe en gardant la meme distance

_Xaar : je vais regarder un peu

_Xaar
_Xaar
Niveau 10
20 avril 2006 à 22:14:15

J´ai fait quelques modifs pour être plus clair:
http://img44.imagevenue.com/img.php?loc=loc72&amp;image=63594_cercle3.jpg

Le cosinus de ton angle sera égal à la longueur de AB (AB c´est la position y de ton point pris au hasard) divisé par Z. Après un inverse cos et hop tu a l´angle.

Si je me suis trompé c´est normal, cà remonte à loin tout cà :)

countag
countag
Niveau 5
20 avril 2006 à 22:20:29

imaginons que Z=200, X = 0, et Y = 90 donc pour trouver l angle de la position de la camera je dois faire cos(90/200) ? pour une rotation sur autour de l axe Y biensur

Lapintade
Lapintade
Niveau 30
20 avril 2006 à 22:21:31

En effet, un "arccos" et t´as ton l´angle.
Faut ajuster le signe de l´angle suivant le signe de la projection sur l´autre axe (car un cosinus c´est pas bijectif, deux angles peuvent donner la meme projection, donc quand on fait l´operation inverse, faut choisir lequel des deux angles on garde)

Lapintade
Lapintade
Niveau 30
20 avril 2006 à 22:25:02

Cependant, on fait rarement ce genre d´operation en 3D. Je sais pas trop ce que tu essaie de faire, mais je pense qu´il y a plus simple. (une camera d´habitude c´est exprimé de deux facons : Soit la camera a une position et une orientation, Soit dtu definit l´orientation de la camera avec la position de la camera et le point que la camera regarde). Dans les deux cas, il n´y a pas d´arccos a utiliser.

countag
countag
Niveau 5
20 avril 2006 à 22:26:50

et bien je me met a l openGL et j essaie de gere la camera donc imagine un cube pour faire simple et une camera qui la fixe et bien moi je veux le faire tourner autour de ce cube

Egounet
Egounet
Niveau 6
20 avril 2006 à 23:03:35

ya une formule qui marche presque

x´ = x * Cos(angle) - y * Sin(angle)
y´ = x * Sin(angle) + y * Cos(angle)

je viens de tester (pas en GL dsl), la camera se rapproche de plus en plus du cube... :-/

Egounet
Egounet
Niveau 6
20 avril 2006 à 23:07:24

sachant que x et y sont les coordonnées actuelles de la camera, angle bah c´est l´angle de rotation que tu veux et x´ et y´ les nouvelles coordonnées où placer la camera

il faut que la camera soit bien placée au depart aussi, au final c´est pas génial lol

Fvirtman
Fvirtman
Niveau 10
21 avril 2006 à 00:46:18

Un moyen :
Tu calcules tes 2 vecteurs OY (OY doit etre normalisé, sinon, normalise le) et OP (P étant le point que tu as)
Tu normalises OP. (c´est inutile si ton point est sur le cercle de rayon 1)

Tu calcules le produit scalaire s = OP.OY.

Ton angle est arccos(s)

Tu as encore une ambiguité : l´arcos va te donner un angle absolu positif. Or, il doit etre négatif si P est "a droite" de l´axe Oy.
Pour savoir si il est a droite : tu calcules le produit scalaire OP.OX
Si ce produit scalaire est positif, alors tu es a droite, donc tu mets un "-" devant ton angle. Sinon tu restes positif.

Cela te donnera l´angle orienté par rapport a Oy, comme tu le voulais.

Ce raisonnement a l´avantage de marcher dans un cas quelconque.

Mais comme dit Lapintade : pas besoin de cela pour gérer la caméra ! :-)

countag
countag
Niveau 5
21 avril 2006 à 09:10:57

oue bon deja j ai jamais vu tous ca XD puis si il y a pas besoin de tous cela pour gere la camera comment on fait alors ?

Lapintade
Lapintade
Niveau 30
21 avril 2006 à 09:50:11

En opengl t´as peut etre une fonction "lookat", tu passe la position de la cam, la position qu´elle regarde et le vecteur up et ca calcul tout seul l´orientation de la camera. C´est ce qu´il y a de plus pratique.

countag
countag
Niveau 5
21 avril 2006 à 09:56:07

et bien c est ce que j utilise mais ca ne fait pas un tour complet car apres ca s eloigne :/ puis ca revient ...etc

gluLookAt(RotCamX, RotCamY, 200, 0, 0, 0, 0, 1, 0);

j utilise ceci moi

Lapintade
Lapintade
Niveau 30
21 avril 2006 à 11:28:59

La fonction look at prends en compre trois parametres.

Le dernier c´est le vecteur up, tu as choisi 0,1,0 ce qui est bien.

Ensuite tu as deux positions :

Position camera
Position de l´object que tu vises

Si ton object que tu vises est au centre de ton monde, utilise la position 0,0,0

Maintenant pour la position de ta camera, si tu veux la faire tourner autours de ton object, il faut qu´elle decrive un cercle. Si Y c´est le vecteur up, ta camera va tourner dans le plan X,Z

Donc utilise un angle qu´on appelle "angle" et une distance "dist".
angle=30 (degres)
distance=10 (distance entre la camera et ton object)

la position de ta camera c´est :

posx = distance * cos( angle * 3.14/180.0 ) (pour convertir en radians)
posz = distance * sin (angle * 3.14/180.0 )

Et au final ton look at aura comme parametre :

posx, 0 , posz
0 , 0 , 0
0 , 1 , 0

En changeant "angle" ta camera tournera autours de ton objet

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment