Next: , Previous: , Up: Script Pharo   [Index]


6.7 Méthodes de référence

Un argument passé à un script est toujours une référence vers une instance de classe de la hiérarchie DrGMathItem, elle est le modèle de base pour représenter tout objet d’une figure. Ainsi pour connaître les messages compris par un argument d’un script, il convient d’examiner la hiérarchie de DrGMathItem. Celle-ci comprend plus de 80 classes, mais du fait des héritages, seules quelques unes sont intéressantes pour les usages courants des scripts :

Pour explorer ces classes, utiliser par exemple Spotter, l’outil de recherche de Pharo. Pour l’invoquer Shift-Enter, puis saisir le nom d’une classe, par exemple “DrGPointItem” et choisir dans le résultat de la recherche. Le navigateur de classe Calypso s’affiche alors sur la classe recherchée.

Les sections suivantes contiennent la description de quelques messages utiles. Elles sont présentées par classe. Pour plus de concision dans la description de l’API, le préfixe DrG dans le nom des classes est omis.

6.7.1 Item math

Cette section regroupe des méthodes de la classe DrGMathItem, classe mère de la hiérarchie des objets d’une figure.

Ces messages peuvent donc être envoyés à tous les types d’objets passés en argument à un script.

Method on MathItem: <String> safeName

⇒ une chaîne de caractères représentant le nom de l’item

nom := point1 safeName
^nom asUppercase.
Method on MathItem: <Boolean> exist

⇒ un booléen indiquant si l’item est dans un état permettant son existence

Du fait de la dimension dynamique d’une figure géométrique, un objet peut ne plus exister temporairement. C’est par exemple le cas pour le point d’intersection de deux segments, cette méthode permet alors de vérifier l’existence de l’intersection.

line exist ifTrue: [ position := line origin ]
Method on MathItem: <Collection> parents

⇒ une collection d’items, parents de l’item

point1 := segment parents first
Method on MathItem: move: unVecteur

unVecteur, instance de Point, vecteur de coordonnées (x,y) représentant le déplacement

Déplace un item dans une direction donnée, tout en tenant compte de ses contraintes.

circle move: 2@1
Method on MathItem: <Point> closestPointTo: unPoint

⇒ coordonnées du point sur l’item le plus proche de unPoint unPoint, un couple de coordonnées

Cette méthode prend tout son sens sur des items de type ligne comme droite, cercle, arc, polygone, etc.

position := segment closestPointTo: 2@1

position := arc closestPointTo: 2@1

6.7.2 Point

Un item point – objet point defini dans une construction Dr.Geo – passé en argument à un script est un objet très complexe. Il peut être un point libre dans le plan, sur une ligne, une intersection, etc. Quelques méthodes spécifiques permettent d’exploiter ce type d’objet depuis les scripts.

Method on PointItem: <Point> point

⇒ coordonnées de ce point

L’objet retourné est une instance de Point, son abscisse et ordonnée s’obtiennent par le message #x et #y respectivement.

abscissa := pointA point x
Method on PointItem: point: aPoint

aPoint, couple de coordonnées

Modifie les coordonnées de l’item point tout en respectant ses contraintes propres. Pour un point libre, la nouvelle position sera exactement celle donnée en argument, pour un point contraint (sur ligne, intersection) cela sera sans effet.

pointA point: 5@2
Method on PointOnCurveItem: <Float> abscissa

⇒ abscisse curviligne de ce point sur sa ligne, elle est normalisée sur [0 ; 1]

Cette méthode est réservée au point libre sur une ligne

a := mobile abscissa
Method on PointOnCurveItem: abscissa: uneValeur

uneValeur, valeur décimale de [0 ; 1]

Modifie l’abscisse curviligne d’un point libre sur une ligne.

pointItem abscissa: 0.5
Method on PointItem: moveAt: unPoint

unPoint, couple de coordonnées (x,y) où déplacer le point

Déplace le point à la position donnée en argument.

point moveAt: 2@1

6.7.3 Ligne droite ou courbe

Ces messages sont à envoyer aux objets de type ligne comme droite, cercle, polygone, etc.

Method on CurveItem: <Float> abscissaOf: unPoint

⇒ une valeur de [0 ; 1], abscisse curviligne de unPoint sur la ligne

unPoint, un point (x,y)

a := curve abscissaOf: 2@1
Method on CurveItem: <Point> pointAt: uneValeur

⇒ coordonnées du point de la ligne d’abscisse curviligne uneValeur

uneValeur, un nombre de [0 ; 1]

myPoint := curve pointAt: 0.5.
^ myPoint x
Method on CurveItem: <Boolean> contains: unPoint

⇒ un booléen indiquant si unPoint est sur la ligne

unPoint, un point (x,y)

(curve contains: 0@1) ifTrue: [^ 'Yes!']

6.7.4 Droite, demi-droite, segment, vecteur

Ensemble de méthodes dédiées aux lignes droites.

Method on DirectionItem: <Point> origin

⇒ un point origine de cette ligne

D’un point de vue interne les droites sont graduées avec une origine. Cela permet de positionnement de points sur celle-ci.

segment origin
Method on DirectionItem: <Point> direction

⇒ un vecteur (x,y) indiquant la direction de la ligne

v := droite direction.
pente := v y / v x
Method on DirectionItem: <Point> normal

⇒ un vecteur unitaire normal à la direction de la ligne

n := vecteur normal

6.7.5 Segment

Ensemble de méthodes dédiées aux segments.

Method on SegmentItem: <Float> length

⇒ longueur du segment

segment := canvas segment: 0@0 to: 5@5.
l := segment length
Method on SegmentItem: <Point> extremity1

⇒ coordonnées de l’extrémité 1 du segment

segment := canvas segment: 0@0 to: 5@5.
p := segment extremity1.
Method on SegmentItem: <Point> extremity2

⇒ coordonnées de l’extrémité 2 du segment

segment := canvas segment: 0@0 to: 5@5.
p := segment extremity2
Method on SegmentItem: <Point> middle

⇒ coordonnées du milieu du segment

segment := canvas segment: 0@0 to: 5@5.
m := segment middle

6.7.6 Cercle, arc de cercle, polygone

Ensemble de méthodes réservées aux cercle, arc et polygone.

Method on CircleItem|ArcItem: <Point> center

⇒ point, centre du cercle ou de l’arc de cercle

c := arcAB center
Method on CircleItem|ArcItem: <Float> radius

⇒ rayon du cercle ou de l’arc de cercle

rayon := monCercle radius
Method on CircleItem|ArcItem|PolygonItem: <Float> length

⇒ longueur du cercle, de l’arc de cercle ou du polygone

perimetre := triangle length

6.7.7 Valeur

Method on ValueItem: <Float> valueItem

⇒ valeur de cet item

n1 := item2 valueItem.
n2 := item2 valueItem.
n1 + n2.
Method on ValueItem: valueItem: uneValeur

uneValeur, valeur décimale

Modifie la valeur d’un item de type valeur libre.

item valueItem: 5.2.
Method on ValueItem: position: unPoint

unPoint, point (x,y)

Déplace dans la figure l’item à la position unPoint.

maValeur position: 0.5@2.

6.7.8 Angle

Method on AngleItem: <Integer> degreeAngle

⇒ une mesure en degrés de cet angle orienté ou géométrique

angle1 := a1 degreeAngle.
Method on AngleItem: <Float> radianAngle

⇒ une mesure en radian de cet angle orienté ou géométrique

angle1 := a1 radianAngle.

Next: , Previous: , Up: Script Pharo   [Index]