0

Is there a way to determine if all points of a bezier curve are visible from an endpoint? For instance, if you're given a cubic bezier curve in the plane: $\textbf C(t) = \sum_{i=0}^3 B_i^3(t) \textbf P^i$ would any of the rays from $\textbf P^0$ to $\textbf C(t)$ intersect the curve at any other point?

So I want to know if the following has 0 or >=1 #solutions:

all the rays from the origin: $\textbf L(s) := s { \textbf a}$

$\textbf C(0) = \textbf L(0) = {\textbf 0}$

$\textbf C(t1) = \textbf L(s1) = s1 { \textbf a}$

$\textbf C(t2) = \textbf L(s2) = s2 { \textbf a}$

this appears to have 4 equations in 5 unknowns (${ \textbf a}$ can be normalized)?

where $B_i^3$ is the Bernstein basis: $B_i^3(t) = C(3,i)(1-t)^{3-i}t^i$

thanks!

flag

1 Answer

0

WLOG take ${\bf P}^0 = (0,0)$ and ${\bf P}^3 = (1,0)$, and let ${\bf P}^1 = (x_1, y_1)$ and ${\bf P}^2 = (x_2, y_2)$. For $t \ne 0$ the tangent to the curve at ${\bf C}(t)$ is parallel to ${\bf C}(t)-{\bf P}^0$ iff $$ \left( -3x_{{2}}y_{{1}}+3x_{{1}}y_{{2}}-y_{{2}}+2y_{{1}} \right) {t}^{2}-\left( -6x_{{2}}y_{{1}}+2y_{{1}}+6x_{{1}}y_{{2 }} \right) t-3x_{{2}}y_{{1}}+3x_{{1}}y_{{2}} = 0$$ The points will all be visible if this quadratic (as a function of $t$) has no roots in $(0,1)$ or a double root there; if there is at least one simple root in the interval not all points will be visible.

link|flag
Robert, thanks for the answer — I was trying to sketch (always dangerous) this approach where we solve for where the derivative is parallel to its chord. In the below picture, the only place I believe this occurs is at t=0 whereas the fan from (0,0) intersects the curve? I feel like I'm missing something here (or just being mislead by my own picture?) ![alt text][1] [1]: postimage.org/image/ypvhuo6nb – PolyConfused Feb 26 2012 at 19:56
No, there is another point where the chord from $(0,0)$ (assuming that's the where the "fan" is coming out of) is tangent to your curve, namely where the angle between that chord and the positive $x$ axis is maximum. – Robert Israel Feb 27 2012 at 2:16

Your Answer

Get an OpenID
or

Not the answer you're looking for? Browse other questions tagged or ask your own question.