POV-Ray : Newsgroups : povray.animations : Shed version 2 : Re: Shed version 2 Server Time
20 Apr 2024 07:19:29 EDT (-0400)
  Re: Shed version 2  
From: clipka
Date: 22 Feb 2017 11:39:14
Message: <58adbeb2$1@news.povray.org>
Am 22.02.2017 um 01:05 schrieb Klewlis:

> This actually makes me wonder why this works:
>     #declare a=2;
> 
>     #for (i, 1.5, 241.5, 16)
>         #declare a=a+1;
>         #if (frame_number>a)
>             object {Stud
>                 rotate z*90
>                 #if (i<240)
>                     translate <i, 0, 140.375>
>                 #else
>                     translate <i-1.5, 0, 140.375>
>                 #end
>             }
>         #end
>     #end
> 
> (I am not complaining, I am glad it works.)  It seems that each time the file is
> parsed, "i" would be initialized to 1.5, but instead it is incremented by 16.

As a matter of fact, /both/ happens in each frame; the latter even
multiple times.

So in frame #1 you get:

    frame_number = 1
    a = 2
    i = 1.5
        a = 3
        test if frame_number(=1) > a(=3) -> no
    i = 17.5
        a = 4
        test if frame_number(=1) > a(=4) -> no
    i = 33.5
        a = 5
        test if frame_number(=1) > a(=5) -> no
    i = 49.5
        a = 6
        test if frame_number(=1) > a(=6) -> no
    ...etc...

Then, in frame #2, you get:

    frame_number = 2
    a = 2
    i = 1.5
        a = 3
        test if frame_number(=2) > a(=3) -> no
    i = 17.5
        a = 4
        test if frame_number(=2) > a(=4) -> no
    i = 33.5
        a = 5
        test if frame_number(=2) > a(=5) -> no
    i = 49.5
        a = 6
        test if frame_number(=2) > a(=6) -> no
    ...etc...

Later, in frame #3, you get:

    frame_number = 3
    a = 2
    i = 1.5
        a = 3
        test if frame_number(=3) > a(=3) -> no
    i = 17.5
        a = 4
        test if frame_number(=3) > a(=4) -> no
    i = 33.5
        a = 5
        test if frame_number(=3) > a(=5) -> no
    i = 49.5
        a = 6
        test if frame_number(=3) > a(=6) -> no
    ...etc...

At last, in frame #4, you get:

    frame_number = 4
    a = 2
    i = 1.5
        a = 3
        test if frame_number(=4) > a(=3) -> yes
            insert a Stud at i=1.5
    i = 17.5
        a = 4
        test if frame_number(=4) > a(=4) -> no
    i = 33.5
        a = 5
        test if frame_number(=4) > a(=5) -> no
    i = 49.5
        a = 6
        test if frame_number(=4) > a(=6) -> no
    ...etc...

In frame #5, you get:

    frame_number = 5
    a = 2
    i = 1.5
        a = 3
        test if frame_number(=5) > a(=3) -> yes
            insert a Stud at i=1.5
    i = 17.5
        a = 4
        test if frame_number(=5) > a(=4) -> yes
            insert a Stud at i=17.5
    i = 33.5
        a = 5
        test if frame_number(=5) > a(=5) -> no
    i = 49.5
        a = 6
        test if frame_number(=5) > a(=6) -> no
    ...etc...

... and so forth.


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.