【发布时间】:2018-06-22 07:53:28
【问题描述】:
我的线段 AB 由两个 2D 点 A,B 定义。
我要做的是找到一个点C,距离d 远离B。
这两个约束是BC 必须垂直于AB 并且BC 总是相对于AB 逆时针90 度数。
到目前为止,我有以下内容
double d = .01;
Coordinate C = new Coordinate(A.Lat - B.Lat, A.Long - B.Long);
C.Long = C.Long * A.Long * Math.Cos(90);
C.Lat = C.Lat * A.Lat * Math.Cos(90);
C.Long = A.Long + C.Long * d;
C.Lat = A.Lat + C.Lat * d;
基本上我要问的是,我在哪里做错了?是c#代码吗?是逻辑吗?使用这两个约束解决C 的步骤是什么。
【问题讨论】:
-
问题到底出在哪里,是C#部分的编程还是下面的几何/数学?
-
它在几何/数学中。我不认为我说得对
-
注意:这是删除 C# 部分和 C# 标签的提示。除了您在那里编码的内容之外,我根本看不到任何地理/数学,甚至没有将代码与图形相关联的描述。顺便说一句:您的代码中的一个快速错误是,通常角度不是以度数表示,而是以弧度表示。
-
这可能是 100%!让我检查一下
-
实际上没有必要计算 90° 的余弦 - 这是一个众所周知的常数......这是零,乘以零导致零 - 所以公式中似乎有错误因为最后 C 将具有与 A 相同的坐标
标签: c# algorithm math geometry 2d