Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
16886 | bpr | 1 | !if $wims_read_parm!=slib_header |
2 | !goto proc |
||
3 | !endif |
||
4 | slib_title=Dessin d'un patron aléatoire du polyèdre |
||
5 | slib_author=Bernadette, Perrin-Riou |
||
6 | slib_parms=2\ |
||
7 | ,nom d'un polyèdre (en anglais)\ |
||
8 | size=200,option as words: size=(vertical size) keywords:vertex_legend face_legend color=[;number:color;number:color2;...] |
||
9 | |||
10 | slib_out=dessin en canvasdraw |
||
11 | slib_comment=Preliminary version (syntaxe can change) |
||
12 | !!rajouter option couleur face et sommet ? size ? |
||
13 | slib_example=cube,size=300 vertex_legend face_legend\ |
||
14 | cube\ |
||
15 | dodecahedron,size=500 vertex_legend face_legend color=[red]\ |
||
16 | enneagonal_antiprism_dual,size=400 color=[blue;5,red;7,yellow]\ |
||
17 | j09_elongated_pentagonal_pyramid,size=300\ |
||
18 | j45_gyroelongated_square_bicupola,size=500 |
||
19 | |||
20 | !exit |
||
21 | |||
22 | :proc |
||
23 | !reset slib_xyz slib_sfa slib_ff slib_size |
||
24 | |||
25 | !distribute items $wims_read_parm into slib_polname,slib_option,slib_color |
||
26 | !set wims_multiexec=$wims_multiexec pari |
||
27 | !set slib_size=!getopt size in $slib_option |
||
28 | !default slib_size=200 |
||
29 | !set slib_color=!getopt color in $slib_option |
||
30 | !set slib_color=$(slib_color[1;]) |
||
31 | !default slib_color=black |
||
32 | slib_pol=!record 0 of data/polyedre_off/$(slib_polname).off |
||
33 | |||
34 | slib_sfa=!line 3 of $slib_pol |
||
35 | slib_somcnt=!word 1 of $slib_sfa |
||
36 | slib_facecnt=!word 2 of $slib_sfa |
||
37 | slib_sfa=!wordstoitems $slib_sfa |
||
38 | slib_xyz_=!line 4 to $slib_somcnt+3 of $slib_pol |
||
39 | !for slib_j=1 to $slib_somcnt |
||
40 | slib_tmp=!row $slib_j of $slib_xyz_ |
||
41 | slib_tmp=!words2items $slib_tmp |
||
42 | slib_xyz=!append semicolon $slib_tmp to $slib_xyz |
||
43 | !next |
||
44 | slib_ff_=!line $[$slib_somcnt+4] to $[$slib_somcnt+5+$slib_facecnt] of $slib_pol |
||
45 | !for slib_j=1 to $slib_facecnt |
||
46 | slib_tmp=!row $slib_j of $slib_ff_ |
||
47 | slib_tmp=!words2items $slib_tmp |
||
48 | slib_ff=!append item [$slib_tmp] to $slib_ff |
||
49 | !next |
||
50 | !if $slib_header_patron= |
||
51 | !readproc gp/arbres_couvrants.gp |
||
52 | slib_pr=!exec pari $slib_header_patron |
||
53 | !endif |
||
54 | slib_pr=!exec pari xyz=[$slib_xyz];ff=[$slib_ff] |
||
55 | |||
56 | slib_patron=!exec pari m=adjacence(ff); f2=projection_standard(ff,xyz);couv=arbre_couvrant_aleatoire(m); W=etale(couv,ff,f2,matsize(xyz)[1]) |
||
57 | slib_pat=!exec pari print(couv) |
||
58 | !!!set slib_seed=1 |
||
59 | !!!set slib_patron=!exec pari m=adjacence(ff); f2=projection_standard(ff,xyz);couv=arbres_couvrants(m,$slib_seed);W=etale(couv,ff,f2,matsize(xyz)[1]) |
||
60 | slib_W1=!exec pari W[1] |
||
61 | slib_W2=!exec pari W[2] |
||
62 | slib_W2_= |
||
63 | !if face_legend iswordof $slib_option |
||
64 | !for slib_j=1 to $slib_facecnt |
||
65 | !set slib_tmp=!declosing $(slib_W2[$slib_j]) |
||
66 | !set slib_W2_=!append item [$slib_tmp,$slib_j] to $slib_W2_ |
||
67 | !next |
||
68 | slib_W2=$slib_W2_ |
||
69 | !endif |
||
70 | !readproc slib/geo2D/offdraw [$slib_W1],[$slib_W2], $slib_option |
||
71 | $slib_out |