|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Ok, I have a program in BASIC that I'm using to generate
random numbers for a sphere_sweep, that looks like:
randomize timer
for n=1 to 23
theta%=(rnd*36)*20
r = rnd*0.24
x = r*COS(theta%)
y = r*SIN(theta%)
z = (rnd*0.5)+1.25
? USING "X = +#.##### Y = +#.##### Z = +#.#####";x,y,z
next n
now, instead of running this program and entering the
values by hand in my sphere_sweep, how do I make a
macro in POV to generate a series of n points for the
sphere_sweep?
--
Tim Cook
http://empyrean.scifi-fantasy.com
mirror: http://personal.lig.bellsouth.net/lig/z/9/z993126
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GFA dpu- s: a?-- C++(++++) U P? L E--- W++(+++)>$
N++ o? K- w(+) O? M-(--) V? PS+(+++) PE(--) Y(--)
PGP-(--) t* 5++>+++++ X+ R* tv+ b++(+++) DI
D++(---) G(++) e*>++ h+ !r--- !y--
------END GEEK CODE BLOCK------
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
On Mon, 12 Aug 2002 03:36:10 -0400, "Timothy R. Cook"
<tim### [at] scifi-fantasycom> wrote:
> randomize timer
#declare Seed=seed(SeedNr);
> for n=1 to 23
#declare N=1;
#while(N<=23)
> theta%=(rnd*36)*20
#declare Theta=rand(Seed)*36*20;
> r = rnd*0.24
#declare R=rand(Seed)*24;
> x = r*COS(theta%)
#declare X=R*cos(Theta);
> y = r*SIN(theta%)
#declare Y=R*sin(Theta);
> z = (rnd*0.5)+1.25
#declare Z=rand(Seed)*0.5+1.25;
> ? USING "X = +#.##### Y = +#.##### Z = +#.#####";x,y,z
#debug concat(
" X = ",str(X,0,-1),
" Y = ",str(Y,0,-1),
" Z = ",str(Z,0,-1),
"\n")
> next n
#declare N=N+1;
#end
Is it readable and sufficient or do you need some addition ?
ABX
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
ABX wrote:
> Is it readable and sufficient or do you need some addition ?
Should work...let's see...wow, I made a typo; that was 36*10,
not 36*20...but I can change it to 360...yep, this works fine.
Thanks!
--
Tim Cook
http://empyrean.scifi-fantasy.com
mirror: http://personal.lig.bellsouth.net/lig/z/9/z993126
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GFA dpu- s: a?-- C++(++++) U P? L E--- W++(+++)>$
N++ o? K- w(+) O? M-(--) V? PS+(+++) PE(--) Y(--)
PGP-(--) t* 5++>+++++ X+ R* tv+ b++(+++) DI
D++(---) G(++) e*>++ h+ !r--- !y--
------END GEEK CODE BLOCK------
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Timothy R. Cook schrieb:
> Ok, I have a program in BASIC that I'm using to generate
> random numbers for a sphere_sweep, that looks like:
>
> randomize timer
> for n=1 to 23
> theta%=(rnd*36)*20
> r = rnd*0.24
> x = r*COS(theta%)
> y = r*SIN(theta%)
> z = (rnd*0.5)+1.25
> ? USING "X = +#.##### Y = +#.##### Z = +#.#####";x,y,z
> next n
I don't know BASIC very well, so maybe I changed the formulas a bit. But
this is a fast hack for a macro:
#macro makeASphereSweep(numberOfPoints, splineType, startSeedValue)
sphere_sweep
{
#switch (splineType)
#case (1)
linear_spline
#break
#case (2)
b_spline
#break
#case (3)
cubic_spline
#break
#else
linear_spline
#end
numberOfPoints, // No. of spheres
#declare random = seed(startSeedValue);
#declare n = 0;
#while (n < numberOfPoints)
#declare theta = (rand(random) * 36) * 20;
#declare r = rand(random) * 0.24;
#declare x_val = r * cos(theta);
#declare y_val = r * sin(theta);
#declare z_val = (rand(random) * 0.5) + 1.25;
#if (n < numberOfPoints - 1)
<x_val, y_val, z_val>, r,
#else
<x_val, y_val, z_val>, r
#end
#declare n = n + 1;
#end
pigment
{
color rgb 1
}
}
#end
And then call your macro with:
makeASphereSweep(50, 1, 123)
Hope that helps a bit...
So long,
Bonsai
--
<--------------------------->
___ __ __ _ ___ ___ _
| _ ) \ \( ) _) _ )( )
| _ \() |\ \ |\ \/ _ \| |
|___/__/_)\__)___)/ \_)_)
www.b0n541.net
<--------------------------->
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|