Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


/(缩放旋转)

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

功能描述

将几何对象的每个坐标点与给定的POINT参数进行复数除法运算,实现缩放与旋转的组合变换。适用于POINT、BOX、PATH和CIRCLE等几何类型。/ 不仅可作为几何运算符,亦可作为算术运算符 /

提示

将点视为由实部和虚部组成的复数,再将其两个复数进行除法运算。
若将第二个 POINT 解释为向量,则该操作等同于将对象按向量的长度进行缩放,并以其与 x 轴的夹角为基准,绕原点进行顺时针旋转。

语法格式

L_OPERAND_TYP / R_OPERAND_TYP

输入参数

L_OPERAND_TYP(左操作数类型)R_OPERAND_TYP(右操作数类型)RET_TYPE(返回类型)
POINTPOINTPOINT
BOXPOINTBOX
PATHPOINTPATH
CIRCLEPOINTCIRCLE

输出结果

输出结果的类型根据输入参数类型决定,表1展示常用数据类型。

示例

sql
-- POINT复数除法运算
SQL> SELECT POINT('(2.0,0)') / POINT('(0,2.0)');

+--------+
| EXPR1  |
+--------+
| (0,-1) |
+--------+

-- 执行BOX(矩形)与POINT的复数除法运算
SQL> SELECT BOX(POINT('(0,1)'),POINT('(1,0)')) / POINT('(0,2.0)');

+------------------+
|      EXPR1       |
+------------------+
| (0.5,0),(0,-0.5) |
+------------------+

--PATH 几何PATH(路径)与POINT(点)进行复数除法运算,实现几何旋转的效果
SQL> SELECT PATH('((0,0),(1,0),(1,1))') / POINT(cosd(45), sind(45));

+-------------------------------------------------------------------------+
|                                  EXPR1                                  |
+-------------------------------------------------------------------------+
| ((0,0),(0.7071067811865476,-0.7071067811865476),(1.4142135623730951,0)) |
+-------------------------------------------------------------------------+

-- 执行CIRCLE(圆形)与POINT(点)的复数除法运算
SQL> SELECT CIRCLE('<(3,4),2>') / POINT('(1,2)');

+---------------------------------+
|              EXPR1              |
+---------------------------------+
| <(2.2,-0.4),0.8944271909999159> |
+---------------------------------+