L'option 'Dessiner'
From OFSET Wiki
Contents |
[edit] L'option dessiner (partie I)
Les objets de Squeak issus du magasin des accessoires (rectangles, ellipses, étoiles etc.) ont la double possibilité de faire évoluer leur apparence sur le plan de la forme et de la couleur en utilisant à la fois les commandes de leur visualiseur (programmation), ou les poignées de leur halo. Par contre, ils ne possèdent pas la poignée grise 'redessiner' qui leur permettrait d'aller subir des modifications sur l'espace dessin.
Les autres catégories d'objets , en particulier ceux qui ont été créés sur l'espace dessin, ont à leur disposition le même éventail de facilités, mais ils ne peuvent pas modifier leur couleur avec la poignée rose de leur halo et la catégorie 'couleur et bordure' de leur visualiseur est réduite à sa plus simple expression . Mais ils peuvent revenir sur l'espace dessin avec la poignée grise pour y subir de nombreuse modifications, y compris des changements de couleur.
De plus, dans la liste des propositions que contient le menu rouge de leur halo, on voit qu'ils ont une catégorie supplémentaire :
L'option 'dessiner'
Quand on ouvre les sous-menus de cette nouvelle catégorie, on s'aperçoit qu'ils permettent de compenser, sans revenir sur l'espace dessin, les déficiences du halo dans le domaine de la couleur, mais également qu'ils proposent des options originales concernant le déplacement de ces objets
Il y a donc, dans la catégorie 'Dessiner', des aides complémentaires apportées à la fois au dessin et à la programmation.
- Les propositions 2, 3 et 4 agissent en corrélation avec les scripts et modifient des trajectoires ou des orientations.
- Les propositions 5, 6, 7, et 8 apportent des modifications liées à la forme et à la couleur sans l'intervention des scripts.
- La proposition 1 renvoie l'objet sur l'écran Dessin.
[edit] Le déplacement des objets
La programmation par scripts permet (entre autres) de déplacer, sur l'écran, toutes les catégories d' objets. La commande 'objet avance de… avec ou sans 'objet tourne de… est à la base de nombreuses trajectoires, rectilignes ou circulaires Si les secondes ne posent pas de problèmes majeurs, les premières par contre vont être confrontées aux limites de l'écran.
- Ou bien l'OPTION BARRIERE sera cochée dans un des menus' MONDE ( voir 'options de la scène'), et l'objet restera prisonnier de l'écran en rebondissant contre ses limites .
- Ou bien, si l'option 'Barrière' a été neutralisée, il partira à l'extérieur sans rencontrer de limite.
Mais, en dehors de ces 2 possibilités , il en existe d'autres : L'OPTION ENROULE étudiée dans un autre chapitre et les options proposées par la catégorie 'dessiner' mais qui ne vont concerner que les objets possesseurs de la poignée 'redessiner'.
NOTE IMPORTANTE :
Quand un script est activé, les objets agissent en fonction des ordres qui leur sont donnés par les commandes de la programmation.
D'autres conduites, par contre, sont le résultat de dispositions prises en ouvrant des menus et en cochant des options qui y sont proposées. C'est le cas de l'option 'barrière' ou bien celui de l'horloge du script qui permet de choisir la vitesse de déplacement d'un objet.
AINSI, LA PROGRAMMATION S'APPUIE EGALEMENT SUR UNE SERIE D'INJONCTIONS QUI NE LAISSENT PAS DE TRACES ECRITES DANS LES SCRIPTS.
Dans ce chapitre nous allons être confrontés plusieurs fois à cette façon de procéder.
[edit] Les ressources de l'option dessiner
Nous allons examiner maintenant la première partie des propositions proposées par l'option 'DESSINER' et qui sont principalement des aides à la programmation.
[edit] Fixer le centre de rotation
Un objet qui n'est soumis qu'à la seule commande Tourne de ...x va tourner sur lui-même autour de son centre de rotation qui se confond avec son centre géométrique. Le rythme en sera plus ou moins accéléré suivant le nombre plus ou moins élevé en degrés de l'angle (tourne de 5, 15, 45 etc.).
Pour déplacer le centre de rotation, il existe déjà une première manœuvre, manuelle, qui consiste à le faire glisser à l'intérieur ou hors de l'objet, en le pointant avec la souris tout en tenant appuyée la touche des majuscules du clavier .
L'autre façon de procéder est de faire appel à cette option n°2.
Dès que cette proposition est sélectionnée, on voit apparaître une CROIX MOBILE que l'on fixe n'importe où SUR ou AUTOUR de l'objet.
Ce point devient alors son nouveau centre de rotation. A partir de ce moment, l'objet se déplace en décrivant un cercle plus ou moins large autour de ce point. Plus la valeur de l'angle est élevée et plus la vitesse de rotation est rapide. Le centre de rotation reste assujetti à l'objet qui l'emmène avec lui si on le déplace sur l'écran. Les coordonées x et y d'un objet sont en fait celles de son centre de rotation.
L'activation de l'horloge du script déclenche le mouvement.
Aucune indication, à l'intérieur du script n'indique que l'on a déplacé le centre de rotation. Cette option se substitue à la manœuvre manuelle décrite ci-dessus et la simplifie.
Démonstration de disques concentriques tournant avec des centres de rotation déplacés. Les petits points de couleur indiquent l'emplacement des différents centres de rotation après leur déplacement.
Projet disquesA2:
[edit] Rétablir le centre de rotation
Autorise la manœuvre inverse en ramenant le centre de direction à sa place primitive sans manipulation .
[edit] Fixer le type de rotation
se décline en 4 versions et permet des modifications de l'orientation et du déplacement des objets de façon assez complexe et agit lors de l'utilisation séparée ou conjuguée des 2 commandes Tourne de…, Avance de…. Dans un premier temps nous allons voir ce qui se passe si on utilise un script simple de retournement.
- tourner régulièrement
L'objet tourne sur lui-même de façon classique.
Cocher 'Tourner régulièrement' permet surtout de revenir à la normalité après avoir sélectionné un autre mode de pivotement.
[edit] Les effets miroir
Certains objets comme un cercle ou un carré, à double symétrie, n'ont ni droite ni gauche, ni haut ni bas décelables et leur pivotement dans n'importe quel sens n'influence pas la lecture que nous en faisons. D'autres formes ont des avants et des arrières, des hauts et des bas qui font que nous les percevons à l'endroit ou à l'envers suivant la façon dont ils se présentent. Les pivotements symétriques permettent de les placer ou déplacer avec cohérence ( le canard qui avance horizontalement puis pivote sans repartir la tête en bas).
- symétrie DROITE/GAUCHE – l'objet change son orientation latérale sans se déplacer
Dans ces 2 cas de figure, (le carré ou le canard) , on fait pivoter de 90° vers la droite, avec la souris, la flèche de direction pour la mettre à l'horizontale et déterminer ainsi la direction du déplacement., On construit ensuite un script qui demande à l'objet de tourner de 180°. Puis on sélectionne l'option 2 dans le sous-menu de 'fixer le type de rotation..
L'activation du script avec le point d'exclamation fait se retourner l'objet de 180° vers la droite ou la gauche sans le renverser vers le bas.
La capture d'écran avec Morph, des 2 positions, qui sont successives dans le temps, permet de les faire cohabiter et de créer, en les plaçant côte à côte, des formes symétriques .
- symétrie HAUT/BAS - l'objet change son orientation verticale sans se déplacer
Le processus est identique. Mais la flèche verte doit être orientée au Nord et l'objet basculera entre Haut et Bas.
Ici aussi les positions inversées sont successives, mais leur saisie par capture d'écran va permettre des effets miroir verticaux.
[edit] Les déplacements avec retournement
avec avance de... et tourne de...
Dans les cas précédents, on a utilisé un script de retournement, ponctuellement, comme un outil, pour provoquer un changement d'orientation statique de l'objet.
Nous allons maintenant utiliser un script de déplacement qui sera de type CONDITIONNEL et provoquera l' ALLER/RETOUR de l'objet d'un côté de l 'écran à l'autre.
TEST - Si l'objet avance jusqu'à la rencontre d'un obstacle (le bord de l'écran en position BARRIERES)
OUI - cela provoque une réorientation du déplacement (TOURNE de 180) et l'objet repart en sens inverse mais en position retournée.
Pour obtenir un retournement symétrique, on aura une écriture de script identique, mais il faudra ici aussi avoir recours à l'option Dessiner.
- Prenons l'exemple du déplacement droite/gauche.
L'écriture du script va rester identique quel que soit l'orientation choisie.
Il faut faire basculer la flèche de direction pour la placer à l'horizontale.
Choisir l'option 'Dessiner' du menu du visualiseur et le type de rotation ( cocher symétrie droite/ gauche ).
Puis activer l'horloge du script et l'objet se déplacera de la façon souhaitée, la tête tournée dans le sens du déplacement pour le canard.
[edit] La catégorie 'NE PAS TOURNER'
Cette sélection présente une particularité intéressante car pour un script conditionnel rédigé toujours de la même façon, l'objet va repartir en marche arrière sans pivotement d'aucune sorte.
EN RESUME, lors des situations de déplacements, si l'on observe les 4 cas proposés par CHOISIR UN TYPE DE ROTATION, on obtiens, pour un même script 4 sortes de déplacements :
1 – pivoter à 180° et repartir de façon inversée non symétrique.
2 – pivoter symétriquement Droite/Gauche.
3 – pivoter symétriquement Haut/Bas.
4 – avancer et repartir en marche arrière.
[edit] Les pivotements directionnels
Les exemples choisis ci-dessus font coïncider les directions Haut/Bas et Droite/Gauche de l'objet avec les axes verticaux ou horizontau, du plan de l'écran. Mais les objets peuvent être inclinés dans n'importe quel sens AVEC LE BOUTON BLEU FONCE du Halo et l'objet se dirigera dans des directions différentes tout en conservant son pivotement H/B ou D/G par rapport à ses axes qui ont basculé dans l 'oblique.(voir le trajet des libellules dans le projet LETANG)
.De la même façon on peut travailler avec des angles de retournement supérieurs ou inférieurs à 180°. Dans ce cas, c'est la trajectoire qui est affectée et non l'orientation de l'objet.
[edit] Quelques exemples
[edit] Réalisations symétriques fixes
[edit] A partir d'un document photo
Un document photo dont on a extrait une découpe avec 'saisir une partie de l'écran au lasso' de 'NOUVEAU MORPH et dont on a retourné le double avec un script et la sélection 'symétrie droite/gauche' (ne pas oublier d'orienter la flèche de direction pour qu'elle coïncide avec le sens de la rotation).
Rapprochement des 2 fragments dont on fait une interprétation sur l'écran dessin
[edit] A partir d'un graphisme réalisé sur l'écran
avec un objet en position 'CRAYON BAISSE' vrai.
Une capture d'écran rectangulaire transforme le graphisme en objet . Sur l'écran de la palette, son fond est rendu transparent .
Sur l'écran Monde il est dupliqué et la seconde moitié est retournée à l'aide du script conditionné pour la symétrie (GAUCHE/DROITE), - rapprochement pour créer un effet de masque – capture d'écran et mise en couleur sur l'espace dessin.
[edit] Les déplacements en mode symétrique
Les déplacement en mode symétrique des objets à l'intérieur d'un projet.
[edit] Le projet LETANG
...qui essaie de concilier plusieurs types de déplacements.
- Déplacement des centres de rotation (les ronds dans l'eau)
- Changements symétriques de direction avec déplacement (les libellules)
- Changement d'orientation sans déplacement (la grenouille)
- La grenouille réagit de façon sonore au passage de la libellule qui se déplace verticalement
Le projet ETANG :
[edit] Conclusion
Cette première partie a essayé de faire ressortir le rôle important que peuvent jouer les différentes propositions de l'option DESSINER dans les déplacements d' un objet à condition que cette option se trouve dans le Menu de son halo. Elles permettent de diversifier les types de déplacements de cet objet. Mais leur participation à la programmation est d'une autre nature. Elle est le résultat de choix qui se situent à l'intérieur des menus et sous-menus et ne figure pas dans le libellé du script lui-même.
A suivre une 2eme partie concernant les propositions restantes de l'option 'DESSINER'.









