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地图动态实例代码(圆圈向外扩散)
Jun 15 HTML / CSS
巧用 CSS3的webkit-box-reflect 倒影实现各类动效
Mar 05 HTML / CSS
html5定制表单_动力节点Java学院整理
Jul 11 HTML / CSS
HTML5 embed标签定义和用法详解
May 09 HTML / CSS
canvas实现圆形进度条动画的示例代码
Dec 26 HTML / CSS
简述Html5 IphoneX 适配方法
Feb 08 HTML / CSS
html5的input的required使用中遇到的问题及解决方法
Apr 24 HTML / CSS
浅谈HTML5新增和废弃的标签
Apr 28 HTML / CSS
吃透移动端 1px的具体用法
Dec 16 HTML / CSS
html table呈现个人简历以及单元格宽度失效的问题解决
Jan 22 HTML / CSS
老生常谈 使用 CSS 实现三角形的技巧(多种方法)
Apr 13 HTML / CSS
HTML页面点击按钮关闭页面的多种方式
Dec 24 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
一个PHP操作Access类(PHP+ODBC+Access)
2007/01/02 PHP
ThinkPHP3.1新特性之G方法的使用
2014/06/19 PHP
PHP文件上传之多文件上传的实现思路
2016/01/27 PHP
php如何获取Http请求
2020/04/30 PHP
img的onload的另类用法
2008/01/10 Javascript
javascript 图片上传预览-兼容标准
2009/06/01 Javascript
用jquery实现学校的校历(asp.net+jquery ui 1.72)
2010/01/01 Javascript
分享几个超级震憾的图片特效
2012/01/08 Javascript
javascript 保存文件到本地实现方法
2012/11/29 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
JQuery中如何传递参数如click(),change()等具体实现
2013/04/28 Javascript
JQuery中操作Css样式的方法
2014/02/12 Javascript
javascript三元运算符用法实例
2015/04/16 Javascript
简单的js计算器实现
2016/10/26 Javascript
jquery Ajax实现Select动态添加数据
2017/06/08 jQuery
微信小程序实现循环动画效果
2018/07/16 Javascript
浅析Vue 中的 render 函数
2020/02/28 Javascript
JS中准确判断变量类型的方法
2020/06/01 Javascript
jQuery列表动态增加和删除的实现方法
2020/11/05 jQuery
[01:04:30]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python使用wxPython打开并播放wav文件的方法
2015/04/24 Python
Python中类的定义、继承及使用对象实例详解
2015/04/30 Python
python的random模块及加权随机算法的python实现方法
2017/01/04 Python
详解Python里使用正则表达式的ASCII模式
2017/11/02 Python
Python+matplotlib+numpy实现在不同平面的二维条形图
2018/01/02 Python
JavaScript实现一维数组转化为二维数组
2018/04/17 Python
python 通过字符串调用对象属性或方法的实例讲解
2018/04/21 Python
python使用MQTT给硬件传输图片的实现方法
2019/05/05 Python
详解Python3迁移接口变化采坑记
2019/10/11 Python
原生python实现knn分类算法
2019/10/24 Python
荷兰美妆护肤品海淘网站:Beautinow(中文)
2020/11/22 全球购物
十八届三中全会报告学习材料
2014/02/17 职场文书
初中教师业务学习材料
2014/05/12 职场文书
建立共青团委员会的请示
2019/04/02 职场文书
开发一个封装iframe的vue组件
2021/03/29 Vue.js
flex布局中使用flex-wrap实现换行的项目实践
2022/06/21 HTML / CSS