|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Hello,
is it possible to get tangent of spline for my use in scene?
(In MegaPOV (my perfered now, because I'am heavily using PVM),
or POV 3.5)
Thanks
Disnel
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
To get the tangent at some point A on your spline, get the value of the
spline at A and some other point B which is very close to A. The values
you get we call spline(A) & spline(B).
The vector T=spline(B)-spline(A) gives the direction at the point A if B
is very close to A on the spline (check vlength(T) to find out how close
they are)
Don't forget to translate your object to spline(A) after aligning it
along T, since T is only a direction.
--
signature{
"Grey Knight" contact{ email "gre### [at] yahoocom" }
site_of_week{ url "http://digilander.iol.it/jrgpov" }
}
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Actually, since splines are nice and smooth (after all, that's what
they're there for!), if you make sure vlength(T) is very small (say
1e-10 for example), then this method should give you a very good
approximation to the tangent; easily good enough for any purpose I can
think of anyway.
Disnel wrote:
> Thanks, but this is not exact way. My ask was, if there is any hidden
> way how to get thi vector from POV ;-). But is must be sufficient..
> Regards
> Disnel
--
signature{
"Grey Knight" contact{ email "gre### [at] yahoocom" }
site_of_week{ url "http://digilander.iol.it/jrgpov" }
}
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Grey Knight <s16### [at] namtarqubacuk> wrote:
: Actually, since splines are nice and smooth (after all, that's what
: they're there for!), if you make sure vlength(T) is very small (say
: 1e-10 for example), then this method should give you a very good
: approximation to the tangent; easily good enough for any purpose I can
: think of anyway.
Beware of possible floating point inaccuracies with such small numbers.
--
#macro N(D)#if(D>99)cylinder{M()#local D=div(D,104);M().5,2pigment{rgb M()}}
N(D)#end#end#macro M()<mod(D,13)-6mod(div(D,13)8)-3,10>#end blob{
N(11117333955)N(4254934330)N(3900569407)N(7382340)N(3358)N(970)}// - Warp -
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Of course the more mathematically oriented people would like an exact
result instead of just an approximation... :)
--
#macro M(A,N,D,L)plane{-z,-9pigment{mandel L*9translate N color_map{[0rgb x]
[1rgb 9]}scale<D,D*3D>*1e3}rotate y*A*8}#end M(-3<1.206434.28623>70,7)M(
-1<.7438.1795>1,20)M(1<.77595.13699>30,20)M(3<.75923.07145>80,99)// - Warp -
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Warp <war### [at] tagpovrayorg> wrote:
: Of course the more mathematically oriented people would like an exact
: result instead of just an approximation... :)
By the way, I think that this gives a better approximation:
Suppose that we want to calculate the tangent of the spline at the
time value T.
Take a small value, which we will call Epsilon (could be for example
10e-5 or something similar).
The approximated tangent will be:
TangentVector = Spline(T+Epsilon)-Spline(T-Epsilon)
This given a better approximation because the resulting vector will be
closer to the true tangent, and could even be exactly the tangent.
'Spline(T+Epsilon)-Spline(T)', however, can never be exactly the tangent.
--
#macro M(A,N,D,L)plane{-z,-9pigment{mandel L*9translate N color_map{[0rgb x]
[1rgb 9]}scale<D,D*3D>*1e3}rotate y*A*8}#end M(-3<1.206434.28623>70,7)M(
-1<.7438.1795>1,20)M(1<.77595.13699>30,20)M(3<.75923.07145>80,99)// - Warp -
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Thank to all, you are right and I think, that it will be sufficient.
But I wanted to ask if there is some way to get exact tangent (another
than reimplementing POV spline in POV language, of course ;-) The answer
is probably not.
Regards
Disnel
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
I'm gonna reply to all your posts in one go, since you were carrying on
such a little conversation with yourself ;)
Warp wrote:
> Beware of possible floating point inaccuracies with such small numbers.
This is why your method is better (because the tangential vector is
longer :. less scope for FPI)
Warp wrote:
> Of course the more mathematically oriented people would like an exact
> result instead of just an approximation... :)
Well, the only limit on the accuracy is that imposed by the system
itself (specifically FPI as you pointed out), so a more accurate
solution would probably have no further benefit anyway?
Warp wrote:
> By the way, I think that this gives a better approximation:
Yeah, it does.
> Suppose that we want to calculate the tangent of the spline at the
> time value T.
Which we do. ;P
> Take a small value, which we will call Epsilon (could be for example
> 10e-5 or something similar).
> My constants.inc has EPSILON=1e-7, but of course it doesn't matter so long as it's
small.
>
> This given a better approximation because the resulting vector will be
> closer to the true tangent, and could even be exactly the tangent.
> 'Spline(T+Epsilon)-Spline(T)', however, can never be exactly the tangent.
Yeah, this method *is* better. I think the only reason I thought of the
other one was because the pure mathematical definition of the tangent
comes from that (with EPSILON -> 0), which makes the maths easier.
Of course, we can't use EPSILON=0 here, so obviously your method works
better.
--
signature{
"Grey Knight" contact{ email "gre### [at] yahoocom" }
site_of_week{ url "http://digilander.iol.it/jrgpov" }
}
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Disnel wrote:
> ...
> But I wanted to ask if there is some way to get exact tangent
> ...
But this method returns values about as close to the exact tangent as
you could probably get in a computer anyway, so FAPP it *is* exact.
--
signature{
"Grey Knight" contact{ email "gre### [at] yahoocom" }
site_of_week{ url "http://digilander.iol.it/jrgpov" }
}
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Grey Knight wrote:
>...
> so FAPP it *is* exact.
I guess you mean: For All Practical POV Purposes ;)
Tor Olav
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |