ptBuffer[3] = bezierPts[1]; BezierToPoly(&ptBuffer[0], apt,precision); polyPt.Append(apt); } count = polyPt.GetSize(); i=0; //过滤相邻的值相等的点(由于精度和误差,可能会有一些坐标值相同的相邻拆分点) while(i<count-1){ if(polyPt[i] ==polyPt[i+1]){ polyPt.RemoveAt(i+1); count--; continue; } i++; } return true; } //拆分贝赛尔曲线 bool InciseBezier(CPoint *pSrcPt, CPoint *pDstPt) { CPoint buffer[3][3]; int i; for(i=0;i<3;i++){ buffer[0][i] = pSrcPt[i] + pSrcPt[i+1]; buffer[0][i].x /=2; buffer[0][i].y /=2; } for(i=0;i<2;i++){ buffer[1][i] = buffer[0][i] + buffer[0][i+1]; buffer[1][i].x /=2;
|
正在阅读:贝赛尔曲线的拆分算法贝赛尔曲线的拆分算法
2004-05-27 15:17
出处:CSDN
责任编辑:linjixiong
键盘也能翻页,试试“← →”键