|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Okay, here's my problem. I'm working on an anim.
Let's say I have two points in space. Joining these, I have a thin piece of elastic (
or
similar stretchable material ). Threaded on this elastic are a number ( provisionally
5 )
of spheres, spaced evenly.
As the two points move around, how do I get the vector of each sphere as they remain
evenly spaced along the elastic?
I need the vector as each sphere will eventually become a blob component.
Many thanks
Andy
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Maybe it is this:
#declare xpos = xPoint2 - xPoint1;
#declare ypos = yPoint2 - yPoint1;
#declare zpos = zPoint2 - zPoint1;
#declare incx = xpos / NbSpheres;
#declare incy = ypos / NbSpheres;
#declare incz = zpos / NbSpheres;
#declare i = 1;
#while (i < NbSpheres)
#declare xpos = xPoint1 + (incx * i);
#declare ypos = yPoint1 + (incy * i);
#declare zpos = zPoint1 + (incz * i);
sphere {<xpos, ypos,zpos>, Radius ... }
#declare i = i + 1;
#end
I'm not absolutly sure but it must be a good start ?
David GEMELLI
> Okay, here's my problem. I'm working on an anim.
> Let's say I have two points in space. Joining these, I have a thin piece of elastic
( or
> similar stretchable material ). Threaded on this elastic are a number (
provisionally 5 )
> of spheres, spaced evenly.
> As the two points move around, how do I get the vector of each sphere as they remain
> evenly spaced along the elastic?
> I need the vector as each sphere will eventually become a blob component.
>
> Many thanks
>
> Andy
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
On Thu, 11 Feb 1999 15:10:37 -0000, Andrew Cocker wrote:
>Okay, here's my problem. I'm working on an anim.
>Let's say I have two points in space. Joining these, I have a thin piece of elastic (
or
>similar stretchable material ). Threaded on this elastic are a number ( provisionally
5 )
>of spheres, spaced evenly.
>As the two points move around, how do I get the vector of each sphere as they remain
>evenly spaced along the elastic?
>I need the vector as each sphere will eventually become a blob component.
This is untested, but it should be close to what you want.
// This macro returns the center of a bead as requested
// inputs: Start = position of start of strand (vector)
// End = position of end of strand (vector)
// NumBeads = number of beads on strand (integer >= 2)
// BeadNum = Bead number (integer, 1 .. NumBeads)
#macro BeadPos( Start, End, NumBeads, BeadNum )
Start+(BeadNum-1)*(End - Start)/(NumBeads-1)
#end
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Thanks David,
that seems to work fine. However, my two points are going to be returned elswhere as a
vector ie <-1,1,0>. Is there a way of extracting these values and using them in your
code?
This is related to my other recent post regarding Chris Colefax's 'AutoClck.mcr'. The
two
points will actually be bouncing spheres connected by the method below.
Thanks,
Andy
gemelli david wrote in message <36C2F531.3240D7E7@imerir.asso.fr>...
>Maybe it is this:
>
>#declare xpos = xPoint2 - xPoint1;
>#declare ypos = yPoint2 - yPoint1;
>#declare zpos = zPoint2 - zPoint1;
>#declare incx = xpos / NbSpheres;
>#declare incy = ypos / NbSpheres;
>#declare incz = zpos / NbSpheres;
>#declare i = 1;
>#while (i < NbSpheres)
> #declare xpos = xPoint1 + (incx * i);
> #declare ypos = yPoint1 + (incy * i);
> #declare zpos = zPoint1 + (incz * i);
> sphere {<xpos, ypos,zpos>, Radius ... }
> #declare i = i + 1;
>#end
>I'm not absolutly sure but it must be a good start ?
>
> David GEMELLI
>
>
>> Okay, here's my problem. I'm working on an anim.
>> Let's say I have two points in space. Joining these, I have a thin piece of elastic
or
>> similar stretchable material ). Threaded on this elastic are a number (
provisionally
5 )
>> of spheres, spaced evenly.
>> As the two points move around, how do I get the vector of each sphere as they
remain
>> evenly spaced along the elastic?
>> I need the vector as each sphere will eventually become a blob component.
>>
>> Many thanks
>>
>> Andy
>
>
>
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Thanks Ron,
I believe your method negates my second question to David.
Andy
Ron Parker wrote in message <36c31b51.0@news.povray.org>...
>On Thu, 11 Feb 1999 15:10:37 -0000, Andrew Cocker wrote:
>>Okay, here's my problem. I'm working on an anim.
>>Let's say I have two points in space. Joining these, I have a thin piece of elastic
( or
>>similar stretchable material ). Threaded on this elastic are a number (
provisionally
5 )
>>of spheres, spaced evenly.
>>As the two points move around, how do I get the vector of each sphere as they remain
>>evenly spaced along the elastic?
>>I need the vector as each sphere will eventually become a blob component.
>
>This is untested, but it should be close to what you want.
>
>// This macro returns the center of a bead as requested
>// inputs: Start = position of start of strand (vector)
>// End = position of end of strand (vector)
>// NumBeads = number of beads on strand (integer >= 2)
>// BeadNum = Bead number (integer, 1 .. NumBeads)
>
>#macro BeadPos( Start, End, NumBeads, BeadNum )
> Start+(BeadNum-1)*(End - Start)/(NumBeads-1)
>#end
>
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Obviously I don't really understand the use of macros.. can you point out what else I
need to put to complete this please.
#macro BeadPos( Start, End, NumBeads, BeadNum )
Start+(BeadNum-1)*(End - Start)/(NumBeads-1)
#end
#declare Start=<-1,1,0>;
#declare End=<1,-1,0>;
#declare NumBeads=25;
#declare BeadNum=1;
#while (BeadNum<=NumBeads)
sphere { BeadPos texture {Reddy} }
#declare BeadNum=BeadNum+1;
#end
Thanks
Andy
Ron Parker wrote in message <36c31b51.0@news.povray.org>...
>On Thu, 11 Feb 1999 15:10:37 -0000, Andrew Cocker wrote:
>>Okay, here's my problem. I'm working on an anim.
>>Let's say I have two points in space. Joining these, I have a thin piece of elastic
( or
>>similar stretchable material ). Threaded on this elastic are a number (
provisionally
5 )
>>of spheres, spaced evenly.
>>As the two points move around, how do I get the vector of each sphere as they remain
>>evenly spaced along the elastic?
>>I need the vector as each sphere will eventually become a blob component.
>
>This is untested, but it should be close to what you want.
>
>// This macro returns the center of a bead as requested
>// inputs: Start = position of start of strand (vector)
>// End = position of end of strand (vector)
>// NumBeads = number of beads on strand (integer >= 2)
>// BeadNum = Bead number (integer, 1 .. NumBeads)
>
>#macro BeadPos( Start, End, NumBeads, BeadNum )
> Start+(BeadNum-1)*(End - Start)/(NumBeads-1)
>#end
>
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Each sphere is spaced 1/6th of the distance between your two points...
#declare Endpoint1 = <some vector>;
#declare Endpoint2 = <some other vector>;
I don't know how youa re declareing them...so here is a basic shell
#declare Length = Endpoint2 - Endpoint1; // gives a single vector starting at the
origin
#declare point1 = Length*1/6 + Endpoint1;
#declare point2 = Length*2/6 + Endpoint1;
#declare point3 = Length*3/6 + Endpoint1;
#declare point4 = Length*4/6 + Endpoint1;
#declare point5 = Length*5/6 + Endpoint1;
So your five spheres are at point1 through point5. Hopefully you should see that
Endpoint2 is
equal to Lenght*6/6 + Endpoint1, which is why we are dividing by sixths instead of
fifths.
Good Luck
Josh English
eng### [at] spiritonecom
Andrew Cocker wrote:
> Okay, here's my problem. I'm working on an anim.
> Let's say I have two points in space. Joining these, I have a thin piece of elastic
( or
> similar stretchable material ). Threaded on this elastic are a number (
provisionally 5 )
> of spheres, spaced evenly.
> As the two points move around, how do I get the vector of each sphere as they remain
> evenly spaced along the elastic?
> I need the vector as each sphere will eventually become a blob component.
>
> Many thanks
>
> Andy
--
Josh English
eng### [at] spiritonecom
www.spiritone.com/~english
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
It's alright..I worked out what I was doing wrong.
Thanks for your help.
Andy
Andrew Cocker wrote in message <36c325d5.0@news.povray.org>...
>Obviously I don't really understand the use of macros.. can you point out what else
I
>need to put to complete this please.
>
>#macro BeadPos( Start, End, NumBeads, BeadNum )
> Start+(BeadNum-1)*(End - Start)/(NumBeads-1)
>#end
>
>#declare Start=<-1,1,0>;
>#declare End=<1,-1,0>;
>#declare NumBeads=25;
>#declare BeadNum=1;
>#while (BeadNum<=NumBeads)
> sphere { BeadPos texture {Reddy} }
>#declare BeadNum=BeadNum+1;
>#end
>
>Thanks
>
>Andy
>
>Ron Parker wrote in message <36c31b51.0@news.povray.org>...
>>On Thu, 11 Feb 1999 15:10:37 -0000, Andrew Cocker wrote:
>>>Okay, here's my problem. I'm working on an anim.
>>>Let's say I have two points in space. Joining these, I have a thin piece of elastic
or
>>>similar stretchable material ). Threaded on this elastic are a number (
provisionally
>5 )
>>>of spheres, spaced evenly.
>>>As the two points move around, how do I get the vector of each sphere as they
remain
>>>evenly spaced along the elastic?
>>>I need the vector as each sphere will eventually become a blob component.
>>
>>This is untested, but it should be close to what you want.
>>
>>// This macro returns the center of a bead as requested
>>// inputs: Start = position of start of strand (vector)
>>// End = position of end of strand (vector)
>>// NumBeads = number of beads on strand (integer >= 2)
>>// BeadNum = Bead number (integer, 1 .. NumBeads)
>>
>>#macro BeadPos( Start, End, NumBeads, BeadNum )
>> Start+(BeadNum-1)*(End - Start)/(NumBeads-1)
>>#end
>>
>
>
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
gemelli david <gem### [at] imerirassofr> wrote:
: #declare xpos = xPoint2 - xPoint1;
: #declare ypos = yPoint2 - yPoint1;
: #declare zpos = zPoint2 - zPoint1;
: #declare incx = xpos / NbSpheres;
: #declare incy = ypos / NbSpheres;
: #declare incz = zpos / NbSpheres;
: #declare i = 1;
: #while (i < NbSpheres)
: #declare xpos = xPoint1 + (incx * i);
: #declare ypos = yPoint1 + (incy * i);
: #declare zpos = zPoint1 + (incz * i);
: sphere {<xpos, ypos,zpos>, Radius ... }
: #declare i = i + 1;
: #end
Or more briefly:
(Point1 and Point2 are vectors)
#declare pos=Point2-Point1;
#declare inc=pos/NbSpheres;
#declare i=0;
#while(i<NbSpheres)
sphere { Point1+inc*i, Radius }
#declare i=i+1;
#end
--
main(i){char*_="BdsyFBThhHFBThhHFRz]NFTITQF|DJIFHQhhF";while(i=
*_++)for(;i>1;printf("%s",i-70?i&1?"[]":" ":(i=0,"\n")),i/=2);} /*- Warp -*/
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|