菜鸟一枚111
2016-08-17 21:15
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>arc</title>
</head>
<body>
<canvas id="canvas"></canvas>
<script>
window.onload=function(){
var canvas=document.getElementById('canvas');
canvas.width=800;
canvas.height=800;
var context=canvas.getContext('2d');
drawMoon(context,2,400,400,300,0);
}
function drawMoon(cxt,d,x,y,r,rot){
cxt.save();
cxt.translate(x,y);
cxt.rotate(rot*Math.PI/180)
cxt.scale(r,r);
pathMoon(cxt,d);
cxt.fillStyle="white";
cxt.fill();
cxt.restore();
}
function pathMoon(cxt,d){
cxt.beginPath();
cxt.arc(0,0,1,0.5*Math.PI,1.5*Math.PI,true);
cxt.moveTo(0,-1);
cxt.arcTo(d,0,0,1,dis(0,-1,d,0)/d);
cxt.closePath();
}
function dis(x1,y1,x2,y2){
return Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
</script>
</body>
</html>
楼上正解
你的cxt.fillStyle="white";所以你绘制出来的月亮和背景色一样都是白色,把月亮换个颜色就行了
Canvas绘图详解
72881 学习 · 422 问题
相似问题