我正在尝试找到在C#程序中计算两个圆的交点的最快最简单的方法。据我所知,有两种可能的方法,你得原谅我不知道它们的官方名称。
我们假设您知道两个圆的中心点和它们的确切半径,从而可以计算它们之间的距离,因此缺少的是交点坐标。这在标准的x-y坐标系上进行。
第一种是一种替换方法,类似于这里描述的方法,其中您结合两个圆的公式并隔离x或y,然后将其重新代入原始公式中得到一个二次方程,可以解出两个(或可能是一个或零)坐标轴的坐标,然后让您找到其他坐标轴上对应的坐标。
我看过的第二个参考文献是使用余弦定理方法确定角度,然后让您在网格上为每条边绘制一条线,并插入半径以找到实际的交点。
我已经写下了第一种方法的步骤,它似乎非常冗长。第二种方法需要一些研究/学习才能写出来,但听起来更简单。我从未将这样的过程转化为代码,因此我不知道哪种方法最适合该应用程序。有人可以给我建议吗?或者我可能完全错误地进行了操作?是否已经有库可以使用它而不必重新发明轮子?
一些背景: 我主要担心CPU成本来执行这些计算。我计划同时、反复地进行大量计算,因此希望找到最简单的方法来完成它。
我们假设您知道两个圆的中心点和它们的确切半径,从而可以计算它们之间的距离,因此缺少的是交点坐标。这在标准的x-y坐标系上进行。
第一种是一种替换方法,类似于这里描述的方法,其中您结合两个圆的公式并隔离x或y,然后将其重新代入原始公式中得到一个二次方程,可以解出两个(或可能是一个或零)坐标轴的坐标,然后让您找到其他坐标轴上对应的坐标。
我看过的第二个参考文献是使用余弦定理方法确定角度,然后让您在网格上为每条边绘制一条线,并插入半径以找到实际的交点。
我已经写下了第一种方法的步骤,它似乎非常冗长。第二种方法需要一些研究/学习才能写出来,但听起来更简单。我从未将这样的过程转化为代码,因此我不知道哪种方法最适合该应用程序。有人可以给我建议吗?或者我可能完全错误地进行了操作?是否已经有库可以使用它而不必重新发明轮子?
一些背景: 我主要担心CPU成本来执行这些计算。我计划同时、反复地进行大量计算,因此希望找到最简单的方法来完成它。