专业编程基础技术教程

网站首页 > 基础教程 正文

已知两点坐标计算方位角

ccvgpt 2024-08-16 14:57:58 基础教程 10 ℃


//与X轴的夹角 在X轴下面

已知两点坐标计算方位角

public void Test2() {

var p1 = new Point(40, 30);

var p2= new Point(80, 60);

var angle = Math.Atan2((p2.Y - p1.Y), (p2.X - p1.X)); //弧度 0.6435011087932844

var theta= angle * (180 / Math.PI); //角度 36.86989764584402

MessageBox.Show(theta.ToString());

}

这是第四象限的。下面我这里还有jS版本的:



	// 坐标1
	let position1 = {
		lng: 118.112193,
		lat: 24.580612,

	}
	// 坐标2
	let position2 = {
		lng: 118.112494,
		lat: 24.580883
	}
	let valLng = position1.lng - position2.lng;
	let valLat = position1.lat - position2.lat;

	// 返回一个绝对值
	let absoluteLng = Math.abs(valLng);
	let absoluteLat = Math.abs(valLat);

	// 取得三角形的斜边
	let hypotenuse = Math.hypot(absoluteLng, absoluteLat);
	// 计算弧度
	let radina = Math.acos(absoluteLng / hypotenuse);

	// 计算角度
	let angle = Math.floor(radina * 180 / Math.PI);

	console.log("两坐标点计算出的角度为:", angle)

	// 计算出标记点真正旋转的角度
	if (valLng > 0) {
		if (valLat > 0) {
			// 第三象限
			angle = 360 - angle;
		} else {
			// 第二象限
			angle = angle;
		}
	} else {
		if (valLat > 0) {
			//第四象限
			angle = 180 + angle;
		} else {
			// 第一象限
			angle = 180 - angle;
		}
	}
	console.log("坐标点真正旋转的角度:", angle)

//两坐标点计算出的角度为: 41
//VM269:49 坐标点真正旋转的角度: 139

Tags:

最近发表
标签列表