Sign in to follow this  

Bijective parameterized surfaces

This topic is 4056 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Greetings, Does anyone happen to know if there exists something similar to NURBS that features an inverse function? sufrace: R^2 -> R^3 forall x \in R^2, surface^-1|surface(x): R^3 -> R^2 the surface would be non intersecting in R^3 and it is continous (should be at least C^2+) Maybe someone knows if theres something like a picking routine for NURBS that does something similar numerically. Thanks N.

Share this post


Link to post
Share on other sites
You have a parameterized surface (x(s,t),y(s,t),z(s,t)) and you want to know what (s,t) generates a surface point (x0,y0,z0). This gives you three equations in two unknowns: x(s,t) = x0, y(s,t) = y0, z(s,t) = z0. Generally, this is over constrained but knowing the point is on the surface, one of the three equations is redundant (the three equations are "functionally dependent").
For the sake of argument, suppose that x(s,t) = x0 and y(s,t) = y0 are the functionally independent equations.

For a NURBS surface, the x(s,t) = u(s,t)/w(s,t) and y(s,t) = v(s,t)/w(s,t), where u, v, and w are polynomials in s and t. You then have u(s,t) - x0*w(s,t) = 0 and v(s,t) - y0*w(s,t) = 0, which are two polynomial equations in two unknowns. One of the variables may be eliminated, say t, to obtain p(s) = 0, a higher-degree polynomial equation of a single variable. (Search on "resultant of polynomials" and/or "elimination theory").

The mathematics is clear but numerical construction of polynomial roots is not robust when using a fixed-size floating-point arithmetic system. Arbitrary precision systems are better to use for finding the roots. Once you (numerically) construct a root s of p(s) = 0, you can replace this in u(s,t) - x0*w(s,t) = 0 and solve for t. Verify that this (s,t) pair satisfies v(s,t) = y0*w(s,t) = 0 (obtaining p(s) can introduce extraneous solutions).

For picking, you can set up a similar system of polynomial equations. You have a line (or ray or segment) r*(x1,y1,z1)+(x0,y0,z0). To intersect the surface, you need x(s,t) = r*x1+x0, y(s,t) = r*y1+y0, and z(s,t) = r*z1+z0. For NURBS, introduce again u(s,t), v(s,t), and w(s,t). You get three polynomial equations in three variables (r, s, and t). Elimination theory again allows you to obtain a single polynomial (of higher-degree). Etc. Etc.

Share this post


Link to post
Share on other sites

This topic is 4056 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this