NURBS / line intersection

Started by
0 comments, last by cadjunkie 10 years, 6 months ago

I have circle described via NURBS. Now, I can calculate line intersection, because equation can be reduced and I got "classic" circle equation. However, when I change weights of my control points, I have no longer circle. I have tried to calculate intersection with line, but I am stucked in brain-development phase (meaning on paper).

Is it even possible ? Because in certain configuration, I can get 3 intersection points (but for circle, there will be max. 2 -> equation is of 2 degree). I limited my solution so that weights will create convex shape. In that case, there should be still 2 intersection tops.

And the same later on in 3D with plane / sphere (again, with weightened knots)

Advertisement

You can do NURBS/line intersection, but it's not easy. Bezout's theorem states that the number of intersection points of 2 polynomials is equal to the product of their degrees, but you have to count intersection points at infinity, intersection points with a multiplicity greater than 1, and so on. For example, 2 lines (degree-1 polynomials) intersect at one point. Even if the lines are parallel, they intersect at infinity. So what you have is a NURBS of degree p intersecting a line with degree 1, so they intersect p times.

One way is to use implicitization and resultants to find common roots of the curves. This will be quick for NURBS of degree 3 or less, but for greater degrees you should use subdivision methods. A good link to study implicitization and resultants is http://cagd.cs.byu.edu/~557/text/ch17.pdf. You could also just get a polyline of the NURBS and do line-line intersection tests.

This topic is closed to new replies.

Advertisement