graduer un segment
3 participants
Page 2 sur 2
Page 2 sur 2 • 1, 2
Re: graduer un segment
Bonjour Jeoffrey,
C'est superbe! Si tu veux tu peux créer un post dans la rubrique Animations pour y mettre celles-ci avec leur source. De mon côté je vais modifier le compas et le crayon en conséquence.
C'est superbe! Si tu veux tu peux créer un post dans la rubrique Animations pour y mettre celles-ci avec leur source. De mon côté je vais modifier le compas et le crayon en conséquence.
Re: graduer un segment
J'ai oublié de préciser pour les couleurs je n'avais pas fait de tableau dans le fichier pdf car il était déjà dans l'aide html (F1 dans l'interface graphique puis section couleurs).
Mais pour ceux qui tapent le code TeXgraph directement dans un source LaTeX, c'est bien d'avoir les références des couleurs sur papier, et donc merci pour eux!
Mais pour ceux qui tapent le code TeXgraph directement dans un source LaTeX, c'est bien d'avoir les références des couleurs sur papier, et donc merci pour eux!
Re: graduer un segment
Effectivement, je n'avais pas cherché du côté de l'aide.
Je suis rassuré tu n'avais pas oublié les couleurs
Joffrey
Je suis rassuré tu n'avais pas oublié les couleurs
Joffrey
Re: graduer un segment
Voilà j'ai fait les quelques modifications:
L'ancienne syntaxe reste valable. Ce qui change:
pour le compas: il y a une option en plus posmine qui est à Nil par défaut et qui représente l'affixe de la mine, lorqu'elle vaut Nil les options unit dir et long sont prises en compte, lorsque posmine<>Nl les options unit, dir et long ne sont pas prises en compte.
pour le crayon: il y a une option en plus angle qui est à Nil par défaut et qui représente l'angle en degrés que fait le crayon par rapport à la verticale Oy, lorque angle=Nil l'option dir est prise en compte, lorsque angle=Nil l'option dir est prise en compte.
- Code:
200#
Mac
compas = [ $dir:=1, $unit:=1, $long:=5, $mine:=black, $posmine:=Nil, {valeurs par defaut des options}
SaveAttr(), {sauvegarde des paramètres graphiques}
$x:=Eval(String(%2)), {on évalue les options (3ieme argument)}
LineStyle:=solid,Color:=black, Width:=2, FillStyle:=none,
$A:=RealCoord(%1),{point de depart}
if posmine<>Nil then
$B:= RealCoord(posmine), dir:=B-A, long:=abs(dir), unit:=1
else $dir:=RealCoordV(dir)
fi,
SetMatrix([0,1/Xscale,i/Yscale]),
$L:=long, {longueur en cm}
$cm:=unit*dir/abs(dir), {vecteur unité sur la règle}
$I:=i*cm,{vecteur orthogonal au vecteur unit}
$B:=A+L*cm, {point d'arrivée}
$C:=A+L/2*cm+(4^2-(L/4)^2)^(1/2)*I,
{Pointe-sèche}
FillColor:=silver, FillStyle:=full, Width:=2,
Ligne([A,A+0.05*cm+I/2, A-0.05*cm+I/2, line],1),
{Première branche}
FillColor:=gray, FillOpacity:=1,
Path([A-0.1*cm+I/2, A+0.1*cm+I/2, C+0.1*cm, C-0.1*cm, line],1),
{Deuxième branche}
Path([C-0.1*cm, C+0.1*cm, B+0.1*cm+I, B-0.1*cm+I, line],1),
{Pétouillon}
FillColor:=crimson,
Ligne([C-0.075*cm, C-0.075*cm+2*I/3, C+0.075*cm+2*I/3, C+0.075*cm],1),
Cercle(C,0.3*unit),
Color:=lightgray,
Width:=8,
Ligne([C-0.05*cm,C+0.05*cm,jump,C+0.05*I, C-0.05*I],0),
Width:=2,
{Stylo}
FillColor:=seagreen, Color:=black,
Ligne([B-0.11*cm+I/2, B+0.11*cm+I/2,
B+0.11*cm+2*I, B-0.11*cm+2*I],1),
FillStyle:=none, {traits}
Ligne([B-0.055*cm+I/2, B-0.055*cm+2*I,jump,
B+0.055*cm+I/2, B+0.055*cm+2*I],0),
FillStyle:=full, FillColor:=bisque, {FillOpacity:=0.5,}
Ligne([B, B-0.11*cm+I/2, B-0.055*cm+I/1.8,
B+I/2, B+0.055*cm+I/1.8, B+0.11*cm+I/2],1),
{Porte stylo}
FillColor:=silver, Width:=8,{FillOpacity:=1,}
Path([B-0.11*cm+I, B+0.11*cm+I,
B+0.11*cm+1.5*I, B-0.11*cm+1.5*I, line],1),
{Dessin de la mine}
Width:=2, FillColor:=mine,
Path([B-0.055*cm+I/4,B, B+0.055*cm+I/4, line,
B+0.025*cm+I/3.5, B-0.025*cm+I/4.5, B-0.055*cm+I/4, bezier],1),
RestoreAttr() {restauration des paramètres graphiques}
];
crayon = [ $dir:=1, $unit:=1, $long:=5, $mine:=black, $angle:=Nil, {valeurs par defaut des options}
SaveAttr(), {sauvegarde des paramètres graphiques}
$x:=Eval(String(%2)), {on évalue les options (3ieme argument)}
LineStyle:=solid,Color:=black, Width:=2, FillStyle:=none,
$A:=RealCoord(%1),{point de depart}
if angle=Nil then $dir:=RealCoordV(dir) {direction}
else dir:=exp(i*(pi/2+angle*deg))
fi,
SetMatrix([0,1/Xscale,i/Yscale]),
$L:=long, {longueur en cm}
$cm:=unit*dir/abs(dir), {vecteur unité sur la règle}
$I:=i*cm,{vecteur orthogonal au vecteur unit}
$B:=A+L*cm, {point d'arrivée}
{Dessin du crayon}
FillStyle:=full, FillColor:=lightgray, Color:=black,
Ligne([A+3/4*cm-I/6, B-I/6, B+I/6, A+3/4*cm+I/6],1),
{Width:=8,}
Ligne([A+3/4*cm,B,jump,
A+3/4*cm-I/8,B-I/8,jump,
A+3/4*cm+I/8,B+I/8],0),
{Width:=2,}
{Dessin pointe stylo}
FillColor:=bisque, {FillOpacity:=0.5, Width:=8,}
Ligne([A+3/4*cm-I/6,A,A+3/4*cm+I/6,
A+0.8*cm+I/8, A+0.75*cm+I/16,A+0.8*cm,
A+0.75*cm-I/16, A+0.8*cm-I/8],1),
{Dessin de la mine}
FillColor:=mine, FillOpacity:=1,
Path([A+0.25*cm-I/18,A, A+0.25*cm+I/18, line,
A+0.3*cm+I/36, A+0.2*cm-I/36,A+1/4*cm-I/18,bezier],1),
{Dessin de la gomme}
Color:=black, FillColor:=deeppink,
Ligne([B-I/6, B+0.4*cm-I/6, B+0.4*cm+I/6, B+I/6],1), {gomme}
Color:=black, FillColor:=silver, {FillOpacity:=0.5,} {porte-gomme}
Ligne([B-I/6,B-I/6+0.15*cm,B+I/6+0.15*cm,B+I/6],1),
Ligne([B-I/6+0.05*cm,B+I/6+0.05*cm,jump,
B-I/6+0.15*cm,B+I/6+0.15*cm,jump,
B-I/6+0.1*cm,B+I/6+0.1*cm],0),
RestoreAttr() {restauration des paramètres graphiques}
];
equerre = [$dir:=1, $labels:=1,$unit:=1, $long:=5, $fond:=lightgray,
SaveAttr(),
$x:=Eval(String(%2)),
LineStyle:=solid,Color:=black, Width:=2, FillStyle:=none,
$angle:=RealArg(dir)*rad+90, {angle en degres}
$L:=long, {longueur en unit cm}
$v1:=ScrCoordV(unit*exp(i*angle*deg)), {vecteur unité sur la règle}
$v2:=ScrCoordV(i*exp(i*angle*deg)),{vecteur orthogonal au vecteur unit}
$A:=%1+0.25*v1, {point de depart}
$B:=A+L*v1, {point d'arrivée}
$nbgrad:=Ent(L*10),
{dessin de l'équerre}
FillColor:=fond, FillStyle:=full, FillOpacity:=0.5, Eofill:=1, Width:=8,
$U:=A-0.25*v1, $V:= B+0.25*v1, $W:= A-0.25*v1-L*unit*v2,
$G:=bissec(U,V,W,1) Inter bissec(V,W,U,1),
$liste:=hom([U,V,W],G,0.45),
$U':=liste[1], $V':=liste[2], $W':=liste[3],
Path([U,V,W,U,line,
(U'+W')/2,move,
W',V',U',(U'+W')/2,0.1*unit,linearc],0),
{graduations et labels}
Width:=2, LabelStyle:=top, LabelSize:=scriptsize, LabelAngle:=angle,
FillStyle:=none, FillOpacity:=1, Eofill:=0,
Ligne( for $compt from 0 to nbgrad-1 do
$k:=A+compt*0.1*v1,
k, k-v2*( if mod(compt,10)=0 then {graduation principale}
1.5*xyticks,
if labels then
Label( k-v2*(1.5*xyticks+xylabelsep), div(compt,10))
fi,
elif mod(compt,10)=5 then {graduation 0.5}
xyticks
else xyticks/2 {graduation 0.1}
fi), jump
od,
0),
{ecriture}
Color:=black,LabelSize:=tiny, LabelStyle:=left, LabelAngle:=angle-90,
Label(W+0.25*v1+1.5*v2, ["\TeX graph"]),
RestoreAttr()
];
rapporteur = [$dir:=1, {direction horizontale par defaut}
$orientedlabels:=1, $rayon:=3,$fond:=lightgray,
SaveAttr(), {sauvegarde des paramètres graphiques}
$x:=Eval(String(%2)), {on évalue les options (2ieme argument)}
LineStyle:=solid,Color:=black, Width:=2, FillStyle:=none,
{maintenant on se "débarrasse" de la matrice de transformation courante et des échelles}
$A:=RealCoord(%1), {position "réelle" du centre}
$angle:=RealArg(dir)*rad, {angle "réel" en degres du vecteur directeur}
SetMatrix([0,1/Xscale,i/Yscale]), {et on revient à une échelle 1x1}
{on définit alors la matrice qui va placer correctement le rapporteur}
ComposeMatrix(matrix(A+z*exp(i*angle*deg))),
{maintenant on dessine le rapporteur à l'orgine et horizontale, la matrice définie ci-dessus le mettra toute seule à sa place}
FillStyle:=full, FillColor:=fond, FillOpacity:=0.5, Width:=8, $r:=rayon-1,
Rcercle(0,rayon), {grand cercle}
Arrows:=1, FillStyle:=none, Eofill:=1,
Arc( r, 0, r*exp(i*45*deg), 2*rayon/7),
Arc( r, 0, r*exp(i*45*deg), 3*rayon/7),
Arc( r, 0, r*exp(i*45*deg), 4*rayon/7),
{Centre}
Arrows:=0,
Ligne([-0.15, r,jump,-0.15*i,+0.15*i],0),
{graduations et labels}
Width:=2,
if orientedlabels then LabelStyle:=right
else LabelStyle:=0
fi, LabelSize:=tiny,
Ligne(for alpha from 0 to 359 do
$v3:=exp(i*alpha*deg),
rayon*v3, v3*( if mod(alpha,10)=0 then {graduation principale}
rayon-xyticks*1.5,
if orientedlabels then
LabelAngle:=angle+alpha,
Label(v3*(rayon-1.5*xyticks- xylabelsep),alpha)
else
Label(v3*(rayon-1.5*xyticks-2.25*xylabelsep),alpha)
fi
elif mod(alpha,10)=5 then {graduation 0.5}
rayon-xyticks,
else rayon-xyticks/2
fi), jump
od,
0),
{ecriture}
Color:=black, LabelStyle:=top, LabelAngle:=angle,
Label(2*r*exp(190*i*deg)/3, ["\TeX graph"]),
RestoreAttr()
];
regle = [$dir:=0, $unit:=1, $long:=5, $labels:=1, $fond:=lightgray,{valeurs par defaut des options}
SaveAttr(), {sauvegarde des paramètres graphiques}
$x:=Eval(String(%2)), {on évalue les options (3ieme argument)}
LineStyle:=solid,Color:=black, Width:=2, FillStyle:=none,
$angle:=RealArg(dir)*rad, {angle en degres}
$A:=%1, {point de depart}
$L:=long, {longueur en cm}
$cm:=ScrCoordV(unit*exp(i*angle*deg)), {vecteur unité sur la règle}
$I:=ScrCoordV(i*exp(i*angle*deg)),{vecteur orthogonal au vecteur unit}
$B:=A+L*cm, {point d'arrivée}
$nbgrad:=Ent(L*10),
{dessin de la règle avec origine=0 et angle=0}
FillColor:=fond, FillStyle:=full, FillOpacity:=0.5, Width:=8,
Path([A-0.25*cm, B+0.25*cm, line,
B+0.5*cm-I/3, B-2*I/3, B+0.25*cm-I, bezier,
A-0.25*cm-I, line], 1),
{graduations et labels}
Width:=2, LabelAngle:=angle, LabelStyle:=top, LabelSize:=scriptsize,
Ligne( for $compt from 0 to nbgrad do
$k:=A+compt*0.1*cm,
k, k-I*( if mod(compt,10)=0 then {graduation principale}
1.5*xyticks,
if labels then
Label( k-I*(1.5*xyticks+xylabelsep), div(compt,10))
fi,
elif mod(compt,10)=5 then {graduation 0.5}
xyticks
else xyticks/2 {graduation 0.1}
fi), jump,
od,
0),
{ecriture}
LabelSize:=tiny, LabelStyle:=left,
Label(A-0.05*cm-0.85*I, ["\TeX graph"]),
RestoreAttr() {restauration des paramètres graphiques}
];
Help = Message(
if StrComp(String(%1),"compas") then
"compas( position de la pointe, [options])
options:
long:= nb en cm (distance pointe-crayon, 5 cm par defaut)
dir:= vecteur directeur de la droite pointe-crayon (1 par défaut)
unit:= nombre (unite en cm, 1 par défaut)
mine:= couleur de la mine (noir par défaut)
posmine:= affixe de la mine (Nil par défaut, si cette option est différente de Nil,
alors elle l'emporte sur long, dir et unit)
ex: compas(0, [dir:=1+i, long:=2.5, mine:=red])"
elif StrComp(String(%1),"crayon") then
"crayon( position de la mine, [options])
options:
long:= longueur du crayon en cm (5 cm par defaut)
dir:= vecteur directeur de l'axe du crayon (1 par defaut)
unit:= nombre (unite en cm, 1 par défaut)
mine:= couleur de la mine (noir par défaut)
angle:= angle en degrés que fait le crayon avec la verticale Oy (Nil par défaut,
si cette option est différente de Nil alors elle l'emporte sur long et dir)
ex: crayon(-5+i, [long:=2.5, dir:=-1+i])"
elif StrComp(String(%1),"equerre") then
"equerre( position du coin droit, [options])
options:
long:= longueur en cm de la partie graduée (5 cm par defaut)
dir:= vecteur normal à la partie graduée (1 par defaut)
unit:= nombre (unite en cm, 1 par défaut)
fond:= couleur de l'équerre (lightgray par defaut)
labels:= 0/1 indique la présence ou non des graduations (1 par défaut)
ex: equerre(-2+i, [dir:=1+i, unit:=0.75])"
elif StrComp(String(%1),"rapporteur") then
"rapporteur( position du centre, [options])
options:
dir:= vecteur directeur vers la graduation 0 (1 par defaut)
rayon:= nombre en cm (3cm par défaut)
fond:= couleur du rapporteur (lightgray par defaut)
orientedlabels:= 0/1 indique si les labels sont horizontaux ou non (1 par défaut)
ex: rapporteur(2-3*i, [rayon:=2.5])"
elif StrComp(String(%1),"regle") then
"regle( position de la graduation 0, [options])
options:
long:= longueur en cm de la partie graduée (5 cm par defaut)
dir:= vecteur directeur de la régle (1 par defaut)
unit:= nombre (unite en cm, 1 par défaut)
fond:= couleur de la régle (lightgray par defaut)
labels:= 0/1 indique la présence ou non des graduations (1 par défaut)
ex: regle(-4-i, [dir:=1+i, long:=6])"
else
"Syntaxe: Help( <nom de la macro> )
Liste des macros disponibles:
compas, crayon, equerre, rapporteur, regle."
fi
);
L'ancienne syntaxe reste valable. Ce qui change:
pour le compas: il y a une option en plus posmine qui est à Nil par défaut et qui représente l'affixe de la mine, lorqu'elle vaut Nil les options unit dir et long sont prises en compte, lorsque posmine<>Nl les options unit, dir et long ne sont pas prises en compte.
pour le crayon: il y a une option en plus angle qui est à Nil par défaut et qui représente l'angle en degrés que fait le crayon par rapport à la verticale Oy, lorque angle=Nil l'option dir est prise en compte, lorsque angle=Nil l'option dir est prise en compte.
Re: graduer un segment
Bonjour Jeoffrey et Patrick,
vraiment bravo pour ces instruments...il faut intégrer ce fichier de macro à TeXgraph !!!
Samuel
vraiment bravo pour ces instruments...il faut intégrer ce fichier de macro à TeXgraph !!!
Samuel
samuel.biton- Nombre de messages : 25
Date d'inscription : 19/01/2008
Re: graduer un segment
samuel.biton a écrit:Bonjour Jeoffrey et Patrick,
Salut Samuel!
Content de revoir parmi nous!
vraiment bravo pour ces instruments...il faut intégrer ce fichier de macro à TeXgraph !!!
Samuel
Ca y est! Dans la version test toute fraîche!
Page 2 sur 2 • 1, 2
Page 2 sur 2
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|