我使用HTML5呈现每个部分的椭圆饼图;使用一条路径,从中心开始,向外到边缘,穿过它的弧线,然后回到中心,然后填充。
如果它们是完美的圆形,我可以使用圆弧或arcTo路径函数,但因为它们是椭圆的,所以外部曲线总是有一个可变的半径。
就是这些外曲线,我想知道该怎么画。我没有足够的数学知识来知道二次曲线或贝塞尔曲线是不是答案,但它们可能是。
无论如何,我发现唯一的方法是在边缘周围每0.1度渲染一条线,这会对每个点进行正弦和余弦计算,效率非常低。它看起来像这样(javascript):
while (arcAng <= curAng + dTheta) {
this.parent2d.lineTo(this.left + (this.width / 2) + (this.width / 2) * Math.cos(arcAng * (Math.PI / 180)),
this.top + (this.height / 2) + (this.height / 2) * Math.sin(arcAng * (Math.PI / 180)));
arcAng += 0.1;
}谁能告诉我做这件事最有效的方法?
发布于 2010-09-21 23:33:30
最简单的方法是只将变换应用于整个地块。
我只使用了x位置和宽度属性来渲染圆(就好像它在一个完美的正方形内),并应用了x,y缩放(1,高度/宽度)。
https://stackoverflow.com/questions/3761231
复制相似问题