POV-Ray : Newsgroups : povray.general : Mixing transformations : Re: Mixing transformations Server Time
30 Jul 2024 16:14:11 EDT (-0400)
  Re: Mixing transformations  
From: Jim Charter
Date: 4 Nov 2008 13:20:09
Message: <49109259$1@news.povray.org>
HelveticaFanatic wrote:
> Jim Charter <jrc### [at] msncom> wrote:
> 
>>HelveticaFanatic wrote:
>>
>>>Jim Charter <jrc### [at] msncom> wrote:
>>>
>>>
>>>>HelveticaFanatic wrote:
>>>>
>>>>
>>>>>I am modeling trains using Spline_Trans. Is there a way to average out the
>>>>>points above each wheel set to get a position for the train so that it still
>>>>>has the banking from Spline_Trans but shift over the side of the track so that
>>>>>the wheels are above the tracks? Thanks.
>>>>>
>>>>>
>>>>
>>>>If I am understanding what you want, you can take points from along the
>>>>spline on either side of a given point, together with the root point you
>>>>can then use cross product (vcross(A,B) see the docs) to approximate a
>>>>normal which which would reflect the banking of the spline.  You would
>>>>'normalize it of course and then multiply by the radius of your wheel to
>>>>get the level where the axle would be.  If you don't quite understand
>>>>what I mean, I would suggest you research what cross product is and work
>>>>backward from there to a solution.
>>>>
>>>>-Jim
>>>
>>>
>>>I think that this is just regular banking (I use Spline_Trans for that now). I
>>>need to simulate a train where there are two wheel sets on the track. I need to
>>>take the Spline_Trans translation and rotation for each wheel set to determine
>>>the position of the train (the center point of the train of course will not be
>>>over the center of the track, only the centers of the bogies). I want to carry
>>>over the bank angle and make the train actually fit over the curve.
>>>
>>>
>>
>>Yes, see my other response.  With that code snip I showed you, you
>>should be able to contrive an answer to your needs. It utilizes the same
>>macro that you would use to position an object along the spline,
>>including what ever bank settings you use, to predict where any point
>>would also be relative to the spline also. It strikes me that there is
>>no one way to organize this though.  For instance, what do you what the
>>spline to actually define?  The center line between the two rails?  Once
>>you arrive at that definition, the rest should follow.
> 
> 
> This was for a point on each side of the train (the left and right side, thin
> axis).
> 
> My situation is different.
> http://www.flickr.com/photos/helveticafanatic/3001878662/
> 
> I use the spline to define the center line of the tracks. I have used
> Spline_Trans to get banking which successfully rotates the train car properly.
> I want, however, to not have the center of the train over the curve but the two
> points where the bogies of the train are. Furthermore, the banking of these two
> points must factor into the banking of the train.
> 
> Thanks.
> 
> 
Okay, now that I see what you are after I would suggest to you that you 
may probably not have even been successful transforming the train car 
body in the general case, never mind the wheel carriages, or how the 
train car would bridge between a foreward and rearward wheel carriage on 
a banked curve.  If you do more extensive testing you may see that 
Spline_Trans cannot solve some basic issues with rotational transforms 
in 3 dimensions which involve that ORDER OF ROTATON matters.  It is 
often necessary to do the rotation in two steps, creating an 
intermediate axis in one plane using Reorient_Trans before using 
Spline_Trans.  I think you need to do a lot more testing.

To answer the specific question about the lateral banking of the car 
body bridging a curve, you would have to know something about the actual 
engineering of train cars, but in a vacuum, I would go with this:

At the center point for each wheel carriage, (single, tandem, bogie, 
whatever), forward and rearward, you can establish the direction of the 
banked (originally vertical) normal. Along these two directions you 
would have two points at different 'heigths.'  You take the bridging 
lines between these points at the two heights.  The halfway points of 
these bridging lines, when joined, would then give the average bank that 
could be used for the train car.  This would DIFFER from the bank at the 
halfway point along the spline.


Post a reply to this message

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