diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/DrawingViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/DrawingViewModel.cs index 6fa3cd1..449302c 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/DrawingViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/DrawingViewModel.cs @@ -28,16 +28,14 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels DiagramViewModel.DiagramOption.LayoutOption.GridCellSize = new Size(100, 100); DiagramViewModel.DiagramOption.LayoutOption.ShowGrid = false; DiagramViewModel.DiagramOption.LayoutOption.AllowDrop = true; + _service.DrawModeViewModel.DrawingDrawModeSelected = true; + _service.DrawModeViewModel.DrawingDrawMode = DrawMode.Select; } protected override void Init(bool initNew) { - DiagramViewModels = new ObservableCollection() - { - GetDiagramViewModel("页-1", DiagramType, initNew), - }; - DiagramViewModel = DiagramViewModels.FirstOrDefault(); + base.Init(initNew); DesignerItemViewModelBase line = new LineDrawingDesignerItemViewModel(DiagramViewModel, new List { new Point(38, 38), new Point(118, 118) }, true); DiagramViewModel.Add(line); @@ -91,7 +89,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels DiagramViewModel.Add(close); DesignerItemViewModelBase heart = new SharpDrawingDesignerItemViewModel(DiagramViewModel, DrawMode.ErasableHeart, new List { new Point(138, 238), new Point(218, 318) }, true); - DiagramViewModel.Add(heart); + DiagramViewModel.Add(heart); DesignerItemViewModelBase polyline = new PolylineDrawingDesignerItemViewModel(DiagramViewModel, new List { new Point(238, 238), new Point(298, 258), new Point(258, 298), new Point(318, 318) }, true); DiagramViewModel.Add(polyline); @@ -100,19 +98,84 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels DiagramViewModel.Add(polygon); //画正方形 - var drawingPoint1 = DrawingHelper.GetPoints(new Point(38, 338), 0, Enumerable.Repeat(new System.Tuple(80, 90), 4).ToList()); + var drawingPoint1 = DrawingHelper.GetPoints(new Point(38, 338), 0, Enumerable.Repeat(new System.Tuple(160, 90), 4).ToList()); DesignerItemViewModelBase directLine1 = new DirectLineDrawingDesignerItemViewModel(DiagramViewModel, drawingPoint1, true); DiagramViewModel.Add(directLine1); //画三角形 - var drawingPoint2 = DrawingHelper.GetPoints(new Point(138, 338), 0, Enumerable.Repeat(new System.Tuple(80, 120), 3).ToList()); + var drawingPoint2 = DrawingHelper.GetPoints(new Point(238, 338), 0, Enumerable.Repeat(new System.Tuple(160, 120), 3).ToList()); DesignerItemViewModelBase directLine2 = new DirectLineDrawingDesignerItemViewModel(DiagramViewModel, drawingPoint2, true); DiagramViewModel.Add(directLine2); //画五边形 - var drawingPoint3 = DrawingHelper.GetPoints(new Point(238, 338), 0, Enumerable.Repeat(new System.Tuple(100, 72), 5).ToList()); + var drawingPoint3 = DrawingHelper.GetPoints(new Point(438, 338), 0, Enumerable.Repeat(new System.Tuple(100, 72), 5).ToList()); DesignerItemViewModelBase directLine3 = new DirectLineDrawingDesignerItemViewModel(DiagramViewModel, drawingPoint3, true); DiagramViewModel.Add(directLine3); + + //画六角形 + List> tuple4 = new List>(); + for (int i = 0; i < 5; i++) + { + tuple4.Add(new System.Tuple(70, -144)); + tuple4.Add(new System.Tuple(70, 72)); + } + var drawingPoint4 = DrawingHelper.GetPoints(new Point(638, 338), 0, tuple4); + DesignerItemViewModelBase directLine4 = new DirectLineDrawingDesignerItemViewModel(DiagramViewModel, drawingPoint4, true); + DiagramViewModel.Add(directLine4); + + //画八边形 + List> tuple5 = new List>(); + for (int i = 0; i < 8; i++) + { + tuple5.Add(new System.Tuple(30, 90)); + tuple5.Add(new System.Tuple(30, -45)); + } + var drawingPoint5 = DrawingHelper.GetPoints(new Point(38, 538), 0, tuple5); + DesignerItemViewModelBase directLine5 = new DirectLineDrawingDesignerItemViewModel(DiagramViewModel, drawingPoint5, true); + DiagramViewModel.Add(directLine5); + + //画6个正三角形 + List> tuple6 = new List>(); + for (int i = 0; i < 6; i++) + { + for (int j = 0; j < 3; j++) + { + tuple6.Add(new System.Tuple(80, 120)); + } + tuple6.Add(new System.Tuple(0, 60)); + } + var drawingPoint6 = DrawingHelper.GetPoints(new Point(238, 538), 0, tuple6); + DesignerItemViewModelBase directLine6 = new DirectLineDrawingDesignerItemViewModel(DiagramViewModel, drawingPoint6, true); + DiagramViewModel.Add(directLine6); + + //画6个正六边形 + List> tuple7 = new List>(); + for (int i = 0; i < 6; i++) + { + for (int j = 0; j < 6; j++) + { + tuple7.Add(new System.Tuple(42, 60)); + } + tuple7.Add(new System.Tuple(0, 60)); + } + var drawingPoint7 = DrawingHelper.GetPoints(new Point(438, 538), 0, tuple7); + DesignerItemViewModelBase directLine7 = new DirectLineDrawingDesignerItemViewModel(DiagramViewModel, drawingPoint7, true); + DiagramViewModel.Add(directLine7); + + //画8个八角星 + List> tuple8 = new List>(); + for (int i = 0; i < 8; i++) + { + for (int j = 0; j < 8; j++) + { + tuple8.Add(new System.Tuple(20, 90)); + tuple8.Add(new System.Tuple(20, -45)); + } + tuple8.Add(new System.Tuple(0, 45)); + } + var drawingPoint8 = DrawingHelper.GetPoints(new Point(638, 538), 0, tuple8); + DesignerItemViewModelBase directLine8 = new DirectLineDrawingDesignerItemViewModel(DiagramViewModel, drawingPoint8, true); + DiagramViewModel.Add(directLine8); } public override void Dispose() diff --git a/AIStudio.Wpf.DiagramDesigner/Helpers/DrawingHelper.cs b/AIStudio.Wpf.DiagramDesigner/Helpers/DrawingHelper.cs index a87620c..ecd5cc3 100644 --- a/AIStudio.Wpf.DiagramDesigner/Helpers/DrawingHelper.cs +++ b/AIStudio.Wpf.DiagramDesigner/Helpers/DrawingHelper.cs @@ -21,7 +21,10 @@ namespace AIStudio.Wpf.DiagramDesigner foreach (var item in angleAndWidth) { nextPoint = GetEndPointByTrigonometric(thisPoint, thisAngle, item.Item1); - points.Add((Point)nextPoint); + //if (thisPoint != nextPoint) + { + points.Add(nextPoint); + } thisPoint = nextPoint; thisAngle = thisAngle + item.Item2;