我正在尝试使用中心和半径的坐标在 MySQL 中创建圆几何。我到处搜索...我在网站上的MySQL文档中找到的所有内容都是多边形的。可能是我在找错了地方。任何人都可以帮助我使用适当的SQL来帮助我创建一个表,该表将这个Circle几何存储为表中的一列? 另外,我甚至不确定在MySQL中是否有办法这样做?..我使用的版本是 MySQL 5.6。
提前致谢。
答案 0 :(得分:9)
从MySQL v5.6.1开始,您可以使用Buffer(g, d)
:
返回一个几何图形,该几何图形表示与几何值
g
的距离小于或等于距离d
的所有点。
显然,在你的情况下, g
应该是圆圈中心的点, d
应该是它的半径。
答案 1 :(得分:2)
有两个部分: 答:对于给定的测试点,您必须检查它们与给定圆的关系。 B.你想在给定圆周上生成点。
A.是的,首先取你给定点(测试点)和圆点中心之间的距离。这两个点都在纬度和经度中定义。两点(x1,y1)和(x2,y2)之间的距离公式是距离d = sqrt [(x2-x1)^ 2 +(y2-y1)^ 2]。 现在,
B中。在一个圆中,总角度θ为360度或2 * Pi弧度。 对于给定的圆,其中心为(x1,y1),半径为r。
x = x1 + r * cos(theta)
y = y1 + r * sin(theta)
其中,theta从零运行到2 * Pi,Pi是3.1415。
取决于你的表现。示例:如果您想要圆上10个点,则增加=(2 * Pi-Zero)/ 10.
第一个θ为零,然后θ为零+增量,则θ为零+增量+增量,即2 *增量,然后为零+ 3 *增量,然后依此类推。除非你得到等于2 * Pi。
对于以上所有,计算x和y。这些所有x和y坐标点都在圆的圆周上。