早教吧 育儿知识 作业答案 考试题库 百科 知识分享

C++怎么求圆弧上的坐标C++里,已知圆中心点(x0,y0),半径r,在圆的水平方向x坐标,求垂直方向y的坐标有没有函数或公式方便求出来的?

题目详情
C++怎么求圆弧上的坐标
C++里,
已知圆中心点(x0,y0),半径r,在圆的水平方向x坐标,求垂直方向y的坐标
有没有函数或公式方便求出来的?
▼优质解答
答案和解析
圆弧上一点的坐标:
圆心在[0,0] 时,x = r * cos(A); y = r * sin(A);
A 是逆时针向 的 角度,从x 轴起算.
圆中心点(x0,y0),时:
x = x0 + r * cos(A);
y = y0 + r * sin(A);
----------------------------------
已知 x0,y0,r,x 求 y:
令 c=cos(A),s = sin(A);
c = cos(A) = (x-x0) / r;
s = sin(A) = sqrt( 1.0 - c * c) ;
有2解,一正值,另一负值
y1 = y0 + r * s;
y2 = y0 - r * s;
-----------------------------------
x,y,r 构成一个直角三角形.
所以,圆心在[0,0] 时,x^2 + y^2 = r ^2.
圆心在[x0,y0] 时,(x-x0)^2 + (y-y0)^2 = r^2
已知 x0,y0,r,x 求 y,有2解
y1 = y0 + sqrt(r^2 - (x-x0)^2);
y2 = y0 - sqrt(r^2 - (x-x0)^2);