在另一个圆画布内绘制一个圆
Drawing a circle inside another circle canvas
我正在尝试在 Canvas 中绘制齿轮,但从一开始就遇到了问题。我想要一个充满圆圈的中间。相反,我得到的是一个圆圈的轮廓。
这是我的代码:
var ctx = document.getElementById("canvas").getContext("2d"),
i = 0;
function drawGear(){
ctx.fillStyle = "#000";
ctx.translate(50,50);
ctx.arc(0,0,20,0,Math.PI*2);
ctx.fill();
ctx.fillStyle = "#FFF";;
ctx.arc(0,0,5,0,Math.PI*2);
ctx.fill();
}
drawGear();
http://jsfiddle.net/te3jn/
我相信这个问题与globalCompositeOperation有关,但我尝试了其中的几个(源端,源顶端,目的地上),似乎没有一个按照我想要的方式工作。
绘制第二个圆时,您应该开始一条新路径,如下所示:
ctx.fill();
ctx.beginPath();
ctx.fillStyle = "#FFF";
// ...
JS小提琴。
如果没有这个,你基本上会用第二个fill
调用重新绘制两个圆圈 - 内圆圈和外圆圈(检查此小提琴进行演示)
相关文章:
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 有没有一个javascript图形绘制库可以进行气球树布局
- 只有一个图像被绘制到画布上
- 从 Ol3 中的绘制交互中删除最后一个点
- 使用 jQuery animate 时绘制一个又一个对象的线条
- 如何在一个适用于HTML5的TeeChart中绘制堆叠和普通系列
- 单击鼠标在画布上绘制一个实心圆
- FLOT只绘制一个值,或者没有绘制整个图形
- 如何在画布上绘制一个简单的五角大楼
- 用一个加载项绘制图像阵列
- 绘制一个没有边框的空心圆
- 从带有循环的数组中一个接一个地在画布上绘制形状
- 一个很好的方法来抵消所有绘制到画布上的0.5像素
- 将一个画布绘制到另一个不起作用的画布上
- 在画布上绘制另一个图像
- 如何在D3 Javascript中绘制一个简单的力导向图
- 在鼠标移动时绘制一个矩形,并使用 kineticjs 在鼠标向上选择该矩形内的所有形状
- 在 Openlayer3 中只允许一个绘制功能
- 在主动画循环中执行另一个绘制循环,持续5秒
- 是否有一种方法来确定一个给定的点(宽,长)是否在一个绘制的多边形内