POV-Ray : Newsgroups : povray.binaries.animations : Rollin 2 Server Time
3 Jul 2024 02:52:46 EDT (-0400)
  Rollin 2 (Message 1 to 3 of 3)  
From: James
Subject: Rollin 2
Date: 27 Oct 2005 09:35:01
Message: <web.4360d6e3751f6932f5c315de0@news.povray.org>
Yet another Rollin anim, this is going somewhere, one of those unnecessarily
complicated machines that turns the lights out on a V8 Supercar race
starting the battle. The balls will cause the letters Panorama Productions
to appear along the way. This anim, the 5 balls are loose though there are
no particle interactions, so the balls roll through each other.

James


Post a reply to this message


Attachments:
Download 'coaster6lq.mpg' (431 KB)

From: James
Subject: Re: Rollin 2
Date: 29 Oct 2005 12:05:02
Message: <web.43639cdc670b1e8ff5c315de0@news.povray.org>
Had to vectorise the vectors for this one, the turns bank properly and the
rails never leave their supports. Here is the code for the track building.

#while (section < sections-1)
    #declare bear1 = tpoints1[section][0];
    #declare bear2 = tpoints1[section+1][0];
    #declare azim1 = tpoints1[section][1];
    #declare azim2 = tpoints1[section+1][1];
    #declare roll1 = tpoints1[section][2];
    #declare roll2 = tpoints1[section+1][2];
    #declare xpos1 = tpoints1[section][3];
    #declare xpos2 = tpoints1[section+1][3];
    #declare ypos1 = tpoints1[section][4];
    #declare ypos2 = tpoints1[section+1][4];
    #declare zpos1 = tpoints1[section][5];
    #declare zpos2 = tpoints1[section+1][5];

    // Components
    #declare xcomp1 = abs(w1 * sind(roll1) * sind(azim1));
    #declare xcomp2 = abs(w1 * sind(roll2) * sind(azim2));
    #declare ycomp1 = w1 * sind(roll1) * cosd(azim1);
    #declare ycomp2 = w1 * sind(roll2) * cosd(azim2);
    #declare zcomp1 = w1 * cosd(roll1);
    #declare zcomp2 = w1 * cosd(roll2);

    // Left Rail
    #declare lrx1 = xpos1 + xcomp1 * cosd(bear1) - zcomp1 * sind(bear1);
    #declare lrx2 = xpos2 + xcomp2 * cosd(bear2) - zcomp2 * sind(bear2);
    #declare lry1 = ypos1 - ycomp1;
    #declare lry2 = ypos2 - ycomp2;
    #declare lrz1 = zpos1 + xcomp1 * sind(bear1) + zcomp1 * cosd(bear1);
    #declare lrz2 = zpos2 + xcomp2 * sind(bear2) + zcomp2 * cosd(bear2);

    // Right Rail
    #declare rrx1 = xpos1 - xcomp1 * cosd(bear1) + zcomp1 * sind(bear1);
    #declare rrx2 = xpos2 - xcomp2 * cosd(bear2) + zcomp2 * sind(bear2);
    #declare rry1 = ypos1 + ycomp1;
    #declare rry2 = ypos2 + ycomp2;
    #declare rrz1 = zpos1 - xcomp1 * sind(bear1) - zcomp1 * cosd(bear1);
    #declare rrz2 = zpos2 - xcomp2 * sind(bear2) - zcomp2 * cosd(bear2);

    #cylinder {<lrx1,lry1,lrz1> <lrx2,lry2,lrz2> 0.025 pigment {rgb <1,0,0>}
}

    #cylinder {<rrx1,rry1,rrz1> <rrx2,rry2,rrz2> 0.025 pigment {rgb <0,0,1>}
}
    #sphere {<lrx1,lry1,lrz1> 0.025 pigment {rgb <1,0,0>} }
    #sphere {<rrx1,rry1,rrz1> 0.025 pigment {rgb <0,0,1>} }

    #declare section = section + 1;
#end


Post a reply to this message


Attachments:
Download 'coaster9lq.mpg' (323 KB)

From: Spock
Subject: Re: Rollin 2
Date: 29 Oct 2005 17:13:35
Message: <4363e5ff$1@news.povray.org>
The problem here (in my *always* humble) opinion is anticipation. When I 
ride a roller coaster and I see that the track swings off to the left I 
naturally turn my head left... before I hit the corner.  Your animation 
is awesome, but you need to add a tiny bit of camera angle to match the 
viewer's desire to look around the next corner.


James wrote:
> Had to vectorise the vectors for this one, the turns bank properly and the
> rails never leave their supports. Here is the code for the track building.
> 
> #while (section < sections-1)
>     #declare bear1 = tpoints1[section][0];
>     #declare bear2 = tpoints1[section+1][0];
>     #declare azim1 = tpoints1[section][1];
>     #declare azim2 = tpoints1[section+1][1];
>     #declare roll1 = tpoints1[section][2];
>     #declare roll2 = tpoints1[section+1][2];
>     #declare xpos1 = tpoints1[section][3];
>     #declare xpos2 = tpoints1[section+1][3];
>     #declare ypos1 = tpoints1[section][4];
>     #declare ypos2 = tpoints1[section+1][4];
>     #declare zpos1 = tpoints1[section][5];
>     #declare zpos2 = tpoints1[section+1][5];
> 
>     // Components
>     #declare xcomp1 = abs(w1 * sind(roll1) * sind(azim1));
>     #declare xcomp2 = abs(w1 * sind(roll2) * sind(azim2));
>     #declare ycomp1 = w1 * sind(roll1) * cosd(azim1);
>     #declare ycomp2 = w1 * sind(roll2) * cosd(azim2);
>     #declare zcomp1 = w1 * cosd(roll1);
>     #declare zcomp2 = w1 * cosd(roll2);
> 
>     // Left Rail
>     #declare lrx1 = xpos1 + xcomp1 * cosd(bear1) - zcomp1 * sind(bear1);
>     #declare lrx2 = xpos2 + xcomp2 * cosd(bear2) - zcomp2 * sind(bear2);
>     #declare lry1 = ypos1 - ycomp1;
>     #declare lry2 = ypos2 - ycomp2;
>     #declare lrz1 = zpos1 + xcomp1 * sind(bear1) + zcomp1 * cosd(bear1);
>     #declare lrz2 = zpos2 + xcomp2 * sind(bear2) + zcomp2 * cosd(bear2);
> 
>     // Right Rail
>     #declare rrx1 = xpos1 - xcomp1 * cosd(bear1) + zcomp1 * sind(bear1);
>     #declare rrx2 = xpos2 - xcomp2 * cosd(bear2) + zcomp2 * sind(bear2);
>     #declare rry1 = ypos1 + ycomp1;
>     #declare rry2 = ypos2 + ycomp2;
>     #declare rrz1 = zpos1 - xcomp1 * sind(bear1) - zcomp1 * cosd(bear1);
>     #declare rrz2 = zpos2 - xcomp2 * sind(bear2) - zcomp2 * cosd(bear2);
> 
>     #cylinder {<lrx1,lry1,lrz1> <lrx2,lry2,lrz2> 0.025 pigment {rgb <1,0,0>}
> }
> 
>     #cylinder {<rrx1,rry1,rrz1> <rrx2,rry2,rrz2> 0.025 pigment {rgb <0,0,1>}
> }
>     #sphere {<lrx1,lry1,lrz1> 0.025 pigment {rgb <1,0,0>} }
>     #sphere {<rrx1,rry1,rrz1> 0.025 pigment {rgb <0,0,1>} }
> 
>     #declare section = section + 1;
> #end


Post a reply to this message

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