Polyhedron Stellation

Dodecahedron Stellation

Facet Diagram

DodecahedronStellationFacetMap.pdf

MATLAB code

The images shown in the right column are renderd in SunFlow.The MATLAB code given below will generate a different image ,without highlighting the edge.

function dodecahedronStellation

phi=(1+sqrt(5))/2;

vert=[1 1 1

1 1 -1

1 -1 1

1 -1 -1

-1 1 1

-1 1 -1

-1 -1 1

-1 -1 -1

0 1/phi phi

0 1/phi -phi

0 -1/phi phi

0 -1/phi -phi

1/phi phi 0

1/phi -phi 0

-1/phi phi 0

-1/phi -phi 0

phi 0 1/phi

phi 0 -1/phi

-phi 0 1/phi

-phi 0 -1/phi];

faces=[1 13 2 18 17;

1 9 5 15 13;

13 15 6 10 2;

2 10 12 4 18;

18 17 3 14 4;

1 9 11 3 17;

5 9 11 7 19;

15 5 19 20 6;

6 20 8 12 10;

20 19 7 16 8;

8 12 4 14 16;

11 7 16 14 3];

%great dodecahedron

facetIndex=[5 3 4

8 4 12

11 12 13

10 13 7

6 7 3]';

%small stellated dodecahedron

% facetIndex=[5 4 8;

% 8 12 11

% 11 13 10

% 10 7 6

% 6 3 5]';

%great stellated dodecahedron

% facetIndex=[4 9 12

% 12 15 13

% 13 14 7

% 7 2 3

% 3 1 4]';

r=[7.2068;7.2068;2.7528;2.7528;1.0515;1.0515;2.7528;1.0515;

7.2068;1.0515;1.0515;2.7528;2.7528;7.2068;7.2068];

theta=[2.8274;-2.1991;-2.8274;2.1991;2.8274;-2.1991;-1.5708;1.5708;

1.5708;-0.94248;0.31416;0.94248;-0.31416;-0.94248;0.31416];

for n=1:length(faces)

v=vert(faces(n,:),:);

center=mean(v);%center of each face

R=v(1,:)-center;

R=R/sqrt(sum(R.^2));

S=cross(R,center);

S=S/sqrt(sum(S.^2));

faceTheta=theta(facetIndex(:))-deg2rad(18);

faceR=r(facetIndex(:));

qx=center(1)+faceR.*cos(faceTheta).*R(1)+faceR.*sin(faceTheta).*S(1);

qy=center(2)+faceR.*cos(faceTheta).*R(2)+faceR.*sin(faceTheta).*S(2);

qz=center(3)+faceR.*cos(faceTheta).*R(3)+faceR.*sin(faceTheta).*S(3);

patch('vertices',[qx qy qz],...

'faces',[1 2 3;4 5 6;7 8 9;10 11 12;13 14 15],...

'facecolor','c');

end

%patch('vertices',vert,'faces',faces,'facecolor','none');

view(3)

set(gcf,'renderer','zbuffer');

axis equal

Great Dodecahedron
Small Stellated Dodecahedron
Great Stellated Dodecahedron

Rhombic Dodecahedron Stellation

Facet Diagram

RhombicDodecahedronFacetMap.pdf

MATLAB code

stellatedRhombicDodecahedron.zip

function stellatedRhomboDodecahedron2

%Rhombododecahedron

vert = [0 0 2;

1 -1 1;

1 1 1;

-1 1 1;

-1 -1 1;

2 0 0;

0 2 0;

-2 0 0;

0 -2 0;

1 -1 -1;

1 1 -1;

-1 1 -1;

-1 -1 -1;

0 0 -2];

face=[2 1 3 6

9 5 1 2

3 1 4 7

4 1 5 8

9 2 6 10

6 3 7 11

7 4 8 12

8 5 9 13

10 6 11 14

14 11 7 12

14 12 8 13

13 9 10 14 ];

%stellaRhombicDodecaData is mat file.It contains calculated faces and vertices

load stellaRhombicDodecaData

colors=hsv(12);

%uncomment any one of ind to get different stellation

ind=[1];

%ind=[6 7 8 9];

%ind=[4 5 10 11 12 13];

%ind=[2 3 4 5 14 15 16 17];

for n=1:length(face)

v=vert(face(n,:),:);

center=mean(v);%center of each face

R=v(1,:)-center;

R=R/sqrt(sum(R.^2));

S=cross(R,center);

S=S/sqrt(sum(S.^2));

for m=1:length(ind)

[faceTheta,faceR] = cart2pol(facetMapVert{ind(m)}(:,1)...

,facetMapVert{ind(m)}(:,2));

faceTheta=faceTheta+offSetAngle(n);

qx=center(1)+faceR.*cos(faceTheta).*R(1)+faceR.*sin(faceTheta).*S(1);

qy=center(2)+faceR.*cos(faceTheta).*R(2)+faceR.*sin(faceTheta).*S(2);

qz=center(3)+faceR.*cos(faceTheta).*R(3)+faceR.*sin(faceTheta).*S(3);

patch('vertices',[qx qy qz],...

'faces',facetMapFace{ind(m)},'facecolor',colors(n,:));

end

end

%patch('faces',face,'vertices',vert,'facecolor','y');

set(gcf,'renderer','zbuffer');

axis equal

view(3)

Icosahedron Stellation

Rhombic Triacontahedron Stellation