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属性汇总
Jul 21 HTML / CSS
一款基于css3和jquery实现的动画显示弹出层按钮教程
Jan 04 HTML / CSS
CSS3 animation实现逐帧动画效果
Jun 02 HTML / CSS
使用CSS3的box-sizing属性解决div宽高被内边距撑开的问题
Jun 28 HTML / CSS
使用 css3 实现圆形进度条的示例
Jul 05 HTML / CSS
css3编写浏览器背景渐变背景色的方法
Mar 05 HTML / CSS
只要五步 就可以用HTML5/CSS3快速制作便签贴特效(图)
Jun 04 HTML / CSS
HTML5之SVG 2D入门11—用户交互性(动画)介绍及应用
Jan 30 HTML / CSS
html5适合移动应用开发的12大特性
Mar 19 HTML / CSS
HTML5 Canvas旋转动画的2个代码例子(一个旋转的太极图效果)
Apr 10 HTML / CSS
前端实现背景虚化但内容清晰且自适应 的实例代码
Aug 01 HTML / CSS
HTML5语义化元素你真的用对了吗
Aug 22 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
smarty 原来也不过如此~~呵呵
2006/11/25 PHP
PHP 分页类(模仿google)-面试题目解答
2009/09/13 PHP
Laravel框架表单验证操作实例分析
2019/09/30 PHP
JS定时刷新页面及跳转页面的方法
2013/07/04 Javascript
利用js读取动态网站从服务器端返回的数据
2014/02/10 Javascript
JavaScript中通过提示框跳转页面的方法
2016/02/14 Javascript
JavaScript实现in-place思想的快速排序方法
2016/08/07 Javascript
Vue.js创建Calendar日历效果
2016/11/03 Javascript
Angular 常用指令实例总结整理
2016/12/13 Javascript
使用Webpack提高Vue.js应用的方式汇总(四种)
2017/07/10 Javascript
JS获取指定月份的天数两种实现方法
2018/06/22 Javascript
jquery实现Ajax请求的几种常见方式总结
2019/05/28 jQuery
vue解决使用$http获取数据时报错的问题
2019/10/30 Javascript
js动态生成表格(节点操作)
2021/01/12 Javascript
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
2021/03/01 Vue.js
[04:26]2014DOTA2西雅图国际邀请赛 总决赛TOPPLAY
2014/07/22 DOTA
本地文件上传到七牛云服务器示例(七牛云存储)
2014/01/11 Python
python嵌套函数使用外部函数变量的方法(Python2和Python3)
2016/01/31 Python
利用Python画ROC曲线和AUC值计算
2016/09/19 Python
Python实现批量检测HTTP服务的状态
2016/10/27 Python
浅谈matplotlib.pyplot与axes的关系
2020/03/06 Python
Python3 中sorted() 函数的用法
2020/03/24 Python
python 如何利用argparse解析命令行参数
2020/09/11 Python
python 逆向爬虫正确调用 JAR 加密逻辑
2021/01/12 Python
使用CSS3来实现滚动视差效果的教程
2015/08/24 HTML / CSS
师范生实习自我鉴定
2013/11/01 职场文书
会计核算科岗位职责
2014/03/19 职场文书
初中英语演讲稿
2014/04/29 职场文书
2014年教师党员自我评议
2014/09/19 职场文书
2015年七一建党节演讲稿
2015/03/19 职场文书
慈善献爱心倡议书
2015/04/27 职场文书
幼儿园教师师德承诺书
2015/04/28 职场文书
2016教师给学生的毕业寄语
2015/12/04 职场文书
小学语文新课改心得体会
2016/01/22 职场文书
导游词之山东红叶谷
2019/10/31 职场文书
js基于div丝滑实现贝塞尔曲线
2022/09/23 Javascript