19,469
社区成员
发帖
与我相关
我的任务
分享
// 只计算x轴
int BezierLine::computeBezierControlPoints()
{
float dist = abs( controlPoints[3].x() - controlPoints[0].x() ) / 2.0f;
controlPoints[1] = controlPoints[0];
controlPoints[1].rx() += dist;
controlPoints[2] = controlPoints[3];
controlPoints[2].rx() -= dist;
return 1;
}
// 计算x、y
int BezierLine::computeBezierControlPoints()
{
float distx = abs( controlPoints[3].x() - controlPoints[0].x() ) / 2.0f;
float disty = abs( controlPoints[3].x() - controlPoints[0].y() ) / 2.0f;
controlPoints[1] = controlPoints[0];
controlPoints[1].rx() += distx;
controlPoints[1].ry() += disty;
controlPoints[2] = controlPoints[3];
controlPoints[2].rx() -= distx;
controlPoints[2].ry() -= disty;
return 1;
}