45 views

Skip to first unread message

Mar 8, 2021, 10:36:16 AMMar 8

to Python Programming for Autodesk Maya

hi all,

I'm working with some bezier curves (ultimately, the goal is to benchmark maya bifrost against regular maya - if you have any reference to share, regarding bifrost perfs, feel free!).

I get my pos at parameter using directly matrices, no decasteljau involved, I find it more elegant:

v_t = np.array([1, t, t**2, t**3])

cubic = np.array([

[ 1., 0., 0., 0.],

[-3., 3., 0., 0.],

[ 3., -6., 3., 0.],

[-1., 3., -3., 1.]

])

pos_at_param = np.dot(np.dot(v_t, cubic), control_points)

[ 1., 0., 0., 0.],

[-3., 3., 0., 0.],

[ 3., -6., 3., 0.],

[-1., 3., -3., 1.]

])

pos_at_param = np.dot(np.dot(v_t, cubic), control_points)

Works just fine. But I would like to compute my tangents using the same logic

Whether I start from

(1-t)**3 +

3(1-t)**2t +

3(1-t)t**2 +

t**3

gets all those derivatives, and recreate a matrix out of it,

or start from the derivative I found online

3(1-t)(1-t) * (p1 - p0) +

6t(1-t) * (p2 - p1) +

3tt * (p3 - p2)

giving me

[ 3., 0., 0.]

[-6., 6., 0.]

[ 3., -5., 3.]

None of those seem to give me the actual derivative / tangent vector on my curve at the given param. Am I doing something? Is it simply impossible to compute the tangent of a curve using the same logic than the position?

Thank you

Reply all

Reply to author

Forward

0 new messages

Search

Clear search

Close search

Google apps

Main menu