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 :

detection de lignes


Sujet :

Algorithmes et structures de données

  1. #21
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2002
    Messages : 16
    Points : 5
    Points
    5
    Par défaut
    sa à l'aire d'aller un peut mieux apparement.
    dis moi, alros b c'est l'absolu ou pas ?

  2. #22
    Membre du Club
    Inscrit en
    Août 2002
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 109
    Points : 64
    Points
    64
    Par défaut
    surtout en mathematique ne joue jamais avec les signes.
    Garde les comme ils ont, donc pas d'absolu.

    N'oublie pas de verifier que le point X (coord.) de la souris est compris entre X1 et X2 et que le y de la souris est compris entre Y1 et Y2.



    AUSSI.



    nt SurLigne(float vX, float vY, float vX1, float vY1, float vX2, float vY2)
    {
    float a; // pente
    float b; // constante
    float x;
    float y;
    // calcule de a et b

    !!!!!!!!!!!!! if (y1!=y2)
    a=(vX2-vX1)/(vY2-vY1); ////IL FAUT UN IF AVANT CETTE LIGNE
    b=vY1-(a*vX1);
    x=vX;
    y=(a*x)+b;

    printf ("Variables :\n");
    printf (" ligne de %f|%f à %f|%f\n", vX1, vY1, vX2, vY2);
    printf (" curseur %f|%f\n", vX, vY);
    printf (" a=%f\n"
    " b=%f\n",
    a, b);
    printf (" x=%f\n"
    " y=%f\n",

    ..........

  3. #23
    Membre du Club
    Inscrit en
    Août 2002
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 109
    Points : 64
    Points
    64
    Par défaut
    Si tu as encore des questions je te repondrais demain.Salut

  4. #24
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2002
    Messages : 16
    Points : 5
    Points
    5
    Par défaut
    ok ok.
    Merci beaucoup, sa faisais longtemps que je sèchais la dessus avant de poster ce message dans se forum.
    sans toi j'y serais jamais arrivé.
    Vraiement merci.

  5. #25
    Ol'
    Ol' est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 56
    Points : 69
    Points
    69
    Par défaut
    Non, vraiment je crois qu'il n'est pas nécessaire de calculer l'équation de la droite.

    Prenons A(10,11), B(20,21), C(30,31)
    Prenons le produit scalaire de deux des vecteurs
    AB.AC = ((20-10)*(30-10))+((21-11)*(31-11)) = 400
    (J'ai pris le produit scalaire canonique de R²)

    norme(AB).norme(AC) = racine((20-10)² + (21-11)²).racine((30-10)² + (31-11)²) = racine(200).racine(800) = 400

    Les trois points sont donc bien alignés.

    Cela repose sur le fait que le projection du point intermediaire sur la droite engendrée par les deux autres est le point intermedaire lui même.

    Cordialement,
    Ol'

  6. #26
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2002
    Messages : 16
    Points : 5
    Points
    5
    Par défaut
    sa m'interesse, car l'autre n'est pas très précise pour les lignes prèsques plattes.
    je suis pas très doué en math et je connais pas vraiement ce sujet la,
    a quoi correspond la "norme" ?
    et, les différants calcules séparré par des "." comment dois-je les interpréter ?
    c'est quoi un produit scalaire ?

  7. #27
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2002
    Messages : 16
    Points : 5
    Points
    5
    Par défaut
    hooo, jusque la j'arrive, j'ai AB.AC, AB et AC qui valent respectivement 400, 200 et 800.
    et la, on fais racine carré de AB fois la racine carré de AC et sa donne 400, donc correcte, c'est bien juste ?

  8. #28
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2002
    Messages : 16
    Points : 5
    Points
    5
    Par défaut
    c'est bon j'y suis arrivé tout seul.
    Cette formule est beaucoup mieux que l'autre, elle permet d'etre beaucoup plus précis que l'autre surtout pour les lignes prèsque verticales ou horizontales.
    Merci beaucoup Ol' pour ta formule.

  9. #29
    Membre éclairé
    Avatar de D[r]eadLock
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    504
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 504
    Points : 750
    Points
    750
    Par défaut
    Citation Envoyé par the.cable.guy
    hooo, jusque la j'arrive, j'ai AB.AC, AB et AC qui valent respectivement 400, 200 et 800.
    et la, on fais racine carré de AB fois la racine carré de AC et sa donne 400, donc correcte, c'est bien juste ?
    Il vaudrait mieux faire (si tu veux etre pile pour le pixel) :
    carre(AB.AC)==norm(AB)*norm(AC) => 400*400=200*800 !
    Dans ce cas toujours pas de flottants

  10. #30
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2002
    Messages : 16
    Points : 5
    Points
    5
    Par défaut
    ok.
    se qui est domage c'est qu'après la différance entre les 2 valeurs est très grande, tandis qu'avec l'autre methode, ou on faisais la racine, la différance étais quasiment de 0 quand on étais sur la ligne, pour le programme c'est plus simple gèrer une valeur près de zéro plutot qu'une grande valeur, je trouve.
    L'autre methode me va, merci quand même.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [Débutant] detection de lignes dans une image binaire par T.hough
    Par m_baadeche dans le forum Images
    Réponses: 2
    Dernier message: 07/12/2010, 09h32
  2. detecter la ligne d'erreur en latex
    Par nypahe dans le forum Débuter
    Réponses: 4
    Dernier message: 12/07/2009, 16h00
  3. detecter une ligne a un seul mot dans un fichier txt
    Par malikoo dans le forum Général Python
    Réponses: 9
    Dernier message: 04/07/2007, 19h43
  4. Réponses: 8
    Dernier message: 17/08/2006, 15h02
  5. [Forms 6i] Detection des lignes sélectionnées
    Par Karim.1 dans le forum Forms
    Réponses: 8
    Dernier message: 10/04/2006, 17h45

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