通过圆心半径值,动态计算圆上点,拟合一个园
通过圆心以及半径大小,我们可以确定一个园的位置以及大小,可以手动通过圆规等工具进行绘制出来,但圆上的点位如何进行一遍计算呢?
通过简单的三角函数我们就能够计算出圆上的每一个点的位置了;
定位计算方式如下图所示
圆上的每一个点(x,y)都可以通过角度以及已知的半径和圆心进行计算出来;
通过角度A,以及三角函数sin函数可以得知 △Y = sinAR;
通过角度A,以及三角函数cos函数可以得知 △X = cosAR;
同时我们可以知道点(x,y)的位置是相对于圆心(10,10)的偏移了(△X,△Y),可以得到如下:
x = Rx + △X;
y = Ry + △Y;
下面是通过程序进行计算圆上的N个点,可以查看效果喔
double cur_x(0.0), cur_y(0.0), cur_angle(0.0), single_angle(0.0);
int N = 40; // 计算圆上的点位个数
single_angle = 2 * PI / point_size; // 间隔多少度进行计算一个点位(弧度)
double temp_x, temp_y;
double radius(10.0), radius_x(10.0), radius_y(10.0); // 圆心半径
for (int i = 0; i < N; i++){
cur_angle = single_angle * i;
temp_x = cos(cur_angle) * radius;
temp_y = sin(cur_angle) * radius;
cur_x = temp_x + radius_x;
cur_y = temp_y + radius_y;
}