Wpf 如何在流线几何体中绘制具有三个点的圆弧

Wpf 如何在流线几何体中绘制具有三个点的圆弧,wpf,geometry,Wpf,Geometry,我正在使用一个StreamGeometry对象创建一个完整的图形。该图形是一系列直线和圆弧。圆弧都是圆形的,由圆弧的起点、终点和中点定义。我如何将其转换为ArcTo所需的内容。我整个上午都在寻找解决办法。我会试着自己算出这道数学题。1)用普通几何体求圆的半径 让我们A,B,C-给定三个点(B是弧的中点),M是AC弦的中点,然后 AM*CM=BM*B'M,其中B'是圆直径另一端的点,根据“相交弦定理” AM=CM=AC/2,BM+B'M=2R,所以我们可以找到圆半径R (2R-BM) * BM

我正在使用一个
StreamGeometry
对象创建一个完整的图形。该图形是一系列直线和圆弧。圆弧都是圆形的,由圆弧的起点、终点和中点定义。我如何将其转换为
ArcTo
所需的内容。我整个上午都在寻找解决办法。我会试着自己算出这道数学题。

1)用普通几何体求圆的半径

让我们A,B,C-给定三个点(B是弧的中点),M是AC弦的中点,然后

AM*CM=BM*B'M
,其中B'是圆直径另一端的点,根据“相交弦定理”

AM=CM=AC/2,BM+B'M=2R
,所以我们可以找到圆半径R

(2R-BM) * BM = AM^2
2R-BM = AM^2/BM
R = (BM^2+AM^2)/(2*BM)
2) 现在可以用矢量几何找到圆心了

O=B+uBM*R,其中uBM=BM/BM是单位向量

3) ArcTo的大小参数设置为(R,R)

4) 旋转角度设置为atan2(OAxOCOA*OC)(OA和OC向量的叉积和标量积)


5) 根据需要设置ArcTo的其余参数

OK,然后使用更复杂的方法(例如,这里的等式28-34:)是的,谢谢。我自己算的。我只是想知道是否有人有一个图书馆或一个快速公式,这样我就不必浪费时间去弄清楚了。