我想用svgwrite画一条曲线,我想逐像素地做,因为我正在对坐标做一些计算。
我怎么能这样做?
答案 0 :(得分:0)
我假设您想要将贝塞尔曲线转换为一组点。因此,您需要将参数t=0
扫描到t=1
。
您可以以递归方式执行此操作,例如,您可以将t
的值拆分为最多只有一个像素。类似的东西:
void bezier_recursive (double tfrom, double tto, Point relative, List<Point> points)
double tmiddle = 0.5*(tfrom,tto));
Point pt = bezier(tmiddle);
if(length(pt,relative) > 1.0) {
bezier_recursive(tfrom,tmiddle,pt,points);
push(points,pt);
bezier_recursive(tmiddle,tto,pt,points);
}
}
因此,您将获得一组点,您可以将其绘制为一系列线。
答案 1 :(得分:0)
我简单地用圆圈作为圆点,半径很小。