X-Git-Url: https://melusine.eu.org/syracuse/G/git/?a=blobdiff_plain;ds=sidebyside;f=docs%2Ftexgraph%2Fchap07.html;fp=docs%2Ftexgraph%2Fchap07.html;h=9716ed889a62441561ddb8b67f3337ec8a71fd4f;hb=ae575882b0c25855564e1f482d98a681c8d8e445;hp=0000000000000000000000000000000000000000;hpb=8bbf37a1f79985b7c9713b71085f1fc707f8b244;p=geshi.git diff --git a/docs/texgraph/chap07.html b/docs/texgraph/chap07.html new file mode 100644 index 0000000..9716ed8 --- /dev/null +++ b/docs/texgraph/chap07.html @@ -0,0 +1,688 @@ +

Les macros mathématiques de TeXgraph.mac

+

Opérations arithmétiques et logiques

+

Ceil

+ +

div

+ +

mod

+ +

not

+ +

pgcd

+ +

ppcm

+ +

Opérations sur les variables

+

Abs

+ +

free

+ +

IsIn

+ +

nil

+ +

round

+ +

Opérations sur les listes

+

bary

+ +

del

+ +

getdot

+ +

IsAlign

+ +

isobar

+ +

KillDup

+ +

length

+ +

permute

+ +

Pos

+ +

rectangle

+ +

replace

+ +

reverse

+ +

SortWith

+ +

Gestion des listes par composantes

+

La convention adoptée est que deux composantes sont séparées par la constante jump. Une composante peut être vide.

+

CpCopy

+ +

CpDel

+ +

CpNops

+ +

CpReplace

+ +

CpReverse

+ +

Gestion des listes de chaînes

+

Une telle liste est en réalité une macro, les éléments sont indexés à partir de 1, et la chaîne numéro k est donnée par @nomListe(k), alors que la longueur de la liste (nombre d’éléments) est donnée par nomListe(0).

+

StrListInit

+ +
+
+

view(-2,2,-2,2), Marges(0,0,0,0), size(7.5), StrListInit( nom, -1,"A","O", i,"B","N", 1,"C","E", -i,"D","S"), for k from 1 to nom(0) step 3 do LabelDot( Eval(@nom(k)), @nom(k+1), @nom(k+2), 1) od, StrListKill(nom)

+
+
+

Une autre solution consiste à faire trois listes: nom, position, orientation:

+
 view(-2,2,-2,2), Marges(0,0,0,0), size(7.5),
+ StrListInit( nom, "$A$", "$B$", "$C$", "$D$"),
+ StrListInit(orientation, "O", "N", "E", "S"),
+ position:=[-1, i, 1, -i],
+ for k from 1 to nom(0) do
+     LabelDot( position[k], @nom(k), @orientation(k), 1)
+ od,
+ StrListKill(nom, orientation) 
+
+

StrListAdd

+ +

StrListCopy

+ +

StrListDelKey

+ +

StrListDelVal

+ +

StrListGetKey

+ +

StrListInsert

+ +

StrListKill

+ +

StrListReplace

+ +

StrListReplaceKey

+ +

StrListShow

+ +

Fonctions statistiques

+

Anp

+ +

binom

+ +

ecart

+ +

fact

+ +

max

+ +

min

+ +

median

+ +

moy

+ +

prod

+ +

sum

+ +

var

+ +

Fonctions de conversion

+

RealArg

+ +

RealCoord

+ +

RealCoordV

+ +

ScrCoord

+ +

ScrCoordV

+ +

SvgCoord

+ +

TeXCoord

+ +

Transformations géométriques planes

+

affin

+ +

defAff

+ +

ftransform

+ +

hom

+ +

inv

+ +

mtransform

+ +

proj

+ +

projO

+ +

rot

+ +

shift

+ +

simil

+ +

sym

+ +

symG

+ +

symO

+ +

Matrices de transformations 2D

+

Une transformation affine f du plan complexe peut être représentée par son expression analytique dans la base canonique (1, i), la forme générale de cette expression est:

+

{
$\left\{\begin{array}{rcl} + x'&=&t_1+ax+by\\ +y'&=&t_2+cx+dy + \end{array}\right.$
}

+

cette expression analytique sera représentée par la liste [t1+i*t2, a+i*c, b+i*d] c’est à dire: [ f(0), f(1)-f(0), f(i)-f(0)], cette liste sera appelée plus brièvement (et de manière abusive) matrice de la transformation f. Les deux derniers éléments de cette liste: [ a+i*c, b+i*d], représentent la matrice de la partie linéaire de f: Lf = f - f(0).

+

ChangeWinTo

+ +
+
+

view(-10,10,-5,5),size(7.5),NbPoints:=100, LabelSize:=footnotesize, SaveWin(),view(-10,-1,-5,5), ChangeWinTo([-2-2*i,2+2*i]), Arrows:=1, axes(0,1+i),Arrows:=0, tMin:=-2, tMax:=2, Color:=red, Width:=8, Cartesienne(x*Ent(1/x)-1,5,1), Color:=blue,A:=(1+i)/4, Dparallelo(A,bar(A),-A), dep:=RealCoord(i*Im(A)), RestoreWin(), SaveWin(), //zoom view(1,10,-5,5), background(full,white), ChangeWinTo([-A,A]), Color:=black, arr:=RealCoord(-Re(A)+i*Im(A)*0.75), Arrows:=1, axes(0,A), Arrows:=0, tMin:=-0.25, tMax:=0.25, Color:=red, Width:=8, Cartesienne(x*Ent(1/x)-1,5,1), Color:=blue, Dparallelo(A,bar(A),-A), RestoreWin(), //trait Color:=blue, Arrows:=1, A:=ScrCoord(dep), B:=ScrCoord(arr), Bezier(A,A+3*exp(i*pi/2),B-3,B)

+
+
+

invmatrix

+ +

matrix

+ +

mulmatrix

+ +

Constructions géométriques planes

+

Ces macros définissent des objets graphiques mais ne les dessinent pas, elles renvoient une liste de points représentant ces objets.

+

bissec

+ +

cap

+ +
+
+

Marges(0,0,0,0),size(7.5), A:=set("A", 0, [rotation:=30]), B:=set("B", 0, [rotation:=-30]), C:= cap(A,B),Color:=red,FillStyle:=full, FillOpacity:=0.5, FillColor:=pink, Ligne(C,0)

+
+
+

capB

+ +
+
+

Marges(0,0,0,0),size(7.5), A:=setB("A", 0, [rotation:=30]), B:=setB("B", 0, [rotation:=-30]), C:= capB(A,B),Color:=red,FillStyle:=full, drawSet(C, [FillOpacity:=0.5, FillColor:=pink])

+
+
+

carre

+ +

cup

+ +
+
+

Marges(0,0,0,0),size(7.5), A:=set("A", 0, [rotation:=30]), B:=set("B", 0, [rotation:=-30]), C:= cup(A,B),Color:=red,FillStyle:=full, FillOpacity:=0.5, FillColor:=pink, Ligne(C,0)

+
+
+

cupB

+ +
+
+

Marges(0,0,0,0),size(7.5), A:=setB("A", 0, [rotation:=30]), B:=setB("B", 0, [rotation:=-30]), C:= cupB(A,B),Color:=red,FillStyle:=full, drawSet(C, [FillOpacity:=0.5, FillColor:=pink])

+
+
+

cutBezier

+ +

Cvx2d

+ +
+
+

Marges(0,0,0,0),size(7.5), P:= for k from 1 to 10 do z:=8*Rand()-4+i*(8*Rand()-4), LabelDot(z, k,"N",1), z od, Ligne(Cvx2d(P),1)

+
+
+

Intersec

+ +

med

+ +

parallel

+ +

parallelo

+ +

perp

+ +

polyreg

+ +

ou

+ +

pqGoneReg

+ +

rect

+ +

setminus

+ +
+
+

Marges(0,0,0,0),size(7.5), A:=set("A", 0, [rotation:=30]), B:=set("B", 0, [rotation:=-30]), C:= setminus(A,B),Color:=red,FillStyle:=full, FillOpacity:=0.5, FillColor:=pink, Ligne(C,0)

+
+
+

setminusB

+ +
+
+

Marges(0,0,0,0),size(7.5), A:=setB("A", 0, [rotation:=30]), B:=setB("B", 0, [rotation:=-30]), C:= setminusB(A,B),Color:=red,FillStyle:=full, drawSet(C, [FillOpacity:=0.5, FillColor:=pink])

+
+
+

Gestion du flattened postscript

+

Il est possible de transformer un fichier pdf ou un fichier postscript en flattened postscript grâce à l’utilitaire pstoedit (http://www.pstoedit.net/). Dans le fichier obtenu, tout est chemin, y compris le texte. TeXgraph peut récupérer tous les chemins d’un fichier écrit en flattened postscript. C’est que proposent les macros de cette section.

+

conv2FlatPs

+ +

drawFlatPs

+ +

drawTeXlabel

+ +

loadFlatPs

+ +
     [conv2FlatPs( "circuit.pdf", "circuit.fps", @TmpPath),
+      stock:= loadFlatPs( [@TmpPath,"circuit.fps"] ),
+      drawFlatPs( 0, stock, [scale:=1, hollow:=1] )
+     ]
+
+

va permettre de charger et dessiner le contenu de ce fichier dans TeXgraph, sans faire les remplissages.

+

NewTeXlabel

+ +

Autres

+

pdfprog

+