如何从一个点创建一个多边形?

Posted

技术标签:

【中文标题】如何从一个点创建一个多边形?【英文标题】:How to create a polygon from a point? 【发布时间】:2013-01-19 07:33:17 【问题描述】:

在 GIS 中,我得到一个点,并应从中创建一个正多边形,基本上正是 this function 所做的。

不幸的是,我不知道如何实现这一点。我什至不知道在 Google 上寻找什么。

有什么想法吗?

PS:该系统基于 SQL Server,因此我使用的是 T-SQL(如果这有帮助/有害)。

【问题讨论】:

那么你需要一个 T-SQL 函数来完成 createRegularPolygon 函数所做的事情,我理解你的问题正确吗? 正是:-)。基本上,一个 INSERT 样本会很好,但基本上创建正多边形的部分就足够了。 【参考方案1】:

这听起来有点像家庭作业,如果我用通俗的语言而不是 T-SQL 来设计算法,请见谅

首先,我们将创建一个具有 n 条边且半径为 1 的多边形,围绕原点 (0,0),然后展示如何获得半径为 r、旋转 theta 和中心 (x) 的多边形的一般情况,y)。

在这个 n 边多边形中会有 n 个顶点。每个顶点都有坐标(cos(k/n),sin(k/n)),k的范围是0到n-1。从那里,为了得到你的多边形,从顶点 k 到顶点 k+1 画一条线。

现在,我们如何使它更大?如果多边形的半径为 r 而不是半径 1,则坐标将为 (r*cos(k/n), r*sin(k/n))。旋转角度θ? (r*cos((k/n)+theta), r*sin((k/n)+theta)。把它翻译到原点以外的地方?(x+r*cos((k/n)+theta) ), y+r*sin((k/n)+theta)。

【讨论】:

这不是家庭作业 ;-)。无论如何,非常感谢您的帮助,这完美地回答了我的问题:-)!

以上是关于如何从一个点创建一个多边形?的主要内容,如果未能解决你的问题,请参考以下文章

从空间点数据创建边界多边形,以便在传单中绘图

创建穿过所有给定点的非相交多边形

从最小和最大纬度/经度创建多边形(矩形)

如何计算多边形的圆角?

使用 JTS,如何从外部点找到多边形边界上最近的点?

如何判断点在一个区域内?用户绘制区域(射线法)判断点在多边形区域,报警区域