class Icosahedron extends Shape3D{ // icosahedron Vector3D topPoint; Vector3D[] topPent = new Vector3D[5]; Vector3D bottomPoint; Vector3D[] bottomPent = new Vector3D[5]; float angle = 0, radius = 150; float triDist; float triHt; float a, b, c; // constructor Icosahedron(float radius){ this.radius = radius; init(); } Icosahedron(Vector3D v, float radius){ super(v); this.radius = radius; init(); } // calculate geometry void init(){ c = dist(cos(0)*radius, sin(0)*radius, cos(radians(72))*radius, sin(radians(72))*radius); b = radius; a = (float)(Math.sqrt(((c*c)-(b*b)))); triHt = (float)(Math.sqrt((c*c)-((c/2)*(c/2)))); for (int i=0; i