Q:

How can I draw a circular arc with three points in a StreamGeometry

I'm using a StreamGeometry object to create an complete figure. The figure is a series of lines and arcs. The arcs are all circular defined by a start point, end point, and a middle point that the arc also passes through. How can I convert that into what ArcTo requires. I've been searching for a solution all morning. I will try to work the math out myself.

A:

1) Find radius of circle with plain geometry
Let's A, B, C - three points given (B is middle point of arc), M is middle point of AC chord, then 

AM * CM = BM * B'M, where B' is point at another end of circle diameter, due to "intersecting chords theorem". 
AM=CM=AC/2, BM+B'M = 2R, so we can find circle radius R
(2R-BM) * BM = AM^2
2R-BM = AM^2/BM
R = (BM^2+AM^2)/(2*BM)

2) Now it is possible to find circle center with vector geometry
O = B + uBM * R, where uBM = BM/|BM| is unit vector
3) size parameter of ArcTo set to (R, R)
4) rotationAngle set to atan2(OA x OC, OA * OC) (crossproduct and scalar product of OA and OC vectors)
5) set the rest of ArcTo parameters as needed

