---

' Subroutine BIOPLOT ' This routine plots the biomorphs according to the parameters held in the ' "gene" array, biomorphs%(). ' Each one is plotted in turn as a series of vectors, each vector being held ' in the local array POSNS%(). The data is stored as: ' n,0 = x-coordinate of start position ' n,1 = y-coordinate ------- " ------- ' n,2 = length of vector ' n,3 = angle of vector from 0 = vertically upwards, in degrees ' ' The array is 2048 elements long to allow 10 iterations, and takes up 16K ' Plotting occurs as follows: ' One iteration is completed from a base "address" of 2^(itn%)-1 until it is ' finished. The next one starts immediately, reading the vector from which ' it comes as the old base address is stored. SUB BIOPLOT(posns%(2),biomorphs%(2),popn%) local presntbase%,oldbase%,itn%,bio% for bio% = 1 to popn% if bio% < 9 then if bio%/2 = int(bio%/2) then y% = 70 else y% = 85 end if x% = 50+((bio%-1)*80) else if bio%/2 = int(bio%/2) then y% = 150 else y% = 165 end if x% = 50+((bio%-9)*80) end if reflec% = x% line (x%,y%)-(x%,(y%-biomorphs%(bio%,8))) posns%(1,1) = x% : posns%(1,2) = y% posns%(1,3) = biomorphs%(bio%,8) : posns%(1,4) = 90 posns%(2,2) = (y%-biomorphs%(bio%,8)) : posns%(2,1) = x% if biomorphs%(bio%,5)/2 = int(biomorphs%(bio%,5)/2) then posns%(2,3) = biomorphs%(bio%,3) + biomorphs%(bio%,4) else posns%(2,3) = biomorphs%(bio%,3) * biomorphs%(bio%,4) end if posns%(2,4) = biomorphs%(bio%,6) presntbase% = 2 call vectorplot(posns%(),reflec%,presntbase%) oldbase% = 2 for itn% = 1 to biomorphs%(bio%,2) presntbase% = 2^itn% + 1 count% = presntbase% for vector% = oldbase% to (presntbase%-1) xroot% = posns%(vector%,1) - posns%(vector%,3)*sin(posns%(vector%,4)/6.28319) yroot% = posns%(vector%,2) + posns%(vector%,3)*cos(posns%(vector%,4)/6.28319) posns%(count%,1) = xroot% posns%(count%,2) = yroot% if biomorphs%(bio%,5)/2 = int(biomorphs%(bio%,5)/2) then posns%(count%,3) = biomorphs%(bio%,3) + biomorphs%(bio%,4) else posns%(count%,3) = biomorphs%(bio%,3) * biomorphs%(bio%,4) end if posns%(count%,4) = biomorphs%(bio%,6) call vectorplot(posns%(),reflec%,count%) count% = count% + 1 posns%(count%,1) = xroot% posns%(count%,2) = yroot% if biomorphs%(bio%,5)/2 = int(biomorphs%(bio%,5)/2) then posns%(count%,3) = biomorphs%(bio%,3) + biomorphs%(bio%,4) else posns%(count%,3) = biomorphs%(bio%,3) * biomorphs%(bio%,4) end if posns%(count%,4) = biomorphs%(bio%,7) - biomorphs%(bio%,6) call vectorplot(posns%(),reflec%,count%) count% = count%+1 next vector% oldbase% = presntbase% next itn% next bio%

---

The views and opinions stated within this web page are those of the author or authors which wrote them and may not reflect the views and opinions of the ISP or account user which hosts the web page. The opinions may or may not be those of the Chairman of The Skeptic Tank.

Return to The Skeptic Tank's main Index page.

E-Mail Fredric L. Rice / The Skeptic Tank