由于之前面试问到过canvas相关的贝塞尔曲线,但自己只会canvas基础用法,所以这里扩充下自己的知识点,在此做一个记录。
原理这里就不介绍了,详情百度,这里推荐一个网站,可以让你快速对贝塞尔曲线画法有一个了解认知。网站:https://bezier.method.ac/
拿第三关的圆举例,如下图:
我们先看其中1/4部分,如下图:
start为曲线起始点,end为曲线结束点,①为控制点1,②为控制点2,我们等下会用到这4个点
我们只需要用beginpath来定义起始点,使用bezierCurveTo来绘制贝塞尔曲线即可。
bezierCurveTo的三个参数 =>(控制点1坐标,控制点二坐标,终点坐标)
知道以上知识后,直接开始代码部分
// 1/4个圆
ctx.beginPath();
// ctx.moveTo(100, 150);
// ctx.lineTo(100, 65)
// ctx.moveTo(250, 0);
// ctx.lineTo(165, 0) 需要看参照线就去掉注释
ctx.moveTo(100, 150);
ctx.bezierCurveTo(