home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / sci / math / 11198 < prev    next >
Encoding:
Internet Message Format  |  1992-09-09  |  4.4 KB

  1. Path: sparky!uunet!haven.umd.edu!darwin.sura.net!zaphod.mps.ohio-state.edu!ub!acsu.buffalo.edu!kriman
  2. From: kriman@acsu.buffalo.edu (Alfred M. Kriman)
  3. Newsgroups: sci.math
  4. Subject: Re: 3 space terahedron-packing
  5. Summary: Square-base cones, then isoceles-right-triangle-base cones.
  6. Message-ID: <BuCLKs.Mx2@acsu.buffalo.edu>
  7. Date: 10 Sep 92 05:50:52 GMT
  8. References: <f#tng3h.spworley@netcom.com>
  9. Sender: nntp@acsu.buffalo.edu
  10. Organization: UB
  11. Lines: 66
  12. Nntp-Posting-Host: lictor.acsu.buffalo.edu
  13.  
  14. In article <f#tng3h.spworley@netcom.com> spworley@netcom.com (Steven) writes:
  15. >I am trying to implement an interpolation algorthim over 3D space by
  16. >using a "grid" of tetrahedrons. What I need to compute is a complete
  17. >tiling of 3-space with unit length tetrahedrons: ie, given an XYZ
  18.                         ^^^^^^^^^^^ <--- See * below.
  19. >location, identify the four points of the tetrahedron that encloses
  20. >that location in this "packed" space. Obviously any offset or rotation
  21.  
  22.    This is two problems:
  23. (1) Specifying a tiling of R^3 by tetrahedra;
  24. (2) Defining an algorithm to identify the vertices of the tetrahedron that
  25.     that encloses an arbitrary point.
  26.  
  27. >of this packing "solution" is also a solution, but I don't care which
  28. >particular tiling I compute as long as it is constant.
  29.  ^^^^^^^^^ 
  30. * From the context it seems that "don't care which" means you identify all
  31. congruent tilings.  But what do you mean by "unit length" tetrahedra?
  32. If you mean regular (all edges have equal length) then you're in celebrated
  33. company.  Aristotle also thought that 3-space could be tiled by regular
  34. tetrahedra.  I think it had something to do with Democritos's atoms,
  35. maybe the kind that make up solid matter.
  36.    Given that your tetrahedra won't have tetrahedral symmetry, I suggest
  37. the following basis, which at least is simple.
  38.    First divide R^3 into cubes; for each triple of integers i,j,k, the
  39. [i,j,k] cube is the set of points with Cartesian coordinates less than 1
  40. above the point (i,j,k).  I.e., 
  41. [i,j,k] = {(x_1,x_2,x_3) : i <= x_1 < i+1 , j <= x_2 < j+1 , k <= x_3 < k+1}.
  42.    To discuss the rest in words, define "floor" faces and edges of the
  43. [i,j,k] cube as those having one or two coordinates (resp.) minimal.  There
  44. are three of each, and they can be indexed by coordinate.  Thus, the "1"
  45. floor face of the [i,j,k] cube lies in the x_1 = i plane.  The "2" edge of
  46. the [i,j,k] cube is parallel to the x_2 axis (i.e., it is the intersection
  47. of x_1=i , x_3=k), and normal to the "2" floor face.
  48.    Each cube can be divided into three square pyramids in a simple way.  The
  49. points in a cube that are closest to the floor face m are part of pyramid m.
  50.    Similarly, each pyramid of a cube can be split into two tetrahedra on the
  51. basis of the nearest floor edge.  Thus, the tetrahedron [i,j,k,m,n] is the
  52. set of points in the cube [i,j,k], closer to the floor face m, and closest
  53. to the floor edge n.
  54.    It should be evident that m cannot equal n:  being close to floor face
  55. means that x_m - I_m (I_1 = i, I_2 = j, I_3 = k) is _smaller_ than the
  56. corresponding quantities for the remaining two axes.  Squared distance to
  57. the floor edge n is the sum of squares of x_p - I_p, where p are not n.
  58. Clearly, the edge-m distance is determined by excluding the smallest of the
  59. three possible addends, so it is the _farthest_ edge.  Thus, points in the
  60. [...,m,n] tetrahedron have floor edge n closest, and floor edge m farthest.
  61.    The six ways of selecting m,n (different), from {1,2,3} are the six ways
  62. to choose a tetrahedron in a particular cube.
  63.  
  64. Algorithm:
  65.    From the above reasoning it should be clear how to identify the tetra-
  66. hedron containing any point with coordinates (x_1,x_2,x_3):  The cube is
  67. given by the floor function: I_p = greatest integer not greater than x_p,
  68. for p = 1,2,3.  The tetrahedron is determined by the fractional part:  Of
  69. the three quantities (x_p - I_p), the smallest has p = m, the largest has
  70. p = n.  The point lies in tetrahedron [I_1,I_2,I_3,m,n].  You can compute
  71. the index that is left over (that is not m or n) as o = 6 - m - n , if
  72. you like.
  73.    From the description it should be clear how to compute the vertices:
  74. Two of them are (i,j,k) and (i+1,j+1,k+1), another is (i,j,k) with a unit
  75. added along the n direction, the last is (i,j,k) with units added along
  76. the n and o directions.
  77.  
  78. ObAncients:  I think the classical proof that pyramid/cone volume is
  79. base_area times height / 3 was based on a decomposition like this.
  80.