IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Calcul scientifique Python Discussion :

Trigonométrie besoin d'explication


Sujet :

Calcul scientifique Python

  1. #1
    Invité
    Invité(e)
    Par défaut Trigonométrie besoin d'explication
    Bonjour!
    Je viens vers vous car j'ai déniché un script de trigonométrie et j'aimerais le comprendre...
    Voila le contexte, il s'agit d'un script qui permet de créer des objets au bon endroit dans un jeu, sachant que l'objet créé apparait 10 mètres devant soi.
    Je n'ai pas eu trop de problème en trigonométrie pour des objets qui je plaçais en 2D mais en 3D c'est une autre histoire...
    Nom : mini_876297trigo.jpg
Affichages : 369
Taille : 4,4 Ko
    Dans tous les cas je connais l'emplacement de l'objet que je souhaite positionner.
    Exemple:
    pos = (145.0, 5.2, -45.8) #(x,y,z) (x étant l’abscisse, y l'ordonnée ou la hauteur dans le jeu, z la profondeur)
    rot = (45.0, 45.0, 0.0) #(a,b,c) (a étant la rotation "cardinale", b l'inclinaison, c toujours égale à 0)
    Le but du script est de mettre le joueur au bon endroit et avec la bonne inclinaison pour que l'objet apparaissent au bon endroit avec la bonne rotation, sachant qu'il faut qu'il soit placé à 10m de lui...

    Dans le script qui suit j'aimerais comprendre c'est deux règles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	nZ = math.cos(math.radians(rot[0]))*math.cos(math.radians(rot[1]))*r
    	nX = nZ / math.tan(math.radians(90.0 - rot[0]))
    Voila, voila si quelqu'un pouvait m'aider je lui en serait reconnaissant, sinon je l'utiliserais bêtement...
    Cdt!
    LeNa

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    import host
    import bf2
    import math
     
    # Spawn objects with correct position / rotation
    # Objects are always spawned 10m away from the active player
    # Freeze-18
    def coordSpawn(obj, pos, rot):
    	r = 10
    	nY = math.sin(math.radians(rot[1]))*r
    	nZ = math.cos(math.radians(rot[0]))*math.cos(math.radians(rot[1]))*r
    	nX = nZ / math.tan(math.radians(90.0 - rot[0]))
    	nPos = (pos[0]-nX,pos[1]+nY,pos[2]-nZ)
    	vs = []
    	op = []
    	for x in bf2.playerManager.getPlayers():
    		v = x.getVehicle()
    		vs.append(v)
    		op.append(v.getPosition())
    		v.setPosition(nPos)
    		v.setRotation(rot)
    	host.rcon_invoke("ObjectTemplate.active " + obj)
    	host.rcon_invoke("ObjectTemplate.setNetworkableInfo BasicInfo")
    	host.rcon_invoke("gameLogic.createObject " + obj)
    	i = 0
    	for o in vs:
    		o.setPosition(op[i])
    		i = i + 1
     
    coordSpawn("bp1_statue_angel", (-425.0, 25.8, 90.0), (0.01, 0.0, 0.0))

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    C'est pas si compliqué de lancer la console Python et y taper:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >>> import math
    >>> help(math.cos)
    Help on built-in function cos in module math:
     
    cos(...)
        cos(x)
     
        Return the cosine of x (measured in radians).
     
    >>>
    pour le reste, c'est de la trigonométrie (pas du Python) et vous avez plein d'explications sur le sujet accessibles avec un peu de recherche sur Internet.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Invité
    Invité(e)
    Par défaut
    Salut,

    Je connaissais la fonction math.cos, je voulais juste avoir un peu d'aide pour comprendre la formule plus qu'autre chose en faite, je ne suis peut être pas au bon endroit.

    Enfin de compte une personne de mon entourage m'a donné des pistes pour comprendre et en effet c'est pas très compliqué, je n'arrivais pas à me représenter les bons triangles à angle droit...
    Nom : trigo2.jpg
Affichages : 335
Taille : 70,0 Ko
    Exemple : Rotation : 15.0/35.0/0.0
    côté adj = cos 35 * 10
    nZ = cos 15 * côté adj = cos 15 * cos 35 * 10
    nX = nZ / tan 15

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. besoin d'explication sur le c++
    Par poporiding dans le forum MFC
    Réponses: 13
    Dernier message: 17/12/2005, 18h01
  2. Besoin d'explications sur un bout de code
    Par zizitop dans le forum C
    Réponses: 7
    Dernier message: 26/04/2005, 14h51
  3. [C#] J'aurais besoin d'explication
    Par Roach- dans le forum Windows Forms
    Réponses: 18
    Dernier message: 10/03/2005, 16h00
  4. Besoin d'explications sur float et l'élasticité !
    Par KneXtasY dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 14/01/2005, 15h15
  5. [Foreign Key] Besoin d'explication.
    Par Andry dans le forum Débuter
    Réponses: 4
    Dernier message: 28/05/2003, 11h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo