- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在互联网上询问,我找到了一个计算从 A 点到 B 点的方位 Angular 的公式,假设现在它起作用了一半。
//Creates to points A and B and set their coordinates
var A = {
x : 250,
y : 250
};
var B = {
x : 100,
y : 250
};
var angle = Math.acos(
(A.y - B.y) /
Math.sqrt(
Math.pow(A.x - B.x, 2) +
Math.pow(A.y - B.y, 2)
) * (180 / Math.PI);
在这里摆弄:https://jsfiddle.net/7js7e90k/4/
现在B点(绿点)位于A点(白点)的左侧,显示的 Angular 应该是270°,但它显示的是90°。如果将 B 点设置到右侧(更改对象坐标),您将看到它也将显示 90°。
我需要它显示相对于北方的正确 Angular (0°),但它不会超过 180°,公式中需要更改一些内容。
最佳答案
由于 Math.acos()
返回 0 到 π 之间的值,而不是 0 到 2π 之间的值,因此您可以检查 A 点是在 B 点的左侧还是右侧,并添加额外的 180 ˚ 如果 A 是 B 的右边。
试试这个:
var ref_angle = Math.acos((A.y - B.y) / Math.sqrt(Math.pow(A.x - B.x, 2) + Math.pow(A.y - B.y, 2))) * (180 / Math.PI);
if (B.x >= A.x) {
var angle = ref_angle
}
else {
angle = ref_angle + 180
}
更新:
如果您想避免使用条件,则需要使用 Math.atan2()
。然而,Math.atan2() 测量相对于正 x 轴(东)的 Angular 并返回 -180° 到 180° 之间的值。我修改了下面的公式,获取相对于正 y 轴(北)的 Angular 并返回 0° 到 360° 之间的值:
var angle = ( ( ( -(Math.atan2((A.x-B.x),(A.y-B.y))*(180/Math.PI)) % 360) + 360) % 360);
看看这个更新工作 fiddle :https://jsfiddle.net/g7shjjxq/5/
关于Javascript + 数学 - 正确获取从 A 点到 B 点的方位 Angular ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34562518/
是否有机会为标记设置旋转?现在,我将 map 方位设置为一个标记的 Angular ,但其他标记应该有自己的标记方位。 目前,我正在使用这样的标记定义: var marker_el = documen
我正在尝试根据起点纬度/经度、方位角和距离找到目的地点。下面这个网站的计算器给出了我想要的结果。 http://www.movable-type.co.uk/scripts/latlong.html
大家好,我需要在我的 iPhone 应用程序中查找高度、方位和 GPS 精度。我已经在我的 Android 应用程序上完成了此操作。在android中,我是这样做的: public void onLo
第一次张贴在这里。 我正在对为桥梁检查 ROV 八旋翼飞行器收集的 GPS 数据进行一些数据分析。我们的八旋翼机在 ROS 上运行使用 3D 扫描激光雷达、立体视觉、INS 和其他一些巧妙的技术。我目
我试图通过仅以度数和距离(相对于另一个已放置的标记)指定其航向来放置标记 Google Maps API V.3。 无法在 SO 上找到任何类似的东西,在此先感谢。 最佳答案 最简单的方法是编写一个函
我是一名优秀的程序员,十分优秀!