如何从一个点创建一个多边形?
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)。
【讨论】:
这不是家庭作业 ;-)。无论如何,非常感谢您的帮助,这完美地回答了我的问题:-)!以上是关于如何从一个点创建一个多边形?的主要内容,如果未能解决你的问题,请参考以下文章