|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
I'm trying to make random rotation of random placed box.... the random
fonction works with" translate" but rotate doesn't seem to work... why ?
The code :
// Essai sur les macros...
#declare kub = box {<-0.1, -0.1, -0.1><0.1, 0.1, 0.1>
texture {
pigment {color rgb <0.5, 0.0, 0.5>}
finish {ambient 0.3
diffuse 0.5
reflection {0.0, 1 fresnel on}}
}
}
light_source {
<10, 5, -10>
color rgb 1
}
#declare R1 = seed(360);
// 1 unit random moving
#declare R3 = seed(1);
#declare i = 0;
#while (i < 2001)
object {kub translate <rand(R3), rand(R3), rand(R3)> rotate <rand(R1),
rand(R1), rand(R1)>}
#declare i = i + 1;
#end
camera {
location <3, 0, 0>
look_at <0, 0, 0>
}
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
_Light_Beam_ wrote:
>
> I'm trying to make random rotation of random placed box.... the random
> fonction works with" translate" but rotate doesn't seem to work... why ?
What exactly do you mean by "does not work"?
Remember, rotations always occur around <0,0,0>
Markus
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
On Wed, 6 Mar 2002 13:21:41 +0100, "_Light_Beam_" <fac### [at] aolcom> wrote:
> #declare R1 = seed(360);
Parameter of seed has nothing to do with angle.
360 should be placed here:
> rotate <rand(R1),>rand(R1), rand(R1)>}
rotate 360*<rand(R1),rand(R1), rand(R1)>
ABX
--
disc{z,-z 5#macro O()asc(substr("-+((1*(,1,/.-,*/(,&.323/'1"e,1))*.1-4#declare
e=e-1;#end#local e=26;pigment{#local g=function(_){ceil(_)-_}function#local//X
k=function{pattern{object{sphere_sweep{linear_spline 13#while(e>0)<O(),O()//AB
>.01#end}}}}{k(g(atan2(x,y)),g(ln((y+x)^2+1e-5)),0)}}finish{ambient 1}}//POV35
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Hi,
seed is just an initialisation of the random-number-generator.
to create a random number use following structure:
#local R1 = seed(45345);
// the number has no further meaning. you may use anything
// note that different randoms generated from the same seed value, produce
synchronously the same numbers
#local random = rand(R1);
// this is the actual random number
// to rotate something you may use:
// rotate <rand(R1), rand(R1), rand(R1)>
regards
SY
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
rand produces numbers between 0 and 1 so you are basically rotating between
0 and 1 degree.
Try this:
rotate<rand(R1)*360, rand(R1)*360, rand(R1)*360>
"_Light_Beam_" <fac### [at] aolcom> wrote in message
news:3c860998@news.povray.org...
> I'm trying to make random rotation of random placed box.... the random
> fonction works with" translate" but rotate doesn't seem to work... why ?
> The code :
>
> // Essai sur les macros...
>
> #declare kub = box {<-0.1, -0.1, -0.1><0.1, 0.1, 0.1>
> texture {
> pigment {color rgb <0.5, 0.0, 0.5>}
> finish {ambient 0.3
> diffuse 0.5
> reflection {0.0, 1 fresnel on}}
> }
> }
>
> light_source {
> <10, 5, -10>
> color rgb 1
> }
>
> #declare R1 = seed(360);
> // 1 unit random moving
> #declare R3 = seed(1);
>
> #declare i = 0;
> #while (i < 2001)
> object {kub translate <rand(R3), rand(R3), rand(R3)> rotate <rand(R1),
> rand(R1), rand(R1)>}
> #declare i = i + 1;
> #end
>
> camera {
> location <3, 0, 0>
> look_at <0, 0, 0>
> }
>
>
>
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Hi again,
> // to rotate something you may use:
> // rotate <rand(R1), rand(R1), rand(R1)>
Errr.. I forgot: rand returns a float in range of 0..1, so you should rather
use
> // rotate <360*rand(R1), 360*rand(R1), 360*rand(R1)>
Sorry.
regards
SY
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
In article <3c870d96$1@news.povray.org>,
> > // to rotate something you may use:
> > // rotate <rand(R1), rand(R1), rand(R1)>
>
> Errr.. I forgot: rand returns a float in range of 0..1, so you should rather
> use
>
> > // rotate <360*rand(R1), 360*rand(R1), 360*rand(R1)>
Or even better:
rotate 360*< rand(R1), rand(R1), rand(R1)>
--
Christopher James Huff <chr### [at] maccom>
POV-Ray TAG e-mail: chr### [at] tagpovrayorg
TAG web site: http://tag.povray.org/
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Christopher James Huff <chr### [at] maccom> wrote:
>> > // rotate <360*rand(R1), 360*rand(R1), 360*rand(R1)>
> Or even better:
> rotate 360*< rand(R1), rand(R1), rand(R1)>
Note that this does not achieve *any* possible orientation the object can
have. For example, I think that it can never reach an orientation like
caused by
rotate y*30 rotate x*30
In order to really achieve almost any possible orientation, that random
rotation should be applied several times. Perhaps even a random number of
times. For example:
#declare RotTimes = 5+5*rand(R1); // from 5 to 10 times.
#declare Ind = 0;
#while(Ind < RotTimes)
rotate 360*<rand(R1),rand(R1),rand(R1)>
#declare Ind = Ind+1;
#end
--
#macro M(A,N,D,L)plane{-z,-9pigment{mandel L*9translate N color_map{[0rgb x]
[1rgb 9]}scale<D,D*3D>*1e3}rotate y*A*8}#end M(-3<1.206434.28623>70,7)M(
-1<.7438.1795>1,20)M(1<.77595.13699>30,20)M(3<.75923.07145>80,99)// - Warp -
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
In article <3c879ab8@news.povray.org>, Warp <war### [at] tagpovrayorg>
wrote:
> In order to really achieve almost any possible orientation, that random
> rotation should be applied several times. Perhaps even a random number of
> times. For example:
I think a better way would just be to generate a random point on the
surface of a sphere (using VRandOnSphere()) and use the PointAtTrans()
macro. Probably should rotate by a random amount around the y axis first.
--
Christopher James Huff <chr### [at] maccom>
POV-Ray TAG e-mail: chr### [at] tagpovrayorg
TAG web site: http://tag.povray.org/
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
> Note that this does not achieve *any* possible orientation the object
can
> have. For example, I think that it can never reach an orientation like
> caused by
> rotate y*30 rotate x*30
>
> In order to really achieve almost any possible orientation, that random
> rotation should be applied several times. Perhaps even a random number of
> times.
I believe all orientations are covered by just
rotate 360*<rand(R1),rand(R2),rand(R3)>
I'm pretty sure that takes care of all orientations. Whether or not they're
all equally likely is another question.
(Here's why I think that covers everything. Just the point <1,0,0> around
the y axis and then around the z axis randomly gives it the possibility of
pointing in any possible direction. If you're working with an object, and
you rotate it around the x axis, you sort of spin it in any possible
orientation. Then rotating it around the y and z axis like you did with the
point makes it point in a random direction.)
- Slime
[ http://www.slimeland.com/ ]
[ http://www.slimeland.com/images/ ]
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|