【发布时间】:2011-11-09 17:32:37
【问题描述】:
根据cairo example code,如下代码
double x=25.6, y=128.0;
double x1=102.4, y1=230.4,
x2=153.6, y2=25.6,
x3=230.4, y3=128.0;
cairo_move_to (cr, x, y);
cairo_curve_to (cr, x1, y1, x2, y2, x3, y3);
cairo_set_line_width (cr, 10.0);
cairo_stroke (cr);
cairo_set_source_rgba (cr, 1, 0.2, 0.2, 0.6);
cairo_set_line_width (cr, 6.0);
cairo_move_to (cr,x,y); cairo_line_to (cr,x1,y1);
cairo_move_to (cr,x2,y2); cairo_line_to (cr,x3,y3);
cairo_stroke (cr);
可以生成曲线和两条粉色线。
但这需要 4 个点,(x,y), (x1,y1), (x2,y2), (x3,y3)
如果我只有 x,y 和 x3,y3(曲线的起点和终点), 有没有什么数学公式可以在不知道 x1,y1 和 x2,y2 的情况下生成那些粉线?
编辑:
这是我通过以下方式生成曲线的情况。
cairo_move_to (cr, x, y);
cairo_curve_to (cr, x, y3, x3, y, x3, y3);
【问题讨论】:
-
没有。那些“粉色线”表示曲线在曲线起点和终点的切线。在任意两点 A 和 B 之间可以拟合出无限可能的曲线。一种选择是即使您不知道 x1,y1,x2,y2 但知道曲线两端的切线角度,那么应该可以计算。这可能更适合math.stackexchange.com