Airplane
Example from the PscFunctions package
With the help of procedures of the package you can obtain general parametric equations of continuous
piecewise linear surfaces.
Here we shall create the equation of a piecewise linear surface having the shape of the airplane.
At first we generate equations of the curves of the surface frame. For that we use the routine
PR(x,a,w)
that
is equivalent to expression
.
> | restart; with(PscFunctions): ff:=t->3*PR(t,0,3)+3*PR(t,14,3)+3*PR(t,20,3)+3*PR(t,34,3): xc:=t->sin(2*Pi*ff(t)/12): yc:=t->-cos(2*Pi*ff(t)/12): xa1:=t->sin(2*Pi*PR(t,0,3)/4)+5*PR(t,3,5)-5*PR(t,9,5)+cos(2*Pi*PR(t,14,3)/4)+cos(2*Pi*PR(t,20,3)/4+Pi/2)-1-5*PR(t,23,5)+5*PR(t,29,5)+cos(2*Pi*PR(t,34,3)/4+Pi)+1: ya1:=t->-cos(2*Pi*PR(t,0,3)/4)+sin(2*Pi*PR(t,14,3)/4)+sin(2*Pi*PR(t,20,3)/4+Pi/2)-1+sin(2*Pi*PR(t,34,3)/4+Pi): a:=1/10: xa2:=t->sin(2*Pi*PR(t,0,3-a)/4)+5*PR(t,3,5)-5*PR(t,9,5)+cos(2*Pi*PR(t,14,3)/4)+cos(2*Pi*PR(t,20,3)/4+Pi/2)-1-5*PR(t,23,5)+5*PR(t,29,5)+cos(2*Pi*PR(t,34,3)/4+Pi)+1: ya2:=t->-cos(2*Pi*PR(t,0,3-a)/4)+1/3*PR(t,8,1)+sin(2*Pi*PR(t,14,3)/4)+sin(2*Pi*PR(t,20,3)/4+Pi/2)-1-1/3*PR(t,28,1)+sin(2*Pi*PR(t,34,3)/4+Pi): r:=1/2: xr1:=t->r*sin(2*Pi*PR(t,0,3)/4)+2*PR(t,3,2)-2*PR(t,12,2)+r*cos(2*Pi*PR(t,14,3)/4)+r*cos(2*Pi*PR(t,20,3)/4+Pi/2)-r-2*PR(t,23,2)+2*PR(t,32,2)+r*cos(2*Pi*PR(t,34,3)/4+Pi)+r: yr1:=t->-r*cos(2*Pi*PR(t,0,3)/4)+r*sin(2*Pi*PR(t,14,3)/4)+PR(t,17,1)-PR(t,19,1)+r*sin(2*Pi*PR(t,20,3)/4+Pi/2)-r+r*sin(2*Pi*PR(t,34,3)/4+Pi): plots[spacecurve]({[0,0,0],[1,0.7*xc(t),0.7*yc(t)],[3,xc(t),yc(t)],[3,xa1(t),ya1(t)],[4,xa2(t),ya2(t)],[5,xa1(t),ya1(t)],[5,xc(t),yc(t)],[9,0.5*xc(t),0.5*yc(t)],[10,t0.5*xc(t),0.5*yc(t)],[10,xr1(t),yr1(t)],[11,xr1(t),yr1(t)]},t=0..37,thickness=2,scaling=constrained,axes=BOXED,labels=["X","Y","Z"],color=BLACK); |
The SPscRuled routine generates a parametric equation of the piecewise-ruled surface spanned the frame composed of the several curves
> | rl1:=SPscRuled([[t->0,t->0,t->0],[t->1,t->0.7*xc(t),t->0.7*yc(t)],[t->3,t->xc(t),t->yc(t)],[t->3,xa1,ya1],[t->4,xa2,ya2],[t->5,xa1,ya1],[t->5,xc,yc],[t->9,t->0.5*xc(t),t->0.5*yc(t)],[t->10,t->0.5*xc(t),t->0.5*yc(t)],[t->10,xr1,yr1],[t->11,xr1,yr1]],[[0,37],[0,37],[0,37],[0,37],[0,37],[0,37],[0,37],[0,37],[0,37],[0,37],[0,37]],0..37): plot3d([rl1(u,v)],u=0..37,v=0..10,axes=BOXED,labels=["X","Y","Z"],scaling=CONSTRAINED,grid=[38,21],orientation=[110,50]); |
> | 'X'=rl1[1](u,v); |
The Y and Z coordinate functions certainly long. Each of them has length about 80 strings.