Posts Tagged ‘acos’

Php圆周取点算法

星期一, 五月 27th, 2013 58 views

本篇的重点其实是圆周取点算法,说是Php只是因为通过Php的进行编码而已,使用其他语言均可。

首先概述一下圆周取点算法的需求:以 O(Xo,Yo) 为圆心,d 为半径画一个圆,从圆心角0度开始,依次显示出在这个圆上直线间距为 t 的所有点的坐标。

如图:

在这个圆 O上所有直线间距为t的点的坐标为 P1、P2…Pn

接下来看算法:

①如上图,通过圆的简单定理可以知道在同一个圆上当两个扇形的弦长即 t 相等时,其圆心角也是相等的,因此本算法可以将 t 转换为圆心角度数再做计算:

SinO` = t / 2r
∠O` = arcsin(SinO`)
∠O = 2∠O`

此时即将弦长 t 转换成了对应的圆心角。

②接下来我们根据圆心角计算出对应的点的坐标,使用公式如下:

Xn = Xo + r * Cos(0°* (n-1))
Yn = Yo + r * Sin(0°* (n-1))

此时Pn(Xn,Yn)即是我们需要求出的圆上的点。
(更多…)