使用Html5中的cavas画一面国旗


Posted in HTML / CSS onSeptember 25, 2019

使用Html5中的cavas画一面国旗,具体代码如下所示:

var canvas = document.getElementById("canvas");//创建一个cavas画板
    var context = canvas.getContext('2d');//设置画板属性
    var width=canvas.width;
    var height=width*2/3;
    context.fillStyle="red";
    context.fillRect(0,0,width,height);
    var maxR = 0.15, minR = 0.05;
    var maxX = 0.55, maxY = 0.35;//大五星的位置
    var minX = [0.80, 0.90, 0.90, 0.80,0.65,0.50,0.40];//各个小五角星的x坐标
    var minY = [0.20, 0.30, 0.45, 0.55,0.60,0.60,0.50];//各个小五角星的y坐标
    var ox = height * maxX, oy = height * maxY;

html代码

<canvas id="canvas" width="600" height="400"></canvas>

js代码

create5star(context,ox,oy,height * maxR,"#ff0",0);//绘制大五角星
    for (var idx = 0; idx < 7; idx++) {
        var  sx = minX[idx] * height, sy = minY[idx] * height;
        var  theta = Math.atan((oy - sy)/(ox - sx));
        create5star(context,sx, sy, height * minR, "#ff0",-Math.PI/2+theta);    // 画小五角星
    }
    //绘制五角星
    function create5star(context,sx,sy,radius,color,rotato){
        context.save();
        context.fillStyle=color;
        context.translate(sx,sy);//移动坐标原点
        context.rotate(Math.PI+rotato);//旋转
        context.beginPath();//创建路径
        var x = Math.sin(0);
        var y= Math.cos(0);
        var dig = Math.PI/5 *4;
        for(var i = 0;i< 5;i++){//画五角星的五条边
            var x = Math.sin(i*dig);
            var y = Math.cos(i*dig);
            context.lineTo(x*radius,y*radius);
        }
        context.closePath();
        context.stroke();
        context.fill();
        context.restore();
    }

总结

以上所述是小编给大家介绍的使用Html5中的cavas画一面国旗,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

HTML / CSS 相关文章推荐
关于CSS Tooltips(鼠标经过时显示)的效果
Apr 10 HTML / CSS
全方位了解CSS3的Regions扩展
Aug 07 HTML / CSS
CSS3打造百度贴吧的3D翻牌效果示例
Jan 04 HTML / CSS
利用CSS3制作简单的3d半透明立方体图片展示
Mar 25 HTML / CSS
开发人员所需要知道的HTML5性能分析面面观
Jul 05 HTML / CSS
利用HTML5画出一个坦克的形状具体实现代码
Jun 20 HTML / CSS
html5 worker 实例(一) 为什么测试不到效果
Jun 24 HTML / CSS
使用HTML5拍照示例代码
Aug 06 HTML / CSS
基于HTML5新特性Mutation Observer实现编辑器的撤销和回退操作
Jan 11 HTML / CSS
浅析HTML5中的download属性使用
Mar 13 HTML / CSS
网站性能延迟加载图像的五种技巧(小结)
Aug 13 HTML / CSS
CSS实现fullpage.js全屏滚动效果的示例代码
Mar 24 HTML / CSS
关于canvas绘制模糊问题的解决方法
Sep 24 #HTML / CSS
html svg生成环形进度条的实现方法
Sep 23 #HTML / CSS
html2 canvas生成清晰的图片实现打印功能
Sep 23 #HTML / CSS
将SVG图引入到HTML页面的实现
Sep 20 #HTML / CSS
解析浏览器的一些“滚动”行为鉴赏
Sep 16 #HTML / CSS
html5移动端价格输入键盘的实现
Sep 16 #HTML / CSS
canvas生成带二维码海报的踩坑记录
Sep 11 #HTML / CSS
You might like
php的webservice的wsdl的XML无法显示问题的解决方法
2014/03/11 PHP
php基于自定义函数记录log日志方法
2017/07/21 PHP
PHP实现的贪婪算法实例
2017/10/17 PHP
从阿里妈妈发现的几个不错的表单验证函数
2007/09/21 Javascript
javascript去除字符串中所有标点符号和提取纯文本的正则
2014/06/07 Javascript
node.js中的path.extname方法使用说明
2014/12/09 Javascript
jquery实现鼠标滑过小图时显示大图的方法
2015/01/14 Javascript
JavaScript制作简易的微信打飞机
2015/03/31 Javascript
javascript实现全角半角检测的方法
2015/07/23 Javascript
实例代码讲解jquery easyui动态tab页
2015/11/17 Javascript
js和C# 时间日期格式转换的简单实例
2016/05/28 Javascript
js实现模糊匹配功能
2017/02/15 Javascript
详解用webpack2.0构建vue2.0超详细精简版
2017/04/05 Javascript
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
2017/04/11 jQuery
Js实现中国公民身份证号码有效性验证实例代码
2017/05/03 Javascript
深入理解Node.js中通用基础设计模式
2017/09/19 Javascript
Java设计中的Builder模式的介绍
2018/03/22 Javascript
用Cordova打包Vue项目的方法步骤
2019/02/02 Javascript
详解关于React-Router4.0跳转不置顶解决方案
2019/05/10 Javascript
Vue+Bootstrap收藏(点赞)功能逻辑与具体实现
2020/10/22 Javascript
[00:47]TI7不朽珍藏III——沙王不朽展示
2017/07/15 DOTA
[03:17]DOTA2-DPC中国联赛1月29日Recap集锦
2021/03/11 DOTA
Python实现统计单词出现的个数
2015/05/28 Python
在ubuntu16.04中将python3设置为默认的命令写法
2018/10/31 Python
Django之模型层多表操作的实现
2019/01/08 Python
Python二进制文件读取并转换为浮点数详解
2019/06/25 Python
python买卖股票的最佳时机(基于贪心/蛮力算法)
2019/07/05 Python
python实现的汉诺塔算法示例
2019/10/23 Python
Python partial函数原理及用法解析
2019/12/11 Python
如何基于Python实现数字类型转换
2020/02/07 Python
python 6种方法实现单例模式
2020/12/15 Python
外贸主管求职简历的自我评价
2013/10/23 职场文书
《黄河颂》教学反思
2014/02/07 职场文书
舞蹈教育学专业求职信
2014/06/29 职场文书
缅怀先烈演讲稿
2014/09/03 职场文书
2014年综合治理工作总结
2014/11/20 职场文书