Is it possible to solve for #u# and #v#, given the following matrix multiplication chain?

I am attempting to determine the intersections between a parametric Bezier surface, and line #L=P_0+tV#, where #P# is a point that lies on the line, and #V# is a vector describing the line's direction.

The following image's source presents a seemingly convenient matrix form. The equation in the image represents the calculation of a point that lies on the surface, given the parameters #u# and #v#.

http://graphics.cs.ucdavis.edu/education/CAGDNotes/Matrix-Cubic-Bezier-Patch/Matrix-Cubic-Bezier-Patch.html

I figured the next logical step would be to substitute #P(u,v)# for the equation of the line given above, but I am unsure how to proceed.

I have tried to isolate the #u# and #v# coefficient matrices, but to no avail.

Is it possible to solve for #u# and #v#? Are there any alternatives?

1 Answer
Dec 27, 2016

Answer:

See below.

Explanation:

After matrix multiplication we obtain

#P(u,v)=(x(u,u),y(u,v),z(u,v))#

The line is defined as

#L->P=P_0+t V#

The intersections are obtained solving

#{(x(u,v)=P_0^x+t V_x),(y(u,v)=P_0^y+t V_y),(z(u,v)=P_0^z+t V_z):}#

Three equations with three unknowns. The solutions can be obtained using an iterative procedure like Newton-Raphson.

#xi_(k+1} = xi_k-J(xi_k)^(-1)g(xi_k)#

where

#xi_k=(u_k,v_k,t_k)#
#g(xi_k)=((x(u_k,v_k)-P_0^x-t_k V_x),(y(u_k,v_k)-P_0^y-t_k V_y),(z(u_k,v_k)-P_0^z-t_k V_z))#

#J(xi_k)= (((partial x)/(partial u)(u_k,v_k),(partial x)/(partial v)(u_k,v_k),-V_x),((partial y)/(partial u)(u_k,v_k),(partial y)/(partial v)(u_k,v_k),-V_y),((partial z)/(partial u)(u_k,v_k),(partial z)/(partial v)(u_k,v_k),-V_z))#

Calling now

#P(u,v)=U^TcdotC^TcdotPicdotCcdotV#

where

#U=(1,u,u^2,u^3)^T#
#V=(1,v,v^2,v^3)^T#

we have

#(partial P)/(partial u) = ((dU)/(du))^TcdotC^TcdotPicdotCcdotV#
#(partial P)/(partial v) = U^TcdotC^TcdotPicdotCcdot(dV)/(dv)#