Name

bezierTangent()

Examples
noFill()
bezier(85, 20, 10, 10, 90, 90, 15, 80)
steps = 6
fill(255)
for i in range(steps + 1): 
    t = i / float(steps)
    # Get the location of the point
    x = bezierPoint(85, 10, 90, 15, t)
    y = bezierPoint(20, 10, 90, 80, t)
    # Get the tangent points
    tx = bezierTangent(85, 10, 90, 15, t)
    ty = bezierTangent(20, 10, 90, 80, t)
    # Calculate an angle from the tangent points
    a = atan2(ty, tx)
    a += PI
    stroke(255, 102, 0)
    line(x, y, cos(a)*30 + x, sin(a)*30 + y)
    # The following line of code makes a line 
    # inverse of the above line
    #line(x, y, cos(a)*-30 + x, sin(a)*-30 + y)
    stroke(0)
    ellipse(x, y, 5, 5)
noFill()
bezier(85, 20, 10, 10, 90, 90, 15, 80)
stroke(255, 102, 0)
steps = 16
for i in range(steps + 1): 
    t = i / float(steps)
    x = bezierPoint(85, 10, 90, 15, t)
    y = bezierPoint(20, 10, 90, 80, t)
    tx = bezierTangent(85, 10, 90, 15, t)
    ty = bezierTangent(20, 10, 90, 80, t)
    a = atan2(ty, tx)
    a -= HALF_PI
    line(x, y, cos(a)*8 + x, sin(a)*8 + y)
Description Calculates the tangent of a point on a Bezier curve. There is a good definition of tangent on Wikipedia.
Syntax
bezierTangent(a, b, c, d, t)
Parameters
afloat: coordinate of first point on the curve
bfloat: coordinate of first control point
cfloat: coordinate of second control point
dfloat: coordinate of second point on the curve
tfloat: value between 0 and 1
Related bezier()
bezierVertex()
curvePoint()

Updated on Tue Feb 27 14:07:12 2024.

If you see any errors or have comments, please let us know.