private void UpdateAnchorPosition() { Point point, tangent; var path = this.PathGeometry; path.GetPointAtFractionLength(0, out point, out tangent); this.SourceAnchorAngle = ModelingHelper.ToAngle(-tangent.Y, -tangent.X); this.SourceAnchorPosition = point; path.GetPointAtFractionLength(1, out point, out tangent); this.SinkAnchorAngle = ModelingHelper.ToAngle(tangent.Y, tangent.X); this.SinkAnchorPosition = point; path.GetPointAtFractionLength(0.5, out point, out tangent); this.LabelPosition = this.CenterPoint = point; }
/// <summary> /// 计算某个点到矩形中点的角度。 /// </summary> /// <param name="center"></param> /// <param name="point"></param> /// <returns></returns> private static double AngleFromCenter(Point center, Point point) { return(ModelingHelper.ToAngle(point.Y - center.Y, point.X - center.X)); }