MIT*_*MIT -3 javascript html5 canvas
我正在使用HTML5 Canvas和javascript绘制不同形状的图形。但是我没有得到在HTML5Canvas中绘制云形状的计算方法。我正在尝试使用2点(即起点和终点)绘制云形状。请提出一些想法?谢谢
小智 5
参考 链接:http : //www.html5canvastutorials.com/advanced/html5-canvas-save-drawing-as-an-image/
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
// draw cloud
context.beginPath();
context.moveTo(170, 80);
context.bezierCurveTo(130, 100, 130, 150, 230, 150);
context.bezierCurveTo(250, 180, 320, 180, 340, 150);
context.bezierCurveTo(420, 150, 420, 120, 390, 100);
context.bezierCurveTo(430, 40, 370, 30, 340, 50);
context.bezierCurveTo(320, 5, 250, 20, 250, 50);
context.bezierCurveTo(200, 5, 150, 20, 170, 80);
context.closePath();
context.lineWidth = 5;
context.fillStyle = '#8ED6FF';
context.fill();
context.strokeStyle = '#0000ff';
context.stroke();
// save canvas image as data url (png format by default)
var dataURL = canvas.toDataURL();
// set canvasImg image src to dataURL
// so it can be saved as an image
document.getElementById('canvasImg').src = dataURL;Run Code Online (Sandbox Code Playgroud)
body {
margin: 0px;
padding: 0px;
}Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE HTML>
<html>
<head>
</head>
<body>
<canvas id="myCanvas" width="578" height="200" style="display:none;"></canvas>
<img id="canvasImg" alt="Right click to save me!">
</body>
</html>Run Code Online (Sandbox Code Playgroud)
您可以使用圆弧方法创建云形状。看一下这个。
var canvas = document.querySelector('canvas');
var c = canvas.getContext('2d');
const drawCloud = (x, y) => {
c.beginPath();
c.arc(x, y, 60, Math.PI * 0.5, Math.PI * 1.5);
c.arc(x + 70, y - 60, 70, Math.PI * 1, Math.PI * 1.85);
c.arc(x + 152, y - 45, 50, Math.PI * 1.37, Math.PI * 1.91);
c.arc(x + 200, y, 60, Math.PI * 1.5, Math.PI * 0.5);
c.moveTo(x + 200, y + 60);
c.lineTo(x, y + 60);
c.strokeStyle = '#797874';
c.stroke();
c.fillStyle = '#8ED6FF';
c.fill()
}
drawCloud(100,135);Run Code Online (Sandbox Code Playgroud)
body {
margin: 0px;
padding: 0px;
}Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE HTML>
<html>
<head>
</head>
<body>
<canvas width="500" height="300"></canvas>
</body>
</html>Run Code Online (Sandbox Code Playgroud)