【坑】html5中使用<canvas>画圆,弧度和角度傻傻分不清楚

问题导入

<body>
<canvas id="myCanvas" width="400" height="400" style="border:1px solid"></canvas>
</body>
<script>
window.onload = function(){
	var canvas = document.getElementById("myCanvas");
	
	var context = canvas.getContext("2d");
	context.beginPath();
	context.arc(100, 100, 100, 90, 270, true);
	context.stroke();
	context.closePath();
};
</script>

arc方法的参数是这样设置的arc(圆心的横坐标,圆心的纵坐标, 圆的半径,弧的起始角,弧的终止角,true/false(逆时针/顺时针))
这里的起始角是指x轴与弧的起点之间的夹角,终止角是指x轴与弧的终点之间的夹角,这里的夹角单位都是值弧度而不是度
也就是说上面的一个 代码显示的不是如下图

而是这样的

造成这样的原因是因为,起始角和终止角的单位都是弧度我们写的90和270浏览器把他当作弧度来计算了,我们把90和270转换成角度可以得出分别是108和357度,正好是上图中下部分的那个起点逆时针距离X轴正方向的角度,终点也是如此。
那么如果我想要起点在90度终点在270度应该怎么做呢,毕竟我们常用的单位是角度而不是弧度

解决办法

很简单,把角度换算成弧度就行,就像这样
context.arc(200, 200, 100, Math.PI*90/180, Math.PI*270/180, true);
这里的90和270就是我们常用的角度,乘上π/180就是弧度了


  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值