:) :| :( TD
GPT to Smiley on TD - Recherche Technique
def onStart():
Paramètres globaux
resolution = [512, 512] # Résolution uniforme pour tous les TOPs
# Créer un conteneur pour les smileys parent_comp = op('/project1') # Remplacez '/project1' par l'emplacement souhaité. smiley_comp = parent_comp.create(containerCOMP, 'smiley') smiley_comp.nodeWidth = 400 smiley_comp.nodeHeight = 400 # Créer le cercle externe (visage) face_circle = smiley_comp.create(circleTOP, 'face') face_circle.par.resolutionw = resolution[0] face_circle.par.resolutionh = resolution[1] face_circle.par.radiusx = 0.5 # Rayon X du cercle face_circle.par.radiusy = 0.5 # Rayon Y du cercle face_circle.par.fillcolorr = 1 # Fond jaune face_circle.par.fillcolorg = 1 face_circle.par.fillcolorb = 0 face_circle.par.bordercolorr = 0 # Contour noir face_circle.par.bordercolorg = 0 face_circle.par.bordercolorb = 0 face_circle.par.borderwidth = 0.02 # Créer les yeux (les mêmes pour les trois smileys) def create_eye(positionx, positiony): eye = smiley_comp.create(circleTOP, 'eye') eye.par.resolutionw = resolution[0] eye.par.resolutionh = resolution[1] eye.par.radiusx = 0.08 # Rayon X eye.par.radiusy = 0.08 # Rayon Y eye.par.centerx = positionx # Position relative X eye.par.centery = positiony # Position relative Y eye.par.fillcolorr = 0 # Fond noir eye.par.fillcolorg = 0 eye.par.fillcolorb = 0 return eye # Créer les yeux gauche et droit eye_left = create_eye(-0.2, 0.2) eye_right = create_eye(0.2, 0.2) # Créer la bouche en colère (quart de cercle inversé) def create_angry_mouth(): mouth = smiley_comp.create(circleTOP, 'angry_mouth') mouth.par.resolutionw = resolution[0] mouth.par.resolutionh = resolution[1] mouth.par.radiusx = 0.3 # Rayon du quart de cercle mouth.par.radiusy = 0.15 # Hauteur du quart de cercle mouth.par.centerx = 0 # Position X (centré) mouth.par.centery = -0.25 # Position Y (bas) mouth.par.fillcolorr = 0 # Pas de fond (transparence) mouth.par.fillcolorg = 0 mouth.par.fillcolorb = 0 mouth.par.fillalpha = 0 # Supprime l'alpha (fond transparent) mouth.par.beginarcangle = 0 # Angle de départ de l'arc (0°) mouth.par.endarcangle = 180 # Angle de fin de l'arc (180°) mouth.par.bordercolorr = 0 # Contour noir mouth.par.bordercolorg = 0 mouth.par.bordercolorb = 0 mouth.par.borderwidth = 0.08 # Largeur du contour de la bouche en colère return mouth # Créer la bouche contente (quart de cercle orienté vers le haut) def create_happy_mouth(): mouth = smiley_comp.create(circleTOP, 'happy_mouth') mouth.par.resolutionw = resolution[0] mouth.par.resolutionh = resolution[1] mouth.par.radiusx = 0.3 # Rayon du quart de cercle mouth.par.radiusy = 0.15 # Hauteur du quart de cercle mouth.par.centerx = 0 # Position X (centré) mouth.par.centery = -0.25 # Position Y (bas) mouth.par.fillcolorr = 0 # Pas de fond (transparence) mouth.par.fillcolorg = 0 mouth.par.fillcolorb = 0 mouth.par.fillalpha = 0 # Supprime l'alpha (fond transparent) mouth.par.beginarcangle = 180 # Angle de départ de l'arc (180°) mouth.par.endarcangle = 360 # Angle de fin de l'arc (360°) mouth.par.bordercolorr = 0 # Contour noir mouth.par.bordercolorg = 0 mouth.par.bordercolorb = 0 mouth.par.borderwidth = 0.08 # Largeur du contour de la bouche joyeuse return mouth # Créer la bouche neutre (bouche plate) def create_neutral_mouth(): mouth = smiley_comp.create(rectangleTOP, 'neutral_mouth') mouth.par.resolutionw = resolution[0] mouth.par.resolutionh = resolution[1] mouth.par.sizex = 0.3 # Largeur de la bouche mouth.par.sizey = 0.05 # Hauteur (très fine pour une bouche plate) mouth.par.centerx = 0 # Position X (centrée) mouth.par.centery = -0.25 # Position Y (bas) mouth.par.fillcolorr = 0 # Pas de fond (transparence) mouth.par.fillcolorg = 0 mouth.par.fillcolorb = 0 mouth.par.fillalpha = 0 # Supprime l'alpha (fond transparent) mouth.par.bordercolorr = 0 # Contour noir mouth.par.bordercolorg = 0 mouth.par.bordercolorb = 0 mouth.par.borderwidth = 0.04 # Largeur du contour de la bouche neutre return mouth # Créer les bouches (en colère, contente et neutre) angry_mouth = create_angry_mouth() happy_mouth = create_happy_mouth() neutral_mouth = create_neutral_mouth() # Créer un composite pour chaque bouche et les connecter composite_angry = smiley_comp.create(compositeTOP, 'composite_angry') composite_angry.par.resolutionw = resolution[0] composite_angry.par.resolutionh = resolution[1] composite_angry.par.operand = 31 # Mode "Over" (valeur 31) composite_happy = smiley_comp.create(compositeTOP, 'composite_happy') composite_happy.par.resolutionw = resolution[0] composite_happy.par.resolutionh = resolution[1] composite_happy.par.operand = 31 # Mode "Over" (valeur 31) composite_neutral = smiley_comp.create(compositeTOP, 'composite_neutral') composite_neutral.par.resolutionw = resolution[0] composite_neutral.par.resolutionh = resolution[1] composite_neutral.par.operand = 31 # Mode "Over" (valeur 31) # Connecter les éléments aux composites respectifs eye_left.outputConnectors[0].connect(composite_angry.inputConnectors[0]) eye_right.outputConnectors[0].connect(composite_angry.inputConnectors[1]) angry_mouth.outputConnectors[0].connect(composite_angry.inputConnectors[2]) face_circle.outputConnectors[0].connect(composite_angry.inputConnectors[3]) # Connecter le visage en dernier eye_left.outputConnectors[0].connect(composite_happy.inputConnectors[0]) eye_right.outputConnectors[0].connect(composite_happy.inputConnectors[1]) happy_mouth.outputConnectors[0].connect(composite_happy.inputConnectors[2]) face_circle.outputConnectors[0].connect(composite_happy.inputConnectors[3]) # Connecter le visage en dernier eye_left.outputConnectors[0].connect(composite_neutral.inputConnectors[0]) eye_right.outputConnectors[0].connect(composite_neutral.inputConnectors[1]) neutral_mouth.outputConnectors[0].connect(composite_neutral.inputConnectors[2]) face_circle.outputConnectors[0].connect(composite_neutral.inputConnectors[3]) # Connecter le visage en dernier # Ajouter un outTOP pour la sortie de chaque expression out_angry = smiley_comp.create(outTOP, 'out_angry') composite_angry.outputConnectors[0].connect(out_angry.inputConnectors[0]) out_happy = smiley_comp.create(outTOP, 'out_happy') composite_happy.outputConnectors[0].connect(out_happy.inputConnectors[0]) out_neutral = smiley_comp.create(outTOP, 'out_neutral') composite_neutral.outputConnectors[0].connect(out_neutral.inputConnectors[0]) return

