canvas绘制太极图的实现示例


Posted in HTML / CSS onApril 29, 2020

看到了很多人写的太极图案,自己也来搞一下,今天就来介绍一下

css样式代码

.animation{
  width: 800px;
  height: 800px;
  border: 1px solid #000;
}
#canvas{
  animation: rotate 6s linear infinite;  
}
/* 给太极图设置旋转动画 */
@keyframes rotate{
  0%{
    transform: none;
  }
  100%{
    transform: rotate(360deg);
  }
}

javascript代码

//文档加载完毕后执行函数
window.onload = function(){
  //获取画布对象
  var canvas = document.getElementById('canvas');
  //获取上下文对象
  var context = canvas.getContext('2d');
  //圆开始路径
  context.beginPath();
  //绘制最外层的大圆(黑色)
  context.arc(400, 400, 300, Math.PI / 180 * 0, Math.PI / 180 * 360);
  //将大圆填充为黑色
  context.fillStyle = '#000';
  context.fill();
  //绘制左半圆(白色)
  context.beginPath();
  context.arc(400, 400, 300, Math.PI / 180 * 90, Math.PI / 180 * 270);
  context.fillStyle = '#fff';
  context.fill(); 
  //绘制右半圆(黑色),会覆盖外层大圆,颜色一样。所以写不写都可以
  /* context.beginPath();
  context.arc(400, 400, 300, Math.PI / 180 * 270, Math.PI / 180 * 90);
  context.fillStyle = '#000';
  context.fill(); */
  //绘制左上半圆(黑色)
  context.beginPath();
  context.arc(400, 250, 150, Math.PI / 180 * 90, Math.PI / 180 * 270);
  context.fillStyle = '#000';
  context.fill(); 
  //绘制右下半圆(白色)
  context.beginPath();
  context.arc(400, 550, 150, Math.PI / 180 * 270, Math.PI / 180 * 90);
  context.fillStyle = '#fff';
  context.fill(); 
  //绘制左上小半圆(白色)
  context.beginPath();
  context.arc(400, 250, 35, Math.PI / 180 * 0, Math.PI / 180 * 360);
  context.fillStyle = '#fff';
  context.fill(); 
  //绘制右下小半圆(黑色)
  context.beginPath();
  context.arc(400, 550, 35, Math.PI / 180 * 0, Math.PI / 180 * 360);
  context.fillStyle = '#000';
  context.fill(); 
}

html代码

<div class="animation">
    <canvas id="canvas" width="800" height="800"></canvas>
  </div>

设置动画之后的太极图效果

canvas绘制太极图的实现示例

到此这篇关于canvas绘制太极图的实现示例的文章就介绍到这了,更多相关canvas太极图内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

HTML / CSS 相关文章推荐
css3个性化字体_动力节点Java学院整理
Jul 12 HTML / CSS
使用CSS实现阅读进度条
Feb 27 HTML / CSS
利用CSS3的线性渐变linear-gradient制作边框的示例
Jun 02 HTML / CSS
纯CSS3实现的井字棋游戏
Nov 25 HTML / CSS
html5通过canvas实现刮刮卡效果示例分享
Jan 27 HTML / CSS
探索HTML5本地存储功能运用技巧
Mar 02 HTML / CSS
详解前端HTML5几种存储方式的总结
Dec 27 HTML / CSS
Canvas制作的下雨动画的示例
Mar 06 HTML / CSS
html+js 实现markdown编辑器效果
Oct 23 HTML / CSS
使用SVG实现提示框功能的示例代码
Jun 05 HTML / CSS
CSS3 制作精美的定价表
Apr 06 HTML / CSS
HTML5 HTMLCollection和NodeList的区别详解
Apr 29 #HTML / CSS
HTML5调用手机发短信和打电话功能
Apr 29 #HTML / CSS
H5离线存储Manifest原理及使用
Apr 28 #HTML / CSS
HTML5中的网络存储实现方式
Apr 28 #HTML / CSS
HTML5通过navigator.mediaDevices.getUserMedia调用手机摄像头问题
Apr 27 #HTML / CSS
遮罩层 + Iframe实现界面自动显示的示例代码
Apr 26 #HTML / CSS
html5中使用hotcss.js实现手机端自适配的方法
Apr 23 #HTML / CSS
You might like
PHP5+UTF8多文件上传类
2008/10/17 PHP
PHP递归调用的小技巧讲解
2013/02/19 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
2013/08/31 PHP
thinkPHP实现表单自动验证
2014/12/24 PHP
php 判断页面或图片是否经过gzip压缩的方法
2017/04/05 PHP
Javascript 中的类和闭包
2010/01/08 Javascript
ExtJs默认的字体大小改变的几种方法(自己整理)
2013/04/18 Javascript
JavaScript版TAB选项卡效果实例
2013/08/16 Javascript
node.js中的path.dirname方法使用说明
2014/12/09 Javascript
jQuery实现新消息闪烁标题提示的方法
2015/03/11 Javascript
JQuery显示隐藏DIV的方法及代码实例
2015/04/16 Javascript
Jquery实现简单的轮播效果(代码管用)
2016/03/14 Javascript
JQuery核心函数是什么及使用方法介绍
2016/05/03 Javascript
JS导出PDF插件的方法(支持中文、图片使用路径)
2016/07/12 Javascript
AngularJS入门教程之迭代器过滤详解
2016/08/18 Javascript
基于Node.js模板引擎教程-jade速学与实战1
2017/09/17 Javascript
JavaScript实现打印星型金字塔功能实例分析
2017/09/27 Javascript
javaScript动态添加Li元素的实例
2018/02/24 Javascript
ES6入门教程之Array.from()方法
2019/03/23 Javascript
少女风vue组件库的制作全过程
2019/05/15 Javascript
vue2.0实现列表数据增加和删除
2020/06/17 Javascript
小程序实现列表倒计时功能
2021/01/29 Javascript
Python中自定义函数的教程
2015/04/27 Python
python利用不到一百行代码实现一个小siri
2017/03/02 Python
python集合比较(交集,并集,差集)方法详解
2018/09/13 Python
python 运用Django 开发后台接口的实例
2018/12/11 Python
Appium Python自动化测试之环境搭建的步骤
2019/01/23 Python
Python学习笔记之While循环用法分析
2019/08/14 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
2020/02/26 Python
匡威比利时官网:Converse Belgium
2017/04/13 全球购物
感恩节活动方案
2014/01/27 职场文书
小组口号大全
2014/06/09 职场文书
北京奥运会口号
2014/06/21 职场文书
演讲开头怎么书写?
2019/08/06 职场文书
python实现简易名片管理系统
2021/04/11 Python
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
2021/05/18 Vue.js