我在 Excel 表中有折线顶点。
ASSET_ID VERTEX_NUM X Y ANGLE_CHANGE
---------- ---------- ---------- ---------- ------------
10 1 118.56 3.8 null
10 2 118.62 1.03 null
10 3 121.93 1.03 ?
20 1 123.59 1.19 null
20 2 124.21 1.02 null
20 3 124.85 .96 ?
20 4 125.49 1.01 ?
20 5 126.11 1.16 ?
20 6 126.7 1.41 ?
20 7 127.24 1.75 ?
20 8 127.26 2.16 ? --I chose to put this point in the screenshot just because the change in angle is large. So it was easy to illustrate what I'm looking for (lots of room for markup).
20 9 127.36 2.56 ?
20 10 127.52 2.94 ?
20 11 127.75 3.29 ?
20 12 128.03 3.59 ?
30 1 129.84 1.26 null
30 2 133.26 2.88 null
我想确定点对点的“角度变化”是什么。
换句话说,给定点 1 和 2 之间的一条线,我如何计算到点 3 的角度变化?
假设您在 Excel 中的列是 A、B 等,X、Y、ANGLE_CHANGE 列分别是 C、D、E,第一个数据行是数字 2。
要找到角度,您可以对 E3 使用以下公式:
选择单元格 E3 并将小手柄向下拖动到下面的列上。
这使用了 ATAN 函数 ,它以弧度返回其结果,需要乘以
180/Pi
给出度数。您将通过一个简单的公式获得所需的 87 度(几乎是直角,几乎垂直)
=ATAN2(<current X>-<previous X>;<current Y>-<previous Y>)*180/PI()
就像
=ATAN2(C14-C13;D14-D13)*180/PI()
我建立在@harrymc 和@JohnSUN 的答案之上。
这就是我想出的:
有关的:
SDE.ST_Geometry 使用什么致密化方法将弧近似为线段?
通过 SQL 确定线是否具有真实曲线(Oracle 中的 SDE.ST_GEOMETRY)