Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


ST_ANGLE

📄字数 722
👁️阅读量 加载中...

功能描述

计算两个向量之间的顺时针角度。

语法格式

sql

DOUBLE ST_ANGLE(GEOMETRY point1, GEOMETRY point2, GEOMETRY point3, GEOMETRY point4);
DOUBLE ST_ANGLE(GEOMETRY point1, GEOMETRY point2, GEOMETRY point3);
DOUBLE ST_ANGLE(GEOMETRY line1, GEOMETRY line2);

参数说明

  • point1:第一个点。
  • point2:第二个点。
  • point3:第三个点。
  • point4:第四个点。
  • line1:第一条线。
  • line2:第二条线。

函数返回类型

DOUBLE 类型

使用说明

  1. 函数 1:计算点 P1-P2-P3 所围成的角度。 如果提供了第四个点则计算角度点 P1-P2 和 P3-P4
  2. 函数 2:计算两个向量 S1-E1 和 S2-E2 之间的角度,由输入线的起点和终点定义
  3. 结果是 0 到 2π 弧度之间的正角。 可以使用函数 DEGREES 将弧度结果转换为度数。
  4. ST_ANGLE(P1,P2,P3) = ST_ANGLE(P2,P1,P2,P3)。
  5. 如果输入为2条线,则取每条线的收尾点作为4个点。

示例

三点之间的角度:

sql
SQL> SELECT DEGREES( ST_ANGLE('POINT(0 0)', 'POINT(10 10)', 'POINT(20 0)') );

+--------------+
|    EXPR1     |
+--------------+
| 2.700000e+02 |
+--------------+

(1 row)

由四个点定义的向量之间的角度:

sql
SQL> SELECT DEGREES( ST_ANGLE('POINT (10 10)', 'POINT (0 0)', 'POINT(90 90)', 'POINT (100 80)') );

+--------------+
|    EXPR1     |
+--------------+
| 2.700000e+02 |
+--------------+

(1 row)

由线的起点和终点定义的向量之间的角度:

sql
SQL> SELECT degrees( ST_Angle('LINESTRING(0 0, 0.3 0.7, 1 1)', 'LINESTRING(0 0, 0.2 0.5, 1 0)') );

+--------------+
|    EXPR1     |
+--------------+
| 4.500000e+01 |
+--------------+

(1 row)