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