POV-Ray : Newsgroups : povray.general : Mixing transformations : Re: Mixing transformations Server Time
30 Jul 2024 22:20:21 EDT (-0400)
  Re: Mixing transformations  
From: HelveticaFanatic
Date: 5 Nov 2008 02:30:01
Message: <web.49114af1e475a2ad63216ea70@news.povray.org>
Jim Charter <jrc### [at] msncom> wrote:
> 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.

Bad news: you lost me at order of rotation.

Good news: to simple solution to my problems: find the point for each bogie,
average it to find the center point of the train, find the center point along
the spline, and create a simple translate. The banking carries through! No
isssues with curves on slopes as I was careful to not design curves on slopes.

Problem solved!


Post a reply to this message

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