Name |
bezierTangent()贝塞尔曲线切线 |
||||||||||
Examples |
noFill(); bezier(85, 20, 10, 10, 90, 90, 15, 80); int steps = 6; fill(255); for (int i = 0; i <= steps; i++) { float t = i / float(steps); // Get the location of the point float x = bezierPoint(85, 10, 90, 15, t); float y = bezierPoint(20, 10, 90, 80, t); // Get the tangent points float tx = bezierTangent(85, 10, 90, 15, t); float ty = bezierTangent(20, 10, 90, 80, t); // Calculate an angle from the tangent points float 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); int steps = 16; for (int i = 0; i <= steps; i++) { float t = i / float(steps); float x = bezierPoint(85, 10, 90, 15, t); float y = bezierPoint(20, 10, 90, 80, t); float tx = bezierTangent(85, 10, 90, 15, t); float ty = bezierTangent(20, 10, 90, 80, t); float 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 |
|
||||||||||
Returns |
float |
||||||||||
Related |
bezier() |
- 本文固定链接: http://iprocessing.cn/2017/07/29/beziertangent贝塞尔曲线切线/
- 转载请注明: 卡萨布兰卡 于 Processing编程艺术 发表