Day03 - 复习 canvas translate 与 rotate

今天简单复习一下 translate 与 rotate 用法,试着画圆饼
https://ithelp.ithome.com.tw/upload/images/20210918/20140513ztuJjntGXH.jpg

不免俗的设置 canvas 画布

wheelCanvas = document.getElementById('wheelCanvas')
ctx = wheelCanvas.getContext('2d');
var ww = wheelCanvas.width = window.innerWidth;
var wh = wheelCanvas.height = window.innerHeight;

想让背景铺上淡淡的灰色

ctx.fillStyle = '#faf7f8';
ctx.fillRect(0, 0, ww, wh);

在画面中央画个圆

ctx.fillStyle = '#fcd2dc';
ctx.arc(ww/2 , wh/2, 300, 0, Math.PI * 2);
ctx.fill();

再来才是今天主要练习的部分啦

ctx.save();
    // 将初始座标 ww/2 , wh/2 设为新座标 0,0 的所在地 
    ctx.translate(ww/2 , wh/2);
    ctx.beginPath();
        // 记得要移动到等等要画的圆心
        ctx.moveTo(0,0)

        // 画六分之一个圆
        ctx.arc(0, 0, 300, 0, Math.PI * 2 / 6);
        ctx.fillStyle = '#1460db';
        ctx.fill();
    ctx.closePath();

    // 将整个座标轴旋转列分之一个圆的角度
    ctx.rotate(Math.PI * 2 / 6);
    ctx.beginPath();
        // 记得要移动到等等要画的圆心
        ctx.moveTo(0,0)

        // 画六分之一个圆
        ctx.arc(0, 0, 300, 0, Math.PI * 2 / 6);
        ctx.fillStyle = '#f72d5c';
        ctx.fill();
    ctx.closePath();
ctx.store();

简单的小练习,如果观念有出入的部分,或有其他有趣做法都希望经过的朋友帮忙提点一下了感谢 ε= ᕕ( ᐛ )ᕗ


<<:  [机派X] Day 6 - Linux 没网路,我要怎麽发铁人赛的文章

>>:  Day03 - this&Object Prototypes Ch3 Objects - Contents - Duplicating Objects

Vue.js指令(v-if & v-show & v-for)(DAY30)

v-if v-if/v-else/v-else-if 的用法就像是JavaScript的判断式,使...

Day 5 [Python ML] 欠拟合(Underfitting)和过拟合(Overfitting)

实验不同的模型 若是是太多分支,会造成leaf太多,而每一个leaf都只是用其中一笔资料建立出来的,...

[Day9]PHP判断式02

PHP判断式 break break 结束当前 for,foreach,while,do-while...

Visual Basic语言和你 SAY HELLO!!

第八天 各位点进来的朋友,你们好阿 小的不才只能做这个系列的文章,但还是希望分享给点进来的朋友,知道...

[NestJS 带你飞!] DAY23 - Authentication (上)

相信各位在使用各大网站提供的功能时,都会需要注册帐号来获得更多的使用体验,比如:google、fac...