POV-Ray : Newsgroups : povray.programming : Tank , Tracks and function Server Time
29 Jul 2024 04:32:46 EDT (-0400)
  Tank , Tracks and function (Message 1 to 2 of 2)  
From:
Subject: Tank , Tracks and function
Date: 8 Nov 1998 10:33:18
Message: <3645b9be.0@news.povray.org>
Hi !  Boys  !


I am modelling one second world war 's tank with MORAY.
Easy !

But , to do tracks , it is no easy : i can place tracks handly but can
somebody tell me how make fonction that automatize that for make an
animation of my tank when it running on a road.

So , thank you



Post a reply to this message

From: Mark Donovan
Subject: Re: Tank, Tracks and function
Date: 10 Nov 1998 10:22:33
Message: <36485A3E.6660DE3A@worldnet.att.net>

> 

> I am modelling one second world war's tank with MORAY.
> Easy !
> 

> But, to do tracks, it is no easy: i can place tracks handly but can
> somebody tell me how make fonction that automatize that for make an
> animation of my tank when it running on a road.

I suggest using one of the drive wheels as a reference for the tank's
motion. Preferably, use the largest wheel that touches the ground.
Rotation of this single wheel can define the rotation of all the other
wheels, the motion of the tank, and the tread. Let's call this wheel's
radius R_0 and its angle of rotation A_0. Let's make A_0 a function of
the clock variable. More on this later.

1) Wheels that are the same radius as the reference wheel rotate the
same angle.

2) Move the tank in its path by a distance, s, defined by the reference
wheel: s = R_0 * A_0.

3) Other wheels rotate in proportion to the ratio of reference wheel
radius to the their radii. For wheel n, A_n = (R_0 / R_n) * A_0, e.g.,
if R_n is half of R_0, then wheel n will rotate twice as fast as the
reference wheel. This is true because for all wheels that touch the
tread, s must be the same, so s = R_0 * A_0 = R_n * A_n.

4) The tread advances in its path by the amount s = R_0 * A_0. Moving
the tread segments is an interesting challenge, but the amount to move
is s.

To make A_0 a function of the clock variable, and to tie this to
movement of the tank, let's decide how far we want to move the tank in
'POV units.' Let's advance the tank 1000 units as the clock changes from
0 to 1. So S_total = 1000, and A_0 = (S_total / R_0) * clock. We get
this from S_total = R_0 * A_0_total.

I hope this helps.

Mark Donovan


Post a reply to this message

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