java版 贝塞尔曲线算法

来源:互联网 发布:淘宝商品资质上传技巧 编辑:程序博客网 时间:2024/06/07 10:55
public void test() {CvPoint controlPoint[] = new CvPoint[4];controlPoint[0] = new CvPoint(50, 60); //起点controlPoint[1] = new CvPoint(130, 200); //控制点controlPoint[2] = new CvPoint(300, 360); //控制点controlPoint[3] = new CvPoint(400, 600); //终点int n = controlPoint.length - 1; //int i, r;float u;bezierPoint.clear();// u的步长决定了曲线点的精度for (u = 0; u <= 1; u += 0.01) {CvPoint p[] = new CvPoint[n + 1];for (i = 0; i <= n; i++) {p[i] = new CvPoint(controlPoint[i].x, controlPoint[i].y);}for (r = 1; r <= n; r++) {for (i = 0; i <= n - r; i++) {p[i].x = (1 - u) * p[i].x + u * p[i + 1].x;p[i].y = (1 - u) * p[i].y + u * p[i + 1].y;}}bezierPoint.add(p[0]);}for (CvPoint point : bezierPoint) {System.out.println(point.x + "," + point.y);}}

原创粉丝点击