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

Mathématiques Discussion :

Aide géométrie de base


Sujet :

Mathématiques

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 491
    Points : 172
    Points
    172
    Par défaut Aide géométrie de base
    Hello,

    Je souhaite tracer (automatiquement) un diagramme type camembert, en affichant pour chacune des "parts" une déviation standard (chacune des parts est de taille variable et correspond à plusieurs valeurs que je moyenne), affichée un peu à la e manière des "boites à moustache". Pour ce faire, je dois donc déterminer la position des points définissant le ségment qui sera tracé sur chacune des parts, et qui aura une longueur égale à 2x la déviation standard et pour milieu un point sur l'arc de cercle.

    Mon approche est la suivante, pour une part P qui est donc incluse dans un cercle C de rayon Cr et de centre O(xo, yo), Cr étant proportionnel à la moyenne calculée précédement:

    Soit A et B les deux points situés aux extrémités de chaque part sur le cercle C.
    Soit D la droite passant par le milieu M de AB et par le centre de C (médiatrice de AB je crois; je suis ultra rouillé en géométrie..).

    Je dois donc trouver les deux points P1 et P2 tels que ces deux points soient sur la droite passant par D, et satisfaisant une contrainte de distance avec O.

    Etape 1: Je détermine l'équation de D à partir de O et de M: y = ax + b
    Etape 2: Je défini un système d'équation simple pour satisfaire les deux conditions:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    (1)    y = ax + b
    (2)    (x1 - xo)^2 + (y1-yo)^2 = d^2
    d étant la distance Cr - sdev, ou Cr + sdev suivant que je cherche P1 ou P2.

    En remplacant y par ax + b dans (2), j'obtiens l'équation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x^2 (1+a) +  x (-2xo + 2ab - 2ayo) + (xo^2 + yo^2 + b^2 - 2byo - d^2) = 0
    Que je résoud de manière classique... Déterminant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    det = (-2xo + 2ab - 2ay)^2 - 4*(1+a)*(xo^2 + yo^2 + b^2 - 2byo - d^2) ;
    etc..

    Mon problème est que les segments que j'obtiens ne sont pas situés là où ils devraient être... Difficile de décrire le problème plus que cela sans figure, l'objectif de mon post étant déjà de savoir si mon approche est la meilleur (sous entendu la plus simple) et si vous pensez que j'ai loupé une étape ou fait une erreur...

    Merci d'avance

    PS: je prends en compte les cas spécifiques comme par exemple lorsque O et A ou B sont alignés (auxquels cas je n'ai pas de soucis)...

  2. #2
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 816
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 816
    Points : 7 648
    Points
    7 648
    Par défaut
    Salut,

    Je n'ai pas trop compris ce que tu voulais faire exactement comme dessin (comme quoi un petit dessin sur un coin de nappe est toujours mieux qu'un long discours...), mais là:

    Citation Envoyé par vinzzzz Voir le message
    En remplacant y par ax + b dans (2), j'obtiens l'équation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x^2 (1+a) +  x (-2xo + 2ab - 2ayo) + (xo^2 + yo^2 + b^2 - 2byo - d^2) = 0
    il ne te manquerait pas un carré au a du terme (1+a)?
    Parce que moi j'ai (1+a²) quand je développe...

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par vinzzzz Voir le message
    Je souhaite tracer (automatiquement) un diagramme type camembert, en affichant pour chacune des "parts" une déviation standard (chacune des parts est de taille variable et correspond à plusieurs valeurs que je moyenne), affichée un peu à la e manière des "boites à moustache". Pour ce faire, je dois donc déterminer la position des points définissant le ségment qui sera tracé sur chacune des parts, et qui aura une longueur égale à 2x la déviation standard et pour milieu un point sur l'arc de cercle.

    Mon approche est la suivante, pour une part P qui est donc incluse dans un cercle C de rayon Cr et de centre O(xo, yo), Cr étant proportionnel à la moyenne calculée précédement:

    Soit A et B les deux points situés aux extrémités de chaque part sur le cercle C.
    Soit D la droite passant par le milieu M de AB et par le centre de C (médiatrice de AB je crois; je suis ultra rouillé en géométrie..).

    Je dois donc trouver les deux points P1 et P2 tels que ces deux points soient sur la droite passant par D, et satisfaisant une contrainte de distance avec O.
    Je ne sais pas si j'ai tout compris sans dessin, mais :

    M = (xa+xb)/2, (ya+yb)/2, donc pente = My/Mx

    dM = racine(Mx^2 + My^2)
    Delta de distance = d

    P1x = (dM+d) * cos(pente)
    P1y = (dM+d) * sin(pente)

    P2x = (dM-d) * cos(pente)
    P2y = (dM-d) * sin(pente)

Discussions similaires

  1. Aide sur ma base de donnée sport
    Par solaar dans le forum Langage SQL
    Réponses: 4
    Dernier message: 01/10/2007, 17h28
  2. [débutant] besoin d'aide pour une Base de Données
    Par james-mi dans le forum Ruby
    Réponses: 6
    Dernier message: 12/03/2007, 01h17
  3. [PHP-JS] Besoin d'aide pour les bases en php !
    Par stevefigueras dans le forum Langage
    Réponses: 1
    Dernier message: 15/12/2006, 14h36
  4. Réponses: 1
    Dernier message: 06/11/2006, 10h09
  5. Comment remplir un dbcombo à l'aide d'une base donnée ?
    Par eclectik dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 27/09/2006, 16h50

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