*
功能描述
伸展/旋转,将第一个参数的每个点乘以第二个POINT。适用于POINT、BOX、PATH、CIRCLE。
说明:
- 将点视为由实部和虚部表示的复数,并执行标准的复数乘法。
- 如果将第二个POINT解释为向量,这等价于将对象的大小和到原点的距离按向量的长度缩放,并以向量与x轴的夹角绕原点逆时针旋转。
数据类型
L_OPERAND_TYP(左操作数类型) | R_OPERAND_TYP(右操作数类型) | RET_TYPE(返回类型) |
---|---|---|
POINT | POINT | POINT |
BOX | POINT | BOX |
PATH | POINT | PATH |
CIRCLE | POINT | CIRCLE |
示例
POINT
sqlSELECT POINT('(2.0,0)') * POINT('(0,2.0)'); EXPR1 | ---------+ (0.0,4.0)|
BOX
sqlSELECT BOX(POINT('(0,1)'),POINT('(1,0)')) * POINT('(0,2.0)'); EXPR1 | ---------------------+ (1.0,-1.0),(0.0,-2.0)|
PATH
sqlSELECT PATH('((1,2),(3,4),(5,6))') * point('(2,2)'); EXPR1 | ---------------------------------+ ((2.0,4.0),(6.0,8.0),(10.0,12.0))| SELECT PATH('((0,0),(1,0),(1,1))') * point(cosd(45), sind(45)); EXPR1 | ---------------------------------------------------------------------------+ ((0.0,0.0),(0.7071067811865475,0.7071067811865475),(0.0,1.414213562373095))|
CIRCLE
sqlSELECT CIRCLE('<(3,4),2>') * POINT('(1,2)'); EXPR1 | ------------------------------+ <(-5.0,10.0),4.47213595499958>|