Saturday, June 25, 2005

lissajous origin

constant phase difference: affects width of oval, difference of PI/2 gives a line

linear phase difference change:

x = sin(theta + phasetheta);
y = cos(theta)

and

x = sin(thetax);
y = cos(thetay);

are equivalent forms, assuming thetax has a different delta than thetay. What's important is the *ratio* of theta to phasetheta (or thetax to thetay). When the ratio is a simple fraction, the shape is simple and predictable; ratios that aren't simple fractions (e.g. .51) tend to produce elaborate net-like shapes.

trig phase difference change:

x = sin(theta)
y = cos(theta + sin(phasetheta));

Again, it's the ratio between the deltas that matters. Incrementing theta by .1 and phasetheta by .01 will have the same effect as .2 and .02.

original:
static double rad = .25;
double ox = sin(theta + sin(phasetheta) + i);
double oy = cos(theta2);
m_View->SetNormOrigin(ox * rad +.35, oy * rad +.35, FALSE);
theta += .01;
theta2 += .02;
phasetheta += .0311;

slower and better:
static double rad = .25;
double ox = sin(theta + sin(phasetheta));
double oy = cos(theta2);
m_View->SetNormOrigin(ox * rad +.35, oy * rad +.35, FALSE);
theta += .001;
theta2 += .002;
phasetheta += .00211;

No comments: