view demo :: http://the.fontvir.us/pv3d/PQtorus/
view sources:: http://the.fontvir.us/pv3d/PQtorus/srcview/
view blog post :: http://the.fontvir.us/b10g/?id=116
here we go again, another papervision3D demo featuring math permeated lines.
this time im working with a classic piece of code known as the PQ torus. the vague
idea is that you have 2 numbers (P + Q) that are used in the algorithm to define the
knot. in general, given P + Q mutually prime, the line wraps meridionally around the
torus P times and wraps the longitudinally around it Q times. i was having some
trouble grasping exactly how this was going to be achieved, until i read this article
on blackpawn’s website. he really breaks down the algo to a very simplistic level...
r = .5 * (2 + sin(Q * Φ))
x = r * cos(P * Φ)
y = r * cos(Q * Φ)
z = r * sin(P * Φ)
simple right? lol.
so Φ (or phi in my code) is basically a variable that is definded by change.
in this case, im simply incrementing phi + .02 every frame. this seeds the
math and gives you the cool visual effect.
anyway, after getting a handle on the math, writing the demo code was a snap.
i took the existing code i wrote from the 3D object tracer and the lorenz attractor
and combined them. (i also found + fixed an error for computing the line gradient
color) i started out by allowing the users to only select values for PQ and that
actually made sense.
but after some experimentation i found that using some unorthodox values
for P+Q could net some very interesting results. take a look at some of these...
e n j o y !