ROV21_6.MWS

Chapter 21. Some Other Classes of Surfaces

Rovenski Vladimir, Haifa

> restart:

21.1 Canal Surfaces and Tubes

The command tubeplot allows one to plot a tube with an arbitrary space curve (t) of centers (see Section 8.1.1).

A program for a canal surface over an arbitrary curve:

> with(linalg):

```Warning, protected name norm has been changed and unprotected
```

```Warning, protected name trace has been changed and unprotected
```

> x:=u -> u: y:=u -> u^2: z:=u -> u/2: R:=u->u:

> r:=array([x(u), y(u), z(u)]); # define yours functions x(u),y(u),z(u)

> R:=R(u); u0:=0; u1:=2; # define function R(u)

> dr:=map(diff, r, u); ddr:=map(diff, r, u\$2);

> tau:=scalarmul(dr, 1/norm(dr, 2)); b:=crossprod(dr, ddr);

> beta:=scalarmul(b, 1/simplify(norm(b, 2)));

> nu:=crossprod(beta, tau);

> rr:=evalm(r+scalarmul(nu, R*cos(v))+scalarmul(beta, R*sin(v)));

> plot3d(rr, u=u0..u1, v=0..2*Pi, axes=none);

Exercises .

1. Write down equations of the canal surface with R(u)=ku and the tube over the circular and conic helix,

plot surfaces ( Sea shell ).

2. Plot the tube over the torus knot using the following program:

> N:=10: t_tub:=plots[tubeplot]({[10*cos(t), 10*sin(t), 0, t=0..2*Pi, radius=2, numpoints=10*N, tubepoints=2*N],[cos(t)*(10+4*sin(9*t)), sin(t)*(10+4*sin(9*t)), 4*cos(9*t), t=0..2*Pi, radius=1, numpoints=trunc(37.5*N), tubepoints=N]}, scaling=constrained): t_tub;

3. Plot the canal surface defined by moving the circle of radius 4+sin(2t) along the circle

of radius 10

> plot3d([(12+(4+sin(4*v))*sin(u))*cos(v), (12+(4+sin(4*v))*sin(u))*sin(v), (4+sin(4*v))*cos(u)], u=0..2*Pi, v=0..2*Pi, grid=[20,60], scaling=constrained);

4. Plot eight different figure eights .

Solution . The {Lissajous curve} for n=2 has the shape of a figure eight.

We plot the surface of revolution of the figure eight

> plot3d([sin(u)*sin(v), cos(u)*sin(u)*sin(v), cos(v)*sin(v)], v=0..2*Pi, u=0..2*Pi, grid=[40,50],scaling=constrained);

We plot the surface defined by moving of an figure eight along another figure eight.

> plot3d([cos(u)*sin(2*v),sin(u)*sin(2*v),sin(v)],v=0..2*Pi, u=0..2*Pi, grid=[40,50], scaling=constrained);

>

Let us plot also the tube over an eight.

21.2 Translation Surfaces

Exercises .

1. Prove that the following surfaces are translation surfaces:

(a) The elliptical and hyperbolic paraboloids.

(b) The {Bohemian dome} (translation of the ellipse along the circle)

.

> r:= [8*cos(u), 8*sin(u)+3*cos(v), 3*sin(v)];

> plot3d(r, v=0..-Pi, u=0..2*Pi, scaling=constrained);

>

21.3 Twisted Surfaces

Exercise . Plot the Lissajous curve , |u|<= , with n= 4, and its twisted surface.

> plot([sin(4*t), sin(t), t=0..2*Pi],scaling=constrained); # the curve

> plot3d([(2+cos(u/2)*sin(4*v)-sin(u/2)*sin(v))*cos(u), (2+cos(u/2)*sin(4*v)-sin(u/2)*sin(v))*sin(u), sin(u/2)*sin(4*v)+cos(u/2)*sin(v)], u=-Pi/8..3*Pi/2, v=0..2*Pi, grid=[30,80],scaling=constrained); #the surface

>

21.4 Parallel Surfaces (Equidistants)

Exercises .

3. Plot parallel surfaces for an ellipsoid; the hyperboloid of one sheet; the catenoid; the Mobius strip.

Solution . We plot some parallel surfaces for (part of) a ellipsoid:

> restart: with(linalg): r:=[cos(u)*cos(v), cos(u)*sin(v),2*sin(u)]:

```Warning, protected name norm has been changed and unprotected
```

```Warning, protected name trace has been changed and unprotected
```

> ru:=map(diff,r,u): rv:=map(diff,r,v):

> nn:=crossprod(ru, rv): n:=scalarmul(nn, 1/norm(nn,2)):

> p1:=plot3d(evalm(r+scalarmul(n,-1.5)), u=-Pi/3..Pi/3,v=Pi/4..2*Pi): p2:=plot3d(evalm(r+scalarmul(n,-1)), u=-Pi/3..Pi/3,v=Pi/4..2*Pi): p3:=plot3d(evalm(r+scalarmul(n,-0.6)), u=-Pi/3..Pi/3,v=Pi/4..2*Pi): p4:=plot3d(evalm(r+scalarmul(n,0.2)), u=-Pi/3..Pi/3,v=Pi/4..2*Pi):

> plots[display3d]({p1, p2, p3, p4});

To plot parallel surfaces for the hyperboloid of one sheet we set in the above program

> r:=[cosh(u)*cos(v), cosh(u)*sin(v), sinh(u)]: ru:=map(diff,r,u): rv:=map(diff,r,v):nn:=crossprod(ru, rv): n:=scalarmul(nn, 1/norm(nn,2)): nn:=crossprod(ru, rv): n:=scalarmul(nn, 1/norm(nn,2)): p1:=plot3d(evalm(r+scalarmul(n,-1.5)), u=-Pi/3..Pi/3,v=Pi/4..2*Pi): p2:=plot3d(evalm(r+scalarmul(n,-1)), u=-Pi/3..Pi/3,v=Pi/4..2*Pi): p3:=plot3d(evalm(r+scalarmul(n,-0.6)), u=-Pi/3..Pi/3,v=Pi/4..2*Pi): p4:=plot3d(evalm(r+scalarmul(n,0.2)), u=-Pi/3..Pi/3,v=Pi/4..2*Pi): plots[display3d]({p1, p2, p3, p4});

>

Note that a parallel surface for the Mobius strip has two sides (is orientable).

> r:=[(5+cos(v/2)*u)*cos(v), (5+cos(v/2)*u)*sin(v), sin(v/2)*u];

> ru:=map(diff,r,u): rv:=map(diff,r,v):

> nn:=crossprod(ru, rv): n:=scalarmul(nn, 1/norm(nn,2)):

> p1:=plot3d(r, u=-1..1, v=0..2*Pi, grid=[10,50]): p2:=plot3d(evalm(r+scalarmul(n,1)), u=-1..1, v=0..4*Pi, grid=[10, 80]):

> plots[display3d]({p1, p2});

>

21.5 Pedal and Podoid Surfaces

Exercises .

2. Plot the pedal surfaces of the ellipsoid with respect to its center, one of its vertices, and any external point.

> restart: with(linalg): r:=([cos(u)*cos(v), 2*cos(u)*sin(v), 3*sin(u)]);

```Warning, protected name norm has been changed and unprotected
```

```Warning, protected name trace has been changed and unprotected
```

> ru:=map(diff,r,u): rv:=map(diff,r,v):

> nn:=crossprod(ru, rv): p:=array([3,0,0]):

> coef:=simplify(dotprod(evalm(r-p), nn,orthogonal)/dotprod(nn, nn,orthogonal));

> rr:=evalm(p+scalarmul(nn, coef)):

> plot3d(rr, u=-Pi/2..Pi/2, v=Pi/2..2*Pi,grid=[25,30]);

>

21.6 Cissoidal and Conchoidal Maps

Since implicitplot3d gives a coarse image, we use the parametric equations of part of the cissoid

x= t, z= (0<= t< 2a) and plot the surface of revolution, by formulas (20.1a)

r= [ u, , ] (0<= u < 2a, 0<= v< 2 ).

> plot(sqrt(x^3/(2-x)), x=-1.8..1.8); # a=1

> plot3d([u,sqrt(u^3/(2-u))*cos(v), sqrt(u^3/(2-u))*sin(v)], u=0..1.9, v=0..2*Pi);

2. Write down the equation and plot the {conchoidal surface of the plane} {z=a} with l=1.

> plots[polarplot]([2/cos(t)-1, t, t=-1.5..1.5]); # profile curve

> plot3d([(2/sin(u)-1)*cos(u)*cos(v), (2/sin(u)-1)*cos(u)*sin(v), (2/sin(u)-1)*sin(u)], u=0..0.8, v=0..2*Pi); # surface

>

21.7 Inversion of a Surface

Example 1 .

1a. Inversion with center O and radius 1 of the circular helix, is the curve.

> restart: with(linalg): r:=[3+cos(u), sin(u), 0.1*u];

```Warning, protected name norm has been changed and unprotected
```

```Warning, protected name trace has been changed and unprotected
```

> ri:=(scalarmul(r, 1/norm(r, 2)^2)):

> plots[spacecurve](r, u=0..8*Pi, numpoints=200,axes=framed);

> plots[spacecurve](ri, u=-25*Pi..25*Pi, numpoints=999, axes=boxed);

1b. The command inversion(Q, P, S) from the library geom3d plots the inversion (the object Q ) of a point, plane,

or sphere P with respect to the sphere S .

> restart: with(geom3d):

```Warning, existing definition for polar has been overwritten
```

> point(A, 1,2,-1): point(B, 0,0,-1): point(C, 3,0,0):

> plane(P, [A,B,C]): sphere(S, [point(O,0,0,0),1]):

> inversion(F,P,S):

> draw([S, F, P(style=patchnogrid,color=maroon)], style=wireframe, view=[-1..1,-1..1,-2..1], title=`inversion of a plane with respect to a sphere`);

>

Let us plot an inversion image of a paraboloid of revolution; the hyperboloid of one sheet; and the inversion images

of their profiles:

> restart: with(linalg): r:=[u*cos(v), u*sin(v), u^2+1]:

```Warning, protected name norm has been changed and unprotected
```

```Warning, protected name trace has been changed and unprotected
```

> ri:=(scalarmul(r, 1/norm(r, 2)^2)):

> plot3d(r, u=1..7, v=-Pi..(3/4)*Pi); # paraboloid

> plot3d(ri, u=1..7, v=-Pi..Pi); # inversion of paraboloid

> r:=[sinh(u)*cos(v), sinh(u)*sin(v), cosh(u)+1]:

> ri:=scalarmul(r, 1/norm(r,2)^2): # hyperboloid

> plot3d(ri, u=1..7, v=-Pi..Pi); # inversion of hyperboloid

> r2:=[u, u^2+1]: # parabola

> r2:=[sinh(u), cosh(u)+1]: # hyperbola

> r2i:=scalarmul(r2, 1/norm(r2, 2)^2):

> plot([r2[1], r2[2], u=-2..2], scaling=constrained); # curve

> plot([r2i[1], r2i[2], u=-6..6], scaling=constrained); # inversion of curve

Exercise . Write down the equation and plot some cyclides of Dupin.

Hints . We plot two images, of the torus

under inversion with center O and radius 1: when a=2, b=8, and when a=1, b=4.

> r:=[8+(2+cos(u))*cos(v), (2+cos(u))*sin(v), sin(u)]:

> r:=[4+(1+cos(u))*cos(v), (1+cos(u))*sin(v), sin(u)]:

> invr:=scalarmul(r, 1/(norm(r, 2)^2)):

> plot3d(invr, u=-Pi..Pi, v=-Pi..Pi, grid=[40,60], scaling=constrained);

>