According to cairo example code, following 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);
can generate the curve and two pink lines.
But that need 4 points, (x,y), (x1,y1), (x2,y2), (x3,y3)
If I only have x,y and x3, y3 (start and end points of the curve), is there any math formula to generate those pink lines without knowing x1,y1 and x2,y2?
Edit:
Its for the case that I generate the curve through following way.
cairo_move_to (cr, x, y);
cairo_curve_to (cr, x, y3, x3, y, x3, y3);
Just make the points up:
The midpoint can be calculated as:
Pmid = (x1+x3)/2 , (y1+y3)/2
double x1=25.6, y1=128.0;
double x3=153.6, y3=25.6;
double xm = (x1+x3)/2;
double ym = (y1+y3)/2;
//rotate Pm by 90degrees around p1 to get p2
double x2 = -(ym-y1) + y1;
double y2 = (xm-x1) + x1;
//rotate Pm by 90degrees around p3 to get p4
double x4 = -(ym-y3) + y3;
double y4 = (xm-x3) + x3;