我在 Canvas 上有一个饼图,我想在该饼图的每个部分中绘制随机点。
我已经得到了每个扇区的面积。使用圆弧扇区
var arcsector = Math.PI * (2 * sector / total);
var startAngle = (lastend - offset) * (radius/Math.PI);
var endAngle = (lastend + arcsector - offset) * (radius/Math.PI);
var sectorAngle = arcsector * (radius/Math.PI);
var sectorArea = .5 * (sectorAngle*Math.PI/180) * (radius*radius);
如何在该区域内随机绘制点?
最佳答案
饼图是圆的一部分,根据您的注释,圆从 startAngle 开始,到 endAngle 结束。
获得随机点的最简单方法是建立一个随机 Angular (在 startAngle 和 endAngle)和随机半径,然后你就可以用这些线来表达你的观点了:
var randAngle = startAngle + Math.random()*( endAngle - startAngle );
var randRadius = Math.random()*radius;
var randX = centerX + randRadius * Math.cos(randAngle);
var randY = centerY + randRadius * Math.sin(randAngle);
ctx.fillRect ( randX, randY, 1, 1 ) ;
重复所需的次数!
关于javascript - 在圆扇区中绘制随机点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23430094/