Javascript 高亮显示画布椭圆形边界上的坐标
我画椭圆使用贝塞尔曲线的画布方法。我必须突出显示椭圆形边界上的点(与powerpoint中的椭圆形形状相同)。我想要所有八个坐标的精确位置,以便将它们放置在画布上。请参阅随附的屏幕截图我建议不要使用贝塞尔曲线来创建椭圆形/椭圆形-这在数学上不准确,并且在您想要使用点时(如本例中)只会引起头痛 我建议您创建自己的椭圆函数-这很简单;这将创建一个椭圆作为一条路径,您可以对其进行填充和笔划等:Javascript 高亮显示画布椭圆形边界上的坐标,javascript,canvas,Javascript,Canvas,我画椭圆使用贝塞尔曲线的画布方法。我必须突出显示椭圆形边界上的点(与powerpoint中的椭圆形形状相同)。我想要所有八个坐标的精确位置,以便将它们放置在画布上。请参阅随附的屏幕截图我建议不要使用贝塞尔曲线来创建椭圆形/椭圆形-这在数学上不准确,并且在您想要使用点时(如本例中)只会引起头痛 我建议您创建自己的椭圆函数-这很简单;这将创建一个椭圆作为一条路径,您可以对其进行填充和笔划等: function drawEllipse(cxt, cx, cy, rx, ry) { ctx.be
function drawEllipse(cxt, cx, cy, rx, ry) {
ctx.beginPath();
ctx.moveTo(cx + rx, cy);
for(var a = 0, step = 0.02, max = Math.PI * 2; a < max; a += step)
ctx.lineTo(cx + rx * Math.cos(a), cy+ ry * Math.sin(a));
}
现在,您可以根据需要在边上绘制点(并具有数学上正确的椭圆以及鼠标的点击点)
结果:
这可能会有帮助:这似乎太复杂了。有什么简单的方法可以找到它吗?我们可以使用任何其他函数来使用鼠标事件在画布上绘制椭圆吗?
function getEllipsePoints(cxt, cx, cy, rx, ry, count) {
var points = [],
a = 0, max = Math.PI * 2,
step = max / count
for(; a < max; a += step)
points.push(cx + rx * Math.cos(a), cy+ ry * Math.sin(a));
return points;
}