已知两点坐标和角度,求圆心的计算 附c#

发布时间 2023-10-22 08:48:10作者: z526gy

本来想简单拿来主义,找一个结果找了半天没有拿来使用的,使用chartGPT试试,可能使用的是3.5版本,漏洞百出,过程完全不对,就只有自己去思考了。

1.先使用CAD画了一个样图,如下:

 2.

计算思路如下:

a)利用正弦原理求出半径长度,

b)根据勾股定理计算斜边长度

c)  最后计算圆心X,Y位置

3.c# 代码如下:

PointF culc(double x1, double y1, double x2,double y2,double ang )
{
    PointF p = new PointF(0, 0);
    double dx = 0, dy= 0;//两点中间距离

     dx =Math.Abs( (x1 + x2) )/ 2;
     double r = dx / (Math.Sin(ang / 2));
     dy = Math.Sqrt(Math.Pow(r, 2) - Math.Pow(dx, 2));
     p.X =Convert.ToSingle( x1 + dx);
     p.Y = Convert.ToSingle(y1 + dy);


      return p;
}