Cristallo.mac

Pour proposer des idées, ou simplement discuter

Cristallo.mac

Messagepar Alphonse Capriani » 14 Déc 2009 19:42

* * * * *


Le fichier Cristallo.mac est un fichier composé de macros permettant la réalisation de divers types de graphiques parmis. En voici une liste :

  • Frise périodiques (7 types)
  • Rosaces (2 types)
  • Pavages périodique du plan euclidien (17 types)
  • Pavages du plan euclidien par des polygones réguliers (11 types)
  • Pavages apériodiques (90 types)

L'archive contenant les fichiers Cristallo.mac, Cristallo.mod et la doc est disponible dans la rubrique "Macro à télécharger"...

* * * * *

Salut tout le monde!!!

Comme je le signalait dans un de mes récents post, je suis en train de mettre à jour le fichier Cristallo.mod. En particulier, je suis en train de tout réécrire pour que l'on puisse facilement créer des frises, rosaces, pavages périodique ou apériodique sans passer (forcément) par le clic-bouton. Pour ceux qui préfèrent le clic bouton, un fichier *.mod accompagnera Cristallo.mac et devrait s'utiliser comme l'actuel Cristallo.mod.

Je fais ca de manière progressive : je viens de finir les frises et je vais me taper la doc sur celle ci immédiatement (je ne prends pas le risque de repousser ca à la fin sinon il y a trop de chance pour que vous ne voyez jamais venir l'aide en question...)

Quand j'en aurai fini avec la doc des frises, je poste le fichier et j'attaque les rosaces, at ainsi de suite...

Pour vous rappeler ce que l'on peut obtenir avec Cristallo.mac, voici une petite image que je viens de créer avec ma mise à jour :

Image
Dernière édition par Alphonse Capriani le 31 Oct 2010 15:42, édité 9 fois.
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY

Re: Cristallo.mac

Messagepar Joffrey » 15 Déc 2009 14:19

Bonjour Alphonse,

J'ai essayé, il y a quelques semaines, de me servir de Cristallo.mod sans obtenir le résultat que je souhaitais (je crois que je me suis perdu dans les boutons) ; j'avais donc laissé de coté, et c'est pourquoi je suis très content de voir que tu le mets à jour. :D

Bon courage
L'homme en noir fuyait à travers le désert, et le Pistoléro le suivait ...
Joffrey
 
Messages: 286
Inscription: 16 Juil 2009 17:05
Localisation: Vichy

Re: Cristallo.mac

Messagepar Alphonse Capriani » 15 Déc 2009 15:32

Salut Joffrey!!

Joffrey a écrit:J'ai essayé, il y a quelques semaines, de me servir de Cristallo.mod sans obtenir le résultat que je souhaitais (je crois que je me suis perdu dans les boutons) ; j'avais donc laissé de coté, et c'est pourquoi je suis très content de voir que tu le mets à jour. :D


Et oui! J'ai testé le modèle en question il y a pas très longtemps et je me suis aperçu que la version actuelle n'était plus compatible avec TeXgraph1.94. TeXgraph a subit un paquet de changements depuis la création de Cristallo.mod et je n'ai jamais mis à jour le modèle.

Mais ne t'inquiète pas, je suis en train de corriger cette erreur et tu va à nouveau pouvoir regarder tout ca de plus près. D'autant que ca fait de joli dessin : Patrick les a même repris pour l'image d'en tête du forum (pavage de polygones de type (12, 6, 4))

Je rédige le pdf pour les frises dans l'après midi et je poste le fichier dès que j'ai fini pour que vous puissiez le tester...
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY

Re: Cristallo.mac

Messagepar Alphonse Capriani » 18 Déc 2009 17:45

Voila!!! C'est fait!!!

Je viens de poster la première version de Cristallo.mac dans le post initial de ce fil.

Pour l'instant, seules les frises sont faisables, le reste va bientôt venir...
Surtout, testez le fichier dès maintenant et critiquez le : ca m'évitera de devoir faire toutes les corrections pour la version finale.

A priori, je n'ai pas grand chose à ajouter dans le fichier pour les frise : le seul truc qui manque, c'est une variable pour ajuster la fenêtre graphique. Je vais rajouter ca très bientot.
Si vous avez des suggestions/améliorations à proposer, ne pas hésiter non plus...
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY

Re: Cristallo.mac

Messagepar Alphonse Capriani » 18 Déc 2009 18:31

Et hop : un petit exemple de noël :

Image


Et voici le code pour réaliser cette frise :

Code: Tout sélectionner
[
Width:=thicklines, Color:=forestgreen,
DrawFrise("fm2",
 [
 Vecteur1:=2.5, PtRef:=0.3+0.25*i,
 Motif:=Seq((-(0.25*k)/20+0.25)*(-1)^k+(k/20)*i, k, 0, 20),
 MotifFerme:=0,
 MotifLineStyle:=solid, MotifWidth:=thicklines, MotifColor:=forestgreen,
 BackgroundFillStyle:=full,
 BordLineStyle:=solid, BordEcart:=0.1
 ]),
DrawFrise("fm2",
 [
 Motif:=[0, -0.15*i],
 MotifWidth:=mm/2, MotifColor:=brown,
 BackgroundFillStyle:=none, BordLineStyle:=noline
 ])
]
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY

Re: Cristallo.mac

Messagepar P.Fradin » 18 Déc 2009 18:46

Salut Alphonse,

Je viens de télécharger ton fichier, mais je ne trouve pas le .mod ;) Peut-être as-tu prévu le .mod pour après avec les boutons?

Dans les premières lignes de la macro DrawFrise il y a cette instructions:

Code: Tout sélectionner
   if Nops(%1)>1 then dessin:=%1, NewMac("FriseType", StrArgs(2)), $aux:=%3
      else $aux:=%2, dessin:=Motif, NewMac("FriseType", StrArgs(1))
   fi,


Il y a aura un bug lorsque le premier argument sera une liste à un seul point car les options ne seront pas évaluées. Je te propose ceci:

Code: Tout sélectionner
       if %1=Nil then  $aux:=%2, dessin:=Motif, NewMac("FriseType", StrArgs(1))
       else
              NewMac("FriseType", StrArgs(2)), $aux:=%3,
         if Nops(%1)>1 then dessin:=%1 else  dessin:=Motif fi
   fi,


Je suppose aussi qu'il manque un dollar devant le premier mot "dessin" non?
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1837
Inscription: 29 Oct 2008 15:04

Re: Cristallo.mac

Messagepar Alphonse Capriani » 18 Déc 2009 19:12

P.Fradin a écrit:Salut Alphonse,
Salut salut!!!

P.Fradin a écrit:Je viens de télécharger ton fichier, mais je ne trouve pas le .mod ;) Peut-être as-tu prévu le .mod pour après avec les boutons?
En effet!!
Je compte reprendre le fichier *.mod à la fin quand tout sera terminé et reprendre le même fonctionnement que pour le fichier précédent (avec des boutons partout...)

P.Fradin a écrit:Dans les premières lignes de la macro DrawFrise il y a cette instructions:
[...]
Il y a aura un bug lorsque le premier argument sera une liste à un seul point car les options ne seront pas évaluées. Je te propose ceci:
[...]
Oui tou a fait : en fait, vu qu'une ligne polygonale à un élément ne représente pas beaucoup d'intéret, je me suis dit que ca posait pas de soucis. Cela dit, si l'utilisateur le fait quand même, il y aura bien un souci.
Ta solution me parrait bien mieux en effet : je vais faire la modification.

Tiens! A ce sujet : pour une "ligne polygonale" à un élément, on pourrait être tenté de considéré que ca va nous afficher un point (ce qui n'est pas le cas) Si c'était le cas (alors, les attributs serait définis par DotStyle, DotScale, ...) ca m'arrangerait beaucoup car rien est prévu (pour l'instant) pour insérer des points dans une frise. Tu pense que C'est jouable un truc dans ce genre?

P.Fradin a écrit:Je suppose aussi qu'il manque un dollar devant le premier mot "dessin" non?
OOOoooops :roll:
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY

Re: Cristallo.mac

Messagepar P.Fradin » 18 Déc 2009 19:12

Re,

Je me demande pourquoi tu n'as pas opté pour la méthode suivante:

1) Motif() serait une macro de dessin, dans le carré de côte [0;1] et faite par l'utilisateur, et non pas une ligne polygonale.

2) La macro DrawFrise() se contente alors de:

->dessiner l'arrière-plan
-> faire une boucle pour remplir la frise en calculant à chaque étape la matrice de transformation et appelant la macro de dessin Motif()

Cela permet de dessiner tout ce qu'on veut dans le motif, avec les couleurs que l'on veut, ...etc, et les macros qui construisent les pavages ne s'occupent que l'arrière-plan et des matrices de transformations.

Tu me suis?
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1837
Inscription: 29 Oct 2008 15:04

Re: Cristallo.mac

Messagepar Alphonse Capriani » 18 Déc 2009 19:21

Bien sur que je te suis : en fait, c'est la méthode que tu avais utilisé dans la précédente version, mais elle ne me plait pas trop. Je m'explique :

Le souci avec ta méthode c'est que suite à une transformation, tu peux avoir des chevauchements de motifs qui modifient radicalement le type de frise construit. Par exemple, si tu construit une frise de type f2 (frise avec seulement des symétries centrales), si il y a des recouvrement de motifs, alors plus aucune symétrie centrale ne sera présente (il me faudrait une illustration pour bien me faire comprendre :roll:)

Avec ma méthode, on peut ajouter une seule ligne à la fois, et celle ci est dessinée en deux fois : d'abord le remplissage, puis la ligne elle même. Ainsi, en cas de chevauchement de motifs, les symétries sont préservées et on obtient bien une frise du type voulu. Tu vois ce que je veux dire?

Si je ne me trompe pas, avec ta méthode on peut pas vraiment résoudre ce problème, si?
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY

Re: Cristallo.mac

Messagepar P.Fradin » 18 Déc 2009 20:12

Je comprends tout à fait ton point de vue. Avec ma méthode le motif de l'utilisateur est en réalité le demi-motif dans le cas de la frise f2, c'est à l'utilisateur de savoir ce qu'il fait, s'il propose un motif de frise f2 qui n'a pas d'axe de symétrie c'est qu'il ne sait pas ce qu'il fait, mais s'il sait ce qu'il fait il trouvera plus logique de ne dessiner que la moitié.

Un exemple, voici la macro motif():

Code: Tout sélectionner
{ motif dans le carré [0;1]X[0;1] }
[
SaveAttr(),
FillStyle:=full, FillColor:=yellow,
Cercle(0.5+i/2,0.45),
FillStyle:=none,
Color:=blue, Point(0.4+i*0.7, 0.4+i*0.3),
Color:=red,
Arc(0.65+0.3*i, i*0.5+0.5,0.65+0.7*i,0.25,1),
RestoreAttr()
]       


Et voici le dessin de la frise elle-même sans arrière-plan:

Code: Tout sélectionner
{frise f2}
[V1:=2, V2:=i,
kmin:=-3, kmax:=2,
for k from kmin to kmax do
  SetMatrix([ k*V1,V1/2,V2]), motif(), {demi-motif en réalité}
  SetMatrix([ (k+1)*V1,-V1/2,V2]), motif() { l'autre demi-motif}
od,
IdMatrix()
]


frisef2.png
frisef2.png (5.57 Kio) Consulté 19741 fois
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1837
Inscription: 29 Oct 2008 15:04

Re: Cristallo.mac

Messagepar Alphonse Capriani » 21 Déc 2009 15:35

Salut Patrick!!

Alors : j'ai plusieurs remarques concernant ton précédent post.

P.Fradin a écrit:Je comprends tout à fait ton point de vue. Avec ma méthode le motif de l'utilisateur est en réalité le demi-motif dans le cas de la frise f2, c'est à l'utilisateur de savoir ce qu'il fait, s'il propose un motif de frise f2 qui n'a pas d'axe de symétrie c'est qu'il ne sait pas ce qu'il fait, mais s'il sait ce qu'il fait il trouvera plus logique de ne dessiner que la moitié.
Ooooh làààà! Ca m'a l'air bien compliqué comme manière de penser.
Je suis pas sur d'avoir bien compris ce que tu entends par demi-motif. Quoi qu'il en soit, l'idée de Cristallo.mac (pour les frises, mais l'idée reste la même pour les rosace et les pavages périodiques), c'est au contraire de créer une frise à partir d'un motif sans avoir aucun a priori sur ses symétries. Créer la moitié d'un motif en tenant compte de ses symétries doit s'avérer assez complexe. Dans le cas des frise, ca peut être gérable, mais quand pour les pavages on sera en présence par exemple de rotation d'angle pi/3 couplées à des réflexions ou des glissement, il faudra faire comment? Créer un sixième de motif?

Certes ma méthode est restrictive, mais elle m'a l'air quand même beaucoup plus simple et intuitive que ce que tu propse (mais j'ai peut être mal compris ce que tu voulais dire...)

Concernant l'exemple que tu as posté, je le trouve assez maladroit ( je pense d'ailleurs que c'est une des raisons pour laquelle je n'ai pas bien compris ta notion de demi-motif). En fait, tu crées un frise de type f2 dont le motif de base possède déja une symétrie ce qui au final permet d'obtenir une frise de type f2m.
Enfin, c'est un détail!!
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY

Re: Cristallo.mac

Messagepar P.Fradin » 21 Déc 2009 16:24

Ok, bon. C'était juste une idée. Ta méthode ira très bien.
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1837
Inscription: 29 Oct 2008 15:04

Re: Cristallo.mac

Messagepar Alphonse Capriani » 21 Déc 2009 16:34

Je te sens déçu!!! :mrgreen:

Le truc, c'est que, une fois encore, la méthode la plus appropriée dépend exactement de ce que l'on veut faire. Ta méthode me parrait incontournable si l'on veut réaliser une frise dont le motif de base est complexe (ie composé de plusieurs objets graphiques de types différents : lignes, remplissage, points, ...) Ma méthode permet simplement des frises avec des lignes polygonales simples. L'avantage, c'est que l'utilisation du fichier est plus simple et intuitive, mais bien sur, on est limité sur les dessin que l'on veut mettre dans sa frise.

Je pense que je vais reprendre ton idée quand je ferai le *.mod. L'idée serait alors de créer une nouvelle variable globale (punaise : encore une :roll: ) que j'appellerai mode et qui prendrait la valeur de 0 (par défaut!!!) pour une frise avec ma conception des frises, pavages, ... et 1 pour des frises construites avec ta méthode.

Je pense que c'est pas une mauvaise idée car pour moi les deux méthodes sont complémentaires.
T'en penses quoi?
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY

Re: Cristallo.mac

Messagepar P.Fradin » 21 Déc 2009 17:24

Non, non Alphonse, si tu préfères rester sur ton idée il n'y a aucun problème je t'assure!
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1837
Inscription: 29 Oct 2008 15:04

Re: Cristallo.mac

Messagepar Alphonse Capriani » 21 Déc 2009 17:26

:lol: :lol: Je garde quand même cette histoire de mode dans la tête!!!

Je vais d'abord réviser complètement "a ma manière" le fichier Cristallo.mod, et j'étudierai ca ensuite...
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY

Re: Cristallo.mac

Messagepar Alphonse Capriani » 02 Jan 2010 03:05

Bonjour tout le monde!!

Je passe juste pour souhaiter aux utilisateurs de TeXgraph (et surtout pas aux autres!! :evil: ) une bonne et heureuse année 2010. Je vous souhaite également pleins de jolis graphiques avec Texgraph et notammment de belles frises, rosaces et autres pavages (périodiques ou non).

A ce sujet, j'ai pas avancé d'un iota : j'ai des soucis avec un tueur à gages (enfoiré de Richard Kuklinski!!!)

J'espère poster la suite de Cristallo.mac dans le courant de la semaine prochaine (les rosaces). Affaire à suivre...
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY

Re: Cristallo.mac

Messagepar Alphonse Capriani » 18 Jan 2010 17:48

Bon : je sais! J'ai deux semaine de retard sur mes prévisions... :roll:

Mais l'attente se termine, et je poste maintenant une mise à jour de Cristallo.mac. En plus des frises périodiques, on peut maintenant créer des rosaces.
Une nouvelle macro graphique s'est donc ajouté à DrawFrise : il s'agit de la macro DrawRosace qui possède la syntaxe suivante :

DrawRosace([Motif], <Type>, <n>, [Options])


Le premier argument est optionnel et désigne le motif de base. S'il est omis, alors le motif de base utilisé sera celui stocké dans la variable globale Motif.
Le second argument obligatoire désigne le type de rosace. Il s'agit d'une chaine de caractère qui peut être égale à "rn" ou à "rnm".
Le troisième argument obligatoire désigne l'"ordre" de la rosace c'est à dir le nombre de rotation que l'on va appliquer au motif de base.
Enfin, le dernier argument qui est optionnel est une liste d'option qui permettent comme pour les frises de gérer l'apparence de la rosace.

La mise à jour du fichier est disponible dans le post initial. La doc n'est pas terminée, mais j'y travaille.

Voici deux exemples de rosaces réalisées grace à cristallo.mac :

ImageImage


Et voici les codes respctifs de ces deux dessins (je m'excuse par avance : il ne sont pas très propres!! Je vais les retoucher pour qu'ils soient plus clairs)
Code: Tout sélectionner
[
$L':=[1.95866233343259+0.21388421626761*i,1.72768279584125+1.41339258570224*i,
0.75350484484806+1.50563836796209*i,0.80761290481314+1.79328951146454*i,
0.48855064064264+1.99225452588871*i],
AjusterFenetre:=1,
PtRef:=0.25+0.5*i, PtRefDotScale:=1+i,
EncadrerMotif:=1,
CadreLineStyle:=dotted, CadreColor:=black, CadreWidth:=Thicklines,
BordColor:=dimgray, BordWidth:=mm,
BackgroundFillColor:=cornflowerblue,
CadreFillStyle:=full,
AfficherPtRef:=1,
AfficherAxesSym:=1, AxesSymEcart:=0.3,
MotifFillStyle:=none,
MotifColor:=lavender, MotifWidth:=Thicklines,
Motif:=Get(Spline(L')),
DrawRosace("rn", k),
]


Code: Tout sélectionner
[
$L':=[1.62879712227732+1.23502200376242*i,0.06603535823524+0.2912307921797*i,
1.97976165404543+0.34914372907951*i,0.57193683600053+1.56321904063225*i,
1.16701935837045+1.96911530848593*i],
AjusterFenetre:=1,
PtRef:=-1-i, PtRefDotScale:=2.25*(1+i),
Vecteur1:=1,
EncadrerMotif:=1,
CadreLineStyle:=dotted, CadreColor:=black, CadreWidth:=Thicklines,
BordColor:=mediumorchid, BordWidth:=mm,
BackgroundFillColor:=mistyrose,
CadreFillStyle:=full,
AfficherPtRef:=1,
AfficherAxesSym:=1, AxesSymEcart:=0.2,
AxesSymLineStyle:=dashed, AxesSymColor:=crimson, AxesSymWidth:=thinlines,
MotifFillStyle:=none,
MotifColor:=mediumvioletred, MotifWidth:=Thicklines,
Motif:=Get(Spline(L')),
DrawRosace("rnm", k)
]


Toute suggestion/critique est la bienvenue...
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY

Re: Cristallo.mac

Messagepar P.Fradin » 18 Jan 2010 22:10

C'est toujours aussi beau! Surtout ne t'arrête pas!

PS: sauf qu' lieu de lettre k dans tes exemples, tu aurais pu mettre la valeur 9! J'ai mis un moment avant de comprendre pourquoi cela ne marchait pas chez moi :lol:
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1837
Inscription: 29 Oct 2008 15:04

Re: Cristallo.mac

Messagepar Alphonse Capriani » 19 Jan 2010 16:11

P.Fradin a écrit:C'est toujours aussi beau! Surtout ne t'arrête pas!

Merci merci!!

J'ai pas l'intention de m'arrêter en si bon chemin. Je viens d'attaquer les pavages périodiques (et là, ya du boulot) ce qui promet de beau graphique dans un avenir proche... Et bien sur, je continuerai ensuite avec les pavages du plan par des polygones réguliers et par des pavages apériodiques.

Concernant ces derniers, il n'y en avait que trois types dans la première version de Cristallo.mod. Je pense que ce nombre va un peu augmenter dans cette nouvelle version. Affaire à suivre...

P.Fradin a écrit:PS: sauf qu' lieu de lettre k dans tes exemples, tu aurais pu mettre la valeur 9! J'ai mis un moment avant de comprendre pourquoi cela ne marchait pas chez moi :lol:

Ah ouais!! Tu as raison!!!

En fait, j'ai fait un bête copier collé de ces deux éléments graphiques et il se trouve que ceux ci dépendait d'une variable globale k (ce qui me permettait facilement de changer l'ordre de ces rosaces sans rentrer dans le code du dessin)

Désolé de t'avoir fait perdre ton temps!!!
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY

Re: Cristallo.mac

Messagepar Alphonse Capriani » 25 Jan 2010 16:26

Salut tout le monde!!

Je viens de passer mon dimanche à terminer la partie pavage périodique du plan du fichier Cristallo.mac. Une mise à jour de ce fichier est disponible dans le post initial de ce fil.

Bon : moins de bla bla, plus d'action! Voici quelques exemples réalisé avec cette dernière version de Cristallo.mac :

ImageImage
ImageImage
Image


Et voici les 5 codes correspondant à ces images :
Code: Tout sélectionner
[
L:=[0.24403566704131+0.51734962384216*i,0.07260257517918+0.74014135170728*i,
0.26446150057017+0.22334954934194*i,0.05959346075542+0.36439016507938*i,
0.44506878312677+0.64695270452648*i],
Motif:=Get(Spline(L)),
MotifWidth:=Thicklines,
Vecteur1:=2-0.25*i, Vecteur2:=1.5+0.5*i,
AfficherAxesSym:=1, AfficherAxesGliss:=1,
AfficherCentres1:=1, AfficherCentres3:=1,
DrawPavPeriodique("p4g")
]

Code: Tout sélectionner
[
LineCap:=round,
$L:=[0.04181902320124+0.26948870276101*i,0.65481628966517+0.75631861714646*i,
0.777438840596+0.57585947820916*i,0.1169035937637+0.94472488877363*i,
0.01516230148263+0.91282058949582*i],
Motif:=Get(Spline(L)),
MotifWidth:=Thicklines, MotifColor:=lightcyan,
AfficherReseau:=1,
BackgroundFillColor:=midnightblue,
PtRef:=1+i,
Vecteur1:=2.5-0.25*i, Vecteur2:=1.5+0.5*i,
DrawPavPeriodique("p6m")
]

Code: Tout sélectionner
[
$L:=[0.14630881394259+0.33111259131692*i,0.69526124815456+0.20937960059382*i,
0.80749000795185+0.14622912486083*i,0.21345421811565+0.1588609626051*i,
0.14699709182605+1.64187740115449*i,0.87505203997716+0.82047779299318*i],
Motif:=Get(Spline(L)),
Vecteur1:=3,
BackgroundFillColor:=peachpuff,
MotifWidth:=Thicklines, MotifColor:=crimson,
DrawPavPeriodique("p6")
]

Code: Tout sélectionner
[
$L:=[0.62517490726895+0.84743989771232*i,0.87375012761913+0.60388846695423*i,
0.55316176521591+0.63812485313974*i,0.9891606667079+0.49895128351636*i,
1.71307080425322+1.96413448033854*i,0.78929002769291+0.66275404440239*i],
Motif:=Get(Spline(L)),
Vecteur1:=2.5-0.5*i, Vecteur2:=1+i,
BackgroundFillColor:=black,
MotifWidth:=thinlines, MotifColor:=white,
DrawPavPeriodique("cmm")
]

Code: Tout sélectionner
[
LineCap:=round,
$L:=[0.71781381359323+0.08583150804042*i,0.04579688375815+0.63728251424618*i,
0.74741506623104+0.6515776827*i,0.19279738981276+0.61353678256273*i,
0.03596178349107+1.4551524175331*i,1.18546331906691+0.46659408928826*i],
Motif:=Get(Spline(L)),
PtRef:=-0.25-1.25*i,
Vecteur1:=2.5-0.5*i, Vecteur2:=1+i,
AfficherVecteur1:=0, AfficherVecteur2:=0,
BackgroundFillColor:=gold,
MotifWidth:=Thicklines, MotifColor:=orange,
DrawPavPeriodique("p4g")
]


Encore une fois, j'attend des critiques et des suggestions à ce sujet. Bon : je suis conscient que sans la doc (qui va arriver prochainement) ca va pas être facile de tester cette dernière version, mais ce serait cool si quelqu'un pouvait regarder ca de plus près...
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY

Re: Cristallo.mac

Messagepar Alphonse Capriani » 25 Jan 2010 17:05

Je reviens plus en détail sur les nouveautés du fichier.

La macro pour créer un pavage périodique est DrawPavPeriodique et possède la syntaxe suivante :

DrawPavPeriodique([Motif], <Type>, [Options])


Le premier argument est optionnel. Il s'agit d'une liste de points définissant le motif de base du pavage. Si cet argument est omis, alors le motif de base utilisé sera celui stocké dans la variable globale Motif.
Le second argument qui lui est obligatoire désigne le type de pavage périodique que l'on souhaite dessiner. Je rappelle qu'il existe 17 types de pavages périodiques différents. Les valeurs que peuvent prendre ce deuxième arguments sont les suivantes :
  • "p1"
  • "p2"
  • "pm"
  • "pg"
  • "pmm"
  • "pmg"
  • "pgg"
  • "cm"
  • "cmm"
  • "p4"
  • "p4m"
  • "p4g"
  • "p3"
  • "p3m1"
  • "p31m"
  • "p6"
  • "p6m"

Les options utilisables sont de manière globales les même que pour les frises périodiques. Bien évidemment, de nouvelles variables globales se sont malgré tout ajouté (nottament pour les différents centres de rotations, le deuxième vecteur générateur ou le réseau du pavage).
Tout ca sera expliqué dans la doc qui devrait arriver prochainement. Si vous êtes impatient, il faudra regarder dans le fichier Cristallo.mac pour pouvoir utiliser l'ensemble des variables globales disponibles...
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY

Re: Cristallo.mac

Messagepar P.Fradin » 25 Jan 2010 22:19

Salut Alphonse,

Je viens de découvrir tes deux posts, et tes graphiques sont vraiment superbes! Je trouve cela assez fascinant. D'autre part ta nomenclature pour nommer les macros est tout à fait dans l'esprit de ce que je propose dans le fil sur draw2d.mac, mais l'idéal serait: DrawMachin( <données>, [options]). Par exemple:

DrawPavPeriodique(<Type>, [Options])


et mettre Motif:=... dans les options. De même:

DrawFrise(<Type>, [Options]) et DrawRosace(<Type>, [Options])


C'est possible? Ce serait une très bonne chose.
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1837
Inscription: 29 Oct 2008 15:04

Re: Cristallo.mac

Messagepar Alphonse Capriani » 26 Jan 2010 16:13

Salut Patrick!!

P.Fradin a écrit:Je viens de découvrir tes deux posts, et tes graphiques sont vraiment superbes! Je trouve cela assez fascinant. D'autre part ta nomenclature pour nommer les macros est tout à fait dans l'esprit de ce que je propose dans le fil sur draw2d.mac
Merci merci!!

Concernant la nomenclature, je doit admettre que j'ai pas fait exprès!!! Mais c'est vrai que ca tombe plutôt bien.

P.Fradin a écrit:mais l'idéal serait: DrawMachin( <données>, [options]). Par exemple:

DrawPavPeriodique(<Type>, [Options])



et mettre Motif:=... dans les options. De même:

DrawFrise(<Type>, [Options]) et DrawRosace(<Type>, [Options])



C'est possible? Ce serait une très bonne chose.

A priori, c'est possible tout ca. Néanmoins, il y a un détail qui me chagrine. Dans la syntaxe actuelle, le premier argument est une liste de point optionnelle qui, si elle est présente, définit le motif de base. Dans le cas inverse, c'est la variable Motif qui définira le motif de base. Ce détail permet à l'utilisateur de donner un motif de base sans modifier celui qui est préalablement stocké dans la variable Motif.

Mais bon : je sais comment modifier mes macros pour conserver ce fonctionnement tout en ayant une syntaxe comme tru le propose. Je modifie ca ce soir et je poste ca demain...

Ensuite, j'attaque la doc et les pavages de polygones réguliers ainsi que les pavages apériodiques...
(Et il y a aussi le fichier *.mod avec tout les boutons comme dans la précédente version : ca me fait encore pas mal de boulot...)
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY

Re: Cristallo.mac

Messagepar P.Fradin » 26 Jan 2010 16:33

Bonjour Alphonse,

Pour cette histoire de motif tu peux la contourner ainsi: tu crées une variable globale MotifBase (en plus de la variable Motif) qui contient le motif de base, puis dans les macros de dessins, avant d'évaluer les options, tu fais l'affectation: Motif:= MotifBase. Ainsi tu as le fonctionnement actuel mais Motif est devienu une option.
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1837
Inscription: 29 Oct 2008 15:04

Re: Cristallo.mac

Messagepar Alphonse Capriani » 28 Jan 2010 16:10

Salut Patrick!! (Punaise : ca fait au moins 3 fois que je te dis bonjour en 10 minutes!!! :lol:)

Pour ta solution, c'est à ca que j'avais pensé. Mais en fait, j'ai une meilleure idée, mais plus compliquée et je suis pas sur qu'au final ce soit si intéressant que ca. J'aimerait avoir ton avis la dessus.

J'avais pensé à un système du genre "SaveAttr() / RestoreAttr()" avec l'ensemble de mes variables globales. Autrement dit, si je modifie les variables globales dans l'appele de DrawFrise (par exemple) alors a la fin de l'execution de cette macro, les variables globales retrouvent leur valeurs initiales. Si l'on veut modifier réellement ces variables, on modifie leurs valeurs à l'extérieur de ces macros.

Le problème, je pense, c'est que ca implique la création d'un double de chacune de ces variables pour qu'on stocke la valeurs de ces variables avant appel de la fonction. Vu que mon fichier possède déja un paquet de variables (et ca va un peu augmenter d'ici la fin du fichier) ca risque d'être un peu compliqué (et long).

T'en pense quoi? Tu connaitrait un moyen éventuellemnt pour faire ce genre de truc sans avoir à définir toutes ces variables?
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY

Suivant

Revenir vers Propositions - Discussions

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité

cron