- HTML5 Canvas Cookbook
- Eric Rowell
- 341字
- 2021-08-27 12:08:06
Fun with Bezier curves: drawing a cloud
In this recipe, we will learn how to draw a custom shape by connecting a series of Bezier curve sub paths to create a fluffy cloud.

How to do it...
Follow these steps to draw a fluffy cloud in the center of the canvas:
- Define a 2D canvas context:
window.onload = function(){ var canvas = document.getElementById("myCanvas"); var context = canvas.getContext("2d");
- Draw a cloud by connecting six Bezier curves:
var startX = 200; var startY = 100; // draw cloud shape context.beginPath(); context.moveTo(startX, startY); context.bezierCurveTo(startX - 40, startY + 20, startX - 40, startY + 70, startX + 60, startY + 70); context.bezierCurveTo(startX + 80, startY + 100, startX + 150, startY + 100, startX + 170, startY + 70); context.bezierCurveTo(startX + 250, startY + 70, startX + 250, startY + 40, startX + 220, startY + 20); context.bezierCurveTo(startX + 260, startY - 40, startX + 200, startY - 50, startX + 170, startY - 30); context.bezierCurveTo(startX + 150, startY - 75, startX + 80, startY - 60, startX + 80, startY - 30); context.bezierCurveTo(startX + 30, startY - 75, startX - 20, startY - 60, startX, startY); context.closePath();
- Define a radial gradient with the
createRadialGradient()
method and fill the shape with the gradient://add a radial gradient var grdCenterX = 260; var grdCenterY = 80; var grd = context.createRadialGradient(grdCenterX, grdCenterY, 10, grdCenterX, grdCenterY, 200); grd.addColorStop(0, "#8ED6FF"); // light blue grd.addColorStop(1, "#004CB3"); // dark blue context.fillStyle = grd; context.fill();
- Set the line width and stroke the cloud:
// set the line width and stroke color context.lineWidth = 5; context.strokeStyle = "#0000ff"; context.stroke(); };
- Embed the canvas tag inside the body of the HTML document:
<canvas id="myCanvas" width="600" height="250" style="border:1px solid black;"> </canvas>
How it works...
To draw a fluffy cloud using the HTML5 canvas API, we can connect several Bezier curves to form the perimeter of the cloud shape. To create the illusion of a bulbous surface, we can create a radial gradient using the createRadialGradient()
method, set the gradient colors and offsets using the addColorStop()
method, set the radial gradient as the fill style using fillStyle
, and then apply the gradient using fill()
.
推薦閱讀
- 玩轉(zhuǎn)智能機(jī)器人程小奔
- 21天學(xué)通JavaScript
- JMAG電機(jī)電磁仿真分析與實(shí)例解析
- Visual Basic從初學(xué)到精通
- STM32嵌入式微控制器快速上手
- 大數(shù)據(jù)驅(qū)動(dòng)的機(jī)械裝備智能運(yùn)維理論及應(yīng)用
- Linux Shell編程從初學(xué)到精通
- 中文版AutoCAD 2013高手速成
- Mastering Predictive Analytics with scikit:learn and TensorFlow
- Data Analysis with R(Second Edition)
- 網(wǎng)管員世界2009超值精華本
- 大數(shù)據(jù):從基礎(chǔ)理論到最佳實(shí)踐
- PowerPoint 2003中文演示文稿5日通
- 軟件測試管理
- 工程地質(zhì)地學(xué)信息遙感自動(dòng)提取技術(shù)