Previous: Interface de programmation, Up: Figure Smalltalk [Index]
Pour illustrer l’utilisation des Figures Smalltalk Dr.Geo, nous vous proposons une petite série d’exemples. Ceux-ci vous montrent leurs importantes possibilités et nous espérons qu’ils seront également une source d’inspiration. Pour chacun de ces exemples, nous donnons le code source Smalltalk de la figure puis son résultat. Le code source doit être copié dans un espace de travail (...Clic arrière-plan → Outils → Espace de travail...) puis exécuté.
Ces exemples s’appuient sur la gestion du temps et celle des processus programmés en Smalltalk.
Un premier exemple simple pour comprendre le principe :
| figure p pause | figure:=DrGeoFigure nouveau. p := figure point: 0@0. pause := Delay forSeconds: 0.2. figure faire: [ 100 foisRepete: [ p deplacerA: (p coordonnees + (0.1@0)). figure actualiser. pause wait]]
Un deuxième exemple avec une figure plus élaborée :
| figure s r u pause | figure := DrGeoFigure nouveau pleinEcran. s := figure segmentDe: 0@ -1 a: 4@ -1. r := figure pointSurLigne: s a: 0.8. s := figure segmentDe: 0@0 a: 0@1. u := figure pointSurLigne: s a: 0.7. u rond petit; couleurr: Color blue. 1 a: 100 faire: [:n| u := figure point: [:parents| |y t| y := parents first y. t := parents second x. (n / 5) @ t * y * (1 - y)] parents: {u . r}. u rond petit; couleur: Color blue]. pause := Delay forSeconds: 0.1. figure faire: [ 0 a: 1 par: 0.05 faire: [:x | r mathItem setCurveAbscissa: x. figure actualiser. pause wait]]
Cet exemple s’appuie largement sur un bloc de code récursif.
| triangle c | c := DrGeoFigure nouveau. triangle := []. triangle := [:s1 :s2 :s3 :n | c segmentDe: s1 a: s2; segmentDe: s2 a: s3; segmentDe: s3 a: s1. n >0 ifTrue: [triangle valeur: s1 valeur: (c milieuDe: s1 et: s2) cacher valeur: (c milieuDe: s1 et: s3) cacher valeur: n-1. triangle valeur: (c milieuDe: s1 et: s2) cacher valeur: s2 valeur: (c milieuDe: s2 et: s3) cacher valeur: n-1. triangle value: (c milieuDe: s1 et: s3) cacher value: (c milieuDe: s2 et: s3) cacher value: s3 value: n-1.]]. triangle valeur: 0@3 valeur: 4@ -3 valeur: -4@ -3 valeur: 3. (c point: 0@3) montrer
Previous: Interface de programmation, Up: Figure Smalltalk [Index]