|
|
请马上登录,朋友们都在花潮里等着你哦:)
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 马黑黑 于 2023-12-25 21:22 编辑
先看正弦、余弦计算函数:
正弦 : sin(radian) -> 返回 -1.0 ~ 1.0
余弦 : cos(radian) -> 返回 -1.0 ~ 1.0
上式,radian 为弧度。角度(angle)换算为弧度的公式 :
radian = 2 * PI / 360 * angle
可简化为 :
radian = PI / 180 * angle
求圆周上任意一点坐标值,圆心是重要参照。相交于圆心 o 的水平线和垂直线是我们熟知的坐标系,从 o 出发的任意一条直线会与圆周相交,我们要求的就是该相交点的坐标值。该直线与水平线的夹角是计算圆周点坐标的依据之一,计算依据还有半径 r,公式为:
x = r + r * cos(radian)
y = r + r * sin(randian)
以上公式,用 JS 表达:
x = r + r * Math.cos(radian)
y = r + r * Math.sin(radian)
同样的,角度转弧度公式的 JS 表达法为:
radian = Math.PI / 180 * angle
就是说,JS 的数学方法中,π(PI) 表示为 Math.PI,sin 表示为 Math.sin(弧度),cos 表示为 Math.cos(弧度)。
下面给一个例子:经过圆心 o 的直线与圆周相交于某点,已知半径和夹角,求相交点的坐标——
let angle = 60, r = 200;
let radian = Math.PI / 180 * angle;
let x = r + r * Math.cos(radian),
y = r + r * Math.sin(radian);
console.log(x,y);
最后再给一个HTML实例:400*400的圆形父元素内有两个40*40的圆形子元素,绿色小球留在它的默认位置,红色小球根据上述圆周点坐标计算机制脱离了默认位置,其圆心与圆周上的某一点相交。需要注意的是,XY坐标点要减去小球的半径,小球圆心才会与圆周上的指定点相重合。代码如下:
<style>
#mydiv {
width: 400px;
height: 400px;
border: 1px solid gray;
border-radius: 50%;
position: relative;
}
.ball {
position: absolute;
width: 40px;
height: 40px;
border-radius: 50%;
background: red;
}
</style>
<div id="mydiv">
<div class="ball"></div>
<div class="ball" style="background:green"></div>
</div>
<script>
let angle = 60, r = 200;
let radian = Math.PI / 180 * angle;
let x = r + r * Math.cos(radian),
y = r + r * Math.sin(radian);
let ball = document.querySelector('.ball');
ball.style.left = x - 20 + 'px';
ball.style.top = y - 20 + 'px';
</script>
以上 HTML 实例代码,可以到这里运行:pencil code (52qingyin.cn)
|
评分
-
| 参与人数 2 | 威望 +100 |
金钱 +200 |
经验 +100 |
收起
理由
|
樵歌
| + 50 |
+ 100 |
+ 50 |
赞一个! |
红影
| + 50 |
+ 100 |
+ 50 |
赞一个! |
查看全部评分
|