暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8c 函数和操作符 - 几何函数和操作符 之 几何操作符

菁菁 2022-10-25
163

  • +

描述:平移。

示例:

gbase=# SELECT box '((0,0),(1,1))' + point '(2.0,0)' AS RESULT;

   result    

-------------

 (3,1),(2,0)

(1 row)

  • -

描述:平移。

示例:

gbase=# SELECT box '((0,0),(1,1))' - point '(2.0,0)' AS RESULT;

    result     

---------------

 (-1,1),(-2,0)

(1 row)

  • *

描述:伸展/旋转。

示例:

gbase=# SELECT box '((0,0),(1,1))' * point '(2.0,0)' AS RESULT;

   result    

-------------

 (2,2),(0,0)

(1 row)

  •  /

描述:收缩/旋转。

示例:

 gbase=# SELECT box '((0,0),(2,2))' / point '(2.0,0)' AS RESULT;

   result    

-------------

 (1,1),(0,0)

(1 row)

  •  #

描述:两个图形交面。

示例:

gbase=# SELECT box '((1,-1),(-1,1))' # box '((1,1),(-2,-2))' AS RESULT;

 result

---------------

 (1,1),(-1,-1)

(1 row)

  •  #

描述:图形的路径数目或多边形顶点数。

示例:

gbase=# SELECT # path'((1,0),(0,1),(-1,0))' AS RESULT;

 result

--------

      3

(1 row)

  •  @-@

描述:图形的长度或者周长。

示例:

 gbase=# SELECT @-@ path '((0,0),(1,0))' AS RESULT;

 result

--------

      2

(1 row)

  •  @@

描述:图形的中心。

示例:

gbase=# SELECT @@ circle '((0,0),10)' AS RESULT;

 result

--------

 (0,0)

(1 row)

  •  <->

描述:两个图形之间的距离。

示例:

gbase=# SELECT circle '((0,0),1)' <-> circle '((5,0),1)' AS RESULT;

 result

--------

      3

(1 row)

  •  &&

描述:两个图形是否重叠(有一个共同点就为真)。

示例:

gbase=# SELECT box '((0,0),(1,1))' && box '((0,0),(2,2))' AS RESULT;

 result

--------

 t

(1 row)

  •  <<

描述:图形是否全部在另一个图形的左边(没有相同的横坐标)。

示例:

gbase=# SELECT circle '((0,0),1)' << circle '((5,0),1)' AS RESULT;

 result

--------

 t

(1 row)

  •  >>

描述:图形是否全部在另一个图形的右边(没有相同的横坐标)。

示例:

gbase=# SELECT circle '((5,0),1)' >> circle '((0,0),1)' AS RESULT;

 result

--------

 t

(1 row)

  •  &<

描述:图形的最右边是否不超过在另一个图形的最右边。

示例:

gbase=# SELECT box '((0,0),(1,1))' &< box '((0,0),(2,2))' AS RESULT;

 result

--------

 t

(1 row)

  •  &>

描述:图形的最左边是否不超过在另一个图形的最左边。

示例:

gbase=# SELECT box '((0,0),(3,3))' &> box '((0,0),(2,2))' AS RESULT;

 result

--------

 t

(1 row)

  •  <<|

描述:图形是否全部在另一个图形的下边(没有相同的纵坐标)。

示例:

gbase=# SELECT box '((0,0),(3,3))' <<| box '((3,4),(5,5))' AS RESULT;

 result

--------

 t

(1 row)

  •  |>>

描述:图形是否全部在另一个图形的上边(没有相同的纵坐标)。

示例:

gbase=# SELECT box '((3,4),(5,5))' |>> box '((0,0),(3,3))' AS RESULT;

 result

--------

 t

(1 row)

  •  &<|

描述:图形的最上边是否不超过另一个图形的最上边。

示例:

gbase=# SELECT box '((0,0),(1,1))' &<| box '((0,0),(2,2))' AS RESULT;

 result

--------

 t

(1 row)

  •  |&>

描述:图形的最下边是否不超过另一个图形的最下边。

示例:

 gbase=# SELECT box '((0,0),(3,3))' |&> box '((0,0),(2,2))' AS RESULT;

 result

--------

 t

  • (1 row) <^

描述:图形是否低于另一个图形(允许两个图形有接触)。

示例:

gbase=# SELECT box '((0,0),(-3,-3))' <^ box '((0,0),(2,2))' AS RESULT;

 result

--------

 t

(1 row)

  •  >^

描述:图形是否高于另一个图形(允许两个图形有接触)。

示例:

gbase=# SELECT box '((0,0),(2,2))' >^ box '((0,0),(-3,-3))'  AS RESULT;

 result

--------

 t

(1 row)

  •  ?#

描述:两个图形是否相交。

示例:

gbase=# SELECT lseg '((-1,0),(1,0))' ?# box '((-2,-2),(2,2))' AS RESULT;

 result

--------

 t

(1 row)

  •  ?-

描述:图形是否处于水平位置。

示例:

gbase=# SELECT ?- lseg '((-1,0),(1,0))' AS RESULT;

 result

--------

 t

(1 row)

  •  ?-

描述:图形是否水平对齐。

示例:

 gbase=# SELECT point '(1,0)' ?- point '(0,0)' AS RESULT;

 result

--------

 t

(1 row)

  •  ?|

描述:图形是否处于竖直位置。

示例:

gbase=# SELECT ?| lseg '((-1,0),(1,0))' AS RESULT;

 result

--------

 f

(1 row)

  •  ?|

描述:图形是否竖直对齐。

示例:

 gbase=# SELECT point '(0,1)' ?| point '(0,0)' AS RESULT;

 result

--------

 t

(1 row)

  •  ?-|

描述:两条线是否垂直。

示例:

gbase=# SELECT lseg '((0,0),(0,1))' ?-| lseg '((0,0),(1,0))' AS RESULT;

 result

--------

 t

(1 row)

  •  ?||

描述:两条线是否平行。

示例:

gbase=# SELECT lseg '((-1,0),(1,0))' ?|| lseg '((-1,2),(1,2))' AS RESULT;

 result

--------

 t

(1 row)

  •  @>

描述:图形是否包含另一个图形。

示例:

gbase=# SELECT circle '((0,0),2)' @> point '(1,1)' AS RESULT;

 result

--------

 t

(1 row)

  •  <@

描述:图形是否被包含于另一个图形。

示例:

gbase=# SELECT point '(1,1)' <@ circle '((0,0),2)' AS RESULT;

 result

--------

 t

(1 row)

  •  ~=

描述:两个图形是否相同。

示例:

gbase=# SELECT polygon '((0,0),(1,1))' ~= polygon '((1,1),(0,0))' AS RESULT;

 result

--------

 t

(1 row)

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论