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

Programmation multimédia/Jeux Python Discussion :

Python dans Rhino Grasshopper (fourmi de Langton)


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Architecture
    Inscrit en
    Mai 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecture
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2016
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Python dans Rhino Grasshopper (fourmi de Langton)
    Bonjour,

    je me présente, je suis en école d'architecture et je dois, dans le cadre d'un cours de programmation, créer un programme Rhino Grasshopper intégrant du Python avec une application architecturale. Je suis débutant en Python et n'ait comme expérience que le formation OC.

    Avec mes collègues, nous avons choisi comme principe de s'inspirer des automates cellulaires (plus particulièrement de la fourmi de Langton).
    Ce modèle dans notre discours permettrait de générer en série des façades uniques.

    J'ai commencé à créer le programme dans Rhino/Grasshopper dans lequel j'ai intégré mes codes pythons.

    Je vous explique comment j'ai pensé le programme (c'est peut-être la base du problème) :

    - je voulais générer des carrés, aléatoires dans leurs attributs mais ordonnés dans une trame, qui formeraient une grille (de facade de base).

    Il y aura 3 attributs possibles : "materiau1", "materiau2", et "fenetre".

    De là se pose deux possibilités (je ne sais pas laquelle est la plus simple):

    - la mieux : que l'on puisse choisir l'emplacement des carrés "fenetre" et que le reste des carrés soient aléatoires

    - la moins bien : que tout soit aléatoire

    J'imagine que la grille pourrait être générée avec un bouton booléen True/False.

    Et qu'on puisse aussi choisir le % d'aléatoire (dans le sens où toute la grille pourrait être materiau1 de base et que ca soit le nombre de materiau2 et de fenetre varie).

    Ca ca pourrait être une première partie de programme qui pourrait s'arrêter là si pas assez de temps pour réaliser celle d'après.

    La deuxième partie inclurait l'automate de Langton :

    Je me suis dis qu'on pouvait faire une liste des attributs des carrés de la première grille, et faire parcourir un automate qui lit les attributs et effectuent une action en fonction de l'attribut par exemple :

    if positionarrivee = carreau1:

    aller à gauche, transformer la case de départ en carreau2

    elseif positionarrivee = carreau2:

    aller à droite, transformer la case de départ en carreau1

    else:

    aller en arrière.

    Et qu'on avait un slider pour indiquer le nombre de déplacements qu'on veut lui faire faire.

    Voici la tête du début de la bête :
    Nom : Capture d’écran 2016-05-07 à 17.33.27.png
Affichages : 616
Taille : 152,3 Ko

    Contenu de la boite Python_basics :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import rhinoscriptsyntax as rs
     
    print pt
     
    pt = rs.coerce3dpoint(pt)
    Contenu de la boite Python :

    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
    import rhinoscriptsyntax as rs
    from Rhino.Geometry import Point3d
     
     
    def boxMaker(firstPoint, recursion):
     
        a.append(firstPoint)
     
        if recursion < 10:
            movedPoint1 = firstPoint + Point3d(1, 0, 0)
            boxMaker(movedPoint1, recursion + 1)
     
            movedPoint2 = firstPoint + Point3d(0, 1, 0)
            boxMaker(movedPoint2, recursion + 1)
     
     
    firstPoint = rs.coerce3dpoint(startPoint)
     
    a = []
     
    boxMaker(firstPoint,0)

    Premières questions qui se posent :

    - comment faire en sorte que la forme soit carrée et non en escalier ?

    j'ai essayé de modifier dans la recursion en mettant 1,1,0 à chaque copie mais j'ai l'impression que le résultat est étrange

    Nom : Capture d’écran 2016-05-07 à 17.51.35.png
Affichages : 505
Taille : 112,0 Ko

    - comment implanter mon caractère aléatoire ? Je suppose qu'il faut importer la biblio random par un (import random) mais ensuite quelle fonction utiliser ?

    - et ensuite j'ai aucune idée de comment aborder l'automate, si vous pouviez me donner des pistes.

    Je vous remercie d'avance, je sais que c'est une grosse partie. Il ne s'agit pas de tout faire à ma place mais de me donner les clefs pour que je puisse trouver par moi même.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    Bonjour,

    Pour faire un carré, il n'y a pas besoin de récursivité, il suffit d'avoir une boucle for.
    Pour l'aléatoire, il y randint() pour avoir des entiers, dans le module random. Rien de compliqué (je pense).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. Intégrer un script python dans une page Web
    Par Mysti¢ dans le forum Réseau/Web
    Réponses: 4
    Dernier message: 02/11/2006, 11h20
  2. Réponses: 3
    Dernier message: 26/06/2006, 14h48
  3. Interpreter un script python dans un prog python
    Par romeo9423 dans le forum Général Python
    Réponses: 3
    Dernier message: 01/12/2005, 17h16
  4. Embarque un interpreteur Python dans une appli C++
    Par romeo9423 dans le forum MFC
    Réponses: 1
    Dernier message: 01/12/2005, 11h52

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