IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Description of Objects in VPython

Attributs supplémentaires

Les attributs suivants s'appliquent à tous les objets VPython:

visible Si faux (0), l'objet n'est pas affiché; utilisation : ball.visible = 0
Utilisez ball.visible = 1 pour rendre visible la balle de nouveau.

frame Place cet objet dans une structure spécifiée, comme dans ball = sphere(frame = f1)

display Quand vous démarrez un programme VPython, pour des raisons de commodité, Visual crée une fenêtre d'affichage et la nomme scene. Par défaut, les objets que vous créez vont dans cette fenêtre d'affichage. Vous pouvez choisir de placer un objet dans une fenêtre différente comme ceci:

        scene2 = display( title = "Act IV, Scene 2" )
        rod = cylinder( display = scene2 )
La fonction display.get_selected() retourne une référence de la fenêtre d'affichage dans laquelle les objets sont actuellement créés.

__class__ Nom de la classe de l'objet. Par exemple, ball.__class__ is sphere est vraie si ball est une sphère. Il y a deux underscores avant et après le mot class. Dans une liste d'objets visibles donnée par scene.objects, si obj est dans cette liste, vous pouvez déterminer la classe de l'objet avec obj.__class__.

__copy()__ fait une copie de l'objet. Il y a deux underscores avant et après le copy(). Sans argument, il en résulte la création d'un second objet dans le même état que le premier, ce qui n'est problablement pas ce que vous voulez. La fonction __copy__() prend une liste de paires d'argument "mots clé=valeur" qui sont appliquées au nouvel objet avant de le rendre visible. Par exemple, pour cloner un objet d'une scène à une autre, vous exécuterez: new_object = old_object.__copy__( display=new_display). Restriction: Si l'objet originel appartient à une structure (frame), et que le nouvel objet est sur une fenêtre d'affichage différente, vous devez fournir une nouvelle fenêtre d'affichage ainsi qu'une nouvelle structure pour le nouvel objet (la nouvelle structure peut valoir None). Ceci est dû à la restriction qu'un objet ne peut pas être localisé dans une structure qui est dans une fenêtre d'affichage séparée. L'attribut __members__ utilisé pour donner une liste de tous les attributs d'objets n'est cependant plus disponible dans VPython. Son principal usage résidait dans la copie d'objets.

Voici un exemple qui utilise la fonction __copy()__. La routine suivante copie tous les objets Visual courants existant dans une fenêtre dans une seconde fenêtre précédemment définie:

def clone_universe( new_display, old_display):
        # Crée un dictionnaire de structure dans l'ancienne fenêtre
        # pour les structures correspondantes dans la nouvelle fenêtre.
        frames = dict()
        # Initialise le dictionnaire à consulter
        for obj in old_display.objects:
                if obj.__class__ == frame:
                        frames[obj] = obj.__copy__( frame=None, display=new_display)
        # Pour chaque ancienne structure référencée qui était dans une autre structure référencée,
        # on place la nouvelle référence dans une structure appropriée dans la nouvelle
        # fenêtre. Voici un ancien objet et le nouveau dans sa structure dans la nouvelle fenêtre.
        for old, new in frames.iteritems():
                if old.frame:
                        new.frame = frames[old.frame]
        # Copie au-dessus de l'univers.
        for obj in old_display.objects:
                if obj.__class__ == frame:
                        # Sécurité déjà prise au-dessus.
                        continue
                if obj.frame:
                        # Puis on initialise avec la structure correspondante référencée dans la nouvelle
                        # fenêtre.
                        obj.__copy__( display=new_display, frame=frames[obj.frame])
                else:
                        # Pas besoin de se soucier de l'attribut frame puisque celui-ci vaut None.
                        obj.__copy__( display=new_display)

Voir Contrôler Une ou Plusieurs Fenêtres d'Affichage Visual pour plus d'informations sur la création et la manipulation d'objets d'affichage.

 


Copyright © 2006 Guillaume et Yoann Duriaud. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.