import static util.PV3DUtil.*; public class Turtle3D { /* * 正多面体の隣り合う面同士のなす角 (http://en.wikipedia.org/wiki/Table_of_polyhedron_dihedral_angles) * 正四面体 acos(1/3) * 正六面体 π/2 * 正八面体 π - acos(1/3) * 正十二面体 π - atan(2) * 正二十面体 π - acos(sqrt(5)/3) */ public static void main(String[] args) { double len = 100; double dihedral = Math.acos(Math.sqrt(5)/3)/PI*180; start(); stroke(0x0000ff); // ribbonWidth(10); for (int i=0; i<5; i++) { bank(-dihedral/2); turn(120); bank(dihedral/2); forward(len); bank(-dihedral/2); turn(120); bank(dihedral/2); forward(len); bank(dihedral/2); turn(-120); bank(-dihedral/2); forward(len); bank(dihedral/2); turn(-120); bank(-dihedral/2); forward(len); } finish(); } }