tima@agora.uucp (Tim Anderson) (12/11/90)
Hello NET! I humbly ask the net for assistance... I am trying to convert an almost COONS style surface patch into something that I can dump in and out through IGES. If it were merely COONS, it would be pretty easy... Given parametric variables u and v, Hermite interpolant [F0 F1 F2 F3] = [u^3 u^2 u 1] | 2 -2 1 1 | |-3 3 -2 -1 | | 0 0 1 0 | | 1 0 0 0 | in other words F(u) = U M Points and appropriate tangents | p00 p01 pv00 pv01 | B = | p10 p11 pv10 pv11 | | pu00 pu01 puv00 puv01 | | pu10 pu11 puv10 puv11 | You get a COONS surface when you do this: F(u) * B * /transpose F(v) Now lets define (rab - rcd) = /norm (pab - pcd) where a,b,c,d /element [0,1] In other words (r10 - r00) = The distance between point p10 and p00. and 1) g(v) = F0(v)*(r10-r00) + F1(v)*(r11-r01) h(u) = F0(u)*(r01-r00) + F1(u)*(r11-r10) 2) U(u,v) = [F0(u) F1(u) g(v)F2(u) g(v)F3(u)] V(u,v) = [F0(v) F1(v) h(u)F2(v) h(u)F3(v)] Our *new and exciting* COONS is 3) U(u,v) * B * /transpose V(u,v) So instead of just Coonsing across the surface, we 1) blend the appropriate chord lengths accross the surface, 2) scale the tangent vectors down to keep the bloody thing from looping, then 3) Coons what's left over. I've been beating on this thing for awhile, and yet I still don't quite see any way to convert this thing nicely. Does anyone have some hints on this thing? I think that I've been looking at the trees for so long that I might be missing something... tima@agora.hf.intel.com PS: I think some guy named Butterfield may have documented this type of Coonsian surface. I don't have the original reference so I cannot credit the appropriate person for coming up with this kludge (oops, I mean enhancement) to Coons style surfaces.