mathPAD Online

mathPAD Logo

The Magazine of the MuPAD Research Group, Vol. 15, Year 2006

Visualizing Waterman Polyhedra with MuPAD

Part 3: Exploring Waterman polyhedra with Waterman library

by M. Majewski

Zayed University, United Arab Emirates

 

The world of Waterman polyhedra brings us a number of interesting problems and incredible gallery of images. Using MuPAD and its Virtual Camera we are able to build complex scenes showing particular properties of Waterman polyhedra. In this chapter we will show a few simple examples of MuPAD graphics with Waterman polyhdera. I suggest readers of this article to do more experiments on their own.

 

Basic explorations

Let us start with a simple scene where we display all CCP points for given range, large sphere with a given radius and resulting polyhedron. In Virtual Camera we can rotate such scene, zoom into it and check how the polyhedron was built. The same we can do in JavaView (try moving the image below).

We start by loading the waterman.mb file and declaring paths for reading documents and to the qconvex.exe file.

READPATH := "D:\\Documents\\MuPAD\\": 
read("waterman.mb") 
QCONVEX_PATH := "D:\\Documents\\MuPAD\\":

plot(
   WatermanPoly(1,3),
   CCPoints(-2..2,-2..2,-2..2),
   plot::Sphere(2.449489743,[0,0,0], Color=[0.5,0.5,0.5,0.5]),
   Axes=Boxed, 
   Scaling=Constrained, 
   Axes=None, 
   PointSize=3
) 

By creating a scene with a polyhedron and adding to it planes and axes of symmetry we can demonstrate symmetries of a polyhedron. Below I show example of a few MuPAD statements that produce Waterman polyhedron and a plane intersecting it. The plane is animated. Therefore, in animation we can examine all horizontal cross-sections of the polyhderon. Transparency of the plane was added in Virtual Camera.

plane1 := plot::SurfaceSet([
   -5.5, -5.5, a, 
    5.5, -5.5, a, 
    5.5,  5.5, a, 
   -5.5,  5.5, a],
   MeshListType=Quads, a=-5.5..5.5, 
   FillColor=RGB::Indigo, 
   FillColorType=Flat
):

plot(
   plane1, 
   WatermanPoly(1,13),
   Scaling=Constrained, 
   Axes=None
) 

 

Another interesting problem would be finding how many different Waterman polyhedra W((x,y,z),R) exist on a straight path between a point (x,y,z) and (x+2a,y+2b,z+2c), where a,b,c=0 or 1, and R is a fixed. Let us look for example on a a path between points (1,1,1) and (3,1,1), for R=3. Below I show half of the sequence produced by the WatermanExplore procedure.

plot(WatermanExplore([1,1,1],3), Scaling=Constrained, Axes=Boxed) 
plot(WatermanExplore([1.1,1,1],3), Scaling=Constrained, Axes=Boxed) 

 

 

 plot(WatermanExplore([1.4,1,1],3), Scaling=Constrained, Axes=Boxed) 

 

 plot(WatermanExplore([1.8,1,1],3), Scaling=Constrained, Axes=Boxed) 

 

 plot(WatermanExplore([1.9,1,1],3), Scaling=Constrained, Axes=Boxed) 

While going further through points (2.2,1,1), (2.3,1,1), (2.7,1,1), (3,1,1) we will produce the same polyhedra, however rotated 180 degrees about their vertical axis. Therefore we got on this path 9 polyhedra, where the first and the last one are identical but with centers in different points of space. It can be easily checked that for the same points (1,1,1) and (3,1,1) and R=10, this sequence is much longer.

A natural problem would be finding the shortest non-trivial sequence, as well as the longest one, between two points (x,y,z) and (x+2a,y+2b,z+2c), where a,b,c=0 or 1, for a fixed R. By a non-trivial sequence I mean a sequence where exist more than 2 polyhedra (starting and ending one).

Copyright © 2002-2007 mathPAD Online and the authors.