使用函数画出天空的云层图像:

y

主要使用到的是数学的圆与弧度之间转换关系:

代码如下

//div对象

var parentContainer = document.getElementById("container");





(function(window) {

var utils = window.utils || {};

window.utils = utils || window.utils;

/**

* 获取1-seek的随机值

*/

utils.getRandom = function(seek) {

return parseInt(Math.random() * seek + 1);

}

utils.PI = Math.PI;

utils.ROUND = Math.PI * 2;

//根据弧度计算出水平位置长度

utils.getTranslateX = function(r, radious) {

return parseInt(Math.abs(2 * r * Math.sin(90 * radious / 180)));

}

utils.drawCloud = function(container) {

container.moveTo(0, 80);

var i = 0;

var maxWidth = parentContainer.clientWidth;

var x = 0, y = 60, x1 = 0, y1 = 60;

//一弧度=180/pi

container.beginPath();

while (x <= maxWidth) {

var r = utils.getRandom(15);

var radious = utils.getRandom(360) / Math.PI;

var nextX = utils.getTranslateX(r, radious);

container.arc(x + r, y, r, 0, radious, false);

x += nextX;

}





container.closePath();

container.fillStyle = "white";

container.fillRect(0, 60, maxWidth, 60);

container.fill();

}

})(window);





(function(window) {

var canvas = document.createElement("canvas");

canvas.style.position = "absolute";

var ctx = canvas.getContext("2d");

parentContainer.appendChild(canvas);

utils.drawCloud(ctx);





// var c = document.createElement("canvas");

// c.style.position = "absolute";

// cx = c.getContext("2d");

// parentContainer.appendChild(c);

//

// cx.fillText("00000", 70, 50, 50, 50);

})(window)

html5 canvas画云的更多相关文章

  1. HTML5 Canvas 画虚线组件

    前段时间由于项目需要,用到了HTML5 Canvas画图,但是没有画虚线的方法,自己写了一个HTML5 画虚线的组件. dashedLine.js if (window.CanvasRendering ...

  2. HTML5 Canvas 画钟表

    画钟表是2D画图的老生常谈,我也不能免俗弄了一个.代码如下: <!DOCTYPE html> <html lang="utf-8"> <meta ht ...

  3. CSS3进度条 和 HTML5 Canvas画圆环

    看到一些高大上的进度条插件,然后想自己用CSS写.经过搜索资料之后,终于成功了.为了以后方便拿来用,或者复习.将代码贴出. HTML代码: 只需要两个div,外面的为一个有border的div id为 ...

  4. html5 canvas画饼

    1. [图片] lxdpie.jpg ​2. [文件] lqdpie.html ~ 801B     下载(7) <!DOCTYPE HTML PUBLIC "-//W3C//DTD ...

  5. html5 canvas画不出图像的原因

    很久没写博客了,今年过年的时候,家里出了意外,现在心里依然很难受.6月份之前一直忙着写毕业论文,答辩完6月初回公司继续上班,今天刚好周末有空,就写下之前碰到一个问题. 做一个图像查看器(基于Chrom ...

  6. html5 canvas画流程图

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  7. HTML5 Canvas画数字时钟

    先不说废话,没代码算个蛋. 一些地方注释都写得比较清楚,不过这只是部分,因为只有秒针,但是时针,分针的逻辑都是一致的. 代码中有些坐标不知道为什么较不准,看看就好

  8. html5 canvas画进度条

    这个ie8的兼容是个问题,ie8 的innerHTML有问题啊,添加两个附件吧 <!DOCTYPE html> <html> <head> <meta cha ...

  9. html5 canvas 画hello ketty

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...

随机推荐

  1. MySql的数据库方言问题

    在使用hibernate将po(一般对象类)转化为数据库表时,如果mysql的版本为5.0之前的,则方言写为:<property name="dialect">org. ...

  2. System.Timers.Timer

    前言 System.Timers.Timer组件是基于服务器的计时器,它能够指定在应用程序中引发Elapsed事件周期性间隔,以处理相应事件. 使用示例: 运行结果展示: System.Timers. ...

  3. python-trade

    https://tool.lu/pyc/在线反编译pyc import base64 correct = 'XlNkVmtUI1MgXWBZXCFeKY+AaXNt' flag = base64.b6 ...

  4. JS静态变量和静态函数

    本文链接:https://blog.csdn.net/u012790503/article/details/46278521 function A(){this.id = "我是AA&quo ...

  5. QMessage自动定时关闭

    QMessageBox *box = new QMessageBox(QMessageBox::Information,tr("test"),tr("testtest&q ...

  6. js的属性监听

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8">     <title ...

  7. 13个Python图形库

    By Django中国社区 at 2013-04-27 07:49 Python的13大图形库,matplotlib功能最强大,Cairoplot最漂亮,django-chartit与Django集成 ...

  8. 【Linux常见命令】lsof命令

    lsof - list open files lsof命令用于查看你进程打开的文件,进程打开的端口(TCP.UDP),找回/恢复删除的文件,打开文件的进程. 语法: lsof [选项] [文件] 常用 ...

  9. HTML中使用CSS样式(上)

    在每一个标签上都可以设置style属性,这就是CSS样式: <div style="height:48px;border: 1px solid red;text-align:cente ...

  10. JavaSpring中级联查询

    一对一级联查询映射文件PersonMapper.xml代码: <?xml version="1.0" encoding="UTF-8"?> < ...