今日看点

用canvas画一个太极图(八卦图)

发表于话题:解读八卦图
发布时间:2021-05-11

用canvas画一个太极图(八卦图)

源码展示链接:
https://yanhappiness.github.io/Notes/canvas_src.html

理解什么是canvas

canvas是HTML5新增的标签,用于图形的绘制。通过脚本 (通常是JavaScript)来完成.

如何使用canvas

也就是说canvas只是定义了一块画布,而真正实现路径,盒、圆、字符以及添加图像的绘制是借助于脚本javascript实现的。
首先,找到 元素:

var canvas=document.getElementById("myCanvas");

然后,创建 context 对象:

var ctx=canvas.getContext("2d");

arc() 方法讲解

理解了怎么获取元素以及创建对象之后就可以着手去构思怎么画一个太极图了。
用到的是canvas中的 arc() 方法绘制圆形

arc(x, y, radius, startAngle, endAngle, anticlockwise)

arc的六个参数分别是(x坐标,y坐标,半径,起始位置,结束位置,方向(顺时针false/逆时针true))
里面有两个参数比较难以理解starAngle起始位置和endAngle终止位置,用Math.PI来表示。
PI 属性就是 π,即圆的周长和它的直径之比。这个值近似为 3.14。
下面用一张图来具体说明下:

举个栗子:
如果想画一个圆形那么:

arc(x坐标,y坐标,半径, 0, Math.PI*2);

如果是想画一个半圆(左半圆)那么:

arc(x坐标,y坐标,半径, Math.PI*0.5, Math.PI*1.5);

太极图的构思

仔细观察可以发现太极图就是由圆或者半圆层叠而成的
下面是部分代码
html部分:新建画布800*800(大小自定)

javascript获取元素部分

var canvas = document.getElementById("canvas"); var context = canvas.getContext("2d");

1.先画一个左半圆(白色)

context.arc(400, 400, 300, Math.PI*0.5, Math.PI*1.5);//圆心在画布正中间,半径为300 context.fillStyle = "#FFF";//设置实心圆的填充色 context.fill();//绘制填充

2.画一个右半圆(黑色)

context.beginPath();//重新绘制,避免继承已设置元素的属性 context.arc(400, 400, 300, Math.PI*1.5, Math.PI*0.5);//圆心在画布正中间,半径为300 context.fillStyle = "#000";//设置实心圆的填充色 context.fill(); //绘制填充

3.画一个上半圆(黑色)

context.beginPath(); context.arc(400, 250, 150, Math.PI*0.5, Math.PI*1.5); context.fillStyle = "#000"; context.fill();

4.画一个上实心圆(白色) 3的同心圆半径小于3

context.beginPath(); context.arc(400, 250, 50, 0, Math.PI*2); context.fillStyle = "#FFF"; context.fill();

5.画一个下半圆(白色)

context.beginPath(); context.arc(400, 550, 150, Math.PI*1.5, Math.PI*0.5); context.fillStyle = "#FFF"; context.fill();

6.画一个下实心圆(黑色) 5的同心圆半径小于5

context.beginPath(); context.arc(400, 550, 50, 0, Math.PI*2); context.fillStyle = "#000"; //填充样式 context.fill(); //绘制填充

7.优化 外圆的整体边框 (黑色)

context.beginPath(); context.arc(400, 400, 300, 0, Math.PI*2); context.strokeStyle="#000"; //边框样式 context.lineWidth = 2; //设置线条粗细为2px context.stroke(); //边框绘制

收工!!!

源码下载

https://github.com/YANhappiness/Notes.git
总结:会不代表会讲的出来,讲的出来不一定写的出来。第一次写博客,需要锻炼的还很多。加油!

标签组:[context] [canvas] [canvas元素

本文来源:https://www.kandian5.com/articles/9257.html

相关阅读

晴雯的人物介绍

晴雯,中国古典小说《红楼梦》中人物,金陵十二钗又副册之首,贾宝玉房里的四个大丫鬟之一,虽是丫鬟,但在宝玉房里过得千金小姐的生活。红学中普遍评价她有林黛玉之风。她长得风流灵巧,眉眼儿有点像林黛玉,口齿伶...

2025-06-16

曾国藩的传奇故事

曾国藩在道光年间连年被选拔,升官极快,十年之间连升十级,这是可贵的恩遇:在升为正三品大员后,按规则,轿呢要由蓝色换为绿色,护轿人也要添加俩人,并且乘轿是需求配备引路官和护卫的。但令百官惊讶的是,曾国藩...

2025-06-16

曾国藩家书经典语录

1、勤字功夫,第一贵早起,第二贵有恒;凡将相无种,圣贤豪杰无种,只要人肯立志,都可以做得到的。2、盖士人读书,第一要有志,第二要有识,第三要有恒。有志则不甘为下流,有识则知学问无尽,不能以一得自足,有...

2025-06-16

曾巩《道山亭记》赏析

道山亭记宋代:曾巩闽,故隶周者也。至秦,开其地,列于中国,始并为闽中郡。自粤之太末,与吴之豫章,为其通路。其路在闽者,陆出则阸于两山之间,山相属无间断,累数驿乃一得平地,小为县,大为州,然其四顾亦山也...

2025-06-16

曾巩《醒心亭记》赏析

醒心亭记宋代:曾巩滁州之西南,泉水之涯,欧阳公作州之二年,构亭曰“丰乐”,自为记,以见其名义。既又直丰乐之东几百步,得山之高,构亭曰“醒心”,使巩记之。凡公与州之宾客者游焉,则必即丰乐以饮。或醉且劳矣...

2025-06-16

曾巩《醒心亭记》译文

醒心亭记宋代:曾巩滁州之西南,泉水之涯,欧阳公作州之二年,构亭曰“丰乐”,自为记,以见其名义。既又直丰乐之东几百步,得山之高,构亭曰“醒心”,使巩记之。凡公与州之宾客者游焉,则必即丰乐以饮。或醉且劳矣...

2025-06-16

晴雯撕扇

端午佳节间,宝玉因金钏儿之事,心情很糟糕。恰巧晴雯给宝玉换衣时失手把他扇子跌折,便训斥了她几句,晴雯的自尊心受到伤害,还击了一通,不仅把宝玉“气得浑身乱颤”,而且连来劝架的袭人也落了个灰头土脸。最后,...

2025-06-16

曾巩《赠黎安二生序》鉴赏

赠黎安二生序宋代:曾巩赵郡苏轼,余之同年友也。自蜀以书至京师遗余,称蜀之士,曰黎生、安生者。既而黎生携其文数十万言,安生携其文亦数千言,辱以顾余。读其文,诚闳壮隽伟,善反复驰骋,穷尽事理;而其材力之放...

2025-06-16

曾巩《赠黎安二生序》译文

赠黎安二生序宋代:曾巩赵郡苏轼,余之同年友也。自蜀以书至京师遗余,称蜀之士,曰黎生、安生者。既而黎生携其文数十万言,安生携其文亦数千言,辱以顾余。读其文,诚闳壮隽伟,善反复驰骋,穷尽事理;而其材力之放...

2025-06-16

曾巩《咏柳》译文及赏析

咏柳宋代:曾巩乱条犹未变初黄,倚得东风势便狂。解把飞花蒙日月,不知天地有清霜。译文杂乱的柳枝条还没有变黄,在东风的吹动下便飞快的变绿了。只懂得用它的飞絮蒙住日月,却不知天地之间还有秋霜。注释倚:仗恃,...

2025-06-16