Les instruments de géométrie

Le rapporteur :

rapporteur.jpg

Voici son code :

u:=1cm;
figure (-8u,-8u,10u,8u);
numeric r;
r:=8;

pair O,I,II;
O:=(0,0);
I:=(r*u,0);
II:=(-r*u,0);

marque_p :="croix";
MarquePoint(O);


trace arccercle(I,II,O);

numeric ang;
ang := 20;
pair J,JJ;
J:=I rotatedaround(O,-ang);
JJ:=II rotatedaround(O,ang);
trace arccercle(J,I,O);
trace arccercle(II,JJ,O);
draw J--JJ;

pair K,KK;
K:=((r-3)*u,0);
KK:=(-(r-3)*u,0);
trace arccercle(K,KK,O);
draw K--KK;

%-----------graduations extérieures

pair a[],b[];

for i:=0 upto 17:
  a[i]:= ((r-0.7)*u,0) rotatedaround(O,i*10);
  b[i]:= (r*u,0) rotatedaround(O,i*10);
  draw a[i]--b[i] withpen pencircle scaled 1.5bp;
  if (i<>9) :
    label(TEX("{\bf"& decimal(180-i*10)&"}"),((r-1)*u,0)) rotatedaround(((r-1)*u,0),-90)   rotatedaround(O,i*10);
  fi;
  a[i]:= ((r-0.5)*u,0) rotatedaround(O,i*10+5);
  b[i]:= (r*u,0) rotatedaround(O,i*10+5);
  draw a[i]--b[i] withpen pencircle scaled 1.5bp;
  for j:=1 upto 4:
     a[j]:= ((r-0.3)*u,0) rotatedaround(O,i*10+j);
     b[j]:= (r*u,0) rotatedaround(O,i*10+j);
     draw a[j]--b[j] withpen pencircle scaled 1.5bp;
  endfor;
  for j:=6 upto 9:
     a[j]:= ((r-0.3)*u,0) rotatedaround(O,i*10+j);
     b[j]:= (r*u,0) rotatedaround(O,i*10+j);
     draw a[j]--b[j] withpen pencircle scaled 1.5bp;
  endfor;  
endfor;
  i:=18;
  a[i]:= ((r-0.7)*u,0) rotatedaround(O,i*10);
  b[i]:= (r*u,0) rotatedaround(O,i*10);
  draw a[i]--b[i] withpen pencircle scaled 1.5bp;
  label(TEX("{\bf"& decimal(180-i*10)&"}"),((r-1)*u,0)) rotatedaround(((r-1)*u,0),-90) rotatedaround(O,i*10);
  

%-----------graduations intérieures

for i:=0 upto 17:
  a[i]:= ((r-2.3)*u,0) rotatedaround(O,i*10);
  b[i]:= ((r-3)*u,0) rotatedaround(O,i*10);
  draw a[i]--b[i] withpen pencircle scaled 1bp;
  if (i<>9) :
    label(TEX("{\bf"& decimal(i*10)&"}"),((r-2)*u,0)) rotatedaround(((r-2)*u,0),-90)   rotatedaround(O,i*10);
  fi;  
  a[i]:= ((r-2.5)*u,0) rotatedaround(O,i*10+5);
  b[i]:= ((r-3)*u,0) rotatedaround(O,i*10+5);
  draw a[i]--b[i] withpen pencircle scaled 1bp;
  for j:=1 upto 4:
     a[j]:= ((r-2.7)*u,0) rotatedaround(O,i*10+j);
     b[j]:= ((r-3)*u,0) rotatedaround(O,i*10+j);
     draw a[j]--b[j] withpen pencircle scaled 1bp;
  endfor;
  for j:=6 upto 9:
     a[j]:= ((r-2.7)*u,0) rotatedaround(O,i*10+j);
     b[j]:= ((r-3)*u,0) rotatedaround(O,i*10+j);
     draw a[j]--b[j] withpen pencircle scaled 1bp;
  endfor;  
endfor;
  i:=18;
  a[i]:= ((r-2.3)*u,0) rotatedaround(O,i*10);
  b[i]:= ((r-3)*u,0) rotatedaround(O,i*10);
  draw a[i]--b[i] withpen pencircle scaled 1bp;
  label(TEX("{\bf"& decimal(180)&"}"),((r-2)*u,0)) rotatedaround(((r-2)*u,0),-90) rotatedaround(O,i*10);


%gradution du 90
  draw (0,(r-1)*u)--(0,(r-0.7)*u) withpen pencircle scaled 1.5bp;
  draw (0,(r-2)*u)--(0,(r-2.3)*u) withpen pencircle scaled 1bp;  
  label(TEX("{\bf"& decimal(90)&"}"),((r-1.5)*u,0)) rotatedaround(((r-1.5)*u,0),-90)   rotatedaround(O,90);


%-----------graduations horizontales

for i:=-7 upto 6:
  a[i]:= (i*u,ypart.JJ);
  b[i]:= (i*u,ypart.JJ+0.7u);
  draw a[i]--b[i];
  label.top(TEX("{"& decimal(i)&"}"),b[i]); 
  a[i]:= (i*u+0.5u,ypart.JJ);
  b[i]:= (i*u+0.5u,ypart.JJ+0.5u);
  draw a[i]--b[i];
  for j:=1 upto 4:
     a[j]:= (i*u+0.1*j*u,ypart.JJ);
     b[j]:= (i*u+0.1*j*u,ypart.JJ+0.3u);
     draw a[j]--b[j];
  endfor;
  for j:=6 upto 9:
     a[j]:= (i*u+0.1*j*u,ypart.JJ);
     b[j]:= (i*u+0.1*j*u,ypart.JJ+0.3u);
     draw a[j]--b[j];
  endfor;  
endfor;
  i:=7;
  a[i]:= (i*u,ypart.JJ);
  b[i]:= (i*u,ypart.JJ+0.7u);
  draw a[i]--b[i];
  label.top(TEX("{"& decimal(i)&"}"),b[i]);

%trait du O
  draw O--(0,-u);


fin;

La règle :

regle.jpg

Voici son code :

u:=1cm;
figure (-8u,-8u,20u,8u);
numeric la,lo;
la:=4;
lo:=16;

pair A,B,C,D;
A:=(0,0);
B:=(lo*u,0);
C:=(lo*u,la*u);
D:=(0,la*u);

numeric r;
r:=0.3;

draw A shifted(r*u,0)--B shifted(-r*u,0)..B shifted(-0.1u,0.1u)..B shifted(0,r*u)--C shifted(0,-r*u)
..C shifted(-0.1u,-0.1u)..C shifted(-r*u,0)--D shifted(r*u,0)..D shifted(0.1u,-0.1u)..D shifted(0,-r*u)
--A shifted(0,r*u)..A shifted(0.1u,0.1u)..A shifted(r*u,0);

draw D shifted(0,-1.5u)--C shifted(0,-1.5u) withcolor (0.5,0.5,0.5) withpen pencircle scaled 0.5bp;

%-----------graduations horizontales

pair a[],b[];

for i:=0 upto (lo-2):
  a[i]:= (i*u+0.5u,ypart.D);
  b[i]:= (i*u+0.5u,ypart.D-0.7u);
  draw a[i]--b[i];
  label.bot(TEX("{"& decimal(i)&"}"),b[i]); 
  a[i]:= (i*u+u,ypart.D);
  b[i]:= (i*u+u,ypart.D-0.5u);
  draw a[i]--b[i];
  for j:=1 upto 4:
     a[j]:= (i*u+0.1*j*u+0.5u,ypart.D);
     b[j]:= (i*u+0.1*j*u+0.5u,ypart.D-0.3u);
     draw a[j]--b[j];
  endfor;
  for j:=6 upto 9:
     a[j]:= (i*u+0.1*j*u+0.5u,ypart.D);
     b[j]:= (i*u+0.1*j*u+0.5u,ypart.D-0.3u);
     draw a[j]--b[j];
  endfor;  
endfor;
  i:=lo-1;
  a[i]:= (i*u+0.5u,ypart.D);
  b[i]:= (i*u+0.5u,ypart.D-0.7u);
  draw a[i]--b[i];
  label.bot(TEX("{"& decimal(i)&"}"),b[i]);


fin;

L’équerre :

equerre.jpg

Voici son code :

u:=1cm;
figure (-8u,-15u,20u,8u);

numeric la,lo;
la:=10;
lo:=16;

pair A,B,C,D;
A:=(0,0);
B:=(lo*u,0);
C:=(lo*u,-u);
D:=(0,-la*u);

numeric r;
r:=0.3;

draw A shifted(r*u,0)--B shifted(-r*u,0)..B shifted(-0.1u,-0.1u)..B shifted(0,-r*u)--C
--D--A shifted(0,-r*u) ..A shifted(0.1u,-0.1u)..A shifted(r*u,0);

pair CC;
CC=whatever[A,B];
CC=whatever[C,D];

pair V;
V:=(2u,-2u);
numeric r;
r:=0.5;

pair CCC,DDD;
CCC:=r[A,CC];
DDD:=r[A,D];

draw A shifted V--CCC shifted V -- DDD shifted V--A shifted V;

%draw D shifted(0,-1.5u)--C shifted(0,-1.5u) withcolor (0.5,0.5,0.5) withpen pencircle scaled 0.5bp;

%-----------graduations horizontales

pair a[],b[];

for i:=0 upto (lo-2):
  a[i]:= (i*u+0.5u,0);
  b[i]:= (i*u+0.5u,-0.7u);
  draw a[i]--b[i];
  label.bot(TEX("{"& decimal(i)&"}"),b[i]); 
  a[i]:= (i*u+u,0);
  b[i]:= (i*u+u,-0.5u);
  draw a[i]--b[i];
  for j:=1 upto 4:
     a[j]:= (i*u+0.1*j*u+0.5u,0);
     b[j]:= (i*u+0.1*j*u+0.5u,-0.3u);
     draw a[j]--b[j];
  endfor;
  for j:=6 upto 9:
     a[j]:= (i*u+0.1*j*u+0.5u,0);
     b[j]:= (i*u+0.1*j*u+0.5u,-0.3u);
     draw a[j]--b[j];
  endfor;  
endfor;
  i:=lo-1;
  a[i]:= (i*u+0.5u,0);
  b[i]:= (i*u+0.5u,-0.7u);
  draw a[i]--b[i];
  label.bot(TEX("{"& decimal(i)&"}"),b[i]);



fin;