Previous: , Up: Méthodes de référence [Contents][Index]


6.3 Galerie d’exemples de figures Smalltalk

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 éditeur de figure Smalltalk puis exécuté.

Animer une figure

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 foisRépéter: [
 p déplacerA: (p coordonnées + (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.
s := figure segmentDe: 0@ -1 à: 4@ -1.
r := figure pointSurLigne: s à: 0.8.
s := figure segmentDe: 0@0 à: 0@1.
u := figure pointSurLigne: s à: 0.7.
u rond petit; couleur: Color blue.
1 à: 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 à: 1 par: 0.05 faire: [:x | 
 r mathItem setCurveAbscissa: x.
 figure actualiser.
 pause wait]]

Triangle de Sierpinski

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 à: s2;
 segmentDe: s2 à: s3;
 segmentDe: s3 à: 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
fig59

Figure 6.2: Triangle de Sierpinski


Previous: Méthodes de référence pour les Figures Smalltalk, Up: Méthodes de référence [Contents][Index]

AltStyle によって変換されたページ (->オリジナル) /