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 :

savoir si 1 point est a l'intérieur d'un cercle ...


Sujet :

Algorithmes et structures de données

  1. #1
    Nouveau Candidat au Club
    savoir si 1 point est a l'intérieur d'un cercle ...
    La question est posé dans le sujet...
    J'aimerais savoir comment on peut savoir si le point S (X,Y) se trouve dans le cercle C de centre O (X0,Y0) dans on connaitrait le rayon R et ses coordonnées X0 et Y0.

    Merci tt le monde
    @++
    Il n'y a pas d'hommes cultivés, il n'y a que des hommes qui se cultivent.
    pslus un ordinateur possede de RAM, plus vite il peut generer un message d'erreur c'est pour ça que j'en ai 16

  2. #2
    Membre confirmé
    points et cercle
    salut
    et bien ce n'est pas compliqué suffit de savoir si la distance du point au centre du cercle est inférieure au rayon du cercle
    c'est du pythagore !
    soit si racine_carre((x_point - x_centre)² + (y_centre - y_point)) < rayon
    alors le point est dans le cercle
    voila en espérant avoir été clair!

  3. #3
    Membre expérimenté
    Sauf pour le temps de calcul où la deuxième solution est plus rapide
    1)http://www.developpez.com/cours/
    2)Recherche
    3)Posez votre question en suivant les règles
    _oOo-DrQ-oOo_

  4. #4
    Membre averti
    je ne suis pas trop d'accord: dans la première solution évoquée on calcule la distance du point par rapport au centre que l'on compare avec le rayon.
    alors que dans la seconde on ne prend pas la racine carrée, mais on la compare avec le rayon que l'on éléve au carré, donc à mon avis les 2 calculs sont aussi rapides l'un que l'autre... non ???

  5. #5
    Membre expérimenté
    Le proc effectue beaucoup plus vite une multiplication qu'une division, et je ne parle pas de la racine carrée.
    Je ne connais pas l'algorithme pour calculer une racine carrée mais ca doit prendre plus de temps que faire une simple multilication.
    1)http://www.developpez.com/cours/
    2)Recherche
    3)Posez votre question en suivant les règles
    _oOo-DrQ-oOo_

  6. #6
    Membre régulier
    La racine d'un entier peut generer un resultat du type reel avec une suite de chiffre apres la virgule tendant vers l'infini.
    Tandis qu'un carré d'un entier generera toujours un resultat entier.

    2^(1/2) = 1.414213562371 ...

    2^2 = 4

    De plus l'operation racine est calculé en passant par la relation e^((1/2)*ln(2)) qui est elle meme calculé par des developpements limités... qui revient a calculé une suite considerable de puissance!

    Alors que le carré c'est juste 2*2!

    Et donc le carré est plus rapide a calculé.
    Cordialement, Gysmo

    [size=9]> Respectez les régles du forum.
    > Consultez le guide du developpeur Delphi devant un problème.
    > Participez à la F.A.Q Delphi !

  7. #7
    Membre averti
    ah ok je ne voyais pas les choses de cette façon... j'aurai au moins appris que le processeur utilise les développements limités...

  8. #8
    Membre régulier
    Et oui il ne connais que les operations simple le proc (+,*) et donc on transforme un truc qui connait pas (racine) en truc qui connait par l'intermediare de relations mathematiques debouchant sur un DL (un DL etant plein de + et de * !!!).

    De tout facon il fait ca tres vite mais c'est theoriquement plus rapide de faire 2*2 que ...

    Bref voila quoi!

    Babaille.
    Cordialement, Gysmo

    [size=9]> Respectez les régles du forum.
    > Consultez le guide du developpeur Delphi devant un problème.
    > Participez à la F.A.Q Delphi !

  9. #9
    Membre averti
    à noter quand même que les développements limités ne sont pas des opérations de base puisqu'ils font intervenir la dérivée, la dérivée seconde, la n-ième dérivée... et fait en plus intervenir les factorielles:
    bref ce n'est pas si simple:

    f(0)+f'(0)/1!.x+f''(0)/2!.x²+...

  10. #10
    Membre régulier
    Oui bien sur, mais dans le cas d'une fonction simple connu le problème ne ce pose pas, elle fait ainsi partis de l'algorythme.

    Par ex : e^(t) = 1 + t/1! + t^2/2! + ... + t^n/n! + t^n * epsilon(t)

    De plus n! = 1*2*3*4 ... *n ce qui n'est pas compliqué.

    On se sert alors de n (l'ordre) pour obtenir la précision voulu.

    Comment procédrais tu autrement pour calculer une racine?

    Enfin débatre la dessus n'est pas simple tant le sujet est complexe!

    Babaille.
    Cordialement, Gysmo

    [size=9]> Respectez les régles du forum.
    > Consultez le guide du developpeur Delphi devant un problème.
    > Participez à la F.A.Q Delphi !

  11. #11
    Membre averti
    oui je suis bien d'accord avec toi, le débat pourrait aller loin tant les mathématiques peuvent être si complexes...

  12. #12
    Membre régulier
    Tout as fait!

    Il n'y as qu'à voir les nombres complexes...
    Arg quel horreur!

    Babaille.
    Cordialement, Gysmo

    [size=9]> Respectez les régles du forum.
    > Consultez le guide du developpeur Delphi devant un problème.
    > Participez à la F.A.Q Delphi !

  13. #13
    Nouveau Candidat au Club
    vous batez pas...
    c'est bon vous batez pas...
    La rapidité du calcule je m'en fous un peu pour ce que je vais faire ...

    Franchement merci, j'avais franchement pas penser a ça...

    merci a tous
    Il n'y a pas d'hommes cultivés, il n'y a que des hommes qui se cultivent.
    pslus un ordinateur possede de RAM, plus vite il peut generer un message d'erreur c'est pour ça que j'en ai 16

  14. #14
    Membre régulier
    1/ Skarla, t'as pas honte de poser une question pareille ?
    2/ Les DL pour la racine, je ne suis pas convaincu, il existe en effet des séries qui convergent plus rapidement vers les fonctions classiques qu'une série entière (et pas un DL). Il faudrait regarder du côté des développements généralisés je pense

  15. #15
    Membre régulier
    Moi j'ai appris ca en math.
    Maintenant je pense qu'il y a d'autre facon d'avoir un algo pour calculer la racine ou autre.
    Mais je ne les connais pas.


    Babaille.
    Cordialement, Gysmo

    [size=9]> Respectez les régles du forum.
    > Consultez le guide du developpeur Delphi devant un problème.
    > Participez à la F.A.Q Delphi !

  16. #16
    Membre confirmé
    bon je pense pas que la machine fasse un Dl pour chaque racine
    sinon ca serait encore plus long . En fait je crois qu'elle se base sur certaines propriétés de la fonction racine .

    Remarque Si le Dl est bien factorisée et optimisé, et que le degré du développement n'est pas trop important , en assembleur ca va très vite

    mais bon je suis d'accord que si j'avais fait une comparaison avec les carrés, il y aurait seulement 2 messages dans le topic...