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 :

Remplir un disque avec des motifs équidistants


Sujet :

Algorithmes et structures de données

  1. #21
    Inscrit
    Profil pro
    aaaaa
    Inscrit en
    Novembre 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : aaaaa

    Informations forums :
    Inscription : Novembre 2006
    Messages : 178
    Points : 70
    Points
    70
    Par défaut
    Sinon on peut essayer d'utiliser la surface d'intersection entre les 2 "cercles". Il y a une formule qui permet de calculer l'aire d'intersection entre deux cercles si on a le rayon de chacun et la distance séparant leurs deux centres :

    (Source : ici).

    Si je réussis à isoler la variable d et à la mettre de l'autre côté de l'équation (ce qui n'est pas gagné, j'ai passé une heure à essayer), a priori je peux trouver la distance qu'il faut mettre entre deux cercles en fonction de leur surface d'intersection, non ?

  2. #22
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par brunoperel Voir le message
    Sinon on peut essayer d'utiliser la surface d'intersection entre les 2 "cercles". Il y a une formule qui permet de calculer l'aire d'intersection entre deux cercles si on a le rayon de chacun et la distance séparant leurs deux centres :

    (Source : ici).

    Si je réussis à isoler la variable d et à la mettre de l'autre côté de l'équation (ce qui n'est pas gagné, j'ai passé une heure à essayer), a priori je peux trouver la distance qu'il faut mettre entre deux cercles en fonction de leur surface d'intersection, non ?
    Certes. Mais il y a peu de chance que le nombre de "points" dans cette surface soit exactement celui que tu souhaites.

    Sans parler du fait qu'il y a encore moins de chance qu'un "point" de la spirale A tombe sur un point de la spirale B.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #23
    Inscrit
    Profil pro
    aaaaa
    Inscrit en
    Novembre 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : aaaaa

    Informations forums :
    Inscription : Novembre 2006
    Messages : 178
    Points : 70
    Points
    70
    Par défaut
    Donc en fait je ne pourrai pas utiliser les jolies spirales ?
    Qu'est-ce que tu entendais par résolution graphique ?

  4. #24
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par brunoperel Voir le message
    Donc en fait je ne pourrai pas utiliser les jolies spirales ?
    Disons qu'il faut régler le problème de positionnement des points à l'intersection des 2 spirales. Je ne sais pas trop a quoi doit ressembler ton dessin final. Est-ce que tes disques ont le meme rayon, auquel cas la densité des points dans chaque spirale sera différente. Est-ce que le rayon dépend du nombre de points. etc.

    Qu'est-ce que tu entendais par résolution graphique ?
    Chercher les X points de la spirale A qui sont les plus proche du centre de la spirale B. Bref, un simple calcul de distance euclidienne.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #25
    Inscrit
    Profil pro
    aaaaa
    Inscrit en
    Novembre 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : aaaaa

    Informations forums :
    Inscription : Novembre 2006
    Messages : 178
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Je ne sais pas trop a quoi doit ressembler ton dessin final. Est-ce que tes disques ont le meme rayon, auquel cas la densité des points dans chaque spirale sera différente. Est-ce que le rayon dépend du nombre de points. etc.
    C'est vrai que je n'ai pas précisé ça. Les disques n'ont pas le même rayon : la densité des points est toujours la même (c'est pour ça qu'au début je pensais que ce serait possible de faire une intersection facilement).
    Donc le rayon dépend de la racine carrée du nombre de points (puisque le nombre de points est à peu près proportionnelle à l'aire du disque).

    Un point important que je n'ai pas signalé : il pourra y avoir jusqu'à une petite quinzaine de disques, chacun comprenant entre 1 et plusieurs centaines de points, et chacun pouvant éventuellement être en intersection avec un ou plusieurs autres.


    J'ai l'impression de m'embrouiller, peut-être qu'expliquer le but de cet algorithme me permettra d'être plus clair :
    Je veux représenter des histoires d'auteurs de BD.
    Chaque cercle correspond à un magazine, chaque point correspond à une publication d'histoire dans ce magazine. Lorsque deux cercles sont en intersection, cela signifie qu'ils ont des histoires qu'ils ont tous les deux publiées. Deux points "superposés" correspondent donc à deux publications d'une même histoire.

  6. #26
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    La représentation graphique envisagée ne peut malheureusement pas convenir à tous les cas.

    En effet,
    - on intersecte librement MagA et MagB ,
    - on intersecte librement MagA et MagC ,
    - on peut faire tourner MagB et MagC autour de A de façon à avoir la représentation recherchée pour MagB ^ MagC ^ MagA (en devant prendre, me semble t'il, quelque liberté sur les forme de l'enveloppe).

    Là commencent les problèmes pour MagB ^ MagC ^ not MagA.
    Et, impossible de traiter tous les cas pour MagD.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  7. #27
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par brunoperel Voir le message
    J'ai l'impression de m'embrouiller, peut-être qu'expliquer le but de cet algorithme me permettra d'être plus clair :
    Je veux représenter des histoires d'auteurs de BD.
    Chaque cercle correspond à un magazine, chaque point correspond à une publication d'histoire dans ce magazine. Lorsque deux cercles sont en intersection, cela signifie qu'ils ont des histoires qu'ils ont tous les deux publiées. Deux points "superposés" correspondent donc à deux publications d'une même histoire.
    J'avais bien capté le problème. Et je reste convaincu que ce n'est pas aussi simple que de trouver de "remplir un disque avec des motifs équidistants".

    Comme le souligne Graffito, il y a des cas où le placement/recouvrement des disques va être plus problématique que le placement des points.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  8. #28
    Inscrit
    Profil pro
    aaaaa
    Inscrit en
    Novembre 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : aaaaa

    Informations forums :
    Inscription : Novembre 2006
    Messages : 178
    Points : 70
    Points
    70
    Par défaut
    Hm, c'est un peu décourageant...
    La question que je me pose c'est : est-ce que théoriquement toutes les configurations d'intersection sont affichables, et surtout comment savoir si telle configuration est affichable. Intuitivement, je dirais que c'est plus simple de commencer à placer un cercle qui possède des intersections avec beaucoup d'autres cercles. Pour la suite je suis un peu bloqué : à la main je sais à peu près faire, mais algorithmiquement c'est une autre histoire !

    Citation Envoyé par pseudocode Voir le message
    Et je reste convaincu que ce n'est pas aussi simple que de trouver de "remplir un disque avec des motifs équidistants".
    Oui, pour cette question-là on a pu trouver 2 réponses satisfaisantes : le placement avec des hexagones et les spirales de Fermat.

  9. #29
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    En regardant l'image jointe, on voit mal comment réarranger le dessin pour ajouter MagD à la représentation de MagA+MagB+MagC sachant que:
    MagD = MagA ^ MagB ^ MagC + un certain nombre d'articles n'appartenant pas à MagA U MagB U MagC
    Images attachées Images attachées  
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

Discussions similaires

  1. Remplir des formes graphiques avec des motifs (quadrillage, ligne verticale, etc)
    Par La Piotte dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 04/10/2007, 00h16
  2. Réponses: 8
    Dernier message: 11/03/2007, 18h10
  3. Remplir un <select> avec des années
    Par belzeluc dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/02/2007, 10h24
  4. [MySQL] Remplir un array() avec des données issues d'une bdd
    Par fichtre! dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/12/2006, 17h03
  5. [VBA-A]Remplir une textbox avec des données de tables.
    Par cuicui08 dans le forum VBA Access
    Réponses: 1
    Dernier message: 24/03/2006, 10h28

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