diff options
author | Karl Berry <karl@freefriends.org> | 2022-11-27 20:51:41 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-11-27 20:51:41 +0000 |
commit | 5f691328dabfaa4a6c21d498e4b4931c230c3692 (patch) | |
tree | 259f22ad89c81024efe745181d3a45e0d6f06cd4 /Master/texmf-dist/metapost | |
parent | 8c51a87140f38a4acf9bbafd5c88cc95a7b0f37f (diff) |
profcollege (27nov22)
git-svn-id: svn://tug.org/texlive/trunk@65122 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/metapost')
-rw-r--r-- | Master/texmf-dist/metapost/profcollege/PfCObjets.mp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Master/texmf-dist/metapost/profcollege/PfCObjets.mp b/Master/texmf-dist/metapost/profcollege/PfCObjets.mp index 96daf3d3bc9..964cfedd8a1 100644 --- a/Master/texmf-dist/metapost/profcollege/PfCObjets.mp +++ b/Master/texmf-dist/metapost/profcollege/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; |