Subversion Repositories wimsdev

Rev

Rev 18546 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

!if $wims_read_parm!=slib_header
  !goto proc
!endif
slib_title=Pavage affine par des triangles
slib_author=Bernadette, Perrin-Riou
slib_parms=3\
,[p,q,r]\
10,bound\
size=600 color=[black,white] option (mots) : size= color=[] html/url

slib_out=dessin du pavage affine par des triangles ou code ou url selon les cas

slib_comment=Les angles du triangle de base sont pi/p,pi/q,pi/r avec 1/p+1/q+1/r=1.\
  le deuxième paramètre bound permet de faire afficher environ bound^2 triangles.\
  Attention, si bound est trop grand, il y aura une erreur de WIMS.
slib_example=[2,4,4],,size=400 color=black html\
[2,3,6],10,size=400 color=black html\
[2,6,3],10,size=400 color=black html\
[2,3,6],10,size=400 color=black html\
[2,4,4],20,size=400 color=black html\
[3,3,3],10,size=400 color=[black,red] html\
[2,4,4],2,size=400 color=[black,red] html\
[2,4,4],5,size=400 color=[black,red] html
!exit
:proc

!reset slib_bound slib_size slib_color slib_dessin slib_dessin1 slib_dessin2 slib_dessin3
!distribute items $wims_read_parm into slib_data,slib_bound,slib_option
!set slib_size=!getopt size in $slib_option
!default slib_size=600
!set slib_color=!getopt color in $slib_option
!set slib_color=!declosing $slib_color
!default slib_color=black
!default slib_bound=10
!set slib_pqr=!declosing $slib_data
!if $[1/$(slib_pqr[1]) + 1/$(slib_pqr[2])+1/$(slib_pqr[3])]!=1
  slib_out=Error
  !exit
!endif
!set wims_multiexec=$wims_multiexec pari
!if $slib_header_coxaff=
  !readproc gp/coxaff.gp
  !set slib_coxaff=!exec pari $slib_header_coxaff;
!endif
!set slib_coxaff=!exec pari wwww=aff3($slib_pqr,$slib_bound);default(realprecision,3);wwww
!set slib_coxaff=!trim $slib_coxaff
!distribute items $slib_coxaff into slib_range, slib_data
!set slib_data=!declosing $slib_data
!set slib_range=!declosing $slib_range
slib_datacnt=!rowcnt $slib_data

!for slib_k=1 to $slib_datacnt
  slib_col=$(slib_color[1+$(slib_data[$slib_k;7])])
  !if $slib_col!=$empty
    !if $slib_k<600
      !set slib_dessin=!append line ftriangle $(slib_data[$slib_k;1..6]),$slib_col to $slib_dessin
    !else
      !if $slib_k<1200
        !set slib_dessin1=!append line ftriangle $(slib_data[$slib_k;1..6]),$slib_col to $slib_dessin1
      !else
        !if $slib_k<2400
          !set slib_dessin2=!append line ftriangle $(slib_data[$slib_k;1..6]),$slib_col to $slib_dessin2
        !else
          !set slib_dessin3=!append line $(slib_data[$slib_k;1..6]),$slib_col to $slib_dessin2
        !endif
      !endif
    !endif
  !endif
!next

!set slib_range=$[floor(min($(slib_range[1]),$(slib_range[3])))],$[ceil(max($(slib_range[2]),$(slib_range[4])))]
slib_out=xrange $slib_range\
yrange $slib_range\
$slib_dessin\
$slib_dessin1\
$slib_dessin2\
$slib_dessin3

!if url iswordof $slib_option or html iswordof $slib_option
  !set insdraw_size=$slib_size,$slib_size
  !insdraw $slib_out
  slib_out=$ins_url
  !if html iswordof $slib_option
    slib_out=<img src="$ins_url" alt="">
  !else
    slib_out=$slib_out,$insdraw_size
  !endif
!endif