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
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