private static IEnumerable <XElement> CreateHexagramLabels(double centerX, double centerY, double innerRadius, double outerRadius) { foreach (var hexagram in HexagramLL.HexagramsByInnerTrigram) { // S: 345, E: 355 // S: 355, E: 5 var point = CircleMath.GetPoint( HexagramOffset - (hexagram.Lines[0].StartDegree + (hexagram.Lines[5].EndDegree - hexagram.Lines[0].StartDegree).Truncate(360) / 2.0), innerRadius + (outerRadius - innerRadius) / 2.0, centerX, centerY); var text = SvgBuild .Text(point.X, point.Y, hexagram.Number.ToString()) .AddAttribute("text-anchor", "middle") .AddAttribute("alignment-baseline", "central") .AddAttribute("style", "font-family: Arial; font-size:20px"); // TODO: Add text style // TODO: Fix angle wrapping EndDegree - StartDegree yield return(text); } }