samedi 3 janvier 2009

Bout de code #1 : [Alkwarel] Shape Creator

Dans le cadre d'Alkwarel (voir le blog de Xavier Gouchet), programme de conception artistique des algoristes, je suis en train de concevoir un créateur de formes, d'après l'idée de Stephane Trois Carrés.
L'idée est de pouvoir créer de façon intuitive et facile une forme, en se servant uniquement de la souris. On part d'un simple point, que l'on peut étirer en une ligne, qui est ensuite transformable en un polygone. On doit pouvoir également pouvoir gerer facilement des courbes, ainsi que concevoir des formes géométriques simples, comme des triangles équilatéraux, des cercles, des carrés, etc...
J'ai donc conçu cette première ébauche en Java (langage utilisé pour concevoir Alkwarel, pour son aspect multiplatformes).

Chaque bouton de la souris à un rôle bien spécifique : le gauche sert à utiliser l'action seléctionnée, le droit à ouvrir le menu de choix de l'affichage du polygone et des courbes de bezier associées, ainsi que les trois modes d'utilisations, et la molette a choisir parmis les actions de chaque mode.

Le mode le plus classique est le mode Transformation : il permet de tourner, d'agrandir et de déplacer la forme dans la fenêtre.

Pour pour manipuler notre forme, on utilise le mode Dessin : on peut ajouter un point sur un segment et le déplacer, déplacer un point déjà créé, et supprimer un point ou un ensemble de points. La selection se fait dans le premier cas sur le point le plus proche du segment le plus proche du point cliqué, sur le plus proche point du point cliqué pour le second cas et pour la suppression d'un point simple.

Enfin, pour créer des formes élémentaires (et bien plus encore !), j'ai conçu le mode Géométrie, comprenant deux actions :
  • l'action Régulier permet de créer un polygone régulier de n cotés, avec pour coté, le segment le plus proche du point cliqué, et orienté vers le point cliqué. On peut donc avoir un triangle équilatéral avec Régulier 3, un carré avec Régulier 4, un pentagone avec Régulier 5, etc...
  • l'action Demi Cercle permet, comme son nom l'indique, de créer un demi cercle, dont le diamètre est le segment est le plus proche du point cliqué, et orienté vers ce point. Cela permet, en l'utilisant des deux cotés d'un segment, d'obtenir un cercle.


Aucun commentaire:

Enregistrer un commentaire