- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要帮助编写以下方法:
def get_new_location(current_location, target_location, distance_travelled):
...
...
return new_location
所有位置均为(纬度、经度)
我意识到地球有不同的模型(WGS-84、GRS-80,...),这些模型考虑到地球是椭球体这一事实。就我的目的而言,假设完美的球体就足够了,那么这种精度水平是不必要的。
更新
考虑到一些回复,我正在微调我的问题。
benjismith
认为我的问题无法得到解答,因为地球上的点之间存在不止一条最短路径。他以选票的形式得到了很多支持,所以我想有些事情我不明白,因为我不同意。
The midpoint between any two locations on a sphere is a circular arc.
我承认当两点完全相反时这是正确的。我的意思是,两个点虽然保留在球体表面上,但彼此之间的距离不能再远。在这种情况下,有无数条等距路径连接两个点。然而,这是一种边缘情况,而不是规则。在所有其他情况下,绝大多数情况下,只有一条最短路径。
举个例子:如果你握住一根穿过两个点的绳子,并将其拉紧,那么绳子稳定下来的可能路径是否只有一条(除了已经讨论过的边缘情况)?
现在,在提出问题之前,获取两点和航向之间的距离不是问题。
我想我应该问的是以下内容是否有效:
def get_new_location(current_location, target_location, percent_traveled):
new_location.lon = (1-percent_traveled)*current_location.lon+percent_traveled*target_location.lon
new_location.lat = (1-percent_traveled)*current_location.lat+percent_traveled*target_location.lat
return new_location
如果我要走这条路,我会遵循大圆、恒向线……还是会完全偏离?(由于德鲁·霍尔的回答,我现在知道了这些术语。)
最佳答案
正如 BenjiSmith 所说,可能有几条路径可以连接地球上的任何 A 和 B,但最受欢迎的两条路径(到目前为止!)是“大圆”和“恒向线”路径。
大圆给出最短距离(通过从两点和地球中心构建一个平面并沿着该平面内的圆弧)。
恒向线保持恒定的航向,牺牲一定的距离(在高纬度地区可能会很远)以方便使用。也就是说,在船上或飞机上,您只需指向所需的航向并一直行驶,直到到达目的地(而使用大圆圈时,航向会不断变化)。在中纬度地区,距离损失并不太严重。
请注意,两种路径类型在处理对映点(球体上彼此相对的点)时都存在涉及极点的不连续性和模糊性。
要构建一个大圆,您需要将这些点转换为 3D 笛卡尔坐标(我将省略这一步,但对于球形地球来说这是微不足道的,并且对于扁地球模型(a WGS-84)迭代地找到) .
Let a be the unit vector pointing at the start point from the center of the earth.
Let b be the unit vector pointing at the end point from the center of the earth.
Let r be the radius of the earth.
Let d be the (given) distance traveled.
构造垂直于 G.C. 的单位向量。通过计算单位向量a和b的叉积来计算平面。也就是说,令n = a x b。
(给定的)行进距离是矢量 *r***a** 绕 n 扫过某个角度 theta 所形成的弧长。回想一下完整大圆的周长是 2 * pi * r,我们发现 theta = d/r>.
通过围绕 n 旋转 *r***a** theta 弧度,可以找到与新位置相对应的笛卡尔点。将该笛卡尔点转换为纬度/经度,就完成了。
我不会在这里导出恒向线数学,但会说墨卡托 map 投影具有恒向线是直的属性。您可以使用墨卡托投影公式轻松构建恒向线,但您必须定义一些误差容限,以便可以将路径分成短的直线段。
祝你好运!
关于great-circle - 如果我在这里并朝着那里前进并且我已经覆盖了这么多地方,那么我在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/283045/
我把圆圈旋转了180度,我怎样才能让内圈粘在上面(不旋转它) 最佳答案 试试这个代码。我创建了我的 HTML 代码。您的类(class)只需更改即可。 CSS: .outer-circle{
我正在制作一个圆圈到圆圈的碰撞检测程序。我可以让球四处移动,但是当检测到碰撞时,球重叠得很远。有什么建议么?提前致谢! import javax.swing.*; import java.awt.*;
这是圆类: public class Circle { private double radius; private double x; private double y; }
我正在制作一个 HTML Canvas 演示,以了解有关圆到圆碰撞检测和响应的更多信息。我相信检测代码是正确的,但响应数学并不完全正确。 该演示是使用 TypeScript 实现的,它是 JavaSc
所以我想在 CSS 中找出一个反圆/切出的圆。目前我找到 this answer 由 ScottS . 他的代码非常适合我,现在我正在寻找相同的效果,但在 的另一边元素。因此,我需要在右侧切出而不是
我目前正尝试在 C++ 中创建一个 Circle 类,但是当我编译时,我收到一条错误消息,提示“重载的‘Circle’调用不明确。我是 C++ 的新手,不确定这意味着什么。我一直在使用在这里可以找到一
在我的 wip 游戏中,我必须实现 Circle-Circle 碰撞。为了实现这一点,我只需计算它们的中心 (x1-x2)² + (y1-y2)² 之间的平方距离。如果它小于它们的平方半径 (r1+r
我必须画一个倒数计时器圆圈,我正在使用 this open source图书馆。要求是圆圈充满绿色并在 x 秒内消失。我已经给回圆圈绿色并在其上画了一个白色圆圈,绿色圆圈看起来正在消失。 self.c
我有一个 UIView,我将其背景设为圆形: self.colourView.layer.cornerRadius = 350 self.colourView.clipsToBounds = tr
引用: http://tympanus.net/Development/IconHoverEffects/#set-7 当您滑过上面链接中的任何圆圈图标时,它会以曲线形式淡化(我相信这是弹出的圆圈后面
我想创建一个形状,我将其描述为“反圆”: 图片有点不准确,因为黑线应该沿着 div 元素的外边界继续。 这是我目前拥有的演示:http://jsfiddle.net/n9fTF/ 没有图像的 CSS
我可以将文本添加到我的草图中,但如果我可以将文本直接附加到圆圈上,我会希望它。这意味着如果一个圆圈被另一个圆圈覆盖,文本也会被覆盖。在更高的层面上不是,我发现 d3 模型很难以某种方式构造对象,使它们
我正在展示用 Python 的 Turtle 模块绘制的孙子图案,他要求看同心圆。我认为使用 turtle 的 circle() 会更快画他们而不是编写自己的代码来生成圆。哈!我被困住了。我看到所产生
我正在创建一个使用 map 的网络应用程序。在 map 上我正在创建圆圈并希望在 div 中显示半径。通过覆盖完成事件完成半径后,我能够显示半径。但我想在创建圆时显示 div 中的半径,以允许用户以自
编辑:我可以用半径除以 Angular 吗? 问题:为了学习 HTML5 Canvas 中的碰撞艺术,我目前正在尝试让整圆与分段圆(在本例中为半圆)发生碰撞。 我尝试过的:我的第一个想法是一个简单的圆
我发现了其他标题相似的话题,但在这些话题中找不到适合我的解决方案。 我试图通过将相等的宽度/高度与 border-radius:50% 相结合来生成完美圆形的输入标签,但边缘出现像素化。我已经为宽度/
我使用 Google Maps V3 API 创建了一个圆,还尝试制作了一个具有相同半径的标记圆。 问题:我创建的是倾斜的,而谷歌地图创建的是一个漂亮的圆圈。出了什么问题? Google map V3
这是我一直在处理的图像 目标是检测大圆圈内的小圆圈。 目前我所做的是将图像转换为灰度并应用阈值(cv2.THRESH_OTSU),从而产生此图像 在此之后,我使用我在stackoverflow上找到的
我正在尝试绘制一张图片,并且绘制了一个矩形,然后我想绘制一个弧形元素,但是这个元素必须是精确的,并且它只是矩形之外的圆的一部分形状。因此,我尝试使用 Arc patch 来创建相同的东西,但形状不匹配
我必须检测 javaFX 程序中两个“球”何时发生碰撞。每次单击按钮时,都会将一个新球添加到 Pane 中。我知道 getChildren() 返回一个可观察列表,其中包含每个球的节点,当我打印带有两
我是一名优秀的程序员,十分优秀!