Lorsqu'on regarde les commandes cône et prisme, on voit des différences énormes de syntaxe. La petite macro qui suit a pour but de créer plus simplement des "cônes à base carrée".
#macro squarecone (Ybase,Ysommet,largbase,largsommet)prism {
conic_sweep
linear_spline
largsommet/largbase
1
4
<-largbase,-largbase>,<largbase,-largbase>,<largbase,largbase>,<-largbase,largbase>
rotate<180,0,0>
translate<0,1,0>
scale<1,(Ysommet-Ybase)/(1-largsommet/largbase),1>
translate<0,Ybase,0>
}
#end
Comment ça marche ?
Simplement, il va créer un prisme à base carrée centré sur <0,Ybase,0> (base) et <0,Ysommet,0> (face la plus haute., dont les faces sont des carrés de largeur 2*largbase en bas et 2*largsommet.
Si l'on fait la même chose simplement avec la commande prism, la hauteur globale dépendra de la différence de taille des deux faces. Ici, non.
Un exemple simple :
camera {location <-15,0,12> look_at 0}
light_source {<-20,0,5> color rgb 1}
object {squarecone (0,5,2,0) pigment {color rgb 1}}
object {squarecone (0,5,2,1) pigment {color rgb 1} translate <5,0,5>}
object {squarecone (0,5,2,0.5) pigment {color rgb 1} translate <-5,0,-5>}
Cette macro sera utilisée de manière intensive dans mon projet "Tour de babel"...
Ecrire un commentaire - Voir les 2 commentaires - Recommander
Commentaires