24.04.2014 Views

clifford_a-_pickover_surfing_through_hyperspacebookfi-org

clifford_a-_pickover_surfing_through_hyperspacebookfi-org

clifford_a-_pickover_surfing_through_hyperspacebookfi-org

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

notes 227<br />

Appendix C<br />

1. For more information on the Banchoff Klein bottle, see Thomas Banchoff's<br />

exquisite book Beyond the Third Dimension. More accurately, the bottle is actually constructed<br />

from a figure-eight cylinder that passes <strong>through</strong> itself along a segment. To produce<br />

the Banchoff Klein bottle, you twist the figure-eight cylinders as you bring the<br />

two ends outward.<br />

Appendix D<br />

1. Quaternions define a 4-D space that contains the complex plane. As we stated<br />

previously, quaternions can be represented in four dimensions by Q= a a + a { i + aj +<br />

a } k where i,j and k are (like the imaginary number i) unit vectors in three orthogonal<br />

directions; they are also perpendicular to the real axis. Note that to add or multiply two<br />

quaternions, we treat them as polynomials in i, j, and k, but use the following rules to<br />

deal with products: i 2 =j 2 = k 2 = — I, ij = — ji = k,jk = — kj = i, ki = — ik = — ik = j.<br />

To produce the pattern in this section, "mathematical feedback loops" were used.<br />

Here one simply iterates F(Q,q): Q —> Q 2 + q where Qis a 4-D quaternion and q is a<br />

quaternion constant. The following computer algorithm for squaring a quaternion<br />

involves keeping track of the four components in the formula.<br />

ALGORITHM — Compute quaternion, main computation<br />

Variables:<br />

aO,al,a2,a3,rmu are the real, i, j, and k coefficients<br />

Notes:<br />

This is an "inner loop' used in the same spirit as in traditional<br />

Julia set computations. No complex numbers are required for the<br />

computation. Hold three of the coefficients constant and examine<br />

the plane determined by the remaining two. This code runs in a<br />

manner similar to other fractal-generating codes in which color<br />

indicates divergence rate. rmu is a quaternion constant.<br />

DO i = 1 to NumberOflterations<br />

saveaO =<br />

saveal =<br />

aO*aO<br />

aO*al<br />

- al*al<br />

+ al*aO<br />

- a2*a2<br />

+ a2*a3<br />

- a3*a3<br />

- a3*a2<br />

+ rmuO;<br />

+ rmul ;<br />

savea2 =<br />

savea3 =<br />

aO*a2<br />

aO*a3<br />

- al*a3<br />

+ al*a2<br />

+ a2*aO<br />

- a2*al<br />

+ a3*al<br />

+ a3*aO<br />

+ rmu2 ;<br />

+ rmu3 ;<br />

aO=savead,- al=saveal; a2=savea2 ; a3=savea3 ;<br />

if (al**2+a2**2+a3**2+aO**2) > CutoffSquared then leave loop;<br />

end; /*i*/<br />

PlotDot(Color(i)) ;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!