diff options
author | Norbert Preining <norbert@preining.info> | 2022-11-28 03:03:54 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2022-11-28 03:03:54 +0000 |
commit | d215ba492183a22167b7cdf9900899ab51f7dda6 (patch) | |
tree | 32b4b1d6266f2afc855301d585edd3001b363ea8 /macros/latex/contrib/profcollege/metapost | |
parent | 6d1b034ffe312cd342bdcc717d7bd694dcad25a9 (diff) |
CTAN sync 202211280303
Diffstat (limited to 'macros/latex/contrib/profcollege/metapost')
-rw-r--r-- | macros/latex/contrib/profcollege/metapost/PfCObjets.mp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/macros/latex/contrib/profcollege/metapost/PfCObjets.mp b/macros/latex/contrib/profcollege/metapost/PfCObjets.mp index 96daf3d3bc..964cfedd8a 100644 --- a/macros/latex/contrib/profcollege/metapost/PfCObjets.mp +++ b/macros/latex/contrib/profcollege/metapost/PfCObjets.mp @@ -637,6 +637,37 @@ vardef Objetsphere[](expr Rn)= apj.@:=apj-1; enddef; +vardef ObjetSphereNew[](expr Rn)= + Outcolor.@:=outcolor; + Incolor.@:=incolor; + if creux:Ferme.@:=false else: Ferme.@:=true fi; + scantokens("numeric "&substring(0,1) of Rn&"; "&Rn&";"); + vardef Famille(expr u,v)=(R*(cos(u)*cos(v),cos(u)*sin(v),sin(u))) enddef; + umin:=-pi/2; upas:=pi/nb; umax:=pi/2; + vmin:=-pi; vpas:=2*pi/subh; vmax:=pi; + apj:=0; + %On crée les facettes et on calcule la profondeur en Z. + for k=0 upto (nb-1): + for l=0 upto (subh-1): + tcpt.@[apj]:=apj; + OTFc.@[apj].nb:=4; + OTFc.@[apj][1]:=Image(Famille(umin+(k+1)*upas,vmin+l*vpas)); + OTFc.@[apj][2]:=Image(Famille(umin+k*upas,vmin+l*vpas)); + OTFc.@[apj][3]:=Image(Famille(umin+k*upas,vmin+(l+1)*vpas)); + OTFc.@[apj][4]:=Image(Famille(umin+(k+1)*upas,vmin+(l+1)*vpas)); + OTFc.@[apj].iso:=(OTFc.@[apj][1]+OTFc.@[apj][2]+OTFc.@[apj][3]+OTFc.@[apj][4])/4; + ALT.@[apj]:=-Zpart(GCoord(OTFc.@[apj].iso)); + if ProduitScalaire(Oeil-OTFc.@[apj].iso,Normal(OTFc.@[apj].iso,OTFc.@[apj][1],OTFc.@[apj][2]))>=0: + Vue.@[apj]:=true;coul.@[apj]:=outcolor; + else: + Vue.@[apj]:=false;coul.@[apj]:=incolor; + fi; + apj:=apj+1; + endfor; + endfor; + apj.@:=apj-1; +enddef; + vardef Objetcalotte[](expr Rn,Phib,Phih)= Outcolor.@:=outcolor; Incolor.@:=incolor; |