private void RenderEnergyCircle(SetUpPentagramModel model) { if (eventBaZiModel == null) { return; } var animalAbbreviations = new[] { "MC", "TR", "VB", "F", "P", "GI", "E", "RP", "C", "IG", "V", "R" }; var valueModels = model.GetAllValueModels(); var start = new Point(380, 400); var points = new List <Point> { start, new Point(start.X - 100, start.Y), new Point(start.X - 100, start.Y + 100), new Point(start.X, start.Y + 100), new Point(start.X + 150, start.Y), new Point(start.X + 50, start.Y), new Point(start.X + 50, start.Y + 100), new Point(start.X + 150, start.Y + 100), new Point(start.X + 300, start.Y), new Point(start.X + 200, start.Y), new Point(start.X + 200, start.Y + 100), new Point(start.X + 300, start.Y + 100) }; for (var i = 0; i < points.Count; i++) { AddTextToCanvas(points[i].X, points[i].Y, animalAbbreviations[i], valueModels[i].Color, 16); } var arrowsData = geometryPainter.GetEnergyCircleArrowsData(points); canvas.Children.Add(new Path { Data = Geometry.Parse(arrowsData), Stroke = Brushes.Black }); RenderEnergyCircleInnerText(points); var animalEnergyAbbrWithColor = new[] { GetAnimalAbbrWithColor(eventBaZiModel.Year), GetAnimalAbbrWithColor(eventBaZiModel.Month), GetAnimalAbbrWithColor(eventBaZiModel.Date) }; var entryPoints = EnergyCircle.EntryPoints.Select(x => (x, new List <string>())) .ToDictionary(x => x.Item1, x => x.Item2); RenderColoredArrows(animalEnergyAbbrWithColor, animalAbbreviations, points, entryPoints); }
private void RenderAnimalsLine(SetUpPentagramModel model) { var arrowsData = $"{geometryPainter.GetBigArrowData(new Point(10, 144))}" + $"{geometryPainter.GetBigArrowData(new Point(10, 254))}" + $"{geometryPainter.GetBigArrowData(new Point(10, 364))}" + $"{geometryPainter.GetSmallArrowData(new Point(65, 170))}" + $"{geometryPainter.GetSmallArrowData(new Point(65, 280))}" + $"{geometryPainter.GetSmallArrowData(new Point(65, 390))}"; canvas.Children.Add(new Path { Data = Geometry.Parse(arrowsData), Stroke = Brushes.Black }); var yPositions = new[] { 135, 161, 189, 215, 245, 271, 299, 325, 355, 381, 409, 435 }; var animalAbbreviations = new[] { "MC", "TR", "VB", "F", "P", "GI", "E", "RP", "C", "IG", "V", "R" }; var valueModels = model.GetAllValueModels(); var starData = ""; for (var a = 0; a < 12; a++) { AddTextToCanvas(30, yPositions[a], animalAbbreviations[a], valueModels[a].Color); if (valueModels[a].IsWeak && valueModels[a].Name != null) { var index = animalAbbreviations.Select((abbr, i) => new { abbr, i }) .Where(x => x.abbr == valueModels[a].Name).Select(x => x.i).First(); starData += geometryPainter.GetStarData(new Point(30, yPositions[index])); } if (valueModels[a].IsWeak && valueModels[a].Name == null) { starData += geometryPainter.GetStarData(new Point(30, yPositions[a])); } } canvas.Children.Add(new Path { Data = Geometry.Parse(starData), Stroke = Brushes.Blue }); }