如何在StreamGeometry中绘制具有三个点的圆弧

时间:2014-03-14 15:07:17

标签: wpf geometry

我使用StreamGeometry对象来创建完整的数字。该图是一系列线条和弧线。圆弧全部由圆弧定义,由圆弧也经过的起点,终点和<冲击>中间点定义。如何将其转换为ArcTo所需的内容。我整个上午都在寻找解决方案。我会尝试自己计算数学。

1 个答案:

答案 0 :(得分:0)

1)找到具有普通几何的圆的半径

设A,B,C - 给出三个点(B是弧的中点),M是AC和弦的中点,然后 enter image description here

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)rotationAngle设置为atan2( OA x OC OA * OC )(交叉产品和标量) OA和OC载体的产物)

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