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

Codes sources à télécharger Pascal Discussion :

Arbre de Pythagore [Sources]


Sujet :

Codes sources à télécharger Pascal

  1. #1
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 092
    Points : 15 532
    Points
    15 532
    Billets dans le blog
    9
    Par défaut Arbre de Pythagore
    Bonjour,

    Je vous propose un nouvel élément à utiliser : Arbre de Pythagore

    Nom : image.png
Affichages : 1696
Taille : 4,9 Ko

    Dessin d'un arbre de Pythagore dans une image PNG, au moyen de la bibliothèque Cairo.

    Qu'en pensez-vous ?

  2. #2
    Membre à l'essai
    Femme Profil pro
    Consultant en sécurité
    Inscrit en
    Janvier 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 7
    Points : 10
    Points
    10
    Par défaut
    C'est jolie et plutôt bien fait! ;-)

  3. #3
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 011
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 011
    Points : 15 496
    Points
    15 496
    Par défaut
    Citation Envoyé par Roland Chastain Voir le message
    Qu'en pensez-vous ?
    Que c'est vraiment dommage que je n'arrive pas à faire afficher quelque chose avec Cairo sous Linux : ton programme fonctionne et me génère bien un fichier, moi ce que je voudrais ça serait voir la même image dans un TImage ou TPaintbox ou simplement sur le canvas de TForm1, mais bon, voir quelque chose et j'ai encore passé un temps dément sans rien trouver.

    À croire que personne n'a jamais fait tourner Cairo sous Linux avec Pascal

    Maintenant, je me demande si ça vaut le coup de se décarcasser avec cette librairie : lors de mes essais, j'ai trouvé une instruction qui devrait permettre (on dirait, tout au moins, vu le nom : surface := cairo_image_surface_create_from_png (PChar(ExtractFilePath(Application.ExeName) + 'bidon.png'));) de lire un fichier.
    Ne voyant toujours rien s'afficher, j'ai utilisé la méthode bourrin : changement du nom du fichier, et relance. Je m'attendais à un message d'erreur, et non, rien de chez rien...
    Ça n'inspire pas confiance...

  4. #4
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 092
    Points : 15 532
    Points
    15 532
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par nathaspacig Voir le message
    C'est jolie et plutôt bien fait! ;-)
    Merci.

    Citation Envoyé par Jipété Voir le message
    Que c'est vraiment dommage que je n'arrive pas à faire afficher quelque chose avec Cairo sous Linux : ton programme fonctionne et me génère bien un fichier, moi ce que je voudrais ça serait voir la même image dans un TImage ou TPaintbox ou simplement sur le canvas de TForm1, mais bon, voir quelque chose et j'ai encore passé un temps dément sans rien trouver.

    À croire que personne n'a jamais fait tourner Cairo sous Linux avec Pascal
    Oui, c'est dommage. J'attends que quelqu'un nous donne la solution. En tout cas merci pour le temps que tu as passé à chercher.

  5. #5
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 092
    Points : 15 532
    Points
    15 532
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par Jipété Voir le message
    À croire que personne n'a jamais fait tourner Cairo sous Linux avec Pascal
    En y pensant, je me souviens avoir lu que le composant TCairoPaintBox est utilisable sous Linux. Donc la solution existe.

    Il faudrait regarder dans le code du composant ou même interroger directement l'auteur. Personnellement, n'étant pas utilisateur de Linux, je ne suis pas bien placé pour le faire.

  6. #6
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 011
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 011
    Points : 15 496
    Points
    15 496
    Par défaut
    Bonsoir, Roland,

    et merci de ce retour.
    Citation Envoyé par Roland Chastain Voir le message
    En y pensant, je me souviens avoir lu que le composant TCairoPaintBox est utilisable sous Linux. Donc la solution existe.

    Il faudrait regarder dans le code du composant ou même interroger directement l'auteur.
    Je t'avoue franchement qu'avec toutes les misères que me fait un simple TImage, il y a des fois où je suis vraiment découragé par tout ça... Alors, s'il faut encore aller farfouiller dans du code pour un résultat plus qu'incertain (si encore l'auteur avait précisé la compatibilité de ses composants mais non, il n'y a rien sur la page à ce propos...), je me demande si le jeu en vaut la chandelle.
    En tout cas, pas en ce moment, où j'ai d'autres chats à fouetter (les pauvres bêtes )

    Mais merci d'y avoir pensé.

  7. #7
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 092
    Points : 15 532
    Points
    15 532
    Billets dans le blog
    9
    Par défaut
    Voici une variation de l'arbre de Pythagore : la taille de l'un des carrés est choisie au hasard (mais toujours inférieure à celle de l'autre carré).

    Nom : image.png
Affichages : 1294
Taille : 41,9 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
    uses
      Cairo, Math;
     
    function RandomRange(const first, last: double): double;
    begin
      result := (Random(1000) / 1000) * (last - first) + first
    end;
     
    var 
      context: pcairo_t;
      surface: pcairo_surface_t;
     
    procedure draw_branches(const x1, y1, s1: double; const n: integer);
    procedure draw_branch(const x2, y2, a, x3, y3, s2: double);
    begin
      cairo_save(context);
     
      cairo_translate(context, x2, y2);
      cairo_rotate(context, a);
     
      cairo_rectangle(context, x3, y3, s2, s2);
      cairo_fill(context);
     
      draw_branches(x3, y3, s2, n - 1);
     
      cairo_restore(context);
    end;
    var
      s2, s3, a1, a2: double;  
    begin
      if n > 0 then
      begin
        s2 := s1 / Sqrt(2);
        s3 := s1 / RandomRange(Sqrt(2), 2);
     
        a1 := ArcCos((s2 * s2 + s1 * s1 - s3 * s3) / (2 * s2 * s1));
        a2 := ArcCos((s3 * s3 + s1 * s1 - s2 * s2) / (2 * s3 * s1));
     
        draw_branch(x1,      y1, -a1,   0, -s2, s2);
        draw_branch(x1 + s1, y1,  a2, -s3, -s3, s3);
      end;
    end;
     
    const
      SURFACE_WIDTH = 600;
      SURFACE_HEIGHT = 2 * SURFACE_WIDTH div 3;
      SQUARE_SIZE = SURFACE_HEIGHT / 4;
      X = (SURFACE_WIDTH - SQUARE_SIZE) / 2;
      Y = SURFACE_HEIGHT - SQUARE_SIZE;
     
    begin
      surface := cairo_image_surface_create(CAIRO_FORMAT_ARGB32, SURFACE_WIDTH, SURFACE_HEIGHT);
      context := cairo_create(surface);
     
      cairo_set_line_width(context, 2);
     
      cairo_rectangle(context, X, Y, SQUARE_SIZE, SQUARE_SIZE);
      cairo_set_source_rgba(context, 0, 0, 1, 0.8);
      cairo_fill(context);
     
      draw_branches(X, Y, SQUARE_SIZE, 8);
     
      cairo_surface_write_to_png(surface, 'image.png');
      cairo_destroy(context);
      cairo_surface_destroy(surface);
    end.

Discussions similaires

  1. Arbre de pythagore
    Par NTLG75 dans le forum Scheme
    Réponses: 1
    Dernier message: 05/05/2010, 16h16
  2. [Fractales 3/5] Arbre de Pythagore - Pythagoras tree
    Par Jerome Briot dans le forum Téléchargez
    Réponses: 1
    Dernier message: 03/03/2010, 10h31
  3. créer une arborescence windows sous forme d'arbre java
    Par chupachoc dans le forum Composants
    Réponses: 3
    Dernier message: 01/10/2002, 17h48
  4. arbre de parcour d'arborescence windows
    Par chupachoc dans le forum Composants
    Réponses: 7
    Dernier message: 09/09/2002, 09h09

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