当前第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>标签里的详细介绍
html5 canvas如何绘制圆形?(代码实例)
如何使用html5 canvas绘制文字的轮廓
详解canvas实现圆弧、圆环进度条的实例方法
html5中怎么做五角星
html5中canvas的问题总结
html5 canvas实现绘制一个像素宽的细线
canvas学习系列一:初识canvas
怎样用canvas绘制星空,月亮,大地,添加文字
更多相关阅读请进入《canvas》频道 >>
人民邮电出版社
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者
转载请注明出处:木庄网络博客 » 怎样用canvas绘制星空,月亮,大地,添加文字