Back to draw-VTK

'draw'-VTK interface:
Shells


The model

Once you have opened a Maxima session, load package draw and then set global variable draw_renderer to vtk:

load("draw") $
draw_renderer: 'vtk $

The surface of a shell is the result of the displacement of an ellipse along an helico-spiral curve. The mathematical model used here is explained in this paper.

h(a,b,s):= 1/sqrt((cos(s)/a)^2+(sin(s)/b)^2) $

x(d,A,beta,phi,omega,mu,alpha,a,b,theta,s):=
    d*(A*sin(beta) * cos(theta) +
       h(a,b,s) * ( cos(s+phi)*cos(theta+omega) -
                    sin(mu)*sin(s+phi)*sin(theta+omega) )) * 
    exp(theta*cot(alpha))$

y(A,beta,phi,omega,mu,alpha,a,b,theta,s):=
    (-A*sin(beta)*sin(theta)- 
      h(a,b,s) * ( cos(s+phi)*sin(theta+omega) +
                   sin(mu)*sin(s+phi)*cos(theta+omega) )) * 
    exp(theta*cot(alpha))$

z(A,beta,phi,mu,alpha,a,b,theta,s):=
    (-A*cos(beta) + h(a,b,s)*sin(s+phi)*cos(mu)) * 
    exp(theta*cot(alpha))$

degree: %pi/180$

shell(d,A,beta,phi,omega,mu,alpha,a,b,thetamin,thetamax,smin,smax) :=
    [background_color = navy,
     axis_3d          = false,
     color            = white,
     xu_grid          = 250,
     yv_grid          = 50,
     parametric_surface(
        x(d,A,beta,phi,omega,mu,alpha,a,b,theta,s),
        y(A,beta,phi,omega,mu,alpha,a,b,theta,s),
        z(A,beta,phi,mu,alpha,a,b,theta,s),
        theta, thetamin, thetamax,
        s, smin , smax)] $

Bivalvia

Glycimeris glycimeris (Linnaeus, 1767).

(alpha:37*degree,
 beta:90*degree,
 phi:0*degree,
 mu:1*degree,
 omega:1*degree,
 A:2,
 a:2,
 b:2.1,
 d:1,
 thetamin:0*%pi,
 thetamax:8*%pi,
 smin:0,
 smax:2*%pi,
    
 draw3d(
   shell(
     d,A,beta,phi,omega,mu,alpha,a,b,thetamin,thetamax,smin,smax)))$
glycimeris Glycimeris_glycimeris

Origin: Galician coast.

Barnea candida (Linnaeus, 1758).

(alpha:39*degree,
 beta:50*degree,
 phi:0*degree,
 mu:1*degree,
 omega:1*degree,
 A:9000,
 a:6500,
 b:17000,
 d:1,
 thetamin:0*%pi,
 thetamax:8*%pi,
 smin:0,
 smax:2*%pi,

draw3d(
  shell(
    d,A,beta,phi,omega,mu,alpha,a,b,thetamin,thetamax,smin,smax)) )$
barnea Barnea_candida

Origin: Galician coast.

Gastropoda

Turritella communis (Risso, 1824).

(alpha:88.9*degree,
 beta:4*degree,
 phi:55*degree,
 mu:1*degree,
 omega:-2*degree,
 A:22.2,
 a:1.3,
 b:1.5,
 d:1,
 thetamin:0*%pi,
 thetamax:25*%pi,
 smin:0,
 smax:2*%pi,

draw3d(
  shell(
    d,A,beta,phi,omega,mu,alpha,a,b,thetamin,thetamax,smin,smax)) )$
turritela Turritela_comunis

Origin: Galician coast.

Nucella lapillus (Linnaeus, 1758).

(alpha:86*degree,
 beta:11*degree,
 phi:-22*degree,
 mu:0*degree,
 omega:24*degree,
 A:95,
 a:20,
 b:35,
 d:1,
 thetamin:-8*%pi,
 thetamax:4*%pi,
 smin:0,
 smax:2*%pi,

draw3d(
  shell(
    d,A,beta,phi,omega,mu,alpha,a,b,thetamin,thetamax,smin,smax)) )$
nucella Nucella_lapillus

Origin: Galician coast.

Scaphopoda

Dentalium vulgare (Da Costa, 1778).

(alpha:17*degree,
 beta:80*degree,
 phi:-30*degree,
 mu:1*degree,
 omega:-60*degree,
 A:5,
 a:0.4,
 b:0.4,
 d:1,
 thetamin:-4*%pi,
 thetamax:4*%pi,
 smin:0,
 smax:2*%pi,

draw3d(
  shell(
    d,A,beta,phi,omega,mu,alpha,a,b,thetamin,thetamax,smin,smax)) )$
dentalium Dentalium_vulgare

Origin: Galician coast.

Cephalopoda

Spirula spirula (Linnaeus, 1758).

(alpha:78*degree,
 beta:90*degree,
 phi:1*degree,
 mu:1*degree,
 omega:1*degree,
 A:2.1,
 a:0.7,
 b:0.7,
 d:1,
 thetamin:0*%pi,
 thetamax:4*%pi,
 smin:0,
 smax:2*%pi,

draw3d(
  shell(
    d,A,beta,phi,omega,mu,alpha,a,b,thetamin,thetamax,smin,smax)) )$
spirula Spirula_spirula

Origin: Galician coast.

Nautilus sp.

(alpha:80*degree,
 beta:90*degree,
 phi:0*degree,
 mu:0*degree,
 omega:0*degree,
 A:2,
 a:2,
 b:1.5,
 d:1,
 thetamin:0*%pi,
 thetamax:8*%pi,
 smin:0,
 smax:2*%pi,

draw3d(
  shell(
    d,A,beta,phi,omega,mu,alpha,a,b,thetamin,thetamax,smin,smax)) )$
nautilus Nautilus

Origin: Pacific Ocean.


© 2016, TecnoStats.