Changeset 11

Show
Ignore:
Timestamp:
04/06/08 16:24:30 (8 months ago)
Author:
jpv
Message:

Ajout de l'objet "surface*"

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/pst-solides3d.tex

    r10 r11  
    1111\ifx\MultidoLoaded\endinput\else\input multido.tex \fi 
    1212% JPV & ML & AS 
    13 \def\fileversion{3.06
     13\def\fileversion{3.07
    1414\def\filedate{2008/04/06} 
    1515\message{`PSTSOLIDESIIID' v\fileversion, \filedate} 
     
    216216grille,prisme,anneau,parallelepiped,prismecreux,ruban,calottesphere,face,% 
    217217surface,calottespherecreuse,polygoneregulier,fusion,new,chemin,courbeR2,courbe,% 
    218 surfaceparametree,texte,trigospherique,vecteur,ligne,objfile,datfile
     218surfaceparametree,texte,trigospherique,vecteur,ligne,objfile,datfile,surface*
    219219%% Reservation de macros correspondants aux objects 
    220220\pst@solides@reservednames{object} 
  • trunk/solides.pro

    r9 r11  
    11%! 
    22% PostScript prologue for pst-solides3d.tex. 
    3 % Version 3.05, 2008/03/21 
     3% Version 3.06, 2008/04/06 
    44% 
    55%% COPYRIGHT 2008 by Jean-Paul Vignault, Manuel Luque 
     
    48664866             theta cos r j mul K div mul 
    48674867             theta sin r j mul K div mul 
    4868              2 copy exch atan 90 div 
     4868             2 copy f %exch atan 90 div 
     4869          } for 
     4870       } for 
     4871   ] def 
     4872 
     4873   S F generesolid 
     4874end 
     4875} def 
     4876 
     4877%% syntaxe : r [dx dy] {f} newsurface* -> solid 
     4878/newsurface* { 
     48797 dict begin 
     4880   /f_surface exch def 
     4881   [[/nx /ny] [6 6] [6 8] [10 8] [16 12] [16 36]] gestionsolidmode 
     4882 
     4883   %% ny = nb de meridiens 
     4884   %% nx = nb d horizontales 
     4885 
     4886   /r exch def 
     4887   nx isinteger not { 
     4888       %% alors nx est un dx 
     4889       /nx r nx div cvi store 
     4890   } if 
     4891   ny isinteger not { 
     4892       %% alors ny est un dy 
     4893       /ny 360 ny div cvi store 
     4894   } if 
     4895   /dy r ny div def %% le pas sur y 
     4896   /dx r nx div def %% le pas sur x 
     4897 
     4898   /F [ 
     4899       %% 1er etage 
     4900       1 1 ny { 
     4901           /i exch def 
     4902           [0 i i ny mod 1 add] 
     4903       } for 
     4904       %% etages suivants 
     4905       0 1 nx 2 sub { 
     4906           /j exch def 
     4907           1 1 ny { 
     4908               /i exch def 
     4909               [i      j ny mul add 
     4910               i ny add j ny mul add 
     4911               i ny mod ny add 1 add j ny mul add 
     4912               i ny mod 1 add j ny mul add] 
     4913           } for 
     4914      } for 
     4915   ] def 
     4916 
     4917   %% tableau des sommets 
     4918   /S [ 
     4919       0 0 0 
     4920       1 1 nx { 
     4921           /j exch def 
     4922           1 1 ny { 
     4923             /i exch def 
     4924             /theta i 360 mul ny div def 
     4925             theta cos r j mul nx div mul 
     4926             theta sin r j mul nx div mul 
     4927             2 copy f_surface 
    48694928          } for 
    48704929       } for 
     
    67266785} def 
    67276786 
     6787/pst-surface* { 
     6788   r 
     6789   ngrid length 2 ge { 
     6790      [ngrid 0 get ngrid 1 get] 
     6791   } { 
     6792      ngrid length 1 eq { 
     6793         [ngrid 0 get dup] 
     6794      } if 
     6795   } ifelse 
     6796   { function cvx exec } newsurface* 
     6797   dup videsolid 
     6798   gere_pstricks_opt 
     6799} def 
     6800 
    67286801/pst-vecteur { 
    67296802gsave