C++怎么求圆弧上的坐标

2024-11-26 19:21:34
推荐回答(3个)
回答1:

圆弧上一点的坐标:
圆心在[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);

回答2:

应该先判断r与X0 和Y0大小吧然后分情况讨论下

回答3:

(x-x0)*(x-x0)+(y-y0)*(y-y0)=r*r,
所以y==y0+sqrt(r*r-(x-x0)*(x-x0))或y==y0-sqrt(r*r-(x-x0)*(x-x0))