我使用html5画布及其绘制正确绘制了一个quardrativecurve . 我在这里附加输出图像
绘制此曲线的代码
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.beginPath();
ctx.moveTo(20,20);
ctx.quadraticCurveTo(20,100,200,20);
ctx.stroke();
但是现在我想将这个quardrative曲线分成直线数表示使用java的点数 . 我怎样才能做到这一点?请帮我 .
2 回答
您可以使用下面的代码将二次方分割为多行 . 要将二次曲线分成多行,您只需要遵循以下信息
1)二次曲线的起点
2)二次曲线的控制点 .
3)二次曲线的终点 .
你有二次贝塞尔曲线 . 可以将曲线划分为两条较小的曲线并重复此过程,直到曲线段足够平坦以由线段表示 . 此过程称为递归细分 . 对于二次曲线,它非常简单:
初始曲线B,控制点P0,P1,P2
新曲线B ' and B''有控制点
可以通过三角形P0P1P2的面积除以P0P2的平方范数(欧几里德或曼哈顿距离)来估计曲线平坦度 .
顺便说一句,Windows GDI有方法FlattenPath,它将曲线转换为线段序列 . 可能,FlatteningPathIterator或其他Java方法也是如此