piece Courbe

comment programmer des Courbes en gam1 :
Editer script ‘Courbes’
_-_-_-_-_-_ Courbes _-_-_ (normal DIRECT) _-_-_-_-_-_
G9xx1b: cc=noir	pts=_100;60!	_30;-30|		_-60;30|		_55;40|		!
G9xx1a: cc=bleu	pts=_200;60!	_30;-30|		_-60;30|		_55;40|		&	!
G9xx1c: cc=magenta	cf=111,111,200,0.4,Ss	pts=_300;60!	_30;-30|		_-60;30|		_55;40|		&	!
G9xx1d: cf=111,111,200,0.4,Ss		pts=_400;60!	_30;-30|		_-60;30|		_55;40|		!

G9xxA2: cc=rouge	pts=_100;150!	_-20;-20|	_-20;25|		_40;50|			_40;-50|			_-20;-25|		_-20;20|	#
G9xxA1: cf=rouge	pts=_220;150!	e9!_-20;-20|	e12!_-20;25|	e12!_40;50|		e12!_40;-50|		e12!_-20;-25|		e9!_-20;20|	&!
G9xxA3: cc=rose	cf=rouge	%grad2=50;0	gradCyc	\
G\	pts=_330;150!	e9!w9!_-20;-20|	e12!w6!_-20;25|	e12!w7!_40;50|		e12!w12!_40;-50|		e12!w6!_-20;-25|		e9!w9!_-20;20|	&!
//G9xxA4 : cc=rouge	cf=rose	pts=_440;150!	e9!w9!_-20;-20|	e12!w6!_-20;25|	e20!w7!_40;50|		e14!w20!_40;-50|		e12!w6!_-20;-25|		e9!w9!_-20;20|	&!
_-_-_-_-_-_-_-_-_-_-_
  Nota Bene :
  • les lignes finissent par un caractère ‘!’ :
    dans une séquence animée ou interactive, elles devraient finir par un caractère ‘#’ pour être recalculées . . .
  • noter les différences entre les Courbes avec et sans 'e**!' ou 'w**!' . . .
    ( e pour écart / w pour awwondi ;-)
  • le '&' final ferme la Courbe . . .
  • en phase d'élaboration du script , utiliser les commentaires '//' pour activer/désactiver une pièce conçue avec différentes alternatives . . .
    utiliser temporairement des couleurs nommées pour distinguer rapidement les différentes courbes affichées

 


Editer script ‘Courbe tirets’
_-_-_-_-_-_ Courbe tirets _-_-_ (normal DIRECT) _-_-_-_-_-_
G9xxT1: cc=magenta	cf=111,111,200,0.4,Ss	sk=5.5,CAP_ROUND,JOIN_ROUND,2,[9,7],20	pts=_150;140!	_60;-60|		_-120;60|		_110;80|		&!

G9xxT2 : cc=orange	cf=rose	sk=5.5,CAP_ROUND,JOIN_ROUND,4,[6,8],12	grad=HB	gradCyc	pts=_333;150!	e9!w9!_-20;-20|	e12!w6!_-20;25|	e20!w7!_40;50|		e14!w20!_40;-50|		e12!w6!_-20;-25|		e9!w9!_-20;20|	&!

_-_-_-_-_-_-_-_-_-_-_
  Nota Bene :
  • voir 'traits' ...

 

Editer script ‘Courbes Bang’
_-_-_-_-_-_ Courbes Bang _-_-_ (normal DIRECT) _-_-_-_-_-_

P0o: p=240;180	%setK=300	VU_N	!
P0B: p=%k35;%k15	!
P0C: p=%k60;%k30	!
P0D: p=%k40;%k27	!

T0e1:p=35;P0o.y+18	cc=bleu	sty=gras	d=14	t=écart 1°=	!
T0w1:p=64;P0o.y+36	cc=gris	sty=gras	d=12	t=w=	!
A01e:p=35;P0o.y+25	t=14;120	bo=-80;80	va=9	or=1	#
A01w:p=60;P0o.y+45	t=14;100	bo=-80;80	va=9	or=1	#

T0e2:p=175;P0o.y+18	cc=bleu	sty=gras	d=14	t=écart 2°=	!
T0w2:p=204;P0o.y+36	cc=gris	sty=gras	d=12	t=w=	!
A02e:p=175;P0o.y+25	t=14;120	bo=-80;80	va=9	or=1	#
A02w:p=200;P0o.y+45	t=14;100	bo=-80;80	va=9	or=1	#

T0e3:p=305;P0o.y+18	cc=bleu	sty=gras	d=14	t=écart 3°=	!
T0w3:p=334;P0o.y+36	cc=gris	sty=gras	d=12	t=w=	!
A03e:p=305;P0o.y+25	t=14;120	bo=-80;80	va=9	or=1	#
A03w:p=330;P0o.y+45	t=14;100	bo=-80;80	va=9	or=1	#

P0A: p=%k25;%k25	!

$V0e1: type=decimal(A01e.va,-9999,9999)	#
T0e1v:p=98;P0o.y+18	cc=bleu	sty=gras	d=14	t=$V0e1	#
$V0w1: type=decimal(A01w.va,-9999,9999)	#
T0w1v:p=84;P0o.y+36	cc=gris	sty=gras	d=12	t=$V0w1	#

D0AB:p1=((P0A.x+P0B.x)/2);((P0A.y+P0B.y)/2)	p2=0;0	#

E0A:  c=P0A	dm=9	cc=bleu	cf=100,200,100	!
B0A: frm=E0A	DRAG=gm1.glisser()	CLICK=gm1.faireP(P0A.x=E0A.p1.x+9,P0A.y=E0A.p1.y+9,ERR[STATUT])	!
E0B:  c=P0B	dm=9	cc=blanc	cf=111,211,111	!
B0B: frm=E0B	DRAG=gm1.glisser()	CLICK=gm1.faireP(P0B.x=E0B.p1.x+9,P0B.y=E0B.p1.y+9,P0A.x=E0A.p1.x+9,ERR[STATUT])	!
E0C:  c=P0C	dm=9	cc=rouge	cf=122,234,122	!
B0C: frm=E0C	DRAG=gm1.glisser()	CLICK=gm1.faireP(P0C.x=E0C.p1.x+9,P0C.y=E0C.p1.y+9,P0A.x=E0A.p1.x+9,ERR[STATUT])	!
E0D:  c=P0D	dm=9	cc=jaune	cf=134,234,134	!
B0D: frm=E0D	DRAG=gm1.glisser()	CLICK=gm1.faireP(P0D.x=E0D.p1.x+9,P0D.y=E0D.p1.y+9,P0A.x=E0A.p1.x+9,ERR[STATUT])	!

G0c: cc=magenta	pts=_P0A!	eA01e.va!wA01w.va!_P0B!	eA02e.va!wA02w.va!_P0C!	eA03e.va!wA03w.va!_P0D!	#

G0cf: cc=gris-sombre	cf=240,220,200,0.4Ss	pts=_P0A.x+P0o.x;P0A.y!	eA01e.va!wA01w.va!_P0B.x+P0o.x;P0B.y!	eA02e.va!wA02w.va!_P0C.x+P0o.x;P0C.y!	eA03e.va!wA03w.va!_P0D.x+P0o.x;P0D.y!	&#

$V0A1x: type=decimal(P0A.x)	#
$V0A1y: type=decimal(P0A.y)	#
$V001e: type=decimal(A01e.va,-999,999)	#
$V001w: type=decimal(A01w.va,-999,999)	#

$V0tx1: type=texte(G\,50)	#
$V0tx2: type=texte(G\,50)	#
$V0Anx: type=decimal(P0B.x)	#
$V0Any: type=decimal(P0B.y)	#

D1vBC: p1=(P0B.x-P0A.x);(P0B.y-P0A.y)	p2=(P0C.x-P0B.x);(P0C.y-P0B.y)	VU_N	#
D1vDE: p1=(P0D.x-P0C.x);(P0D.y-P0C.y)	p2=0;0	VU_N	#

CMD0002: # $V0tx1.Plus( e +$V001e +!w +$V001w +!_ +$V0Anx +; +$V0Any +!§§  ) ,	#
CMD0002b1: # $V0Anx.v=(D1vBC.p1.x)	#
CMD0002b3: # $V0Any.v=(D1vBC.p1.y)	#
CMD0002b5: # $V0tx2.Plus( e +$V001e +!w +$V001w +!_ +$V0Anx +; +$V0Any +|§§  ) ,	#
CMD001a: # $V001e.v=(A02e.va)	#
CMD001b: # $V001w.v=(A02w.va)	#
CMD001c: # $V0Anx.v=(P0C.x)	#
CMD001d: # $V0Any.v=(P0C.y)	#
CMD0012: # $V0tx1.Plus( e +$V001e +!w +$V001w +!_ +$V0Anx +; +$V0Any +!§§  ) ,	#

CMD0012b1: # $V0Anx.v=(D1vBC.p2.x)	#
CMD0012b3: # $V0Any.v=(D1vBC.p2.y)	#
CMD0012b5: # $V0tx2.Plus( e +$V001e +!w +$V001w +!_ +$V0Anx +; +$V0Any +|§§  ) ,	#

CMD002a: # $V001e.v=(A03e.va)	#
CMD002b: # $V001w.v=(A03w.va)	#
CMD002c: # $V0Anx.v=(P0D.x)	#
CMD002d: # $V0Any.v=(P0D.y)	#
CMD0022: # $V0tx1.Plus( e +$V001e +!w +$V001w +!_ +$V0Anx +; +$V0Any +!§§  ) ,	#

CMD0022b1: # $V0Anx.v=(D1vDE.p1.x)	#
CMD0022b3: # $V0Any.v=(D1vDE.p1.y)	#
CMD0022b5: # $V0tx2.Plus( e +$V001e +!w +$V001w +!_ +$V0Anx +; +$V0Any +|§§  ) ,	#

T2gs:p=9;160	cc=magenta	cf=jaune	d=12	t=G0f: cc=gris-sombre§§  pts=_ +$V0A1x +; +$V0A1y +!§§  §µ3
T2gsb:p=9;180	cc=rouge	cf=jaune	d=12	t=$V0tx1 +  &!	#

T2gsb2:p=9;%H97.5	cc=bleu	cf=blanc	d=12	t=$V0tx2 +  &!	#

_-_-_-_-_-_-_-_-_-_-_
  Nota Bene :
  • déplacer les ronds verts par "glisser" avec la souris
  • définir ensuite les écarts ('e') voulus en les ajustant avec les "Ascenceurs" (= curseurs)
    idem pour les 'w' - = lissage par anticipation- du segment suivant
  • ne pas oublier qu'il est possible de réajuster les bornes programmées en paramètres des "Ascenceurs" ...
  • la différence entre Courbe ouverte et Courbe fermée tient à la présence ou non du caractère '&' en fin de ligne définissant la Pièce G*
    (juste avant le '!' ou le '#' + retour à la ligne")
  • les segments de la courbe peuvent être définis en absolu : "enn!wnn!_xxx;yyy! "
    ou bien en relatif : "enn!wnn!_xxx;yyy| "
    ( caractère '|' en relatif au lieu de '!' en absolu pour la position du point du segment - par lequel la Courbe passera quels que soient les correctifs 'e" ou 'w') voir dans ce dessin le code auto-généré de la courbe :
    - en rouge sur fond jaune : - segments définis en absolu
    - en bleu sur fond blanc : - segments définis en relatif
  • La Courbe G* peut être définie en insérant des sauts de lignes dans sa programmation (pour une meilleure lisibilité) :
    - avant de passer à la ligne, après une tabulation (séparant des attributs), un anti-slash '\' indique que la définition de Courbe se poursuit sur la ligne suivante
    les caractères "G\", suivis d'une tabulation, indiquent la poursuite d'une définition de Courbe
  • dans ce script-gam1 :
    noter l'importance du placement de la ligne définissant P0A ....
    noter aussi l'effet des '!' ou bien '#' en fin de ligne
    ( Rappel : '#' pour que la ligne soit réévaluée lors des interactions/animations ; '!' : une seule évaluation initiale )
  • dans cet exemple, la Courbe a 3 segments ( plus éventuelle fermeture)
    Les Courbes peuvent avoir entre un segment et ... un nombre limité essentiellement par les capacités de la machine hôte ( mémoire + puissance de calcul)

voir aussi, dans ce site :
Forum >> Evolutions >> sujet : "Tracer des courbes à la souris"

. . .
...

Aucune note. Soyez le premier à attribuer une note !

utilitaire de bas de page pour gam1 version :       OK ? pour votre
script par page URL cookie
_-_-_-_-_-_ _-_-_-_-_-_

_-_-_-_-_-_-_-_-_-_-_
        ( × )

( en : cette page autre )
label =
Editer le script du label


Créer un site gratuit avec e-monsite - Signaler un contenu illicite sur ce site