Jun 14 2006 | 8:50 am

dear friends of spheres and cubes!

has anyone taken a look at the spherical harmonics at:

has anyone written an expression for this "simple formula"?

i constantly fuck up. my state of mind visible at

cheers!

- Jun 15 2006 | 1:10 amOn Jun 14, 2006, at 1:50 AM, didi bruckmayr wrote:>> has anyone taken a look at the spherical harmonics at:> http://astronomy.swin.edu.au/~pbourke/surfaces/sphericalh/> has anyone written an expression for this "simple formula"?XYZ Eval(double theta,double phi, int *m){double r = 0;XYZ p;r += pow(sin(m[0]*phi),(double)m[1]);r += pow(cos(m[2]*phi),(double)m[3]);r += pow(sin(m[4]*theta),(double)m[5]);r += pow(cos(m[6]*theta),(double)m[7]);p.x = r * sin(phi) * cos(theta);p.y = r * cos(phi);p.z = r * sin(phi) * sin(theta);return(p);}is probably easiest to accomplish with two cascaded expressions. Oneto compute radius, r, and then passed to a second one to convert toxyz based on r, theta, and phi.In the above, replace m[N] with in[N] (to create adjustableparameters); replace theta with norm[0]*TWOPI, and phi with norm[1]*PI (to convert our normalized X and Y axis values to normalizedradian based coordinates across the surface of the sphere), and thatshould be it.So the expression for r would be:"pow(in[0]*PI*norm[1],in[1]) + pow(cos(in[2]*PI*norm[1]),in[3]) +pow(sin(in[4]*TWOPI*norm[0]),in[5]) + pow(cos(in[6]*TWOPI*norm[0]),[7])"then your output expressions for xyz would be the following (wheretheta and phi are replaced by the same, and r is replaced by in[0]).You could do with a single instance of jit.expr by replacing r withthe first expression above, but it will be more expensive to computefor each x, y, and z rather than once for all, as I've suggested."in[0]*sin(PI*norm[1])*cos(TWOPI*norm[0])""in[0]*cos(PI*norm[1])""in[0]*sin(PI*norm[1])*sin(TWOPI*norm[0])"Quick hack example below. There's some stupid problem with updatingthe float values and jit.expr, which requires banging the inputagain, which I'll look into (might be some bug for jit.expr floatinput), but this should give a decent example of how to convert suchstuff into jit.expr expressions.-Joshua