Feature Column


The Most Irrational Number 
 

Here is the TrueBasic program that generated the images of seed packing.
! seed packing

LET s = 400
! set window size - large to make room for type
SET WINDOW 0,s,0,s
LET g = .5*(5^(.5)+1) ! set spacing factor
!LET g = sqr(2)
!LET g = pi
!LET g = 7/31
LET n = 80 ! set number of seeds
LET a = 30 ! set size of (eqil triang) seed
LET i = 1 ! initialize
LET m = a/2
DIM h(200) ! NOTE this must be at least n

DO while i < n+1
   LET x = (i*g - int(i*g)) * s !calculate ith x-coordinate
   LET gim = x - m
      IF gim < 0 THEN ! fix to be mod s
      LET gim = gim + s
      END IF
   LET gip = x + m
      IF gip > s THEN ! fix to be mod s
      LET gip = gip - s
      END IF
   LET h(i) = m*sqr(3) !h(i) will be height of APEX
   LET j = 1
   DO while j < i
      LET xj = (j*g - int(j*g)) * s
      LET gjm = xj - m
         IF gjm < 0 THEN
         LET gjm = gjm + s ! fix to be mod s
         END IF
      LET gjp = xj + m
         IF gjp > s THEN ! fix to be mod s
         LET gjp = gjp - s
         END IF
      CALL hij( gim, gip, gjm, gjp)
      IF hnew > h(i) THEN
         LET h(i) = hnew
      END IF
      LET j = j + 1
   LOOP
   CALL tri ( x, h(i))
   LET i = i + 1
   Pause .1
LOOP

SUB hij(gim, gip, gjm, gjp) !correction to height i to miss triangle j
   CALL dif (gip, gjm) !determine overlap between base of
   IF d < 0 THEN !i-th triangle and base of j-th
      LET hnew = m*sqr(3)
      EXIT SUB
   END IF
   CALL dif (gip, gjm + m)
   IF d < 0 THEN
      LET hnew = h(j) + sqr(3)*(gip-gjm)
      EXIT SUB
   END IF
   CALL dif (gip, gjp)
   IF d < 0 THEN
      LET hnew = h(j) + m*sqr(3)
      EXIT SUB
   END IF
   CALL DIF (gim, gjm + m)
   IF d < 0 THEN
      LET hnew = h(j) + m*sqr(3)
      EXIT SUB
   END IF
   CALL DIF (gim,gjp)
   IF d < 0 THEN
      LET hnew = h(j) - sqr(3)*(gim-gjp)
      EXIT SUB
   END IF
   LET hnew = m*sqr(3)
END SUB

SUB dif (a, b) !calculate distances mod s
   LET d = a - b
   IF d < -s/2 THEN
      LET d = d + s
      EXIT SUB
   END IF
   IF d > s/2 THEN
      LET d = d - s
      EXIT SUB
   END IF
END SUB

SUB tri (a,b) !draw triangle and plot i inside
   PLOT a-m,b-m*sqr(3);a,b
   PLOT a,b;a+m,b-m*sqr(3)
   PLOT a-m,b-m*sqr(3); a+m,b-m*sqr(3)
   PLOT TEXT, at a-8,b-m*sqr(3)+2: str$(i)
END SUB
GET key zz
END

 


Back to previous irrational page.

Back to first irrational page.

Welcome to the
Feature Column!

These web essays are designed for those who have already discovered the joys of mathematics as well as for those who may be uncomfortable with mathematics.
Read more . . .

Search Feature Column

Feature Column at a glance


Show Archive

Browse subjects



Comments: Email Webmaster

© Copyright , American Mathematical Society
Contact Us · Sitemap · Privacy Statement

Connect with us Facebook Twitter Google+ LinkedIn Instagram RSS feeds Blogs YouTube Podcasts Wikipedia