在 GIS 中,我得到一个点,并从中创建一个正多边形,基本上正是这个函数的作用。
不幸的是,我不知道如何实现这一目标。我什至不知道在 Google 上寻找什么。
有任何想法吗?
PS:该系统基于 SQL Server,因此我使用的是 T-SQL(如果这有帮助/有害)。
在 GIS 中,我得到一个点,并从中创建一个正多边形,基本上正是这个函数的作用。
不幸的是,我不知道如何实现这一目标。我什至不知道在 Google 上寻找什么。
有任何想法吗?
PS:该系统基于 SQL Server,因此我使用的是 T-SQL(如果这有帮助/有害)。
这听起来有点像家庭作业,所以如果我用通俗的语言而不是 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)+θ)。