mercredi 15 juillet 2015

pst-crayon : le B Chancery






\documentclass{article}
\usepackage{pst-crayon}
% B majuscule en ZapfChancery
\def\Bzap{0.449792 0.0048739
0.493309 0.00478687
0.528731 0.00478687
0.559019 0.0046128
0.587218 0.00426467
0.616288 0.00365543
0.649361 0.00278509
0.68957 0.00156661
0.739789 0.0
0.909679 0.0
1.08444 -0.0048739
1.19515 -0.00661458
1.27949 -0.00792009
1.34259 -0.00887747
1.38932 -0.0094867
1.42483 -0.00983484
1.45416 -0.0100959
1.48236 -0.0100959
1.51439 -0.0100959
1.756 0.00261102
1.98176 0.0430818
2.20744 0.11445
2.44914 0.220022
2.60702 0.308797
2.74349 0.403054
2.85872 0.503056
2.95272 0.609064
3.02556 0.721425
3.07752 0.840487
3.10859 0.966512
3.11895 1.09976
3.10607 1.2096
3.06891 1.31256
3.0092 1.40525
2.92887 1.48445
2.84714 1.53946
2.75088 1.5801
2.62738 1.6103
2.46411 1.6345
2.63809 1.71944
2.78909 1.80944
2.91712 1.90439
3.02191 2.00422
3.10354 2.10866
3.16194 2.21771
3.19702 2.33121
3.20877 2.44914
3.19589 2.56428
3.1569 2.66254
3.09066 2.74436
2.99641 2.81033
2.87299 2.86072
2.71964 2.89614
2.53539 2.91712
2.31928 2.92399
2.24408 2.92399
2.28412 3.07891
1.87924 2.9038
1.60212 2.85628
1.37566 2.80075
1.18471 2.73304
1.01447 2.64897
0.866423 2.5534
0.737352 2.44687
0.627602 2.32973
0.537261 2.20222
0.466589 2.06462
0.415761 1.91727
0.385125 1.76044
0.374942 1.59446
0.376857 1.5204
0.38295 1.44877
0.393742 1.3687
0.409756 1.26965
0.809764 1.45451
0.782958 1.59446
0.767814 1.6862
0.761112 1.75452
0.759633 1.82423
0.764332 1.94225
0.778954 2.04956
0.803846 2.14722
0.839617 2.23608
0.886528 2.31719
0.945276 2.39152
1.01612 2.4601
1.09976 2.52399
1.25094 2.61537
1.41822 2.68143
1.60987 2.72503
1.83433 2.74888
1.46461 1.26965
1.42657 1.11612
1.39072 0.979306
1.35616 0.858155
1.32239 0.751713
1.28836 0.65876
1.25346 0.578515
1.21682 0.509845
1.17783 0.451706
1.13553 0.403054
1.08923 0.363019
1.03823 0.330468
0.981656 0.304358
0.918818 0.283818
0.848843 0.26763
0.771121 0.25501
0.684783 0.24474
0.449792 0.0048739
1.87924 1.45939
1.93851 1.46522
1.98559 1.46818
2.02702 1.46931
2.06932 1.46948
2.20901 1.4613
2.3319 1.43728
2.4373 1.39768
2.52477 1.3432
2.59361 1.27409
2.64357 1.19097
2.67386 1.09428
2.68413 0.984528
2.66959 0.838224
2.62843 0.690963
2.56376 0.553014
2.47908 0.434822
2.36584 0.332731
2.22972 0.259187
2.07202 0.214713
1.89421 0.19983
1.84538 0.200352
1.79342 0.202267
1.73354 0.205922
1.66122 0.211754
1.57175 0.220109
1.46052 0.23151
1.323 0.246306
1.15442 0.264931
1.3197 0.414456
1.45173 0.542048
1.55547 0.655279
1.63615 0.761634
1.69882 0.868686
1.74843 0.984006
1.79029 1.11517
1.82945 1.26965
1.87924 1.45939
2.20927 2.78404
2.35679 2.77987
2.45297 2.77282
2.5172 2.76011
2.56924 2.73913
2.65375 2.68195
2.71833 2.59718
2.75941 2.49083
2.77395 2.36907
2.75497 2.19813
2.70093 2.03607
2.61589 1.89186
2.50414 1.77445
2.38525 1.69708
2.25418 1.64381
2.10057 1.61196
1.9144 1.59934
2.20927 2.78404
}
 %  nbre points = 166
\pagestyle{empty}
\begin{document}
\begin{center}
\multido{\i=0+2}{109}{%
\begin{pspicture}(-4,-3)(6,8)
\psframe(-4,-3)(6,8)
\psset{lightsrc=viewpoint,viewpoint=100 20 50 rtp2xyz,Decran=60,solidmemory}
\psSolid[object=grille,base=-5 3 -3 7,ngrid=8 10](0,0,0)
\psSolid[object=plan,definition=equation,args={[0 0 1 0] 90},name=P0,base=-4 4 -4 6,action=none]
\pstVerb{/tabC [\Bzap] def /II \i\space 2 add def }%
\psProjection[object=line,plan=P0,linecolor=blue,args=tabC 0 II getinterval aload pop]
\psCrayonH[RotX=20,pencolor=blue,grid,unit=0.5](tabC II 1 sub get neg 2 mul,tabC II 2 sub get 2 mul,0)
\end{pspicture}\newpage}
\multido{\i=0+2}{38}{%
\begin{pspicture}(-4,-3)(6,8)
\psframe(-4,-3)(6,8)
\psset{lightsrc=viewpoint,viewpoint=100 20 50 rtp2xyz,Decran=60,solidmemory}
\psSolid[object=grille,base=-5 3 -3 7,ngrid=8 10](0,0,0)
\psSolid[object=plan,definition=equation,args={[0 0 1 0] 90},name=P0,base=-4 4 -4 4,action=none]
\psProjection[object=line,plan=P0,linecolor=blue,args=tabC 0 218 getinterval aload pop]
\pstVerb{/tabC [\Bzap] def /II \i\space 2 add def }%
\psProjection[object=line,plan=P0,linecolor=blue,args=tabC 218 II getinterval aload pop]
\psCrayonH[RotX=20,pencolor=blue,grid,unit=0.5](tabC 218 II 1 sub add get neg 2 mul,tabC 218 II 2 sub add get 2 mul,0)
\end{pspicture}\newpage}
\multido{\i=0+2}{18}{%
\begin{pspicture}(-4,-3)(6,8)
\psframe(-4,-3)(6,8)
\psset{lightsrc=viewpoint,viewpoint=100 20 50 rtp2xyz,Decran=60,solidmemory}
\psSolid[object=grille,base=-5 3 -3 7,ngrid=8 10](0,0,0)
\psSolid[object=plan,definition=equation,args={[0 0 1 0] 90},name=P0,base=-4 4 -4 4,action=none]
\pstVerb{/tabC [\Bzap] def /II \i\space 2 add def }%
\psProjection[object=line,plan=P0,linecolor=blue,args=tabC 0 218 getinterval aload pop]
\psProjection[object=line,plan=P0,linecolor=blue,args=tabC 218 76 getinterval aload pop]
\psProjection[object=line,plan=P0,linecolor=blue,args=tabC 294 II getinterval aload pop]
\psCrayonH[RotX=20,pencolor=blue,grid,unit=0.5](tabC 294 II 1 sub add get neg 2 mul,tabC 294 II 2 sub add get 2 mul,0)
\end{pspicture}\newpage}
\multido{\i=0+1}{5}{%
\begin{pspicture}(-4,-3)(6,8)
\psframe(-4,-3)(6,8)
\psset{lightsrc=viewpoint,viewpoint=100 20 50 rtp2xyz,Decran=60,solidmemory}
\psSolid[object=grille,base=-5 3 -3 7,ngrid=8 10](0,0,0)
\pstVerb{/tabC [\Bzap] def}%
\psSolid[object=plan,definition=equation,args={[0 0 1 0] 90},name=P0,base=-4 4 -4 4,action=none]
\psProjection[object=line,plan=P0,linecolor=blue,args=tabC 0 218 getinterval aload pop]
\psProjection[object=line,plan=P0,linecolor=blue,args=tabC 218 76 getinterval aload pop]
\psProjection[object=line,plan=P0,linecolor=blue,args=tabC 294 36 getinterval aload pop]
\psCrayonH[RotY=90,pencolor=blue,grid,unit=0.5](tabC 294 36 1 sub add get neg 2 mul 10 sub,tabC 294 36 2 sub add get 2 mul 8 sub,0)
\end{pspicture}\newpage}
\multido{\i=0+1}{5}{%
\begin{pspicture}(-4,-3)(6,8)
\psframe(-4,-3)(6,8)
\psset{lightsrc=viewpoint,viewpoint=100 20 50 rtp2xyz,Decran=60,solidmemory}
\psSolid[object=grille,base=-5 3 -3 7,ngrid=8 10](0,0,0)
\pstVerb{/tabC [\Bzap] def}%
\psSolid[object=plan,definition=equation,args={[0 0 1 0] 90},name=P0,base=-4 4 -4 4,action=none]
\psProjection[object=texte,PSfont=ZapfChancery, % Palatino-Italic,
              fontsize=141.7322834646,linecolor=red,
              text=B,
              pos=ur,
              plan=P0](0.3,-0.1)%
\psProjection[object=line,plan=P0,linecolor=blue,args=tabC 0 218 getinterval aload pop]
\psProjection[object=line,plan=P0,linecolor=blue,args=tabC 218 76 getinterval aload pop]
\psProjection[object=line,plan=P0,linecolor=blue,args=tabC 294 36 getinterval aload pop]
\psCrayonH[RotY=90,pencolor=blue,grid,unit=0.5](tabC 294 36 1 sub add get neg 2 mul 10 sub,tabC 294 36 2 sub add get 2 mul 8 sub,0)
\psCrayonH[RotY=90,pencolor=red,grid,unit=0.5](tabC 294 36 1 sub add get neg 2 mul 10 sub,tabC 294 36 2 sub add get 2 mul 5 sub,0)
\end{pspicture}\newpage}
\end{center}
\end{document}

jeudi 9 juillet 2015

pst-crayon : dessiner le B

Pour calculer les images :

\documentclass{article}
\usepackage{pst-crayon}
% B en Times-Bold
\def\BTimesBold{0.0800713   0.0   1.6895   0.0   1.9923   0.0171457   2.26523   0.0673643   2.50493   0.148393   2.70841   0.258056   2.87221   0.39409   2.99319   0.554581   3.06812   0.737091   3.09388   0.939619   3.0763   1.10629   3.02452   1.26025   2.93992   1.40003   2.82408   1.52449   2.69083   1.62614   2.54218   1.70439   2.36071   1.76757   2.1292   1.82423   2.32981   1.88986   2.49805   1.96035   2.63548   2.03755   2.74409   2.12285   2.82538   2.21806   2.88135   2.32468   2.91355   2.44444   2.92399   2.57899   2.90258   2.76115   2.83896   2.92112   2.73417   3.0582   2.58909   3.17187   2.40458   3.26134   2.18168   3.32609   1.92128   3.36534   1.6244   3.37866   0.0800713   3.37866   0.0800713   3.25368   0.294175   3.22565   0.429165   3.16438   0.499488   3.05907   0.519767   2.89893   0.519767   0.479731   0.515763   0.392958   0.50236   0.322374   0.476772   0.265976   0.436737   0.221763   0.379468   0.187558   0.302617   0.161448   0.20366   0.141256   0.0800713   0.124981   0.0800713   0.0   1.31944   1.71422   1.46948   1.71422   1.65016   1.70169   1.80613   1.66418   1.93772   1.60116   2.04495   1.51256   2.12807   1.39785   2.18716   1.25686   2.22259   1.08923   2.23434   0.894709   2.19595   0.575208   2.08116   0.345351   1.89047   0.206358   1.6244   0.159794   1.54807   0.163798   1.48393   0.176505   1.43119   0.198263   1.38941   0.22977   1.3579   0.271546   1.33615   0.324289   1.32344   0.388433   1.31944   0.464761   1.31944   1.71422   1.31944   2.98387   1.32283   3.04602   1.33345   3.09806   1.35207   3.14045   1.3794   3.17387   1.41613   3.19885   1.46287   3.21591   1.52048   3.22574   1.58959   3.22896   1.81675   3.18797   1.97558   3.06264   2.0688   2.84923   2.09926   2.54418   2.09117   2.3648   2.06453   2.2185   2.01597   2.10222   1.94182   2.01292   1.83859   1.94747   1.70282   1.90291   1.53093   1.87619   1.31944   1.86427   1.31944   2.98387}
% on prend un point sur 2
\pagestyle{empty}
\begin{document}
\begin{center}
\psset{RotSequence=yxz}
\multido{\i=0+2}{50}{%
\begin{pspicture}(-3,-3)(6,6)
\psframe(-3,-3)(6,6)
\psset{lightsrc=viewpoint,viewpoint=100 20 20 rtp2xyz,Decran=60,solidmemory}
\psSolid[object=grille,base=-9 3 -2 8,ngrid=12 10,linewidth=0.01,linecolor=blue,RotY=90](0,0,0)
\psSolid[object=plan,definition=equation,args={[1 0 0 0] 90},name=P0,base=-4 4 -4 4,action=none]
\pstVerb{/tabC [\BTimesBold] {2 mulv} papply def /II \i\space 2 add def }%
\psProjection[object=line,plan=P0,linewidth=0.05,linecolor=blue,args=tabC 0 II getinterval aload pop]
\psCrayonC[RotY=90,RotX=10,pencolor=blue,grid,h=10,r=0.5](0,tabC II 2 sub get,tabC II 1 sub get)
\end{pspicture}\newpage}
\multido{\i=0+2}{23}{%
\begin{pspicture}(-3,-3)(6,6)
\psframe(-3,-3)(6,6)
\psset{lightsrc=viewpoint,viewpoint=100 20 20 rtp2xyz,Decran=60,solidmemory}
\psSolid[object=grille,base=-9 3 -2 8,ngrid=12 10,linewidth=0.01,linecolor=blue,RotY=90](0,0,0)
\psSolid[object=plan,definition=equation,args={[1 0 0 0] 90},name=P0,base=-4 4 -4 4,action=none]
\psProjection[object=line,plan=P0,linewidth=0.05,linecolor=blue,args=tabC 0 100 getinterval aload pop]
\pstVerb{/tabC [\BTimesBold] {2 mulv} papply def /II \i\space 2 add def }%
\psProjection[object=line,plan=P0,linewidth=0.05,linecolor=blue,args=tabC 100 II getinterval aload pop]
\psCrayonC[RotY=90,RotX=10,pencolor=blue,grid,h=10,r=0.5](0,tabC 100 II 2 sub add get,tabC 100 II 1 sub add get)
\end{pspicture}\newpage}
\multido{\i=0+2}{22}{%
\begin{pspicture}(-3,-3)(6,6)
\psframe(-3,-3)(6,6)
\psset{lightsrc=viewpoint,viewpoint=100 20 20 rtp2xyz,Decran=60,solidmemory}
\psSolid[object=grille,base=-9 3 -2 8,ngrid=12 10,linewidth=0.01,linecolor=blue,RotY=90](0,0,0)
\psSolid[object=plan,definition=equation,args={[1 0 0 0] 90},name=P0,base=-4 4 -4 4,action=none]
\psProjection[object=line,plan=P0,linewidth=0.05,linecolor=blue,args=tabC 0 100 getinterval aload pop]
\psProjection[object=line,plan=P0,linewidth=0.05,linecolor=blue,args=tabC 100 46 getinterval aload pop]
\pstVerb{/tabC [\BTimesBold] {2 mulv} papply def /II \i\space 2 add def }%
\psProjection[object=line,plan=P0,linewidth=0.05,linecolor=blue,args=tabC 146 II getinterval aload pop]
\psCrayonC[RotY=90,RotX=10,pencolor=blue,grid,h=10,r=0.5](0,tabC 146 II 2 sub add get,tabC 146 II 1 sub add get)
\end{pspicture}\newpage}
\multido{\i=0+1}{3}{
\begin{pspicture}(-3,-3)(6,6)
\psframe(-3,-3)(6,6)
\psset{lightsrc=viewpoint,viewpoint=100 20 20 rtp2xyz,Decran=60,solidmemory}
\psSolid[object=grille,base=-9 3 -2 8,ngrid=12 10,linewidth=0.01,linecolor=blue,RotY=90](0,0,0)
\pstVerb{/tabC [\BTimesBold] {2 mulv} papply def}%
\psSolid[object=plan,definition=equation,args={[1 0 0 0] 90},name=P0,base=-4 4 -4 4,action=none]
\psProjection[object=line,plan=P0,linewidth=0.05,linecolor=blue,args=tabC 0 100 getinterval aload pop]
\psProjection[object=line,plan=P0,linewidth=0.05,linecolor=blue,args=tabC 100 46 getinterval aload pop]
\psProjection[object=line,plan=P0,linewidth=0.05,linecolor=blue,args=tabC 146 44 getinterval aload pop]
\end{pspicture}\newpage}
\multido{\i=0+1}{3}{
\begin{pspicture}(-3,-3)(6,6)
\psframe(-3,-3)(6,6)
\psset{lightsrc=viewpoint,viewpoint=100 20 20 rtp2xyz,Decran=60,solidmemory}
\psSolid[object=grille,base=-9 3 -2 8,ngrid=12 10,linewidth=0.01,linecolor=blue,RotY=90](0,0,0)
\pstVerb{/tabC [\BTimesBold] {2 mulv} papply def}%
\psSolid[object=plan,definition=equation,args={[1 0 0 0] 90},name=P0,base=-4 4 -4 4,action=none]
\psProjection[object=texte,PSfont=Times-Bold,% ZapfChancery, % Palatino-Italic, % ZapfDingbats, %
              fontsize=142.2637 2 mul,linecolor={[rgb]{1 1 0.5}},
              text=B,
              pos=ur,
              plan=P0](0.05,-0.1)%
\psProjection[object=line,plan=P0,linewidth=0.05,linecolor=blue,args=tabC 0 100 getinterval aload pop]
\psProjection[object=line,plan=P0,linewidth=0.05,linecolor=blue,args=tabC 100 46 getinterval aload pop]
\psProjection[object=line,plan=P0,linewidth=0.05,linecolor=blue,args=tabC 146 44 getinterval aload pop]
\end{pspicture}\newpage}
\end{center}
\end{document}

mardi 7 juillet 2015

pst-crayon : dessiner un avion

\documentclass{article}
\usepackage{pst-crayon}
\def\avion{0.174764   1.73441   0.349877   1.66444   0.18486   1.0747   0.439696   1.10951   0.809764   1.60456   1.01073   1.58454   1.22204   1.56505   1.39585   1.55016   1.48445   1.54433   1.57845   1.54268   1.64964   1.5412   1.70178   1.53954   1.73859   1.53754   1.76392   1.53484   1.78159   1.5311   1.79542   1.52614   1.80926   1.51961   1.86105   1.47566   1.87924   1.4096   1.87602   1.366   1.86122   1.29393   1.82658   1.15712   1.76435   0.919775   1.32953   -0.0651014   1.51439   -0.0651014   1.57244   -0.0602275   1.61883   -0.0406449   1.66418   0.000348136   1.71944   0.0699753   1.9144   0.345003   2.21937   0.345003   2.2413   0.351791   2.26053   0.369807   2.27402   0.395308   2.27925   0.424726   2.27402   0.457015   2.26053   0.48417   2.2413   0.502708   2.21937   0.509671   2.05435   0.509671   2.29909   0.859548   2.59918   0.859548   2.62112   0.866423   2.64035   0.885136   2.65384   0.912203   2.65906   0.944493   2.65375   0.974694   2.63965   1.00211   2.61894   1.02204   2.59396   1.02979   2.43904   1.02979   2.80911   1.52449   2.85402   1.52936   3.1367   1.54216   3.31373   1.5526   3.43454   1.56391   3.5489   1.57949   3.65403   1.60438   3.73437   1.64007   3.78563   1.68419   3.80373   1.73441   3.76335   1.79969   3.6462   1.85182   3.45777   1.8889   3.2039   1.90918   2.85402   1.92415   2.80911   1.92937   2.43904   2.42407   2.59396   2.42407   2.61894   2.43173   2.63965   2.45218   2.65375   2.48099   2.65906   2.51424   2.65384   2.54339   2.64035   2.56898   2.62112   2.58709   2.59918   2.59396   2.29909   2.59396   2.05435   2.94384   2.21937   2.94384   2.2413   2.95071   2.26053   2.96943   2.27402   2.99649   2.27925   3.02878   2.27402   3.05811   2.26053   3.08379   2.2413   3.10189   2.21937   3.10885   1.9144   3.10885   1.71944   3.38388   1.66418   3.45621   1.61883   3.49877   1.57244   3.51878   1.51439   3.52383   1.32953   3.52383   1.76435   2.53408   1.82658   2.30074   1.86122   2.16358   1.87602   2.08916   1.87924   2.04425   1.86792   1.98881   1.83363   1.9493   1.77593   1.92476   1.69438   1.9144   1.52936   1.90918   1.47209   1.90883   1.41952   1.90665   1.34807   1.90074   1.23449   1.88933   0.98975   1.86949   0.809764   1.8493   0.439696   2.344   0.18486   2.37916   0.349877   1.78942   0.174764   1.73441}
\def\projPolygon{%
% il y a un bug dans la définition de /proj-pst-polygone dans pst-solides3d.pro,
% d'où cette nouvelle définition
/proj-pst-polygone {
   proj-action (none) eqstring not {
      l@pl@n plangetrange aload pop
      setyrange setxrange
%      newpath
%         xmin ymin l@pl@n pointplan smoveto
%         xmin ymax l@pl@n pointplan slineto
%         xmax ymax l@pl@n pointplan slineto
%         xmax ymin l@pl@n pointplan slineto
%         xmin ymin l@pl@n pointplan slineto
%     planprojpst projpath
%      clip
      solidlinewidth setlinewidth
      linestyle
      linecolor
      proj-definition length 0 eq {
         [proj-args]
      } {
         proj-args
      } ifelse
      proj-definition cvx exec polygone_
      planprojpst projectionsifacevisible projpath
   } if
   /projname where {
      pop
      proj-definition length 0 eq {
         [proj-args]
      } {
         proj-args
      } ifelse
      proj-definition cvx exec projname cvlit exch def
      /projname where pop /projname undef
   } if
} def
}
\pagestyle{empty}
\begin{document}
\begin{center}
\psset{RotSequence=zyx}
\multido{\i=0+4}{58}{% 115 points => 230 éléments 4 x 57 =228
\begin{pspicture}(-1,-4)(12,7)
\psframe[fillstyle=solid,fillcolor=cyan!20](-1,-4)(12,7)
\psset{lightsrc=viewpoint,viewpoint=100 20 30 rtp2xyz,Decran=60,solidmemory}
\psSolid[object=grille,base=-8 1 0 10,ngrid=16 17,linewidth=0.01,linecolor=blue](0,0,0)
\psSolid[object=plan,definition=equation,args={[0 0 1 0] 90},name=P0,base=-4 4 -4 6,action=none]
\pstVerb{/tabC [\avion] {2 mulv} papply def /II \i\space 2 add def }%
\psProjection[object=line,plan=P0,linewidth=0.06,args=tabC 0 II getinterval aload pop]
\psCrayonH[RotY=40,RotX=-10,RotZ=20,pencolor=black,grid,h=15,r=0.4,colorpencilbody=gray,colorbody](tabC II 1 sub get neg,tabC II 2 sub get,0)
\end{pspicture}\newpage}
\multido{\i=0+1}{11}{%
\begin{pspicture}(-1,-4)(12,7)
\psframe[fillstyle=solid,fillcolor=cyan!20](-1,-4)(12,7)
\psset{lightsrc=viewpoint,viewpoint=100 20 30 rtp2xyz,Decran=60,solidmemory}
\psSolid[object=grille,base=-8 1 0 10,ngrid=16 17,linewidth=0.01,linecolor=blue](0,0,0)
\codejps{\projPolygon}
\psSolid[object=plan,definition=equation,args={[0 0 1 -\i\space 2 div] 90},name=P0,base=-4 4 -4 6,action=none]
\pstVerb{/tabC [\avion] {2 mulv} papply def}%
\psProjection[object=polygone,plan=P0,linewidth=0.06,args=tabC 0 228 getinterval {\i\space 0 addv} papply aload pop,fillstyle=solid,fillcolor=blue](\i,0)
\end{pspicture}\newpage}
\end{center}
\end{document}

pst-crayon : dessin du a minuscule en Times-Bold


 Avec le package animate d'Alexander Grahn :
http://manuel.luque.perso.neuf.fr/pst-crayon/pst-crayon-v2/animate-a-pst-crayon.tex
http://manuel.luque.perso.neuf.fr/pst-crayon/pst-crayon-v2/animate-a-pst-crayon.pdf
Rappel : le package est ici :
http://manuel.luque.perso.neuf.fr/pst-crayon/pst-crayon-v2/

Le listing pour créer les images en vue du Gif animé.

\documentclass{article}
\usepackage{pst-crayon}
% a minuscule en Times-Bold
\def\aminusculeTimesBold{2.36542   0.320129   2.31547   0.270185   2.29163   0.254404   2.26033   0.250068   2.21454   0.257612   2.18177   0.28059   2.16209   0.319522   2.15558   0.374929   2.15558   1.68042   2.13798   1.83181   2.08665   1.96664   2.00306   2.08379   1.88921   2.1822   1.74675   2.26067   1.57741   2.31808   1.38301   2.35337   1.16537   2.36542   0.962382   2.35389   0.779079   2.32033   0.617714   2.26622   0.480627   2.19287   0.3699   2.10165   0.288047   1.99404   0.237322   1.87135   0.219894   1.73522   0.225443   1.66074   0.241831   1.5951   0.268624   1.53856   0.305562   1.49157   0.352038   1.45437   0.407705   1.4274   0.472217   1.41093   0.545225   1.40538   0.617107   1.41084   0.682572   1.42671   0.740494   1.45229   0.790091   1.48662   0.830238   1.52885   0.860065   1.57828   0.878708   1.63403   0.885124   1.69533   0.864488   1.79904   0.795294   1.91037   0.748384   1.97289   0.735291   2.02032   0.759136   2.09359   0.825208   2.15229   0.92501   2.19131   1.05022   2.20553   1.24028   2.18029   1.37087   2.10174   1.44604   1.96491   1.47024   1.76539   1.47024   1.40017   1.09219   1.28008   0.816971   1.1821   0.615806   1.09435   0.460251   1.00513   0.312846   0.887639   0.208101   0.758963   0.145584   0.61702   0.124861   0.460251   0.165874   0.248594   0.28059   0.0806393   0.456262   -0.0301747   0.680144   -0.0700608   0.885124   -0.0505513   1.07892   0.0112722   1.27081   0.119832   1.47024   0.279896   1.52313   0.117664   1.60411   0.00927785   1.72074   -0.0512449   1.88054   -0.0700608   2.03202   -0.0543665   2.16989   -0.00442215   2.30299   0.0839342   2.44033   0.215038   2.36542   0.320129   1.46538   0.500137   1.36965   0.401115   1.28208   0.334436   1.19728   0.296891   1.11022   0.285099   1.05611   0.291255   1.00695   0.309291   0.963509   0.338338   0.926398   0.37753   0.89631   0.426174   0.873939   0.483315   0.860065   0.54826   0.855296   0.620142   0.894315   0.822174   1.01025   0.992036   1.20118   1.12722   1.46538   1.22537   1.46538   0.500137}
% 97 points
% on prend un point sur 2
\pagestyle{empty}
\begin{document}
\begin{center}
\psset{RotSequence=yxz}
\multido{\i=0+4}{40}{%
\begin{pspicture}(-6,-3)(7,6)
\psframe(-6,-3)(7,6)
\psset{lightsrc=viewpoint,viewpoint=100 20 50 rtp2xyz,Decran=60,solidmemory}
\psSolid[object=grille,base=-5 3 -3 7,ngrid=8 10,linewidth=0.01,linecolor=blue](0,0,0)
\psSolid[object=plan,definition=equation,args={[0 0 1 0] 90},name=P0,base=-4 4 -4 6,action=none]
\pstVerb{/tabC [\aminusculeTimesBold] {2 mulv} papply def /II \i\space 2 add def }%
\psProjection[object=line,plan=P0,linewidth=0.05,linecolor=red,args=tabC 0 II getinterval aload pop]
\psCrayonH[RotY=30,RotX=10,pencolor=red,grid,h=20,r=0.5](tabC II 1 sub get neg,tabC II 2 sub get,0)
\end{pspicture}\newpage}
\multido{\i=0+2}{18}{%
\begin{pspicture}(-6,-3)(7,6)
\psframe(-6,-3)(7,6)
\psset{lightsrc=viewpoint,viewpoint=100 20 50 rtp2xyz,Decran=60,solidmemory}
\psSolid[object=grille,base=-5 3 -3 7,ngrid=8 10,linewidth=0.01,linecolor=blue](0,0,0)
\psSolid[object=plan,definition=equation,args={[0 0 1 0] 90},name=P0,base=-4 4 -4 4,action=none]
\psProjection[object=line,plan=P0,linewidth=0.05,linecolor=red,args=tabC 0 158 getinterval aload pop]
\pstVerb{/tabC [\aminusculeTimesBold] {2 mulv} papply def /II \i\space 2 add def }%
\psProjection[object=line,plan=P0,linewidth=0.05,linecolor=red,args=tabC 158 II getinterval aload pop]
\psCrayonH[RotY=30,RotX=10,pencolor=red,grid,h=20,r=0.5](tabC 158 II 1 sub add get neg,tabC 158 II 2 sub add get,0)
\end{pspicture}\newpage}
\multido{\i=0+1}{5}{
\begin{pspicture}(-6,-3)(7,6)
\psframe(-6,-3)(7,6)
\psset{lightsrc=viewpoint,viewpoint=100 20 50 rtp2xyz,Decran=60,solidmemory}
\psSolid[object=grille,base=-5 3 -3 7,ngrid=8 10,linewidth=0.01,linecolor=blue](0,0,0)
\psSolid[object=plan,definition=equation,args={[0 0 1 0] 90},name=P0,base=-4 4 -4 4,action=none]
\psProjection[object=texte,PSfont=Times-Bold,% ZapfChancery, % Palatino-Italic,
              fontsize=142.2637 2 mul,linecolor=red,
              text=a,
              pos=ur,
              plan=P0](0.05,-0.18)%
\end{pspicture}\newpage}
\end{center}
\end{document}

lundi 6 juillet 2015

pst-crayon : dessiner un A

Une application du package pst-crayon : voir les messages précédents.
http://pstricks.blogspot.fr/2015/07/pst-crayon-dessiner-lesperluette.html
http://pstricks.blogspot.fr/2015/07/pst-crayon-aiguiser-des-crayons-de_4.html

Le listing permettant de créer les images :

\documentclass{article}
\usepackage{pst-crayon}
% A majuscule en ZapfChancery
\def\Azap{0.115149   0.0450886   0.19154   0.023238   0.255011   0.00936456   0.314753   0.00208101   0.380132   0.0   0.503432   0.00893101   0.622917   0.0391057   0.744656   0.0952064   0.875153   0.181915   1.02065   0.304001   1.18748   0.46632   1.38188   0.673381   1.61036   0.930213   2.12792   0.925877   2.49548   0.910096   2.47051   0.730089   2.43062   0.465106   2.40045   0.260127   2.38233   0.13752   2.37548   0.0450886   2.38423   0.000346836   2.4086   -0.0343367   2.4451   -0.056881   2.49063   -0.0648582   2.55375   -0.0606095   2.6356   -0.0450886   2.81847   -0.0117924   2.95972   0.0139601   3.06689   0.0334696   3.14753   0.0481234   3.2091   0.0592222   3.2593   0.0681532   3.3056   0.0763038   3.35563   0.0849747   3.43575   0.20498   3.3206   0.194922   3.22947   0.186251   3.16878   0.181829   3.12022   0.180181   3.06568   0.180008   2.99718   0.182435   2.94134   0.190499   2.89694   0.20498   2.86295   0.22683   2.83833   0.256832   2.82211   0.296024   2.8131   0.345101   2.81041   0.405104   2.81925   0.571325   2.84405   0.820526   2.88186   1.13233   2.92981   1.48654   2.98504   1.86268   3.04461   2.24064   3.10574   2.60005   3.16557   2.9207   3.09551   2.97065   3.04071   2.91064   2.98669   2.86113   2.93934   2.83044   2.89009   2.81474   2.83052   2.81041   2.78466   2.81162   2.73306   2.81674   2.65893   2.82732   2.54543   2.84544   2.28044   2.88368   2.09038   2.89573   1.91262   2.87483   1.73782   2.8118   1.56293   2.70558   1.38526   2.55548   1.21401   2.36871   1.09583   2.18671   1.02724   2.0028   1.00513   1.81048   1.00825   1.72473   1.01944   1.64712   1.04094   1.56484   1.07519   1.46538   1.44526   1.6655   1.39497   1.82522   1.36263   1.9467   1.34529   2.04373   1.34017   2.13061   1.37945   2.32397   1.4933   2.46687   1.67565   2.55531   1.92043   2.58566   2.10529   2.5756   2.36542   2.54543   2.42672   2.53944   2.4843   2.53537   2.55115   2.53138   2.64046   2.52566   1.77545   1.40538   1.60767   1.1965   1.42402   0.976429   1.25346   0.780813   1.12513   0.645114   0.975908   0.509848   0.834573   0.421925   0.688555   0.374322   0.525109   0.360015   0.467534   0.361229   0.416983   0.366345   0.365478   0.376924   0.305215   0.395046   0.115149   0.0450886   1.76539   1.13519   2.73064   2.40045   2.52566   1.13519   1.76539   1.13519}
 %  nbre points = 113
\pagestyle{empty}
\newpsstyle{decor}{lightsrc=60 30 60 rtp2xyz,viewpoint=60 20 70 rtp2xyz,Decran=36,solidmemory,lightintensity=1}
\begin{document}
\begin{center}
\multido{\i=0+2}{109}{%
\begin{pspicture}(-6,-4)(6,8)
\psframe[fillstyle=solid,fillcolor=cyan!10](-6,-4)(6,8)
\psset{style=decor}
\psSolid[object=grille,base=-5 3 -3 7,ngrid=8 10,fillcolor=black,linecolor=white,linewidth=0.01](0,0,0)
\psSolid[object=plan,definition=equation,args={[0 0 1 0] 90},name=P0,base=-4 4 -4 6,action=none]
\pstVerb{/tabC [\Azap] def /II \i\space 2 add def }%
\psProjection[object=line,plan=P0,linecolor=white,args=tabC 0 II getinterval aload pop,linewidth=0.035]
\psCrayonH[RotX=30,pencolor=white,grid,unit=0.5](tabC II 1 sub get neg 2 mul,tabC II 2 sub get 2 mul,0)
\end{pspicture}\newpage}
\multido{\i=0+2}{4}{%
\begin{pspicture}(-6,-4)(6,8)
\psframe[fillstyle=solid,fillcolor=cyan!10](-6,-4)(6,8)
\psset{style=decor}
\psSolid[object=grille,base=-5 3 -3 7,ngrid=8 10,fillcolor=black,linecolor=white,linewidth=0.01](0,0,0)
\psSolid[object=plan,definition=equation,args={[0 0 1 0] 90},name=P0,base=-4 4 -4 6,action=none]
\psProjection[object=line,plan=P0,linecolor=white,args=tabC 0 218 getinterval aload pop,linewidth=0.035]
\pstVerb{/tabC [\Azap] def /II \i\space 2 add def }%
\psProjection[object=line,plan=P0,linecolor=white,linewidth=0.035,args=tabC 218 II getinterval aload pop]
\psCrayonH[RotX=30,pencolor=white,grid,unit=0.5](tabC 218 II 1 sub add get neg 2 mul,tabC 218 II 2 sub add get 2 mul,0)
\end{pspicture}\newpage}
\begin{pspicture}(-6,-4)(6,8)
\psframe[fillstyle=solid,fillcolor=cyan!10](-6,-4)(6,8)
\psset{style=decor}
\psSolid[object=grille,base=-5 3 -3 7,ngrid=8 10,fillcolor=black,linecolor=white,linewidth=0.01](0,0,0)
\pstVerb{/tabC [\Azap] def}%
\psSolid[object=plan,definition=equation,args={[0 0 1 0] 90},name=P0,base=-4 4 -4 4,action=none]
\psProjection[object=texte,PSfont=ZapfChancery, % Palatino-Italic,
              fontsize=142.2637,linecolor=white,
              text=A,
              pos=ur,
              plan=P0](0,-0.18)%
\end{pspicture}
\end{center}
\end{document}

pst-crayon : dessiner l'esperluette

C'est une application du package pst-crayon, voir :
http://pstricks.blogspot.fr/2015/07/pst-crayon-aiguiser-des-crayons-de_4.html
 le code permettant d'obtenir les images :

\documentclass{article}
\usepackage{pst-crayon}
% l'esperluette en Palatino - italic
\def\esp{  2.44033   2.74069   2.5704   3.33552   2.33663   3.43194   2.08032   3.46072   1.88297   3.44442   1.70019   3.39066   1.5331   3.30976   1.37876   3.21204   1.24011   3.10062   1.12019   2.97862   1.02169   2.84943   0.947728   2.71616   0.901252   2.58202   0.885124   2.45039   0.907408   2.29553   0.977643   2.16469   1.10034   2.05162   1.28017   1.95026   1.01883   1.85436   0.825035   1.76791   0.672514   1.67756   0.535167   1.57047   0.405884   1.42714   0.311892   1.26092   0.254491   1.07302   0.235154   0.865008   0.256311   0.655953   0.318568   0.468835   0.419671   0.305649   0.557625   0.167955   0.730175   0.0577481   0.935415   -0.023238   1.17109   -0.0731823   1.43521   -0.0901772   1.65753   -0.077431   1.88167   -0.0407532   2.09636   0.0175152   2.2905   0.0950329   2.48195   0.197003   2.65381   0.310591   2.80417   0.433544   2.93128   0.563781   3.03334   0.699134   3.10843   0.837608   3.15482   0.976862   3.17077   1.11508   3.14476   1.26231   3.07565   1.39272   2.97654   1.4894   2.8607   1.53544   2.77572   1.54515   3.2006   1.6055   3.46567   1.67825   3.6638   1.8097   3.78788   1.99274   3.8308   2.22044   3.81684   2.35675   3.77201   2.46357   3.69146   2.54889   3.57067   2.62069   3.46558   2.54057   3.56061   2.48438   3.61871   2.42924   3.64767   2.36464   3.65565   2.28044   3.62148   2.13555   3.51752   2.0217   3.34133   1.93586   3.09065   1.87534   2.53537   1.78551   2.3055   1.74137   2.14414   1.69169   2.02205   1.62501   1.91037   1.53024   1.87048   1.0353   1.98529   1.02525   2.04416   1.23144   2.11795   1.35847   2.22174   1.42263   2.37062   1.44041   2.5547   1.40807   2.69673   1.31719   2.78812   1.17655   2.82047   0.995071   2.79601   0.82781   2.72647   0.67026   2.61713   0.526063   2.47354   0.399381   2.30117   0.293943   2.10538   0.213737   1.89164   0.162839   1.6655   0.144977   1.44804   0.160325   1.25147   0.20498   1.07814   0.276775   0.930733   0.373715   0.811682   0.493634   0.723499   0.634362   0.668699   0.793907   0.64997   0.970099   0.668959   1.15704   0.724193   1.3263   0.812982   1.4757   0.932554   1.6029   1.08031   1.70565   1.25346   1.78187   1.44943   1.82921   1.6655   1.84551   1.84551   1.84551   1.84551   1.85522   1.84993   1.87725   1.86233   1.91158   1.88132   1.9552   1.90551   2.0054   1.92728   2.05422   1.9454   2.09558   1.87534   2.09558   1.61218   2.13096   1.41388   2.23301   1.28867   2.39507   1.24514   2.61063   1.25763   2.73393   1.29361   2.84778   1.35084   2.94984   1.42705   3.03811   1.51983   3.11042   1.62701   3.1647   1.74623   3.19878   1.87534   3.21066   1.98433   3.20181   2.09107   3.17372   2.20241   3.12412   2.32553   3.05077   2.32553   2.74069   2.44033   2.74069}
\pagestyle{empty}
\begin{document}

\begin{center}
\multido{\i=0+4}{68}{% 135 = nombre de points du caractère : on prend 1 point sur 2
\begin{pspicture}(-3,-3)(5,8)
\psframe(-3,-3)(5,8)
\psset{lightsrc=viewpoint,viewpoint=100 20 50 rtp2xyz,Decran=60,solidmemory}
\psSolid[object=grille,base=-5 3 -3 5,ngrid=8 8](0,0,0)
\psSolid[object=plan,definition=equation,args={[0 0 1 0] 90},name=P0,base=-4 4 -4 4,action=none]
\pstVerb{/tabC [\esp] def /dimC tabC length def /II \i\space 2 add def }%
\psProjection[object=line,plan=P0,linecolor=blue,args=tabC 0 II getinterval aload pop]
\psCrayonH[RotX=20,pencolor=blue,grid,unit=0.5](tabC II 1 sub get neg 2 mul,tabC II 2 sub get 2 mul,0)
\end{pspicture}\newpage}
\begin{pspicture}(-3,-3)(5,8)
\psframe(-3,-3)(5,8)
\psset{lightsrc=viewpoint,viewpoint=100 20 50 rtp2xyz,Decran=60,solidmemory}
\psSolid[object=grille,base=-5 3 -3 5,ngrid=8 8](0,0,0)
\psSolid[object=plan,definition=equation,args={[0 0 1 0] 90},name=P0,base=-4 4 -4 4,action=none]
\psProjection[object=texte,PSfont=Palatino-Italic,
              fontsize=142.2637,linecolor=blue,
              text=&,
              pos=ur,
              plan=P0](0.15,-0.2)%
\end{pspicture}
\end{center}
\end{document}

samedi 4 juillet 2015

pst-crayon : aiguiser des crayons de couleur avec PSTricks - version 2

On distingue 2 cas :
1 Aiguiser un crayon avec PSTricks, comme si le taillage s’effectuait avec un couteau ou un canif.
On considère dans ce cas que le corps du crayon est un cylindre dont on pourra choisir le rayon [r=0.6](je donne les valeurs par défaut) et la hauteur [h=25].
On taille des biseaux sur le bas du crayon. Le plan de coupe des biseaux fait un angle [phi=8.5] degrés avec l’axe vertical du crayon. Le nombre de biseaux est fixé à 8.
On choisira la couleur de la mine du crayon avec l’option : [pencolor=red], celle du corps du crayon avec l’option: [colorpencilbody=]. Par défaut ces 2 couleurs sont identiques. Si l’on souhaite donner une couleur différente aucorps du crayon, activez cette possibilité avec l’option : [colorbody].
Enfin, on pourra déplacer et faire tourner le crayon, avec les options usuelles de pst-solides3d.
La commande s’écrit : \psCrayonC[options](x,y,z).Les coordonnées (x,y,z) sont facultatives s’il n’y a pas dedéplacement.
Denis Barbier :
 https ://www.ctan.org/tex-archive/graphics/metapost/contrib/macros/mp3d/v1.0/contrib/denis-barbier
 s’appuyant sur des macros de Denis Roegel, a écrit avec metapost un ensemble de macros pour dessiner des crayons en 3d(très jolis), mais son procédé de taillage des crayons est différent, il utilise un aiguise-crayon –sans le dire, pas de biseaux, la partie aiguisée est un cône.
2 Le corps du cylindre est un prisme à base hexagonale
On aiguise le crayon avec un aiguise-crayon, la partie aiguisée est donc un cône. La rayon et la hauteur du crayon sont fixés avec les mêmes paramètres que précédemment. La commande pour ce type de crayon s’écrit \pscrayonH[options](x,y,z).


Les fichiers :
http://manuel.luque.perso.neuf.fr/pst-crayon/pst-crayon-v2/