|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Howdy Ya'll !
Is it possible to trap a specific number generated by the rand
function to be used in another portion of a loop ?
An example of why I ask would be to create non umiform scaled wood
shingles for a roof. They are usually the same in thichkess and length
but the width varies. I could use the rand function within a loop to
vary the scale of each oject generated but it would greatly complicate
the position of the shingles as they are translated into postion through
the loop count. My idea of a solution would be know what variation of
scaling is given by the rand function for each object and using that
value to adjust the translated position of the objects accordingly.
Is it possible to do something like this and if so how, what, when,
where, and why ?
I appreciate your thoughtful consideration in this matter.
--
Ken Tyler
mailto://tylereng@pacbell.net
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
On Fri, 19 Feb 1999 10:26:56 -0800, Ken <tyl### [at] pacbellnet> wrote:
> Is it possible to trap a specific number generated by the rand
>function to be used in another portion of a loop ?
>
> An example of why I ask would be to create non umiform scaled wood
>shingles for a roof. They are usually the same in thichkess and length
>but the width varies. I could use the rand function within a loop to
>vary the scale of each oject generated but it would greatly complicate
>the position of the shingles as they are translated into postion through
>the loop count. My idea of a solution would be know what variation of
>scaling is given by the rand function for each object and using that
>value to adjust the translated position of the objects accordingly.
> Is it possible to do something like this and if so how, what, when,
>where, and why ?
Just generate the random number separately, save it in a variable, and
use it in both places. For your shingling project, in order to
account for the variable positions of other shingles, you could either
save the random numbers in an array as you create them and sum the
correct row or column for the needed offset, or (bad idea) reset the
random number stream with the original seed and run the random number
through the needed number of iterations at placement time. If you are
crazy enough to do that, you will also have to reseed and iterate each
time in the placement loop. An array would be much better.
Jerry Anning
clem "at" dhol "dot" com
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Hi Ken,
Not sure I understand your problem.
Do you mean something like
#declare NextX = 0;
#while( NextX < 20 )
#delare Scale = 1+rand(Seed);
box{0,1 scale Scale}
translate <NextX,0,0>
#declare NextX = NextX + Scale
#end
PoD.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Jerry Anning wrote:
>
>
> Just generate the random number separately, save it in a variable, and
> use it in both places. For your shingling project, in order to
> account for the variable positions of other shingles, you could either
> save the random numbers in an array as you create them and sum the
> correct row or column for the needed offset, or (bad idea) reset the
> random number stream with the original seed and run the random number
> through the needed number of iterations at placement time. If you are
> crazy enough to do that, you will also have to reseed and iterate each
> time in the placement loop. An array would be much better.
>
> Jerry Anning
> clem "at" dhol "dot" com
I understand how to use arrays but am unsure hot to pass a value to one
for storage and later retrieval. A brief example would be appreciated.
--
Ken Tyler
mailto://tylereng@pacbell.net
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
PoD wrote:
>
> Hi Ken,
> Not sure I understand your problem.
> Do you mean something like
>
> #declare NextX = 0;
> #while( NextX < 20 )
> #delare Scale = 1+rand(Seed);
> box{0,1 scale Scale}
> translate <NextX,0,0>
> #declare NextX = NextX + Scale
> #end
>
> PoD.
I thought it might be accomplished in a way similar to this but never
would have thought to increment the counter with the scale value.
I will check it out and see what happens.
Thank you !
--
Ken Tyler
mailto://tylereng@pacbell.net
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
While I would be in favor of a solution like PoD's, storing and
retrieving from an array is easy.
#declare num = 20;
#declare MyArray = array[Num];
#declare i = 0;
#while (i < num)
#declare MyArray[i] = i;
#declare i = i + 1;
#end
this stores the current value of i into the array at each position (so
MyArray[5] = 5) to get them out, simply do something like the following
#declare i = 0;
#declare Sum = 0;
#while (i < num)
#declare Sum = Sum + MyArray[i];
#declare i = i + 1;
#end
it is that simple.
Steve
Ken wrote:
>
> Jerry Anning wrote:
> >
>
> >
> > Just generate the random number separately, save it in a variable, and
> > use it in both places. For your shingling project, in order to
> > account for the variable positions of other shingles, you could either
> > save the random numbers in an array as you create them and sum the
> > correct row or column for the needed offset, or (bad idea) reset the
> > random number stream with the original seed and run the random number
> > through the needed number of iterations at placement time. If you are
> > crazy enough to do that, you will also have to reseed and iterate each
> > time in the placement loop. An array would be much better.
> >
> > Jerry Anning
> > clem "at" dhol "dot" com
>
> I understand how to use arrays but am unsure hot to pass a value to one
> for storage and later retrieval. A brief example would be appreciated.
>
> --
> Ken Tyler
>
> mailto://tylereng@pacbell.net
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Ken wrote in message <36CDEDD1.399182D7@pacbell.net>...
>PoD wrote:
>>
>> Hi Ken,
>> Not sure I understand your problem.
>> Do you mean something like
>>
>> #declare NextX = 0;
>> #while( NextX < 20 )
>> #delare Scale = 1+rand(Seed);
>> box{0,1 scale Scale}
>> translate <NextX,0,0>
>> #declare NextX = NextX + Scale
>> #end
>>
>> PoD.
>
>I thought it might be accomplished in a way similar to this but never
>would have thought to increment the counter with the scale value.
>I will check it out and see what happens.
>
> Thank you !
>
>--
>Ken Tyler
>
>mailto://tylereng@pacbell.net
It might help if you don't think of NextX as a counter, but as a position. We get used
to using #while because there is no #for, but it is a more general loop than that.
Gordon
<gbe### [at] birdcameroncomau>
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
On Sat, 20 Feb 1999 19:33:24 +0800, Gordon <gbe### [at] birdcameroncomau> wrote:
>DQpLZW4gd3JvdGUgaW4gbWVzc2FnZSA8MzZDREVERDEuMzk5MTgyRDdAcGFjYmVsbC5uZXQ+Li4u
>DQo+UG9EIHdyb3RlOg0KPj4gDQo+PiBIaSBLZW4sDQo+PiBOb3Qgc3VyZSBJIHVuZGVyc3RhbmQg
>eW91ciBwcm9ibGVtLg0KPj4gRG8geW91IG1lYW4gc29tZXRoaW5nIGxpa2UNCj4+IA0KPj4gI2Rl
>Y2xhcmUgTmV4dFggPSAwOw0KPj4gI3doaWxlKCBOZXh0WCA8IDIwICkNCj4+ICAgI2RlbGFyZSBT
>Y2FsZSA9IDErcmFuZChTZWVkKTsNCj4+ICAgYm94ezAsMSBzY2FsZSBTY2FsZX0NCj4+ICAgdHJh
>bnNsYXRlIDxOZXh0WCwwLDA+DQo+PiAgICNkZWNsYXJlIE5leHRYID0gTmV4dFggKyBTY2FsZQ0K
>Pj4gI2VuZA0KPj4gDQo+PiBQb0QuDQo+DQo+SSB0aG91Z2h0IGl0IG1pZ2h0IGJlIGFjY29tcGxp
>c2hlZCBpbiBhIHdheSBzaW1pbGFyIHRvIHRoaXMgYnV0IG5ldmVyDQo+d291bGQgaGF2ZSB0aG91
>Z2h0IHRvIGluY3JlbWVudCB0aGUgY291bnRlciB3aXRoIHRoZSBzY2FsZSB2YWx1ZS4NCj5JIHdp
>bGwgY2hlY2sgaXQgb3V0IGFuZCBzZWUgd2hhdCBoYXBwZW5zLg0KPg0KPiBUaGFuayB5b3UgIQ0K
>Pg0KPi0tIA0KPktlbiBUeWxlcg0KPg0KPm1haWx0bzovL3R5bGVyZW5nQHBhY2JlbGwubmV0DQoN
>Ckl0IG1pZ2h0IGhlbHAgaWYgeW91IGRvbid0IHRoaW5rIG9mIE5leHRYIGFzIGEgY291bnRlciwg
>YnV0IGFzIGEgcG9zaXRpb24uIFdlIGdldCB1c2VkIHRvIHVzaW5nICN3aGlsZSBiZWNhdXNlIHRo
>ZXJlIGlzIG5vICNmb3IsIGJ1dCBpdCBpcyBhIG1vcmUgZ2VuZXJhbCBsb29wIHRoYW4gdGhhdC4N
>Cg0KR29yZG9uDQo8Z2JlbnRsZXlAYmlyZGNhbWVyb24uY29tLmF1Pg0KDQo=
Now I've officially seen everything:
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: base64
What kind of stupid newsreader would even think about letting someone do
this? Oh, I see. It's another fine Microsoft product.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Ron Parker schrieb in Nachricht <36d18ccd.0@news.povray.org>...
>On Sat, 20 Feb 1999 19:33:24 +0800, Gordon <gbe### [at] birdcameroncomau>
wrote:
>>DQpLZW4gd3JvdGUgaW4gbWVzc2FnZSA8MzZDREVERDEuMzk5MTgyRDdAcGFjYmVsbC5uZXQ+Li
4u
[snip]
>>Cg0KR29yZG9uDQo8Z2JlbnRsZXlAYmlyZGNhbWVyb24uY29tLmF1Pg0KDQo=
>
>Now I've officially seen everything:
>
>Content-Type: text/plain; charset="iso-8859-1"
>Content-Transfer-Encoding: base64
>
>What kind of stupid newsreader would even think about letting someone do
>this? Oh, I see. It's another fine Microsoft product.
Whoops, I didn't see what you meant (for the POV stuff, I normally use M$OE,
because of the pretty picture shows), but when I saved Gordon's post and
loaded it with a text editor, I could see. Really looks a bit illegible,
doesn't it?
The original said:
------------------------------->8----cut
here---------------------------------------
<QUOTE>
Ken wrote in message <36CDEDD1.399182D7@pacbell.net>...
>PoD wrote:
>>
>> Hi Ken,
>> Not sure I understand your problem.
>> Do you mean something like
>>
>> #declare NextX = 0;
>> #while( NextX < 20 )
>> #delare Scale = 1+rand(Seed);
>> box{0,1 scale Scale}
>> translate <NextX,0,0>
>> #declare NextX = NextX + Scale
>> #end
>>
>> PoD.
>
>I thought it might be accomplished in a way similar to this but never
>would have thought to increment the counter with the scale value.
>I will check it out and see what happens.
>
> Thank you !
>
>--
>Ken Tyler
>
>mailto://tylereng@pacbell.net
It might help if you don't think of NextX as a counter, but as a position.
We get used to using #while because there is no #for, but it is a more
general loop than that.
Gordon
<gbe### [at] birdcameroncomau>
</QUOTE>
-----------------------------------------------cut
here------------------8<---------------
--
Rudy Velthuis
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Rudy Velthuis wrote:
[ snip snip ]
>
> It might help if you don't think of NextX as a counter, but as a position.
> We get used to using #while because there is no #for, but it is a more
> general loop than that.
>
> Gordon
> <gbe### [at] birdcameroncomau>
> </QUOTE>
> -----------------------------------------------cut
> here------------------8<---------------
>
> --
> Rudy Velthuis
Yeah, that's why I called it NextX. In my mind at least that's kind of a
hint that it's the x offset of the next object rather than just a
counter.
Cheers, PoD.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |