  | 
  | 
 | 
  | 
 | 
  | 
 |   | 
 |   | 
 | 
  | 
 | 
  | 
 |   | 
 |   | 
 | 
  | 
This involves probably some very easy algebra.
I want a cylinder to spin 360 degrees when the clock is between 0 and 
0.6667. I want another object to spin when the clock is between 0.3333 
and 0.6667. Finally I want the camera to rotate 90 degrees when the 
clock is between 0.6667 and 1.
How do I set this up? Thanks.
Michael
 
 Post a reply to this message 
 | 
  | 
 |   | 
 |   | 
 | 
  | 
 | 
  | 
 |   | 
 |   | 
 | 
  | 
On 2/17/2019 5:36 AM, Mike Horvath wrote:
> This involves probably some very easy algebra.
> 
> I want a cylinder to spin 360 degrees when the clock is between 0 and 
> 0.6667. I want another object to spin when the clock is between 0.3333 
> and 0.6667. Finally I want the camera to rotate 90 degrees when the 
> clock is between 0.6667 and 1.
> 
> How do I set this up? Thanks.
> 
> 
> Michael
PS - I was thinking of maybe a macro that takes a start time and an end 
time, and outputs a value between 0 and 1?
Michael
 
 Post a reply to this message 
 | 
  | 
 |   | 
 |   | 
 | 
  | 
 | 
  | 
 |   | 
 |   | 
 | 
  | 
Mike Horvath <mik### [at] gmail com> wrote:
> On 2/17/2019 5:36 AM, Mike Horvath wrote:
> > This involves probably some very easy algebra.
> >
> > I want a cylinder to spin 360 degrees when the clock is between 0 and
> > 0.6667. I want another object to spin when the clock is between 0.3333
> > and 0.6667. Finally I want the camera to rotate 90 degrees when the
> > clock is between 0.6667 and 1.
> >
> > How do I set this up? Thanks.
> >
> >
> > Michael
>
>
> PS - I was thinking of maybe a macro that takes a start time and an end
> time, and outputs a value between 0 and 1?
#macro MacroName(StartTime, EndTime)
    #local R = (clock - StartTime)/(EndTime - StartTime);
    #local S = min(max(0, R), 1);
    S
#end // macro MacroName
object {
    YourCylinder
    rotate MacroName(0/3, 2/3)*360*y
}
object {
    YourOtherObject
    rotate MacroName(1/3, 2/3)*SomeAngle*y
}
camera {
    YourCamera
    rotate MacroName(2/3, 3/3)*90*y
}
--
Tor Olav
http://subcube.com
https://github.com/t-o-k/
 
 Post a reply to this message 
 | 
  | 
 |   | 
 |   | 
 | 
  | 
 | 
  | 
 |   | 
 |   | 
 | 
  | 
Le 19-02-17 à 05:36, Mike Horvath a écrit :
> This involves probably some very easy algebra.
> 
> I want a cylinder to spin 360 degrees when the clock is between 0 and 
> 0.6667. I want another object to spin when the clock is between 0.3333 
> and 0.6667. Finally I want the camera to rotate 90 degrees when the 
> clock is between 0.6667 and 1.
> 
> How do I set this up? Thanks.
> 
> 
> Michael
Assuming that the clock goes from 0 to 1 :
To be added to the object of interest.
First case :
#if(clock <= 2/3) rotate x*360*3/2 #end
// *360 for a full rotation
// *3/2 adjust to the desired clock interval
Second case :
#if(clock > 1/3 & clock < 2/3) rotate y*(clock - 1/3)*720*3/2 #end
// *720 two full rotation, just because...
Third case :
#if(clock > 2/3) rotate z*(clock - 2/3)*90*3 #end
That should do it.
Alain
 
 Post a reply to this message 
 | 
  | 
 |   | 
 |   | 
 | 
  | 
 | 
  | 
 |   | 
 |   | 
 | 
  | 
On 2/17/2019 7:27 AM, Tor Olav Kristensen wrote:
> #macro MacroName(StartTime, EndTime)
> 
>      #local R = (clock - StartTime)/(EndTime - StartTime);
>      #local S = min(max(0, R), 1);
> 
>      S
> 
> #end // macro MacroName
Thank you! That's perfect.
Mike
 
 Post a reply to this message 
 | 
  | 
 |   | 
 |   | 
 | 
  | 
 | 
  | 
 |   | 
 |   | 
 | 
  | 
Mike Horvath <mik### [at] gmail com> wrote:
> On 2/17/2019 7:27 AM, Tor Olav Kristensen wrote:
> > #macro MacroName(StartTime, EndTime)
> >
> >      #local R = (clock - StartTime)/(EndTime - StartTime);
> >      #local S = min(max(0, R), 1);
> >
> >      S
> >
> > #end // macro MacroName
>
>
> Thank you! That's perfect.
>
>
> Mike
I hesitate to try to improve on a TOK solution, but in my animations, a very
early line will be
#declare MyTime = clock;
then I use MyTime wherever I would use clock. This lets me #declare MyTime =
0.6667, for example to go to a position in the animation to test a particular
stage without running the whole animations. You would pass MyTime to the #macro.
This may be obvious, but it is an improvement.
 
 Post a reply to this message 
 | 
  | 
 |   | 
 |   | 
 | 
  | 
 | 
  | 
 |   | 
 |   | 
 | 
  | 
On 2/18/2019 12:38 PM, JimT wrote:
> Mike Horvath <mik### [at] gmail com> wrote:
>> On 2/17/2019 7:27 AM, Tor Olav Kristensen wrote:
>>> #macro MacroName(StartTime, EndTime)
>>>
>>>       #local R = (clock - StartTime)/(EndTime - StartTime);
>>>       #local S = min(max(0, R), 1);
>>>
>>>       S
>>>
>>> #end // macro MacroName
>>
>>
>> Thank you! That's perfect.
>>
>>
>> Mike
> 
> I hesitate to try to improve on a TOK solution, but in my animations, a very
> early line will be
> 
> #declare MyTime = clock;
> 
> then I use MyTime wherever I would use clock. This lets me #declare MyTime =
> 0.6667, for example to go to a position in the animation to test a particular
> stage without running the whole animations. You would pass MyTime to the #macro.
> This may be obvious, but it is an improvement.
> 
> 
I'll keep that in mind, thanks! What I usually do is set the clock value 
using the +K switch if I need to. I get confused by all the INI settings 
sometimes too.
Mike
 
 Post a reply to this message 
 | 
  | 
 |   | 
 |   | 
 | 
  | 
 | 
  | 
 |   | 
 |   | 
 | 
  | 
On 2/17/2019 7:27 AM, Tor Olav Kristensen wrote:
> #macro MacroName(StartTime, EndTime)
> 
>      #local R = (clock - StartTime)/(EndTime - StartTime);
>      #local S = min(max(0, R), 1);
> 
>      S
> 
> #end // macro MacroName
What do you think would be a good way to gradually speed up and then 
slow down the motions using this macro? I'm thinking it would require a 
sine wave (or some other bell curve), but am not sure how to apply it.
Mike
 
 Post a reply to this message 
 | 
  | 
 |   | 
 |   | 
 | 
  | 
 | 
  | 
 |   | 
 |   | 
 | 
  | 
Am 19.02.2019 um 06:18 schrieb Mike Horvath:
> On 2/17/2019 7:27 AM, Tor Olav Kristensen wrote:
>> #macro MacroName(StartTime, EndTime)
>>
>>      #local R = (clock - StartTime)/(EndTime - StartTime);
>>      #local S = min(max(0, R), 1);
>>
>>      S
>>
>> #end // macro MacroName
> 
> What do you think would be a good way to gradually speed up and then 
> slow down the motions using this macro? I'm thinking it would require a 
> sine wave (or some other bell curve), but am not sure how to apply it.
A spline might help with this.
 
 Post a reply to this message 
 | 
  | 
 |   | 
 |   | 
 | 
  | 
 | 
  | 
 |   | 
 |   | 
 | 
  | 
Mike Horvath <mik### [at] gmail com> wrote:
> On 2/17/2019 7:27 AM, Tor Olav Kristensen wrote:
> > #macro MacroName(StartTime, EndTime)
> >
> >      #local R = (clock - StartTime)/(EndTime - StartTime);
> >      #local S = min(max(0, R), 1);
> >
> >      S
> >
> > #end // macro MacroName
>
> What do you think would be a good way to gradually speed up and then
> slow down the motions using this macro? I'm thinking it would require a
> sine wave (or some other bell curve), but am not sure how to apply it.
insert
#declare S = sin(S*Tau);
or
#declare S = abs(sin(S*Tau));
before the line
S
However you're running it.
 
 Post a reply to this message 
 | 
  | 
 |   | 
 |   | 
 | 
  | 
 | 
  | 
 |   |