Thread: Re: [Algorithms] C1 vs G1 (Was: "N-Patches")
Brought to you by:
vexxed72
From: Charles B. <cb...@cb...> - 2000-07-26 20:25:47
|
I don't thing there is any meaning of "G0". In equations, C(n) and G(n) conditions for connecting parametric lines are: let V(u) be a vector-valued function of the scalar parameter u, with u in [0,1] similarly for W(u). Then C0/G0 is V(1) = W(0) C1 is V'(1) = W'(0) where a prime (') indicates differentiation with respect to the parameter, and V'(1) implicitly means [ d/du V(u) ] @ u=1 Then G1 is Normalize[ V'(1) ] = Normalize[ W'(0) ] Similarly for Cn, just do n differentiations. At 01:00 PM 7/26/2000 -0700, you wrote: >>As for G1 vs. C1, G1 means that the tangents of the two connecting >>patches are identical. C1 means that the parametric velocities of >>the two connecting patches are identical. eg. if you had a particle >>flying along a bezier curve at a constant speed in parametric >>coordinates, then it would keep going the same direction at a G1 >>joint, but it would suddenly change speed (which it wouldn't do with >>C1). G1 or G2 is really what we care about for graphics, C1 and C2 >>are unecessarily strong constraints. > >So, if I have this right: > >Define g(x) = f(x)/|f(x)| for all |f(x)| != 0 > >Then g C0 continuous at y => f is G0 at y? > >What would you call that property, i.e. if C0 == "continuous", what is G0? > >Tony Cox - DirectX Luminary >Windows Gaming Developer Relations Group >http://msdn.microsoft.com/directx > >_______________________________________________ >GDAlgorithms-list mailing list >GDA...@li... >http://lists.sourceforge.net/mailman/listinfo/gdalgorithms-list > > -------------------------------------- Charles Bloom www.cbloom.com |
From: Tony C. <to...@mi...> - 2000-07-27 07:54:21
|
>I don't thing there is any meaning of "G0". In equations, >C(n) and G(n) conditions for connecting parametric lines >are: > >let V(u) be a vector-valued function of the scalar parameter u, >with u in [0,1] >similarly for W(u). > >Then C0/G0 is V(1) = W(0) > >C1 is V'(1) = W'(0) > >where a prime (') indicates differentiation with respect to the >parameter, and V'(1) implicitly means > > [ d/du V(u) ] @ u=1 > >Then G1 is > >Normalize[ V'(1) ] = Normalize[ W'(0) ] > >Similarly for Cn, just do n differentiations. I'm just trying to get a picture in my head of this. I've always used a somewhat more general definition of what C(n) continutity means: For a function f:A->B where A and B are metric spaces: f is C(n) continuous at y <=> f is n-times differentiable at y and the nth derivative is continuous. I think what you're saying is the same thing as what I'm saying. I'd just like the neatness of being able to say G(n) means C(n-1) continuous with the added condition that the n-1th derivative satisfies the condition I gave for G0 continuity (with the obvious norm induced on B via the metric). I guess the difference is that my background is in pure maths, where we would use a more general definition of C(n) continuity (anything that involves talking about a specific range of a finite-dimensional parameter space seems a little sloppy to me), but where I never came across the G(n) beast. Whereas the G(n) concept is clearly useful in computer graphics (which I'm guessing is your background) in relation to parametric surfaces so that is the way you wind up defining it. Tony Cox - DirectX Luminary Windows Gaming Developer Relations Group http://msdn.microsoft.com/directx |
From: Tony C. <to...@mi...> - 2000-07-28 07:46:41
|
>> I don't thing there is any meaning of "G0". >For two segment curves it means they join together, G0 is "geometric >continuity". >If directions (but non necessarily the magnitudes) of the two segments' >tangent vectors are equal at joing point, the curve has G1. >For more details check out Foley Van-dam. 480-483 Are you sure? That is saying that G0 == C0, which makes me slightly uncomfortable given than Gn!=Cn for n>0. Tony Cox - DirectX Luminary Windows Gaming Developer Relations Group http://msdn.microsoft.com/directx |
From: Lorenzo P. <lp...@ti...> - 2000-07-28 10:35:22
|
> >> I don't thing there is any meaning of "G0". > >For two segment curves it means they join together, G0 is "geometric > >continuity". > >If directions (but non necessarily the magnitudes) of the two segments' > >tangent vectors are equal at joing point, the curve has G1. > >For more details check out Foley Van-dam. 480-483 > > Are you sure? That is saying that G0 == C0, which makes me slightly > uncomfortable given than Gn!=Cn for n>0. I'm sure that Gn!=Cn for n>1 ... but I'm confused about C0 and G0. did you check the reference ? there's another from "Curves and surfaces for computer aided geometric design" Farin's one. page 183 Geometric continuity: "A curve is said to be Gr if there exists a regular reparametrization after which it is Cr" So what about C0 and G0 ? TIA, Lorenzo Pallara |
From: Charles B. <cb...@cb...> - 2000-07-28 16:39:45
|
At 12:40 PM 7/28/2000 +0200, you wrote: >Geometric continuity: >"A curve is said to be Gr if there exists a regular reparametrization after >which it is Cr" >So what about C0 and G0 ? There we go, that's the nice mathematical definition. A curve f:R -> R^d (for a curve in d-dimensional space) is Gn if there exists any remapping function g:R -> R (constraints on g below) such that f(g()) is Cn That means that C0 and G0 are the same. I suspect g must be 'reflexive' or whatever the math word is, where it maps all values to unique other values, and therefore is invertible. I think g must also be C0 but not necessarily C1... -------------------------------------- Charles Bloom www.cbloom.com |
From: Tony C. <to...@mi...> - 2000-07-28 16:49:05
|
>There we go, that's the nice mathematical definition. A curve > >f:R -> R^d > >(for a curve in d-dimensional space) >is Gn if there exists any remapping function > >g:R -> R > >(constraints on g below) such that > >f(g()) is Cn > >That means that C0 and G0 are the same. I suspect >g must be 'reflexive' or whatever the math word is, >where it maps all values to unique other values, >and therefore is invertible. I think g must also be C0 >but not necessarily C1... The word you probably want is "bijection" which implies that for each value y in R there exists one and only one x such that g(x) = y. All is clear now. Thanks, Tony Cox - DirectX Luminary Windows Gaming Developer Relations Group http://msdn.microsoft.com/directx |
From: Lorenzo P. <lp...@ti...> - 2000-07-28 07:30:36
|
> I don't thing there is any meaning of "G0". For two segment curves it means they join together, G0 is "geometric continuity". If directions (but non necessarily the magnitudes) of the two segments' tangent vectors are equal at joing point, the curve has G1. For more details check out Foley Van-dam. 480-483 Lorenzo Pallara |