如何在canvas中画出一个太极图
先放一个效果图:

代码如下
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<canvas width="600px" height="600px" id="canvas"></canvas>
<script type="text/javascript">
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d"); ctx.arc(300,300,100,0,2*Math.PI)
ctx.stroke(); ctx.beginPath();
ctx.arc(300,300,100,0.5*Math.PI,1.5*Math.PI)
ctx.fill(); ctx.beginPath();
ctx.arc(300,250,50,0.5*Math.PI,1.5*Math.PI);
ctx.fillStyle = "white";
ctx.fill(); ctx.beginPath();
ctx.arc(300,350,50,1.5*Math.PI,0.5*Math.PI);
ctx.fillStyle = "black";
ctx.fill(); ctx.beginPath();
ctx.arc(300,250,25,0,2*Math.PI);
ctx.fillStyle = "black";
ctx.fill(); ctx.beginPath();
ctx.arc(300,350,25,0,2*Math.PI);
ctx.fillStyle = "white";
ctx.fill();
</script>
</body>
</html>
具体来说,先画出一个圆
ctx.arc(300,300,100,0,2*Math.PI)
ctx.stroke();
然后在圆的左半边填充黑色
ctx.beginPath();
ctx.arc(300,300,100,0.5*Math.PI,1.5*Math.PI)
ctx.fill();
然后在圆心纵坐标上下各二分之一半径处分别画一个圆,一个填充黑色,一个填充白色
ctx.beginPath();
ctx.arc(300,250,50,0.5*Math.PI,1.5*Math.PI);
ctx.fillStyle = "white";
ctx.fill(); ctx.beginPath();
ctx.arc(300,350,50,1.5*Math.PI,0.5*Math.PI);
ctx.fillStyle = "black";
ctx.fill();
最后在这两个圆内分别填充一个更小的圆,一个黑色,一个白色
ctx.beginPath();
ctx.arc(300,250,25,0,2*Math.PI);
ctx.fillStyle = "black";
ctx.fill(); ctx.beginPath();
ctx.arc(300,350,25,0,2*Math.PI);
ctx.fillStyle = "white";
ctx.fill();
如何在canvas中画出一个太极图的更多相关文章
- wpf 在不同DPI下如何在DrawingVisual中画出清晰的图形
环境Win10 VS2017 .Net Framework4.7.1 本文仅讨论在DrawingVisual中进行的画图. WPF单位,系统DPI,显示器DPI三者的定义及关系 WPF单位:一 ...
- 使用JavaScript在Canvas上画出一片星空
随着Html5的迅猛发展,画布也变得越来越重要.下面我就写一个关于在canvas上画出一片星空的简单的代码的示例. 理论基础 初始化一个canvas,获得一个用于绘制图形的上下文环境context.并 ...
- 用HTML+CSS画出一个同心圆
参加web前端校招的同学们经常会遇到这样的面试题:用HTML+CSS画出一个同心圆. 例如: 这道题主要考验的是基础盒模型布局能力和倒圆角属性的巧用. 1.html代码 <body> &l ...
- python—networkx:在一张图中画出多个子图
通过plt.subplot能够在一张图中画出多个子图 #coding: utf-8 #!/usr/bin/env python """ Draw a graph with ...
- 【神经网络与深度学习】如何在Caffe中配置每一个层的结构
如何在Caffe中配置每一个层的结构 最近刚在电脑上装好Caffe,由于神经网络中有不同的层结构,不同类型的层又有不同的参数,所有就根据Caffe官网的说明文档做了一个简单的总结. 1. Vision ...
- WPF Blend 脑洞大开的问题:如何用Blend得到或画出一个凹槽、曲面。
原文:WPF Blend 脑洞大开的问题:如何用Blend得到或画出一个凹槽.曲面. 目标图: 步骤一(放置一个矩形,填充蓝色): 步骤二(复制该矩形,并调整边角,填充粉红色): 第三部:让图形部分重 ...
- 利用LineRenderer画出一个圆,类似于lol中的攻击范围
http://www.unity蛮牛.com/blog-5945-1409.html 本人大四狗,学unity半年有余,写此文章纯粹记录自己的心得. 废话不多说,进入主题.... 效果如图: 首先要理 ...
- 第五讲:使用html5中的canvas动态画出物理学上平抛运动
<html> <head> <title>平抛运动</title> <script src="../js/jscex.jscexRequ ...
- 使用CSS3画出一个叮当猫
刚学习了这个案例,然后觉得比较好玩,就练习了一下.然后发现其实也不难,如果你经常使用PS或者Flash的话,应该就会知道画个叮当猫是很容易的事,至少我是这么觉得.但是,用CSS3画出来确实是第一次接触 ...
随机推荐
- Out-of-Process iframes (OOPIFs)
For Developers > Design Documents > Out-of-Process iframes (OOPIFs) This page provides an ...
- 在windows下如何新建爬虫虚拟环境和进行scrapy安装
Scrapy是Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改.Sc ...
- 使得nginx支持pathinfo访问模式
原理: 任意创建一个 in.php 文件: <?php echo '<pre>'; ...
- gcd步数
题目描述 一个有趣的函数F(a,b),表示对于数对(a,b)调用辗转相除法的步数为多少 例如 (24,40)....0 (16,24).....1 (8,16).....2 (0,8)....3,即f ...
- HDU-2303 The Embarrassed Cryptographer 高精度算法(大数取模)
题目链接:https://cn.vjudge.net/problem/HDU-2303 题意 给一个大数K,和一个整数L,其中K是两个素数的乘积 问K的是否存在小于L的素数因子 思路 枚举素数,大数取 ...
- python描述符和属性查找
python描述符 定义 一般说来,描述符是一种访问对象属性时候的绑定行为,如果这个对象属性定义了__get__(),__set__(), and __delete__()一种或者几种,那么就称之为描 ...
- CMSIS-RTOS 中断处理Interrupt Handling
RTOS中断处理Interrupt Handling 在RTOS中使用信号来触发线程间的行为是比较简单和高效的,而对于Cortex-M微控制器来讲,从中断源获取信号来触发线程同样是一种重要的方式.虽然 ...
- C++ 容器(一):顺序容器简介
C++提供了使用抽象进行高效编程的方式,标准库中定义了许多容器类以及一系列泛型函数,使程序员可以更加简洁.抽象和有效地编写程序,其中包括:顺序容器,关联容器和泛型算法.本文将简介顺序容器(vector ...
- 三 Client 如何找到正确的 Region Server
客户端在进行put.delete.get等操作的时候,它都需要数据到底存在哪个Region Server上面,这个定位的操作是通过 Connection.locateRegion方法来完成的. loc ...
- 二 HTable 源码导读
户端调优的方法里面无非就这么几种:1)关闭autoFlush2)关闭WAL日志3)把writeBufferSize设大一点,一般说是设置成5MB 经过实践,就第二条关闭日志的效果比较明显 ...