示例#1
0
        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);
            }
        }