今日看点

用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-04-26

《吕氏春秋·贵直论》原乱赏析

【原文】乱必有弟①。大乱五,小乱三②,乱三。故《诗》曰“毋过乱门”,所以远之也。虑福未及③,虑祸过之,所以完④之也。武王以武得之,以文持之,倒戈弛弓,示天下不用兵,所以守之也。晋献公立骊姬⑤以为夫人,...

2025-04-26

《龙图公案》作品简介

龙图公案是明代短篇公案小说集。又称《龙图神断公案》,书以《新镌全像包孝肃公百家公案演义》为最早,不题撰者。后有《新刻京本通俗演义增像包龙图判百家公案全传》。安遇时编,序"江左陶烺元乃斌父题于虎丘之悟石...

2025-04-26

《三侠五义》作品简介

《三侠五义》,作者清代贵族弟子石玉昆,是古典长篇侠义公案小说的经典之作,堪称中国武侠小说的开山鼻祖;同时,作为中国第一部具有真正意义的武侠小说,《三侠五义》的版本众多、流传极广,书中脍炙人口的故事对中...

2025-04-26

辽代时期多元化的音乐文化

契丹人在长期的牧猎生产劳动中创造了本民族的语言和歌舞音乐,其早期音乐简单而质朴,具有原始狩猎和原始宗教色彩,被称为国乐。辽国建立后,辽国皇帝确定其为国乐,也就是辽国在大型聚会、祭祀、宫廷礼仪等场合演奏...

2025-04-26

包拯的脸谱由来

在中国戏曲史上,没有一位官吏能够像包拯那样,可以如此频繁地出当今历代的戏剧舞台上,至今久演不衰,并且成为一类非常独特的戏剧通称“包公戏”。包公戏的流行,从南到北,几乎涉及到所有的戏曲种类。戏剧中的包公...

2025-04-26

辽代雕刻的特点和成就

辽朝的雕刻艺术有其自身特色。作品以宣扬佛教信仰为多,有石雕和砖雕,保存至今的有几座石窟寺、几座石雕造像和大量墓葬石刻。雕塑作品刀法遒劲,栩栩如生。建筑艺术主要体现在佛塔和佛寺。山西省灵丘觉山寺西塔院中...

2025-04-26

庄子《渔父》译文赏析

孔子游观来到名叫缁帷的树林,坐在长有许多杏树的土坛上休息。弟子们在一旁读书,孔子在弹琴吟唱。曲子还未奏完一半,有个捕鱼的老人下船而来,胡须和眉毛全都白了,披着头发扬起衣袖,沿着河岸而上,来到一处高而平...

2025-04-26

《庄子·杂篇·列御寇》简介

“列御寇”本是一人名,这里用作篇名。全篇由许多小故事夹着议论组合而成。内容很杂,其间也无内在联系,不过从主要段落看,主要是阐述忘我的思想,人生在世不应炫耀于外,不应求仕求禄,不应追求智巧,不应贪功图报...

2025-04-26

《庄子·杂篇·列御寇》原文

列御寇之齐,中道而反,遇伯昏瞀人。伯昏瞀人曰:“奚方而反?”曰:“吾惊焉。”曰:“恶乎惊?”曰:“吾尝食于十浆而五浆先馈。”伯昏瞀人曰:“若是则汝何为惊已?”曰:“夫内诚不解,形谍成光,以外镇人心,使...

2025-04-26