使用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 相关文章推荐
CSS3之2D与3D变换的实现方法
Jan 28 HTML / CSS
详解CSS3媒体查询响应式布局bootstrap 框架原理实战(推荐)
Nov 16 HTML / CSS
HTML5 Canvas API中drawImage()方法的使用实例
Mar 25 HTML / CSS
HTML5的结构和语义(2):结构
Oct 17 HTML / CSS
关于 HTML5 的七个传说小结
Apr 12 HTML / CSS
详解HTML5中表单验证的8种方法介绍
Dec 19 HTML / CSS
浅谈html5与APP混合开发遇到的问题总结
Mar 20 HTML / CSS
使用canvas对多图片拼合并导出图片的方法
Aug 28 HTML / CSS
HTML5实现应用程序缓存(Application Cache)
Jun 16 HTML / CSS
AmazeUI框架搭建的方法步骤(图文)
Aug 17 HTML / CSS
HTML5在手机端实现视频全屏展示方法
Nov 23 HTML / CSS
css实现文章分割线样式的多种方法总结
Apr 21 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与XML、XSLT、Mysql的结合运用实现代码
2009/11/19 PHP
PHP中strtotime函数使用方法分享
2012/01/10 PHP
分享一个PHP数据流应用的简单例子
2012/06/01 PHP
PHP导航下拉菜单的实现如此简单
2013/09/22 PHP
浅谈PHP调用Webservice思路及源码分享
2014/06/04 PHP
ThinkPHP中的create方法与自动令牌验证实例教程
2014/08/22 PHP
浅析php如何实现App常用的秒发功能
2016/08/03 PHP
Laravel实现自定义错误输出内容的方法
2016/10/10 PHP
javascript字符串替换函数如何一次性全部替换掉
2015/10/30 Javascript
laydate.js日期时间选择插件
2017/01/04 Javascript
详解vuex中mapState,mapGetters,mapMutations,mapActions的作用
2018/04/13 Javascript
JS实现给数组对象排序的方法分析
2019/06/24 Javascript
微信小程序可滑动月日历组件使用详解
2019/10/21 Javascript
Vue开发中遇到的跨域问题及解决方法
2020/02/11 Javascript
vue cli4.0项目引入typescript的方法
2020/07/17 Javascript
一篇文章带你搞懂Vue虚拟Dom与diff算法
2020/08/25 Javascript
微信小程序实现加入购物车滑动轨迹
2020/11/18 Javascript
CentOS 8.2服务器上安装最新版Node.js的方法
2020/12/16 Javascript
Python中每次处理一个字符的5种方法
2015/05/21 Python
Python AES加密模块用法分析
2017/05/22 Python
JPype实现在python中调用JAVA的实例
2017/07/19 Python
Python基础学习之常见的内建函数整理
2017/09/06 Python
Python使用MD5加密算法对字符串进行加密操作示例
2018/03/30 Python
python通过实例讲解反射机制
2019/10/17 Python
python相对企业语言优势在哪
2020/06/12 Python
解决Python安装cryptography报错问题
2020/09/03 Python
python实现AdaBoost算法的示例
2020/10/03 Python
洲际酒店集团英国官网:IHG英国
2019/07/10 全球购物
英文版网络工程师求职信
2013/10/28 职场文书
公务员培训心得体会
2013/12/28 职场文书
2014全国两会心得体会
2014/03/17 职场文书
会议接待欢迎词范文
2015/01/26 职场文书
礼仪培训心得体会
2016/01/22 职场文书
Python 如何实现文件自动去重
2021/06/02 Python
MySQL日期时间函数知识汇总
2022/03/17 MySQL
JS实现页面炫酷的时钟特效示例
2022/08/14 Javascript