JavaScript 计算直线的弧度 作者:马育民 • 2024-10-12 13:37 • 阅读:10014 # 说明 传入直线 起点坐标、终点坐标,计算弧度,如下图: [![](/upload/0/0/1IX8ancM0TxR.jpg)](/upload/0/0/1IX8ancM0TxR.jpg) **提示:**由于三角函数的知识缺失,导致计算麻烦,需要做以下判断: 1. 水平向右 2. 垂直向下 3. 水平向左 4. 垂直向上 1. 直线处于第一象限的弧度 2. 直线处于第二象限的弧度 3. 直线处于第三象限的弧度 4. 直线处于第四象限的弧度 ``` /** * 传入起点、终点,计算弧度 * @param {Object} fromX * @param {Object} fromY * @param {Object} toX * @param {Object} toY */ function calcRadian(fromX, fromY, toX, toY){ // 直线的宽高 const height = Math.abs(fromY - toY) const width = Math.abs(fromX - toX) let radian = 0 if(toX > fromX && toY == fromY){ // 第一、四象限,直线水平向右 radian = 0 //console.log("第一、四象限,直线水平向右") }else if(toX == fromX && toY < fromY){ // 第一、二象限,直线垂直向上 radian = -Math.PI/2 //console.log("第一、二象限,直线垂直向上") }else if(toX < fromX && toY == fromY){ //第二、三象限,水平向左的箭头直线 //console.log("第二、三象限,水平向左的箭头直线") radian = Math.PI }else if(toX == fromX && toY > fromY){ //第三、四象限,垂直向下的箭头直线 //console.log("第三、四象限,垂直向下的箭头直线") radian = Math.PI/2 }else if(toX > fromX && toY < fromY){ // 适用与第一象限 radian = - Math.atan( height / width ) //console.log("第一象限") }else if(toX < fromX && toY < fromY){ // radian = Math.atan( width / height ) // 适用与第二象限 radian = Math.PI + Math.atan( height / width ) //console.log("第二象限") }else if(toX < fromX && toY > fromY){ // radian = Math.atan( width / height ) // 适用与第三象限 radian = Math.PI - Math.atan( height / width ) //console.log("第三象限") }else if(toX > fromX && toY > fromY){ // radian = Math.atan( width / height ) // 适用与第四象限 radian = Math.atan( height / width ) //console.log("第四象限") } return radian } ``` 原文出处:http://malaoshi.top/show_1IX8anjbTWOX.html