yinyang

Apparence du symbole YinYang

Cette page va porter sur le travail des arcs et cercles et quoi de plus représentatif du dessin de ces courbes que le symbole utilisé en philosophie chinoise mais qui est devenu universel depuis.
Le symbole du Yin et du Yang, est connu maintenant dans le monde entier.
Le Yin, représenté en noir, évoque entre autres, le principe féminin, la lune, l'obscurité, la fraîcheur, la réceptivité, etc.
Le Yang quant à lui (laissant apparaître le fond blanc), représente entre autres le principe masculin, le soleil, la luminosité, la chaleur, l'élan, l'action, etc.

Le visuel bien connu est le suivant :

Données pour Yinyang

Les données de départ :
Cliquer le centre du cercle
Renseigner la valeur du rayon de ce cercle
Renseigner la valeur du rayon des petits cercles

Les données calculées :
Le centre du premier arc est
en X : le centre du cercle,
en Y : le centre du cercle plus le grand rayon divisé par deux.

Le point de départ du premier arc est
en X : le centre du cercle,
en Y : le centre du cercle plus le grand rayon (le point quadrant haut).

Le point d'arrivée du premier arc est le centre du cercle.

Le centre du deuxième arc est
en X : le centre du cercle
en Y : le centre du cercle moins le grand rayon divisé par deux.

Le point de départ du deuxième arc est
en X : le centre du cercle
en Y : le centre du cercle moins le grand rayon (le point quadrant bas)

Le point d'arrivée du deuxième arc est le centre du cercle.

Les centres des petits cercles sont les centres calculés des deux arcs.


J'ai prévu une vérification des valeurs des rayons car si l'utilisateur entre une valeur pour le petit rayon plus grande que le grand rayon divisé par 2.5 le dessin échouera, donc pour pallier cette erreur de saisie le petit rayon prendra la valeur du grand rayon divisé par quatre.

Il ne reste donc qu'à demander à l'utilisateur de cliquer les données départ, au programme de calculer les données nécessaires au dessin et... de lancer le dessin.


Allez!, on y va :


Je vais vous indiquer plusieurs façons pour, encore une fois, vérifier que le même problème peut se résoudre de plusieurs façons, plus ou moins alambiquées ou plus ou moins "programmatiquement correctes".


La première avec (command) et des entités "simples" arcs et cercles dont voici le code en image, les "commentaires" devraient vous permettre de comprendre "qui" fait "quoi" mais je vous rappelle l'existence du formulaire CONTACT en cas de question.


La deuxième toujours avec (command) mais avec des entités un peu plus complexes, à savoir des polylignes courbes.
Dans cette nouvelle version j'ai changé le nom de variables en les simplifiant, le code est plus beau je trouve.
La définition des variables est simplement raccourcie pour ne garder que les lettres représentatives, par exemple GrandRayon devient GR et CentreSymbole devient CS.


Pour visualiser que le dessin se fait bien avec des polylignes je force l'épaisseur de ces dernières en utilisant la variable "plinewid" qui gère l'épaisseur des polylignes à dessiner.

En voici l' image :

En fin de page vous trouverez les codes en texte copiable.


La troisième est un "remake" de la première.

L'idée de départ est de dessiner le symbole YinYang à une petite échelle centré sur le point 0 du dessin.
À chaque fois que le programme dessine une entité je la mets dans un jeu de sélection.
Aussitôt que c'est fait, je lance la commande "déplacer" (move) du jeu de sélection que je centre sur le curseur, un clic et les entités se "déposent" à l'écran, et là, en lançant un facteur d'échelle sur le jeu de sélection l'utilisateur à l'impression que le symbole vient de nulle part et se matérialise sous ses yeux en en choisissant la taille.
En "visuel" ça donne quelque chose de ce genre :

le code de YinYang3 produit une "animation"

Le code en image avec un surlignage jaune pour préciser ce qui est différent de la première version

Image du code de YinYang3

La quatrième est aussi avec des polylignes courbes mais un peu plus "programmatiquement correcte" car j'utilise (entmake) les définir.

Le code est un peu plus long mais il est tellement plus rapide à l'exécution que les lignes tapées en plus sont payées en retour par le dessin plus rapide et l'utilisation plus robuste, pas de (command), pas d'accrochages,... ça en vaut la peine.

Les polylignes sont dessinées en segments droits et ensuite on applique une valeur de bulge (de courbure) qui est définie par le code 42.
J'ai aussi déposé des commentaires et je pense que c'est suffisant, n'hésitez pas à me contacter si une incertitude doit être explicitée.

YinYang4.lsp

16 juin 2019