poly1.html and poly2.html reproduce posts to the misc.education newsgroup, March 17,18 1999. I fixed a typo in the Cube edges table, which in the original was corrected in part II. One or two other typos fixed as well. Background reading: - Learning Programming thru Polyhedra (geometry-research)
- Article on Quadrays in March 1999 FoxPro Advisor by Kirby Urner
- OOP Meets Algebra, Suggesting New "Ways of Looking"
- Using Polyhedra to Teach OOP and Coordinate Geometry Concepts
- Chapter 6 (of the above) -- re a next version based on these Polymath posts
- Symbols and Operations (outline)
- Symbols and Operations (essay)
From: urner@alumni.princeton.edu (Kirby Urner) Newsgroups: misc.education Subject: Curriculum excerpt: Polymath 101 Date: Thu, 18 Mar 1999 07:06:01 GMT CURRICULUM EXCERPT: POLYMATH 101 OOP GEOMETRY: BASIC POLYS INSTRUCTOR: K. URNER -------------------------------------------------------------- An earlier segment provides information about quadray coordinates, used thoughout this segment. The volumes relate to the concentric hierarchy, familiarity with which is also assumed. -------------------------------------------------------------- A good way to start learning a lot of useful concepts is to implement polyhedra using an object oriented approach. Polyhedra as wireframes are a good place to start. Use a relational database structure: TETRAHEDRON =========== Vertices Edges A 1 0 0 0 (A,B) B 0 1 0 0 (A,C) C 0 0 1 0 (A,D) D 0 0 0 1 (B,C) (B,D) (C,D) Above is the simplest polyhedron, the tetrahedron, described by two tables. The first gives the coordinates of vertices labeled A,B,C,D the 2nd table lists the edges between pairs of vertices. 4 vertices 6 edges Euler's Law: V + F = E + 2 4 + F = 6 + 2 F = 4 triangular windows This tetrahedron is defined with volume = 1 as per the concentric hierarchy. What follows are some additional polyhedra primitives with whole number coordinates and volumes. The vertices table will grow to include 26 entries labeled A-Z. All are developed from A-D (above) by negation and addition. Additional reasoning is provided to generate the corresponding edge tables. CUBE (volume = 3) ==== Vertices Edges A 1 0 0 0 (A,F)(A,G)(A,H) B 0 1 0 0 (B,E)(B,G)(B,H) C 0 0 1 0 (C,E)(C,F)(C,H) D 0 0 0 1 (D,E)(E,F)(D,G) E 0 1 1 1 F 1 0 1 1 G 1 1 0 1 H 1 1 1 0 The cube consists of two interpenetrating tetrahedra; just take the vertices A,B,C,D and take their negatives: E.g. - (1,0,0,0) = (-1,0,0,0) = (0,1,1,1) In other words: E=-A B=-F C=-G H=-D Then connect each vertex to every point on the other tetrahedron except the vertex directly opposite. I.E. A connects to F,G,H and B to E,G,H and so on. 8 vertices 12 edges Euler's Law: V + F = E + 2 8 + F = 12 + 2 F = 6 square windows OCTAHEDRON (volume = 4) ========== Vertices Edges I = A+B = 1 1 0 0 (I,J)(I,K)(I,L)(I,M) J = A+C = 1 0 1 0 (N,J)(N,K)(N,L)(N,M) K = A+D = 1 0 0 1 (J,L)(L,M)(M,K)(K,J) L = B+C = 0 1 1 0 M = B+D = 0 1 0 1 N = C+D = 0 0 1 1 I-N poke through the mid-edges of the original tetrahedron ABCD to 6 vertices. Each vertex connects to 4 others, but not to the one directly opposite. Since -I = (-1, -1, 0, 0) = (0,0,1,1), I will not connect to N, and so on. 8 vertices 12 edges Euler's Law: V + F = E + 2 6 + F = 12 + 2 F = 8 triangular windows RHOMBIC DODECAHEDRON (volume = 6) ==================== Vertices Edges A 1 0 0 0 (I,A)(I,B)(I,G)(I,H) B 0 1 0 0 (J,A)(J,C)(J,F)(J,H) C 0 0 1 0 (K,A)(K,D)(K,F)(K,G) D 0 0 0 1 (L,B)(L,C)(L,E)(L,H) E 0 1 1 1 (M,B)(M,D)(M,E)(M,G) F 1 0 1 1 (N,C)(N,D)(N,E)(N,F) G 1 1 0 1 H 1 1 1 0 I 1 1 0 0 J 1 0 1 0 K 1 0 0 1 L 0 1 1 0 M 0 1 0 1 N 0 0 1 1 The cube and octahedron combine to form the rhombic dodecahedron. Edges go from each octahedron vertex to the four nearest cube vertices. These will be pairs from the original tetrahedron and its invert (same cube) which add to give the octahedron vertex in question. For example: I = A+B = (1,1,0,0) I = G+H = (1,1,0,1)+(1,1,1,0)=(2,2,1,1)=(1,1,0,0) So (I,A)(I,B)(I,G)(I,H) are all edges of the rhombic dodecahedron. J = A+C = (1,0,1,0) J = F+H = (1,0,1,1)+(1,1,1,0)=(2,1,2,1)=(1,0,1,0) So (J,A)(J,C)(J,F)(J,H) are additional rhombic dodecahedron edges. 14 vertices 24 edges Euler's Law: V + F = E + 2 14 + F = 24 + 2 F = 12 rhombic windows CUBOCTAHEDRON (volume = 20) ============= Vertices Edges O = I+J = 2 1 1 0 (O,P)(P,R)(R,Q)(Q,O) P = I+K = 2 1 0 1 (O,W)(W,S)(S,Z)(Z,O) Q = I+L = 1 2 1 0 (Q,W)(W,U)(U,X)(X,Q) R = I+M = 1 2 0 1 (P,Z)(Z,T)(T,Y)(Y,P) S = N+J = 1 0 2 1 (R,X)(X,V)(V,Y)(Y,R) T = N+K = 1 0 1 2 (T,S)(S,U)(U,V)(V,T) U = N+L = 0 1 2 1 V = N+M = 0 1 1 2 W = J+L = 1 1 2 0 X = L+M = 0 2 1 1 Y = M+K = 1 1 0 2 Z = K+J = 1 0 1 2 Edge-pairs of octahedron vertices add to give 12 vertices equidistant from the origin, defining the cuboctahedron. Each octahedron vertex is at the center of a square window, with the squares corners defined by octahedron edge-pairs which include the central octahedron vertex. For example: K is at the center of square with corners K+I, K+N, K+M, K+J L is at the center of square with corners L+I, L+N, L+J, L+M Opposite corners of a square will have the octahedron vertex for a midpoint. Opposite corners will consist of the midpoint paired with opposite vertices from the octahedron (e.g. I,N). For example: ((L+I)+(L+N))/2 = ((1,2,1,0)+(0,1,2,1))/2 = (0,1,1,0) = L and: ((K+I)+(K+N))/2 = (2K + I + N)/2 = K + (I+N)/2 = K (I=-N) So the squares in question will be: (L+I)(L+J) (L+J)(L+N) (L+N)(L+M) (L+M)(L+I) and: (K+I)(K+J) (K+J)(K+N) (K+N)(K+M) (K+M)(K+I) or: (Q,W)(W,U)(U,X)(X,Q) and (P,Z)(Z,T)(T,Y)(Y,P) which gives a total of 6 squares, comprising all the edges, plus defines 8 additional triangular faces (sharing edges with the squares). 12 vertices 24 edges Euler's Law: V + F = E + 2 12 + F = 24 + 2 F = 14 windows (6 squares, 8 triangles) [to be continued] |