今日看点

用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

相关阅读

没想到,宋佳竟以这种方式,给娱乐圈的“海清们”提了1个醒!

阅读此文前,诚邀您点击一下“关注”按钮,方便以后持续为您推送此类文章,同时也便于您进行讨论与分享,您的支持是我们坚持创作的动力~ 最近这段时间,有很多阵容强劲的新剧播出了,播出后效果都很不错。要问在这...

2024-09-20

中影年年引领数字娱乐新纪元:明潮千帆音乐节,AIGC技术赋能下的元宇宙探索

9月15日到9月17日,在人工智能与文化产业深度融合的当下,一场前所未有的音乐盛宴——“明潮千帆音乐节”在北京昌平震撼上演。 这场由中影年年(北京)科技有限公司倾力打造的音乐节,汇聚了34组国内外知名...

2024-09-20

Jennie&BamBam海外约会恋情曝光?所属社回应:朋友聚餐

韩国人气女团BLACKPINK成员Jennie本月9日宣布签约美国哥伦比亚唱片,她近日在当地工作却被狗仔跟拍,视频中, Jennie跟一个男生在餐厅外有说有笑,二男生身分也被曝光,就是GOT7的成员...

2024-09-20

情歌天后梁静茹合肥演唱会圆满落幕,抖音演出多元化宣发引热潮

谁的爱情生活里,不曾被一首“梁式情歌”所打动?9月15日,伴着青春记忆里的歌声,梁静茹「当我们谈论爱情」巡回演唱会合肥站圆满收官。作为此次演唱会的重要宣发合作伙伴,抖音演出以线...

2024-09-20

陈坤先生及佘诗曼女士赠礼庆贺周生生90周年

镌刻雅韵,周生生90周年里程碑周生生自1934年成立,始终秉持“周而复始,生生不息”的理念,凝聚集团上下力量点亮精彩无数。今年,周生生迈入90周年里程碑,品牌生生不息的关键正在...

2024-09-20

胡歌版《偷心》惊喜释出 环球音乐发行《繁花》原声内地版实体专辑即将发售

黄河路的故事并未落幕,《繁花》的音乐之旅还在继续。9月20日,胡歌翻唱张学友经典金曲、“阿宝”专属BGM《偷心》惊喜释出。同步上线的全新MV由王家卫亲自执导,是揭示&ldquo...

2024-09-20

珠海市庆祝2024年“中国农民丰收节”活动将于22日在珠海高新区正式启动

9月22日,农历秋分,我国将迎来第七个中国农民丰收节。当天,珠海市庆祝2024年“中国农民丰收节”活动将在珠海高新区淇澳·多巴岸营地正式启动。丰收节是领导人亲自倡...

2024-09-20

“清新福建·同心共创”首届建州杯微短剧大赛正式启动

为深入学习贯彻领导人关于文化和旅游事业发展的一系列重要论述,以及根据国家广播电视总局发布的关于开展“跟着微短剧去旅行”创作计划的通知要求,在福建省文化和旅游厅、福建省广播电视局...

2024-09-20

大运河申遗10周年 《闪耀吧!大运河》在北京文化论坛上正式起航!

9月20日,2024年北京文化论坛——“文化传播:影视制作与时代表达”平行论坛在京开幕,当天上午,国家广电总局与北京市广电局联合召开网络文化节目《闪耀吧...

2024-09-20

第五届庐山国际爱情电影周启动发布会召开,中外电影人携手缔结浪漫光影之约!

9月19日上午,第五届庐山国际爱情电影周“山盟海誓 光影告白”启动发布会在庐山国际会议中心举办。庐山作为世界文化遗产和自然遗产,一直着力于塑造自身独具特色的旅游形象。此次活动...

2024-09-20