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 cercle avec d'autre cercle (dimension?)


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Par défaut Remplir un cercle avec d'autre cercle (dimension?)
    Bonjour tout le monde
    dans le cadre de mes études, je suis en train de faire un programme qui devrait permettre de faire des figure de type fractale. je commence, mais je ne suis qu'en première année. Aussi, je vous demande d'être indulgent

    je programme en pascal. Je sais tout a fait que ce langage n'est pas a conseillé, mais il m'est imposé;

    bon, j'ai fais un programme qui fonctionne sur le fond, mais qui me donne des formes qui ne me plaisent pas.

    ma fractale est assez simple :
    vous avez tout d'abord un cercle.
    ensuite, on remplie ce cercle avec d'autre (le nombre est choisi au moment de l'exécution).
    par exemple, trois cercle.
    Ces cercle se touchent par les bords.

    la surviens tout le problème : ils DEVRAIENT se toucher par les bord, mais il semble que je me suis trompé sur les assertions de taille.
    Et je ne sais pas quelle taille leur donner en fait.

    pour mieux voir l'image, je vous ai mis deux "exemple"
    http://i22.servimg.com/u/f22/09/01/50/74/410.jpg
    http://i22.servimg.com/u/f22/09/01/50/74/310.jpg

    je vous les ai mis au format jpg, pour ne pas alourdir. Bien sur, je peux vous les faire au format png si nécessaire.

    Comme vous pouvez le voir, il y a un petit problème (ça ne fait pas très fractale comme ça ^^)

    bref, si vous pouviez m'aider a trouver le rapport entre les cercle et le centre pour qu'il se touchent (au moins deux a deux ), je vous en serais très reconnaissant.

    P.S : c'est mon premier programme en pascal, soyez indulgent

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 362
    Par défaut
    Bonjour,

    Je n'arrive pas à voir tes images...

    Est-ce que tes 3 cercles doivent avoir la même taille ?

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 362
    Par défaut
    Ca y est, j'ai vu les figures.

    J'ai regardé sur les cas 3 et 4 cercles, et il me semble que le rayon des cercles devrait être égal à Ri+1 = Ri x cos(Pi/2n) / (1 + cos(Pi/2n)) où n est le nombre de cercles.

    Il y a des plus matheux que moi sur ce forum, il pourront peut-être confirmer ou infirmer... sinon, tu peux essayer

  4. #4
    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 : 52
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Nom : circles.gif
Affichages : 264
Taille : 4,3 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    { d+R=RMAX
    { sin(teta/2) = R/d
     
    avec:
    teta=2*PI/NmbDeCercles
    RMAX=rayon du cercle externe
     
    => R = RMAX*sin(teta/2) / ( 1 + sin(teta/2) )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Le centre des cercles inscrit est:
    d = RMAX-R
    x = x0 + d*cos(i*teta)
    y = y0 + d*sin(i*teta)
     
    avec x0,y0 le centre du cercle externe, et i entier entre 1 et NmbDeCercles
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Par défaut
    impeccable, ça marche super bien
    enfin, les résultat que j'obtiens sont plus moche, mais c'est du a la couleur

    Bref, merci beaucoup, beaucoup beaucoup

    (entre temps, j'ai fait le programme pour les carrés de sierpinski et un autre avec des triangle est en cours (reste que j'arrive a utiliser drawpoly. ça marche avec des line, mais il faut utiliser ce qui a été fait pour ))

    encore merci

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 03/11/2008, 08h07
  2. [Cercles] Remplir un cercle par d'autre cercles
    Par Yogui dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 08/06/2008, 00h41
  3. remplir un tableau avec un autre
    Par sandball22 dans le forum C
    Réponses: 28
    Dernier message: 20/04/2007, 16h13
  4. Réponses: 7
    Dernier message: 14/12/2006, 14h18

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