怎样用canvas绘制星空,月亮,大地,添加文字


当前第2页 返回上一页

4.png

弯月,即为两条圆弧,我们可以根据下图所做辅助线中角的tan值相等来列方程式进行计算。5.png

最终代码如下所示,rot为旋转角度,fillColor的填充色。

1

2

3

4

5

6

7

8

9

10

11

function fillMoon(cxt,x1,y1,x2,y2,r,/*option*/rot,/*option*/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.大地

在以上基础上,我们增加了一片大地,效果图如下所示:

3508659-e056b8ad8871b6a4.png

画大地最主要的便是使用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》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...