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

Algorithmes et structures de données Discussion :

calcul d'un point sur la base d'un cone


Sujet :

Algorithmes et structures de données

  1. #1
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3 338
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 338
    Points : 4 657
    Points
    4 657
    Par défaut calcul d'un point sur la base d'un cone
    Bonjour,

    Voila mon problème

    J'ai un cone de longueur L et de rayon R
    je fourni un angle A (0° à 359°)

    La pointe du cone a la position (0,0,0)

    Je voudrais calculer la position dans l'espace d'un point se trouvant sur la périphérie de la base de mon cone avec l'angle donné A.

    Je vais appeller Z,X,Y les variables pour la position (pour chaques axes)

    Ma résolution :
    si je regarde la base de mon cone (Axe Y en haut et Z à droite)
    Je vois qu'un point qui se balade sur mon cercle (périphérie du cone) correspond précisement a des règles de trigos simples.


    J'en déduit que :
    Z = cos(A) * R
    Y = sin(A) * R

    si maintenant le regarde mon cone de profil (Axe Y en haut, X à droite)
    mon point se déplace sur une droite parallele à X.

    J'en déduit :
    A n'a pas d'indidence sur X

    donc X = L

    maintenant j'ai mes trois coordonnées neccessaire à la representation dans l'espace.

    Ce que souhaiterai c'est savoir comme la représenter sur un plan 2D (de profil).


    merci d'avance.

  2. #2
    Membre confirmé
    Avatar de grishka
    Inscrit en
    Janvier 2003
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 285
    Points : 499
    Points
    499
    Par défaut
    quel est le plan de projection et la nature de la projection (orthogonale ou perspective), stp?
    "Les gens normaux croient que si ca marche, c'est qu'il n'y a rien à reparer. Les ingénieurs croient que si ca marche, c'est que ca ne fait pas encore assez de choses."
    --Scott Adams

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3 338
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 338
    Points : 4 657
    Points
    4 657
    Par défaut
    excuse moi d'etre un

    Mes cours de maths s'arretent en terminal et cela fait déjà 6 ans ;-)

    Peux-tu etre plus explicite ?

  4. #4
    Membre confirmé
    Avatar de grishka
    Inscrit en
    Janvier 2003
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 285
    Points : 499
    Points
    499
    Par défaut
    Pour représenter à l'écran des points de l'espace (x,y,z), il faut leur appliquer une projection sur un plan.Deux principaux types de projection :

    projection orthogonale : les points de l'objet sont projetés parallèlement à la normale du plan. Les objets apparaissent tous de la même taille quelque soit leur distance à l'observateur.
    projection perspective : les points sont projetés sur le plan selon une droite passant par l'observateur.


    le plan de projection fait partie des six plans du volume de vision (une pyramide dans le cas d'une projection perspective, une boite pour une projection ortho)


    On utilise une matrice de projection et on travaille en coordonnées 4D homogènes afin de normaliser les points dans un volume unitaire (en gros ca simplifie les calculs de clipping et de z-buffering)

    un point (x,y,z) de l'espace (ton point donc) à pour coordonnée homogène (x,y,z,1) par ex et plus généralement (ax,ay,az,a) avec a non nul car on divise les 3 première par la dernière pour retomber dans l'espace 3D normal.

    Soit P la matrice de projection on a
    (x', y', z', w') = P (x,y,z,1)

    pour des raisons d'affichage, et puisque j'imagine que le mot matrice ne doit pas te parler , je te donne la formule pour calculer x', y', z', w'

    x' = x/(r*tan phi)
    y' = y/tan phi
    z' = z*zf/(zf-zn) - zf*zn/(zf-zn)
    w' = z

    zn : distance du plan de projection
    zf : distance du plan opposé au plan de projection (limitant la vue pour le z-buffer). éventuellement infini auquel cas ca simplifie la formule!
    phi : moité de l'angle de ouverture de la camera (astuce : phi= 45° comme ca tan phi = 1)
    r : ratio entre largeur et hauteur (ou l'inverse!) de l'ecran pour corriger le fait que les pixels ne sont pas carrés.

    ensuite tu obtiens le point du plan dans le repère du plan : c'est (x' / w', y' / w') et z'/w' est utilisé pour le z-buffer.

    il faut enfin multiplier par les dimension de la fenêtre et effectuer une translation car ce sont des coord. unitaires.

    x" = (x' / w' + 0.5) * largeur
    y" = (y' / w' + 0.5) * hauteur
    "Les gens normaux croient que si ca marche, c'est qu'il n'y a rien à reparer. Les ingénieurs croient que si ca marche, c'est que ca ne fait pas encore assez de choses."
    --Scott Adams

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3 338
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 338
    Points : 4 657
    Points
    4 657
    Par défaut
    En faite je ne m'inquiete pas de la taille des objets pour la rotation.

    En faite suivant la profondeur minimum et maximum c'est simplement un changement de couleur (de blanc à noir via dégradé de gris) qui donnera l'effet de profondeur.

    donc je te répondrai : projection orthogonale (si j'ai bien suivi tes explications)

    Pour les matrices je te suis bien (j'ai fait un programme en C pour faire un pivot de gauss ;-) )


    ok voila les forumules qui me manquait ;-)

    Merci infiniment de ta patience ;-)

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

Discussions similaires

  1. Calculs sur une base
    Par superthx dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 08/06/2010, 04h52
  2. Réponses: 1
    Dernier message: 21/07/2009, 11h51
  3. Calculer la position d'un point sur un polygone ?
    Par supergrey dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 12/06/2008, 09h40
  4. Calcul de points sur un cone
    Par lenoil dans le forum Mathématiques
    Réponses: 1
    Dernier message: 21/03/2008, 15h44
  5. Calcul rayon d'une ellipse (distance centre-point sur cercle)
    Par aristeas dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 19/01/2007, 11h37

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