当前第2页 返回上一页

弯月,即为两条圆弧,我们可以根据下图所做辅助线中角的tan值相等来列方程式进行计算。
最终代码如下所示,rot为旋转角度,fillColor的填充色。
1 2 3 4 5 6 7 8 9 10 11 | function fillMoon(cxt,x1,y1,x2,y2,r, rot, fillColor){
cxt.save();
cxt.beginPath();
cxt.rotate(rot/180*Math.PI);
cxt.arc(x1,y1,r,0.5*Math.PI,1.5*Math.PI,true);
cxt.moveTo(x1,y1-r);
cxt.arcTo(x2,y2,x1,y1+r,dis(r,x2-x1));
cxt.fillStyle=fillColor|| "#fb3" ;
cxt.fill();
cxt.restore();
}
|
3.大地
在以上基础上,我们增加了一片大地,效果图如下所示:

画大地最主要的便是使用bezierCurveTo方法进行曲线的绘制,bezierCurveTo内的参数是经过计算得来的。landStyle为该图形着色。
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | function drawLand(cxt){
cxt.save();
cxt.beginPath();
cxt.moveTo(0,600);
cxt.bezierCurveTo(540,400,660,800,1430,600);
cxt.lineTo(1430,800);
cxt.lineTo(0,800);
cxt.closePath(); var landStyle=cxt.createLinearGradient(0,800,0,0);
landStyle.addColorStop(0, "#030" );
landStyle.addColorStop(1, "#580" );
cxt.fillStyle=landStyle;
cxt.fill();
cxt.restore();
}
|
4.文字
到了最后一步,也就是最简单的一步了。
设置文字的大小,颜色,使用fillText进行文字绘制即可。
1 2 3 4 5 6 7 | CXT.save();
CXT.font= "bold 20px Georgia" ;
CXT.fillStyle= "#fff" ;
CXT.fillText( "Canvas文字绘制" ,200,650);
CXT.fillText( "――海上月_天上月" ,500,700);
CXT.restore();
}```
|
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
class="no-js"是什么意思
Git的常用短语
nodejs的npm常用命令集合
怎样用canvas来绘制彩色七巧板
以上就是怎样用canvas绘制星空,月亮,大地,添加文字的详细内容,更多文章请关注木庄网络博客!
返回前面的内容
相关阅读 >>
用html5 canvas来绘制三角形和矩形等多边形的方法
html5联合canvas实现图片压缩
canvas与h5如何实现视频截图功能
html5 canvas渐进填充与透明实现图像的mask效果
h5 canvas中fill 与stroke文字效果实现实例
如何利用html5 canvas旋转图片?(实例演示)
炫丽的倒计时效果canvas绘图与动画视频的资源推荐
html5 canvas基本绘图之绘制矩形
html5 canvas的绘制文本自动换行的示例代码
canvas如何来绘制一个椭圆形?canvas画椭圆的方法总结
更多相关阅读请进入《canvas》频道 >>
人民邮电出版社
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者
转载请注明出处:木庄网络博客 » 怎样用canvas绘制星空,月亮,大地,添加文字