Add Shape Drawing and change inked strokes' color
@ -10,6 +10,7 @@
|
|||||||
<ui:ThemeResources RequestedTheme="Light" />
|
<ui:ThemeResources RequestedTheme="Light" />
|
||||||
<ui:XamlControlsResources />
|
<ui:XamlControlsResources />
|
||||||
<ResourceDictionary Source="Resources/SeewoImageDictionary.xaml"/>
|
<ResourceDictionary Source="Resources/SeewoImageDictionary.xaml"/>
|
||||||
|
<ResourceDictionary Source="Resources/DrawShapeImageDictionary.xaml"/>
|
||||||
</ResourceDictionary.MergedDictionaries>
|
</ResourceDictionary.MergedDictionaries>
|
||||||
</ResourceDictionary>
|
</ResourceDictionary>
|
||||||
</Application.Resources>
|
</Application.Resources>
|
||||||
|
@ -181,6 +181,10 @@
|
|||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
<Generator>MSBuild:Compile</Generator>
|
<Generator>MSBuild:Compile</Generator>
|
||||||
</Page>
|
</Page>
|
||||||
|
<Page Include="Resources\DrawShapeImageDictionary.xaml">
|
||||||
|
<Generator>MSBuild:Compile</Generator>
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</Page>
|
||||||
<Page Include="Resources\SeewoImageDictionary.xaml">
|
<Page Include="Resources\SeewoImageDictionary.xaml">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
<Generator>MSBuild:Compile</Generator>
|
<Generator>MSBuild:Compile</Generator>
|
||||||
|
@ -777,6 +777,23 @@
|
|||||||
</Border>
|
</Border>
|
||||||
</Grid>
|
</Grid>
|
||||||
<ui:SymbolIcon Symbol="SelectAll" Foreground="#666666" MouseUp="SymbolIconSelect_MouseUp"/>
|
<ui:SymbolIcon Symbol="SelectAll" Foreground="#666666" MouseUp="SymbolIconSelect_MouseUp"/>
|
||||||
|
<Grid Margin="3,5,0,5">
|
||||||
|
<Image MouseUp="ImageDrawShape_MouseUp" Margin="-2.5" Source="{DynamicResource DrawShapeImageSource.DrawShapeIcon}"/>
|
||||||
|
<Border x:Name="BorderDrawShape" Visibility="Visible" Background="#9FFFFFFF" BorderBrush="#BF666666" BorderThickness="1"
|
||||||
|
CornerRadius="8" Margin="-158,-65,-158,30" Height="50">
|
||||||
|
<ui:SimpleStackPanel Spacing="10" Orientation="{Binding ElementName=StackPanelFloatingBar, Path=Orientation}">
|
||||||
|
<Image Margin="10,12,0,12" MouseUp="BtnDrawLine_Click" Source="{DynamicResource DrawShapeImageSource.Line}"/>
|
||||||
|
<Image Margin="-4,12,0,12" MouseUp="BtnDrawDashedLine_Click" Source="{DynamicResource DrawShapeImageSource.DashedLine}"/>
|
||||||
|
<Image Margin="-4,12,3,12" MouseUp="BtnDrawArrow_Click" Source="{DynamicResource DrawShapeImageSource.ArrowLine}"/>
|
||||||
|
<Image Margin="0,11" MouseUp="BtnDrawRectangle_Click" Source="{DynamicResource DrawShapeImageSource.Rectangle}"/>
|
||||||
|
<Image Margin="0,10" MouseUp="BtnDrawEllipse_Click" Source="{DynamicResource DrawShapeImageSource.Ellipse}"/>
|
||||||
|
<Image Margin="0,10" MouseUp="BtnDrawCircle_Click" Source="{DynamicResource DrawShapeImageSource.Circle}"/>
|
||||||
|
<Image Margin="3,10,2,10" MouseUp="BtnDrawCylinder_Click" Source="{DynamicResource DrawShapeImageSource.Cylinder}"/>
|
||||||
|
<Image Margin="2,12.5,2.5,10" MouseUp="BtnDrawCone_Click" Source="{DynamicResource DrawShapeImageSource.Cone}"/>
|
||||||
|
<Image Margin="2,12.5,2.5,10" MouseUp="BtnDrawCuboid_Click" Source="{DynamicResource DrawShapeImageSource.Cuboid}"/>
|
||||||
|
</ui:SimpleStackPanel>
|
||||||
|
</Border>
|
||||||
|
</Grid>
|
||||||
<Viewbox Margin="0,2">
|
<Viewbox Margin="0,2">
|
||||||
<Grid>
|
<Grid>
|
||||||
<ui:SymbolIcon Symbol="Undo" Foreground="#666666"
|
<ui:SymbolIcon Symbol="Undo" Foreground="#666666"
|
||||||
|
@ -51,6 +51,7 @@ namespace Ink_Canvas
|
|||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
BorderSettings.Visibility = Visibility.Collapsed;
|
BorderSettings.Visibility = Visibility.Collapsed;
|
||||||
StackPanelToolButtons.Visibility = Visibility.Collapsed;
|
StackPanelToolButtons.Visibility = Visibility.Collapsed;
|
||||||
|
BorderDrawShape.Visibility = Visibility.Collapsed;
|
||||||
|
|
||||||
if (App.StartArgs.Contains("-b")) //-b border
|
if (App.StartArgs.Contains("-b")) //-b border
|
||||||
{
|
{
|
||||||
@ -1069,11 +1070,27 @@ namespace Ink_Canvas
|
|||||||
}
|
}
|
||||||
BtnHideInkCanvas_Click(BtnHideInkCanvas, null);
|
BtnHideInkCanvas_Click(BtnHideInkCanvas, null);
|
||||||
}
|
}
|
||||||
inkCanvas.IsManipulationEnabled = true;
|
|
||||||
drawingShapeMode = 0;
|
StrokeCollection strokes = inkCanvas.GetSelectedStrokes();
|
||||||
inkCanvas.EditingMode = InkCanvasEditingMode.Ink;
|
if (strokes.Count != 0)
|
||||||
CancelSingleFingerDragMode();
|
{
|
||||||
forceEraser = false;
|
foreach (Stroke stroke in strokes)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
stroke.DrawingAttributes.Color = inkCanvas.DefaultDrawingAttributes.Color;
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
inkCanvas.IsManipulationEnabled = true;
|
||||||
|
drawingShapeMode = 0;
|
||||||
|
inkCanvas.EditingMode = InkCanvasEditingMode.Ink;
|
||||||
|
CancelSingleFingerDragMode();
|
||||||
|
forceEraser = false;
|
||||||
|
}
|
||||||
|
|
||||||
// 改变选中提示
|
// 改变选中提示
|
||||||
ViewboxBtnColorBlackContent.Visibility = Visibility.Collapsed;
|
ViewboxBtnColorBlackContent.Visibility = Visibility.Collapsed;
|
||||||
@ -1362,6 +1379,10 @@ namespace Ink_Canvas
|
|||||||
BorderClearInDelete.Visibility = Visibility.Collapsed;
|
BorderClearInDelete.Visibility = Visibility.Collapsed;
|
||||||
|
|
||||||
iniP = e.GetTouchPoint(inkCanvas).Position;
|
iniP = e.GetTouchPoint(inkCanvas).Position;
|
||||||
|
if (drawingShapeMode == 9 && isFirstTouchCuboid == false)
|
||||||
|
{
|
||||||
|
MouseTouchMove(iniP);
|
||||||
|
}
|
||||||
inkCanvas.Opacity = 1;
|
inkCanvas.Opacity = 1;
|
||||||
|
|
||||||
double boundsWidth = GetTouchBoundWidth(e);
|
double boundsWidth = GetTouchBoundWidth(e);
|
||||||
@ -2422,6 +2443,23 @@ namespace Ink_Canvas
|
|||||||
|
|
||||||
#region Shape Drawing
|
#region Shape Drawing
|
||||||
|
|
||||||
|
#region Floating Bar Control
|
||||||
|
|
||||||
|
private void ImageDrawShape_MouseUp(object sender, MouseButtonEventArgs e)
|
||||||
|
{
|
||||||
|
if (BorderDrawShape.Visibility == Visibility.Visible)
|
||||||
|
{
|
||||||
|
BorderDrawShape.Visibility = Visibility.Collapsed;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
BorderDrawShape.Visibility = Visibility.Visible;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion Floating Bar Control
|
||||||
|
|
||||||
|
|
||||||
int drawingShapeMode = 0;
|
int drawingShapeMode = 0;
|
||||||
|
|
||||||
private void BtnPen_Click(object sender, RoutedEventArgs e)
|
private void BtnPen_Click(object sender, RoutedEventArgs e)
|
||||||
@ -2433,7 +2471,7 @@ namespace Ink_Canvas
|
|||||||
CancelSingleFingerDragMode();
|
CancelSingleFingerDragMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void BtnDrawLine_Click(object sender, RoutedEventArgs e)
|
private void BtnDrawLine_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
forceEraser = true;
|
forceEraser = true;
|
||||||
drawingShapeMode = 1;
|
drawingShapeMode = 1;
|
||||||
@ -2442,7 +2480,16 @@ namespace Ink_Canvas
|
|||||||
CancelSingleFingerDragMode();
|
CancelSingleFingerDragMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void BtnDrawArrow_Click(object sender, RoutedEventArgs e)
|
private void BtnDrawDashedLine_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
forceEraser = true;
|
||||||
|
drawingShapeMode = 8;
|
||||||
|
inkCanvas.EditingMode = InkCanvasEditingMode.None;
|
||||||
|
inkCanvas.IsManipulationEnabled = true;
|
||||||
|
CancelSingleFingerDragMode();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BtnDrawArrow_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
forceEraser = true;
|
forceEraser = true;
|
||||||
drawingShapeMode = 2;
|
drawingShapeMode = 2;
|
||||||
@ -2451,7 +2498,7 @@ namespace Ink_Canvas
|
|||||||
CancelSingleFingerDragMode();
|
CancelSingleFingerDragMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void BtnDrawRectangle_Click(object sender, RoutedEventArgs e)
|
private void BtnDrawRectangle_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
forceEraser = true;
|
forceEraser = true;
|
||||||
drawingShapeMode = 3;
|
drawingShapeMode = 3;
|
||||||
@ -2460,7 +2507,7 @@ namespace Ink_Canvas
|
|||||||
CancelSingleFingerDragMode();
|
CancelSingleFingerDragMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void BtnDrawEllipse_Click(object sender, RoutedEventArgs e)
|
private void BtnDrawEllipse_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
forceEraser = true;
|
forceEraser = true;
|
||||||
drawingShapeMode = 4;
|
drawingShapeMode = 4;
|
||||||
@ -2469,6 +2516,45 @@ namespace Ink_Canvas
|
|||||||
CancelSingleFingerDragMode();
|
CancelSingleFingerDragMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void BtnDrawCircle_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
forceEraser = true;
|
||||||
|
drawingShapeMode = 5;
|
||||||
|
inkCanvas.EditingMode = InkCanvasEditingMode.None;
|
||||||
|
inkCanvas.IsManipulationEnabled = true;
|
||||||
|
CancelSingleFingerDragMode();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BtnDrawCylinder_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
forceEraser = true;
|
||||||
|
drawingShapeMode = 6;
|
||||||
|
inkCanvas.EditingMode = InkCanvasEditingMode.None;
|
||||||
|
inkCanvas.IsManipulationEnabled = true;
|
||||||
|
CancelSingleFingerDragMode();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BtnDrawCone_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
forceEraser = true;
|
||||||
|
drawingShapeMode = 7;
|
||||||
|
inkCanvas.EditingMode = InkCanvasEditingMode.None;
|
||||||
|
inkCanvas.IsManipulationEnabled = true;
|
||||||
|
CancelSingleFingerDragMode();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BtnDrawCuboid_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
forceEraser = true;
|
||||||
|
drawingShapeMode = 9;
|
||||||
|
isFirstTouchCuboid = true;
|
||||||
|
CuboidFrontRectIniP = new Point();
|
||||||
|
CuboidFrontRectEndP = new Point();
|
||||||
|
inkCanvas.EditingMode = InkCanvasEditingMode.None;
|
||||||
|
inkCanvas.IsManipulationEnabled = true;
|
||||||
|
CancelSingleFingerDragMode();
|
||||||
|
}
|
||||||
|
|
||||||
private void inkCanvas_TouchMove(object sender, TouchEventArgs e)
|
private void inkCanvas_TouchMove(object sender, TouchEventArgs e)
|
||||||
{
|
{
|
||||||
if (isSingleFingerDragMode) return;
|
if (isSingleFingerDragMode) return;
|
||||||
@ -2476,27 +2562,6 @@ namespace Ink_Canvas
|
|||||||
{
|
{
|
||||||
if (isLastTouchEraser)
|
if (isLastTouchEraser)
|
||||||
{
|
{
|
||||||
//if (inkCanvas.EditingMode != InkCanvasEditingMode.EraseByStroke)
|
|
||||||
//{
|
|
||||||
// inkCanvas.EditingMode = InkCanvasEditingMode.EraseByStroke;
|
|
||||||
//}
|
|
||||||
//MessageBox.Show(inkCanvas.EditingMode.ToString());
|
|
||||||
//if (inkCanvas.EditingMode == InkCanvasEditingMode.EraseByPoint || inkCanvas.EditingMode == InkCanvasEditingMode.EraseByStroke)
|
|
||||||
//{
|
|
||||||
|
|
||||||
//}
|
|
||||||
//double boundsWidth = e.GetTouchPoint(null).Bounds.Width;
|
|
||||||
//if (boundsWidth > BoundsWidth * 1.7)
|
|
||||||
//{
|
|
||||||
// inkCanvas.EraserShape = new EllipseStylusShape(boundsWidth * 1.5, boundsWidth * 1.5);
|
|
||||||
// inkCanvas.EditingMode = InkCanvasEditingMode.EraseByPoint;
|
|
||||||
//}
|
|
||||||
//else
|
|
||||||
//{
|
|
||||||
// inkCanvas.EraserShape = new RectangleStylusShape(8, 8);
|
|
||||||
// //inkCanvas.EraserShape = new EllipseStylusShape(boundsWidth * 1.5, boundsWidth * 1.5);
|
|
||||||
// inkCanvas.EditingMode = InkCanvasEditingMode.EraseByStroke;
|
|
||||||
//}
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (isWaitUntilNextTouchDown) return;
|
if (isWaitUntilNextTouchDown) return;
|
||||||
@ -2506,6 +2571,7 @@ namespace Ink_Canvas
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
inkCanvas.Strokes.Remove(lastTempStroke);
|
inkCanvas.Strokes.Remove(lastTempStroke);
|
||||||
|
inkCanvas.Strokes.Remove(lastTempStrokeCollection);
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
return;
|
return;
|
||||||
@ -2520,10 +2586,11 @@ namespace Ink_Canvas
|
|||||||
|
|
||||||
private void MouseTouchMove(Point endP)
|
private void MouseTouchMove(Point endP)
|
||||||
{
|
{
|
||||||
//System.Windows.Point endP = e.GetTouchPoint(inkCanvas).Position;
|
|
||||||
List<System.Windows.Point> pointList;
|
List<System.Windows.Point> pointList;
|
||||||
StylusPointCollection point;
|
StylusPointCollection point;
|
||||||
Stroke stroke;
|
Stroke stroke;
|
||||||
|
StrokeCollection strokes = new StrokeCollection();
|
||||||
|
Point newIniP = iniP;
|
||||||
switch (drawingShapeMode)
|
switch (drawingShapeMode)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
@ -2544,6 +2611,16 @@ namespace Ink_Canvas
|
|||||||
lastTempStroke = stroke;
|
lastTempStroke = stroke;
|
||||||
inkCanvas.Strokes.Add(stroke);
|
inkCanvas.Strokes.Add(stroke);
|
||||||
break;
|
break;
|
||||||
|
case 8:
|
||||||
|
strokes.Add(GenerateDashedLineStrokeCollection(iniP, endP));
|
||||||
|
try
|
||||||
|
{
|
||||||
|
inkCanvas.Strokes.Remove(lastTempStrokeCollection);
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
lastTempStrokeCollection = strokes;
|
||||||
|
inkCanvas.Strokes.Add(strokes);
|
||||||
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
double w = 30, h = 10;
|
double w = 30, h = 10;
|
||||||
double theta = Math.Atan2(iniP.Y - endP.Y, iniP.X - endP.X);
|
double theta = Math.Atan2(iniP.Y - endP.Y, iniP.X - endP.X);
|
||||||
@ -2554,9 +2631,9 @@ namespace Ink_Canvas
|
|||||||
{
|
{
|
||||||
new Point(iniP.X, iniP.Y),
|
new Point(iniP.X, iniP.Y),
|
||||||
new Point(endP.X , endP.Y),
|
new Point(endP.X , endP.Y),
|
||||||
new Point(endP.X + (w*cost - h*sint), endP.Y + (w*sint + h*cost)),
|
new Point(endP.X + (w * cost - h * sint), endP.Y + (w * sint + h * cost)),
|
||||||
new Point(endP.X,endP.Y),
|
new Point(endP.X,endP.Y),
|
||||||
new Point(endP.X + (w*cost + h*sint), endP.Y - (h*cost - w*sint))
|
new Point(endP.X + (w * cost + h * sint), endP.Y - (h * cost - w * sint))
|
||||||
};
|
};
|
||||||
point = new StylusPointCollection(pointList);
|
point = new StylusPointCollection(pointList);
|
||||||
stroke = new Stroke(point)
|
stroke = new Stroke(point)
|
||||||
@ -2593,7 +2670,7 @@ namespace Ink_Canvas
|
|||||||
inkCanvas.Strokes.Add(stroke);
|
inkCanvas.Strokes.Add(stroke);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
pointList = GenerateEclipseGeometry(iniP, endP);
|
pointList = GenerateEllipseGeometry(iniP, endP);
|
||||||
point = new StylusPointCollection(pointList);
|
point = new StylusPointCollection(pointList);
|
||||||
stroke = new Stroke(point)
|
stroke = new Stroke(point)
|
||||||
{
|
{
|
||||||
@ -2607,30 +2684,335 @@ namespace Ink_Canvas
|
|||||||
lastTempStroke = stroke;
|
lastTempStroke = stroke;
|
||||||
inkCanvas.Strokes.Add(stroke);
|
inkCanvas.Strokes.Add(stroke);
|
||||||
break;
|
break;
|
||||||
|
case 5:
|
||||||
|
double R = GetDistance(iniP, endP);
|
||||||
|
pointList = GenerateEllipseGeometry(new Point(iniP.X - R, iniP.Y - R), new Point(iniP.X + R, iniP.Y + R));
|
||||||
|
point = new StylusPointCollection(pointList);
|
||||||
|
stroke = new Stroke(point)
|
||||||
|
{
|
||||||
|
DrawingAttributes = inkCanvas.DefaultDrawingAttributes.Clone()
|
||||||
|
};
|
||||||
|
try
|
||||||
|
{
|
||||||
|
inkCanvas.Strokes.Remove(lastTempStroke);
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
lastTempStroke = stroke;
|
||||||
|
inkCanvas.Strokes.Add(stroke);
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
newIniP = iniP;
|
||||||
|
if (iniP.Y > endP.Y)
|
||||||
|
{
|
||||||
|
newIniP = new Point(iniP.X, endP.Y);
|
||||||
|
endP = new Point(endP.X, iniP.Y);
|
||||||
|
}
|
||||||
|
double topA = Math.Abs(newIniP.X - endP.X);
|
||||||
|
double topB = topA / 2.646;
|
||||||
|
//顶部椭圆
|
||||||
|
pointList = GenerateEllipseGeometry(new Point(newIniP.X, newIniP.Y - topB / 2), new Point(endP.X, newIniP.Y + topB / 2));
|
||||||
|
point = new StylusPointCollection(pointList);
|
||||||
|
stroke = new Stroke(point)
|
||||||
|
{
|
||||||
|
DrawingAttributes = inkCanvas.DefaultDrawingAttributes.Clone()
|
||||||
|
};
|
||||||
|
strokes.Add(stroke.Clone());
|
||||||
|
//底部椭圆
|
||||||
|
pointList = GenerateEllipseGeometry(new Point(newIniP.X, endP.Y - topB / 2), new Point(endP.X, endP.Y + topB / 2), false, true);
|
||||||
|
point = new StylusPointCollection(pointList);
|
||||||
|
stroke = new Stroke(point)
|
||||||
|
{
|
||||||
|
DrawingAttributes = inkCanvas.DefaultDrawingAttributes.Clone()
|
||||||
|
};
|
||||||
|
strokes.Add(stroke.Clone());
|
||||||
|
strokes.Add(GenerateDashedLineEllipseStrokeCollection(new Point(newIniP.X, endP.Y - topB / 2), new Point(endP.X, endP.Y + topB / 2), true, false));
|
||||||
|
//左侧
|
||||||
|
pointList = new List<System.Windows.Point>{
|
||||||
|
new System.Windows.Point(newIniP.X, newIniP.Y),
|
||||||
|
new System.Windows.Point(newIniP.X, endP.Y)
|
||||||
|
};
|
||||||
|
point = new StylusPointCollection(pointList);
|
||||||
|
stroke = new Stroke(point)
|
||||||
|
{
|
||||||
|
DrawingAttributes = inkCanvas.DefaultDrawingAttributes.Clone()
|
||||||
|
};
|
||||||
|
strokes.Add(stroke.Clone());
|
||||||
|
//右侧
|
||||||
|
pointList = new List<System.Windows.Point>{
|
||||||
|
new System.Windows.Point(endP.X, newIniP.Y),
|
||||||
|
new System.Windows.Point(endP.X, endP.Y)
|
||||||
|
};
|
||||||
|
point = new StylusPointCollection(pointList);
|
||||||
|
stroke = new Stroke(point)
|
||||||
|
{
|
||||||
|
DrawingAttributes = inkCanvas.DefaultDrawingAttributes.Clone()
|
||||||
|
};
|
||||||
|
strokes.Add(stroke.Clone());
|
||||||
|
try
|
||||||
|
{
|
||||||
|
inkCanvas.Strokes.Remove(lastTempStrokeCollection);
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
lastTempStrokeCollection = strokes;
|
||||||
|
inkCanvas.Strokes.Add(strokes);
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
if (iniP.Y > endP.Y)
|
||||||
|
{
|
||||||
|
newIniP = new Point(iniP.X, endP.Y);
|
||||||
|
endP = new Point(endP.X, iniP.Y);
|
||||||
|
}
|
||||||
|
double bottomA = Math.Abs(newIniP.X - endP.X);
|
||||||
|
double bottomB = bottomA / 2.646;
|
||||||
|
//底部椭圆
|
||||||
|
pointList = GenerateEllipseGeometry(new Point(newIniP.X, endP.Y - bottomB / 2), new Point(endP.X, endP.Y + bottomB / 2), false, true);
|
||||||
|
point = new StylusPointCollection(pointList);
|
||||||
|
stroke = new Stroke(point)
|
||||||
|
{
|
||||||
|
DrawingAttributes = inkCanvas.DefaultDrawingAttributes.Clone()
|
||||||
|
};
|
||||||
|
strokes.Add(stroke.Clone());
|
||||||
|
strokes.Add(GenerateDashedLineEllipseStrokeCollection(new Point(newIniP.X, endP.Y - bottomB / 2), new Point(endP.X, endP.Y + bottomB / 2), true, false));
|
||||||
|
//左侧
|
||||||
|
pointList = new List<System.Windows.Point>{
|
||||||
|
new System.Windows.Point((newIniP.X + endP.X) / 2, newIniP.Y),
|
||||||
|
new System.Windows.Point(newIniP.X, endP.Y)
|
||||||
|
};
|
||||||
|
point = new StylusPointCollection(pointList);
|
||||||
|
stroke = new Stroke(point)
|
||||||
|
{
|
||||||
|
DrawingAttributes = inkCanvas.DefaultDrawingAttributes.Clone()
|
||||||
|
};
|
||||||
|
strokes.Add(stroke.Clone());
|
||||||
|
//右侧
|
||||||
|
pointList = new List<System.Windows.Point>{
|
||||||
|
new System.Windows.Point((newIniP.X + endP.X) / 2, newIniP.Y),
|
||||||
|
new System.Windows.Point(endP.X, endP.Y)
|
||||||
|
};
|
||||||
|
point = new StylusPointCollection(pointList);
|
||||||
|
stroke = new Stroke(point)
|
||||||
|
{
|
||||||
|
DrawingAttributes = inkCanvas.DefaultDrawingAttributes.Clone()
|
||||||
|
};
|
||||||
|
strokes.Add(stroke.Clone());
|
||||||
|
try
|
||||||
|
{
|
||||||
|
inkCanvas.Strokes.Remove(lastTempStrokeCollection);
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
lastTempStrokeCollection = strokes;
|
||||||
|
inkCanvas.Strokes.Add(strokes);
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
if (isFirstTouchCuboid)
|
||||||
|
{
|
||||||
|
pointList = new List<System.Windows.Point>{
|
||||||
|
new System.Windows.Point(iniP.X, iniP.Y),
|
||||||
|
new System.Windows.Point(iniP.X, endP.Y),
|
||||||
|
new System.Windows.Point(endP.X, endP.Y),
|
||||||
|
new System.Windows.Point(endP.X, iniP.Y),
|
||||||
|
new System.Windows.Point(iniP.X, iniP.Y)
|
||||||
|
};
|
||||||
|
point = new StylusPointCollection(pointList);
|
||||||
|
stroke = new Stroke(point)
|
||||||
|
{
|
||||||
|
DrawingAttributes = inkCanvas.DefaultDrawingAttributes.Clone()
|
||||||
|
};
|
||||||
|
try
|
||||||
|
{
|
||||||
|
inkCanvas.Strokes.Remove(lastTempStroke);
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
lastTempStroke = stroke;
|
||||||
|
inkCanvas.Strokes.Add(stroke);
|
||||||
|
CuboidFrontRectIniP = iniP;
|
||||||
|
CuboidFrontRectEndP = endP;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
double d = CuboidFrontRectIniP.Y - endP.Y;
|
||||||
|
double a = CuboidFrontRectEndP.X - CuboidFrontRectIniP.X; //正面矩形长
|
||||||
|
double b = CuboidFrontRectEndP.Y - CuboidFrontRectIniP.Y; //正面矩形宽
|
||||||
|
|
||||||
|
//横上
|
||||||
|
Point newLineIniP = new Point(CuboidFrontRectIniP.X + d, CuboidFrontRectIniP.Y - d);
|
||||||
|
Point newLineEndP = new Point(CuboidFrontRectEndP.X + d, CuboidFrontRectIniP.Y - d);
|
||||||
|
pointList = new List<System.Windows.Point> { newLineIniP, newLineEndP };
|
||||||
|
point = new StylusPointCollection(pointList);
|
||||||
|
stroke = new Stroke(point) { DrawingAttributes = inkCanvas.DefaultDrawingAttributes.Clone() };
|
||||||
|
strokes.Add(stroke.Clone());
|
||||||
|
//横下 (虚线)
|
||||||
|
newLineIniP = new Point(CuboidFrontRectIniP.X + d, CuboidFrontRectEndP.Y - d);
|
||||||
|
newLineEndP = new Point(CuboidFrontRectEndP.X + d, CuboidFrontRectEndP.Y - d);
|
||||||
|
strokes.Add(GenerateDashedLineStrokeCollection(newLineIniP, newLineEndP));
|
||||||
|
//斜左上
|
||||||
|
newLineIniP = new Point(CuboidFrontRectIniP.X, CuboidFrontRectIniP.Y);
|
||||||
|
newLineEndP = new Point(CuboidFrontRectIniP.X + d, CuboidFrontRectIniP.Y - d);
|
||||||
|
pointList = new List<System.Windows.Point> { newLineIniP, newLineEndP };
|
||||||
|
point = new StylusPointCollection(pointList);
|
||||||
|
stroke = new Stroke(point) { DrawingAttributes = inkCanvas.DefaultDrawingAttributes.Clone() };
|
||||||
|
strokes.Add(stroke.Clone());
|
||||||
|
//斜右上
|
||||||
|
newLineIniP = new Point(CuboidFrontRectEndP.X, CuboidFrontRectIniP.Y);
|
||||||
|
newLineEndP = new Point(CuboidFrontRectEndP.X + d, CuboidFrontRectIniP.Y - d);
|
||||||
|
pointList = new List<System.Windows.Point> { newLineIniP, newLineEndP };
|
||||||
|
point = new StylusPointCollection(pointList);
|
||||||
|
stroke = new Stroke(point) { DrawingAttributes = inkCanvas.DefaultDrawingAttributes.Clone() };
|
||||||
|
strokes.Add(stroke.Clone());
|
||||||
|
//斜左下 (虚线)
|
||||||
|
newLineIniP = new Point(CuboidFrontRectIniP.X, CuboidFrontRectEndP.Y);
|
||||||
|
newLineEndP = new Point(CuboidFrontRectIniP.X + d, CuboidFrontRectEndP.Y - d);
|
||||||
|
strokes.Add(GenerateDashedLineStrokeCollection(newLineIniP, newLineEndP));
|
||||||
|
//斜右下
|
||||||
|
newLineIniP = new Point(CuboidFrontRectEndP.X, CuboidFrontRectEndP.Y);
|
||||||
|
newLineEndP = new Point(CuboidFrontRectEndP.X + d, CuboidFrontRectEndP.Y - d);
|
||||||
|
pointList = new List<System.Windows.Point> { newLineIniP, newLineEndP };
|
||||||
|
point = new StylusPointCollection(pointList);
|
||||||
|
stroke = new Stroke(point) { DrawingAttributes = inkCanvas.DefaultDrawingAttributes.Clone() };
|
||||||
|
strokes.Add(stroke.Clone());
|
||||||
|
//竖左 (虚线)
|
||||||
|
newLineIniP = new Point(CuboidFrontRectIniP.X + d, CuboidFrontRectIniP.Y - d);
|
||||||
|
newLineEndP = new Point(CuboidFrontRectIniP.X + d, CuboidFrontRectEndP.Y - d);
|
||||||
|
strokes.Add(GenerateDashedLineStrokeCollection(newLineIniP, newLineEndP));
|
||||||
|
//竖右
|
||||||
|
newLineIniP = new Point(CuboidFrontRectEndP.X + d, CuboidFrontRectIniP.Y - d);
|
||||||
|
newLineEndP = new Point(CuboidFrontRectEndP.X + d, CuboidFrontRectEndP.Y - d);
|
||||||
|
pointList = new List<System.Windows.Point> { newLineIniP, newLineEndP };
|
||||||
|
point = new StylusPointCollection(pointList);
|
||||||
|
stroke = new Stroke(point) { DrawingAttributes = inkCanvas.DefaultDrawingAttributes.Clone() };
|
||||||
|
strokes.Add(stroke.Clone());
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
inkCanvas.Strokes.Remove(lastTempStrokeCollection);
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
lastTempStrokeCollection = strokes;
|
||||||
|
inkCanvas.Strokes.Add(strokes);
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool isFirstTouchCuboid = true;
|
||||||
|
Point CuboidFrontRectIniP = new Point();
|
||||||
|
Point CuboidFrontRectEndP = new Point();
|
||||||
|
|
||||||
private void Main_Grid_TouchUp(object sender, TouchEventArgs e)
|
private void Main_Grid_TouchUp(object sender, TouchEventArgs e)
|
||||||
{
|
{
|
||||||
lastTempStroke = null;
|
inkCanvas_MouseUp(sender, null);
|
||||||
if (dec.Count == 0)
|
if (dec.Count == 0)
|
||||||
{
|
{
|
||||||
isWaitUntilNextTouchDown = false;
|
isWaitUntilNextTouchDown = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Stroke lastTempStroke = null; bool isWaitUntilNextTouchDown = false;
|
Stroke lastTempStroke = null;
|
||||||
private List<System.Windows.Point> GenerateEclipseGeometry(System.Windows.Point st, System.Windows.Point ed)
|
StrokeCollection lastTempStrokeCollection = new StrokeCollection();
|
||||||
|
bool isWaitUntilNextTouchDown = false;
|
||||||
|
private List<System.Windows.Point> GenerateEllipseGeometry(System.Windows.Point st, System.Windows.Point ed, bool isDrawTop = true, bool isDrawBottom = true)
|
||||||
{
|
{
|
||||||
double a = 0.5 * (ed.X - st.X);
|
double a = 0.5 * (ed.X - st.X);
|
||||||
double b = 0.5 * (ed.Y - st.Y);
|
double b = 0.5 * (ed.Y - st.Y);
|
||||||
List<System.Windows.Point> pointList = new List<System.Windows.Point>();
|
List<System.Windows.Point> pointList = new List<System.Windows.Point>();
|
||||||
for (double r = 0; r <= 2 * Math.PI; r = r + 0.01)
|
if (isDrawTop && isDrawBottom)
|
||||||
{
|
{
|
||||||
pointList.Add(new System.Windows.Point(0.5 * (st.X + ed.X) + a * Math.Cos(r), 0.5 * (st.Y + ed.Y) + b * Math.Sin(r)));
|
for (double r = 0; r <= 2 * Math.PI; r = r + 0.01)
|
||||||
|
{
|
||||||
|
pointList.Add(new System.Windows.Point(0.5 * (st.X + ed.X) + a * Math.Cos(r), 0.5 * (st.Y + ed.Y) + b * Math.Sin(r)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (isDrawBottom)
|
||||||
|
{
|
||||||
|
for (double r = 0; r <= Math.PI; r = r + 0.01)
|
||||||
|
{
|
||||||
|
pointList.Add(new System.Windows.Point(0.5 * (st.X + ed.X) + a * Math.Cos(r), 0.5 * (st.Y + ed.Y) + b * Math.Sin(r)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (isDrawTop)
|
||||||
|
{
|
||||||
|
for (double r = Math.PI; r <= 2 * Math.PI; r = r + 0.01)
|
||||||
|
{
|
||||||
|
pointList.Add(new System.Windows.Point(0.5 * (st.X + ed.X) + a * Math.Cos(r), 0.5 * (st.Y + ed.Y) + b * Math.Sin(r)));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return pointList;
|
return pointList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private StrokeCollection GenerateDashedLineEllipseStrokeCollection(System.Windows.Point st, System.Windows.Point ed, bool isDrawTop = true, bool isDrawBottom = true)
|
||||||
|
{
|
||||||
|
double a = 0.5 * (ed.X - st.X);
|
||||||
|
double b = 0.5 * (ed.Y - st.Y);
|
||||||
|
double step = 0.05;
|
||||||
|
List<System.Windows.Point> pointList = new List<System.Windows.Point>();
|
||||||
|
StylusPointCollection point;
|
||||||
|
Stroke stroke;
|
||||||
|
StrokeCollection strokes = new StrokeCollection();
|
||||||
|
if (isDrawBottom)
|
||||||
|
{
|
||||||
|
for (double i = 0.0; i < 1.0; i += step * 1.66)
|
||||||
|
{
|
||||||
|
pointList = new List<Point>();
|
||||||
|
for (double r = Math.PI * i; r <= Math.PI * (i + step); r = r + 0.01)
|
||||||
|
{
|
||||||
|
pointList.Add(new System.Windows.Point(0.5 * (st.X + ed.X) + a * Math.Cos(r), 0.5 * (st.Y + ed.Y) + b * Math.Sin(r)));
|
||||||
|
}
|
||||||
|
point = new StylusPointCollection(pointList);
|
||||||
|
stroke = new Stroke(point)
|
||||||
|
{
|
||||||
|
DrawingAttributes = inkCanvas.DefaultDrawingAttributes.Clone()
|
||||||
|
};
|
||||||
|
strokes.Add(stroke.Clone());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (isDrawTop)
|
||||||
|
{
|
||||||
|
for (double i = 1.0; i < 2.0; i += step * 1.66)
|
||||||
|
{
|
||||||
|
pointList = new List<Point>();
|
||||||
|
for (double r = Math.PI * i; r <= Math.PI * (i + step); r = r + 0.01)
|
||||||
|
{
|
||||||
|
pointList.Add(new System.Windows.Point(0.5 * (st.X + ed.X) + a * Math.Cos(r), 0.5 * (st.Y + ed.Y) + b * Math.Sin(r)));
|
||||||
|
}
|
||||||
|
point = new StylusPointCollection(pointList);
|
||||||
|
stroke = new Stroke(point)
|
||||||
|
{
|
||||||
|
DrawingAttributes = inkCanvas.DefaultDrawingAttributes.Clone()
|
||||||
|
};
|
||||||
|
strokes.Add(stroke.Clone());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return strokes;
|
||||||
|
}
|
||||||
|
|
||||||
|
private StrokeCollection GenerateDashedLineStrokeCollection(System.Windows.Point st, System.Windows.Point ed)
|
||||||
|
{
|
||||||
|
double step = 5;
|
||||||
|
List<System.Windows.Point> pointList = new List<System.Windows.Point>();
|
||||||
|
StylusPointCollection point;
|
||||||
|
Stroke stroke;
|
||||||
|
StrokeCollection strokes = new StrokeCollection();
|
||||||
|
double d = GetDistance(st, ed);
|
||||||
|
double sinTheta = (ed.Y - st.Y) / d;
|
||||||
|
double cosTheta = (ed.X - st.X) / d;
|
||||||
|
for (double i = 0.0; i < d; i += step * 2.76)
|
||||||
|
{
|
||||||
|
pointList = new List<System.Windows.Point>{
|
||||||
|
new System.Windows.Point(st.X + i * cosTheta, st.Y + i * sinTheta),
|
||||||
|
new System.Windows.Point(st.X + Math.Min(i + step, d) * cosTheta, st.Y + Math.Min(i + step, d) * sinTheta)
|
||||||
|
};
|
||||||
|
point = new StylusPointCollection(pointList);
|
||||||
|
stroke = new Stroke(point)
|
||||||
|
{
|
||||||
|
DrawingAttributes = inkCanvas.DefaultDrawingAttributes.Clone()
|
||||||
|
};
|
||||||
|
strokes.Add(stroke.Clone());
|
||||||
|
}
|
||||||
|
return strokes;
|
||||||
|
}
|
||||||
|
|
||||||
bool isMouseDown = false;
|
bool isMouseDown = false;
|
||||||
private void inkCanvas_MouseDown(object sender, MouseButtonEventArgs e)
|
private void inkCanvas_MouseDown(object sender, MouseButtonEventArgs e)
|
||||||
{
|
{
|
||||||
@ -2649,6 +3031,27 @@ namespace Ink_Canvas
|
|||||||
private void inkCanvas_MouseUp(object sender, MouseButtonEventArgs e)
|
private void inkCanvas_MouseUp(object sender, MouseButtonEventArgs e)
|
||||||
{
|
{
|
||||||
lastTempStroke = null;
|
lastTempStroke = null;
|
||||||
|
lastTempStrokeCollection = null;
|
||||||
|
if (drawingShapeMode != 9 && drawingShapeMode != 0)
|
||||||
|
{
|
||||||
|
BtnPen_Click(null, null); //画完一次还原到笔模式
|
||||||
|
}
|
||||||
|
if (drawingShapeMode == 9)
|
||||||
|
{
|
||||||
|
if (isFirstTouchCuboid)
|
||||||
|
{
|
||||||
|
isFirstTouchCuboid = false;
|
||||||
|
Point newIniP = new Point(Math.Min(CuboidFrontRectIniP.X, CuboidFrontRectEndP.X), Math.Min(CuboidFrontRectIniP.Y, CuboidFrontRectEndP.Y));
|
||||||
|
Point newEndP = new Point(Math.Max(CuboidFrontRectIniP.X, CuboidFrontRectEndP.X), Math.Max(CuboidFrontRectIniP.Y, CuboidFrontRectEndP.Y));
|
||||||
|
CuboidFrontRectIniP = newIniP;
|
||||||
|
CuboidFrontRectEndP = newEndP;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
BtnPen_Click(null, null); //画完还原到笔模式
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BorderDrawShape.Visibility = Visibility.Collapsed;
|
||||||
isMouseDown = false;
|
isMouseDown = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3148,7 +3551,7 @@ namespace Ink_Canvas
|
|||||||
|
|
||||||
Point iniP = new Point(result.Centroid.X - shape.Width / 2, result.Centroid.Y - shape.Height / 2);
|
Point iniP = new Point(result.Centroid.X - shape.Width / 2, result.Centroid.Y - shape.Height / 2);
|
||||||
Point endP = new Point(result.Centroid.X + shape.Width / 2, result.Centroid.Y + shape.Height / 2);
|
Point endP = new Point(result.Centroid.X + shape.Width / 2, result.Centroid.Y + shape.Height / 2);
|
||||||
var pointList = GenerateEclipseGeometry(iniP, endP);
|
var pointList = GenerateEllipseGeometry(iniP, endP);
|
||||||
var point = new StylusPointCollection(pointList);
|
var point = new StylusPointCollection(pointList);
|
||||||
var stroke = new Stroke(point)
|
var stroke = new Stroke(point)
|
||||||
{
|
{
|
||||||
@ -3217,10 +3620,13 @@ namespace Ink_Canvas
|
|||||||
}
|
}
|
||||||
else if (Math.Abs(result.Centroid.X - circle.Centroid.X) / a < 0.2)
|
else if (Math.Abs(result.Centroid.X - circle.Centroid.X) / a < 0.2)
|
||||||
{
|
{
|
||||||
|
Label.Visibility = Visibility.Visible;
|
||||||
|
Label.Foreground = Brushes.Gray;
|
||||||
double sinTheta = Math.Abs(circle.Centroid.Y - result.Centroid.Y) / circle.R;
|
double sinTheta = Math.Abs(circle.Centroid.Y - result.Centroid.Y) / circle.R;
|
||||||
double cosTheta = Math.Sqrt(1 - sinTheta * sinTheta);
|
double cosTheta = Math.Sqrt(1 - sinTheta * sinTheta);
|
||||||
double newA = circle.R * cosTheta;
|
double newA = circle.R * cosTheta;
|
||||||
if (Math.Abs(newA - circle.R) / a < 0.35 && a / b > 3)
|
Label.Content = Label.Content.ToString() + newA.ToString() + " " + (Math.Abs(newA - circle.R) / a).ToString();
|
||||||
|
if (circle.R * sinTheta / circle.R < 0.9 && a / b > 2 && Math.Abs(newA - a) / newA < 0.3)
|
||||||
{
|
{
|
||||||
iniP.X = circle.Centroid.X - newA;
|
iniP.X = circle.Centroid.X - newA;
|
||||||
endP.X = circle.Centroid.X + newA;
|
endP.X = circle.Centroid.X + newA;
|
||||||
@ -3233,7 +3639,7 @@ namespace Ink_Canvas
|
|||||||
double cosTheta = Math.Abs(circle.Centroid.X - result.Centroid.X) / circle.R;
|
double cosTheta = Math.Abs(circle.Centroid.X - result.Centroid.X) / circle.R;
|
||||||
double sinTheta = Math.Sqrt(1 - cosTheta * cosTheta);
|
double sinTheta = Math.Sqrt(1 - cosTheta * cosTheta);
|
||||||
double newA = circle.R * sinTheta;
|
double newA = circle.R * sinTheta;
|
||||||
if (Math.Abs(newA - circle.R) / a < 0.35 && a / b > 3)
|
if (circle.R * sinTheta / circle.R < 0.9 && a / b > 2 && Math.Abs(newA - a) / newA < 0.3)
|
||||||
{
|
{
|
||||||
iniP.X = result.Centroid.X - newA / 5;
|
iniP.X = result.Centroid.X - newA / 5;
|
||||||
endP.X = result.Centroid.X + newA / 5;
|
endP.X = result.Centroid.X + newA / 5;
|
||||||
@ -3252,7 +3658,7 @@ namespace Ink_Canvas
|
|||||||
p[1] = newPoints[0];
|
p[1] = newPoints[0];
|
||||||
p[3] = newPoints[1];
|
p[3] = newPoints[1];
|
||||||
|
|
||||||
var pointList = GenerateEclipseGeometry(iniP, endP);
|
var pointList = GenerateEllipseGeometry(iniP, endP);
|
||||||
var point = new StylusPointCollection(pointList);
|
var point = new StylusPointCollection(pointList);
|
||||||
var stroke = new Stroke(point)
|
var stroke = new Stroke(point)
|
||||||
{
|
{
|
||||||
|
448
Ink Canvas/Resources/DrawShapeImageDictionary.xaml
Normal file
@ -0,0 +1,448 @@
|
|||||||
|
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
|
<DrawingImage x:Key="DrawShapeImageSource.Circle">
|
||||||
|
<DrawingImage.Drawing>
|
||||||
|
<DrawingGroup ClipGeometry="M0,0 V825 H825 V0 H0 Z">
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<EllipseGeometry RadiusX="387.5" RadiusY="387.5" Center="412.5,412.5" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="150" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="412.45,412.55" EndPoint="412.55,412.45" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
</DrawingGroup>
|
||||||
|
</DrawingImage.Drawing>
|
||||||
|
</DrawingImage>
|
||||||
|
<DrawingImage x:Key="DrawShapeImageSource.Cuboid">
|
||||||
|
<DrawingImage.Drawing>
|
||||||
|
<DrawingGroup ClipGeometry="M0,0 V798.2 H801.77 V0 H0 Z">
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="25.23,224.28" EndPoint="572.99,224.67" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="25.23,772.23" EndPoint="25.23,224.47" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="575.5,772.79" EndPoint="575.5,225.03" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="26.01,772.23" EndPoint="573.77,772.62" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="25,225" EndPoint="225,25" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="575.75,225.25" EndPoint="775.75,25.25" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="224.5,25.5" EndPoint="775.5,25.5" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="576.77,773.2" EndPoint="776.77,573.2" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="775.75,25.5" EndPoint="776.25,573.5" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="223.77,573.08" EndPoint="223.77,523.08" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" DashCap="Round" LineJoin="Miter">
|
||||||
|
<Pen.DashStyle>
|
||||||
|
<DashStyle Offset="0" Dashes="1.791 1.791" />
|
||||||
|
</Pen.DashStyle>
|
||||||
|
</Pen>
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="223.77,433.53" EndPoint="223.77,120.1" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="223.77,75.32" EndPoint="223.77,25.32" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="25.77,772.2" EndPoint="61.12,736.85" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" DashCap="Round" LineJoin="Miter">
|
||||||
|
<Pen.DashStyle>
|
||||||
|
<DashStyle Offset="0" Dashes="1.219 1.219" />
|
||||||
|
</Pen.DashStyle>
|
||||||
|
</Pen>
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="104.22,693.75" EndPoint="168.86,629.1" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="190.41,607.56" EndPoint="225.77,572.2" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="223.89,572.01" EndPoint="273.89,572.04" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" DashCap="Round" LineJoin="Miter">
|
||||||
|
<Pen.DashStyle>
|
||||||
|
<DashStyle Offset="0" Dashes="1.791 1.791" />
|
||||||
|
</Pen.DashStyle>
|
||||||
|
</Pen>
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="363.44,572.11" EndPoint="676.87,572.33" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="721.65,572.36" EndPoint="771.65,572.4" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
</DrawingGroup>
|
||||||
|
</DrawingImage.Drawing>
|
||||||
|
</DrawingImage>
|
||||||
|
<DrawingImage x:Key="DrawShapeImageSource.Cone">
|
||||||
|
<DrawingImage.Drawing>
|
||||||
|
<DrawingGroup ClipGeometry="M0,0 V750 H579.5 V0 H0 Z">
|
||||||
|
<DrawingGroup Transform="1,0,0,1,-210,-175">
|
||||||
|
<GeometryDrawing Geometry="F1 M579.5,750z M0,0z M764.5,800C764.5,855.23 646.08,900 500,900 353.92,900 235.5,855.23 235.5,800">
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
</GeometryDrawing>
|
||||||
|
</DrawingGroup>
|
||||||
|
<DrawingGroup Transform="1,0,0,1,-210,-175">
|
||||||
|
<GeometryDrawing Geometry="F1 M579.5,750z M0,0z M235.5,800C235.5,785,244.17,770.87,259.72,758.14">
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
</GeometryDrawing>
|
||||||
|
</DrawingGroup>
|
||||||
|
<DrawingGroup Transform="1,0,0,1,-210,-175">
|
||||||
|
<GeometryDrawing Geometry="F1 M579.5,750z M0,0z M350.75,717.43C393.23,706.43 444.63,700 500,700 578.18,700 648.44,712.82 696.87,733.21">
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" DashCap="Round" LineJoin="Miter">
|
||||||
|
<Pen.DashStyle>
|
||||||
|
<DashStyle Offset="0" Dashes="2.0084 2.0084" />
|
||||||
|
</Pen.DashStyle>
|
||||||
|
</Pen>
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
</GeometryDrawing>
|
||||||
|
</DrawingGroup>
|
||||||
|
<DrawingGroup Transform="1,0,0,1,-210,-175">
|
||||||
|
<GeometryDrawing Geometry="F1 M579.5,750z M0,0z M740.28,758.14C755.83,770.87,764.5,785.05,764.5,800">
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
</GeometryDrawing>
|
||||||
|
</DrawingGroup>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="290,25" EndPoint="554,625" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="25,625" EndPoint="290,25" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
</DrawingGroup>
|
||||||
|
</DrawingImage.Drawing>
|
||||||
|
</DrawingImage>
|
||||||
|
<DrawingImage x:Key="DrawShapeImageSource.Cylinder">
|
||||||
|
<DrawingImage.Drawing>
|
||||||
|
<DrawingGroup ClipGeometry="M0,0 V850 H579.5 V0 H0 Z">
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<EllipseGeometry RadiusX="264.5" RadiusY="100" Center="290,125" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<DrawingGroup Transform="1,0,0,1,-210,-75">
|
||||||
|
<GeometryDrawing Geometry="F1 M579.5,850z M0,0z M764.5,800C764.5,855.23 646.08,900 500,900 353.92,900 235.5,855.23 235.5,800">
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
</GeometryDrawing>
|
||||||
|
</DrawingGroup>
|
||||||
|
<DrawingGroup Transform="1,0,0,1,-210,-75">
|
||||||
|
<GeometryDrawing Geometry="F1 M579.5,850z M0,0z M235.5,800C235.5,785,244.17,770.87,259.72,758.14">
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
</GeometryDrawing>
|
||||||
|
</DrawingGroup>
|
||||||
|
<DrawingGroup Transform="1,0,0,1,-210,-75">
|
||||||
|
<GeometryDrawing Geometry="F1 M579.5,850z M0,0z M350.75,717.43C393.23,706.43 444.63,700 500,700 578.18,700 648.44,712.82 696.87,733.21">
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" DashCap="Round" LineJoin="Miter">
|
||||||
|
<Pen.DashStyle>
|
||||||
|
<DashStyle Offset="0" Dashes="2.0084 2.0084" />
|
||||||
|
</Pen.DashStyle>
|
||||||
|
</Pen>
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
</GeometryDrawing>
|
||||||
|
</DrawingGroup>
|
||||||
|
<DrawingGroup Transform="1,0,0,1,-210,-75">
|
||||||
|
<GeometryDrawing Geometry="F1 M579.5,850z M0,0z M740.28,758.14C755.83,770.87,764.5,785.05,764.5,800">
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
</GeometryDrawing>
|
||||||
|
</DrawingGroup>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="25,125" EndPoint="25,725" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="554,125" EndPoint="554,725" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
</DrawingGroup>
|
||||||
|
</DrawingImage.Drawing>
|
||||||
|
</DrawingImage>
|
||||||
|
<DrawingImage x:Key="DrawShapeImageSource.Line">
|
||||||
|
<DrawingImage.Drawing>
|
||||||
|
<DrawingGroup ClipGeometry="M0,0 V750.75 H750.75 V0 H0 Z">
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="25,725.75" EndPoint="725.75,25" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
</DrawingGroup>
|
||||||
|
</DrawingImage.Drawing>
|
||||||
|
</DrawingImage>
|
||||||
|
<DrawingImage x:Key="DrawShapeImageSource.DashedLine">
|
||||||
|
<DrawingImage.Drawing>
|
||||||
|
<DrawingGroup ClipGeometry="M0,0 V750.75 H750.75 V0 H0 Z">
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="25,725.75" EndPoint="60.36,690.39" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" DashCap="Round" LineJoin="Miter">
|
||||||
|
<Pen.DashStyle>
|
||||||
|
<DashStyle Offset="0" Dashes="1.98 1.98" />
|
||||||
|
</Pen.DashStyle>
|
||||||
|
</Pen>
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="130.36,620.39" EndPoint="655.39,95.36" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="690.39,60.36" EndPoint="725.75,25" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
</DrawingGroup>
|
||||||
|
</DrawingImage.Drawing>
|
||||||
|
</DrawingImage>
|
||||||
|
<DrawingImage x:Key="DrawShapeImageSource.ArrowLine">
|
||||||
|
<DrawingImage.Drawing>
|
||||||
|
<DrawingGroup ClipGeometry="M0,0 V752.41 H755.16 V0 H0 Z">
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="25,727.41" EndPoint="725.75,26.66" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="725.87,25" EndPoint="375.38,28.04" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="730.16,376.99" EndPoint="727.12,26.49" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
</DrawingGroup>
|
||||||
|
</DrawingImage.Drawing>
|
||||||
|
</DrawingImage>
|
||||||
|
<DrawingImage x:Key="DrawShapeImageSource.Rectangle">
|
||||||
|
<DrawingImage.Drawing>
|
||||||
|
<DrawingGroup ClipGeometry="M0,0 V750.96 H753.21 V0 H0 Z">
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="25,25" EndPoint="725,25.5" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="25,725.25" EndPoint="25,25.25" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="728.21,725.96" EndPoint="728.21,25.96" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<LineGeometry StartPoint="26,725.25" EndPoint="726,725.75" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
</DrawingGroup>
|
||||||
|
</DrawingImage.Drawing>
|
||||||
|
</DrawingImage>
|
||||||
|
<DrawingImage x:Key="DrawShapeImageSource.Ellipse">
|
||||||
|
<DrawingImage.Drawing>
|
||||||
|
<DrawingGroup ClipGeometry="M0,0 V825 H825 V0 H0 Z">
|
||||||
|
<GeometryDrawing>
|
||||||
|
<GeometryDrawing.Pen>
|
||||||
|
<Pen Brush="#666666" Thickness="50" StartLineCap="Round" EndLineCap="Round" LineJoin="Miter" />
|
||||||
|
</GeometryDrawing.Pen>
|
||||||
|
<GeometryDrawing.Geometry>
|
||||||
|
<EllipseGeometry RadiusX="387.5" RadiusY="387.5" Center="412.5,412.5" />
|
||||||
|
</GeometryDrawing.Geometry>
|
||||||
|
</GeometryDrawing>
|
||||||
|
</DrawingGroup>
|
||||||
|
</DrawingImage.Drawing>
|
||||||
|
</DrawingImage>
|
||||||
|
<DrawingImage x:Key="DrawShapeImageSource.DrawShapeIcon">
|
||||||
|
<DrawingImage.Drawing>
|
||||||
|
<DrawingGroup ClipGeometry="M0,0 V806.56 H868.59 V0 H0 Z">
|
||||||
|
<DrawingGroup Transform="1,0,0,1,-65.71,-96.72">
|
||||||
|
<GeometryDrawing Brush="#666666" Geometry="F1 M868.59,806.56z M0,0z M562,655.39C561.93,792.12 450.68,903.27 313.89,903.28 176.7,903.28 65.51,791.82 65.73,654.48 65.94,517.88 177.42,406.93 314.32,407.07 451,407.21 562.05,518.56 562,655.39z M500.25,655.54C500.35,552.64 417.25,469.02 314.71,468.81 211.25,468.59 127.57,551.72 127.47,654.81 127.38,757.71 210.47,841.32 313.01,841.54 416.45,841.76 500.14,758.62 500.23,655.54z" />
|
||||||
|
</DrawingGroup>
|
||||||
|
<DrawingGroup Transform="1,0,0,1,-65.71,-96.72">
|
||||||
|
<GeometryDrawing Brush="#666666" Geometry="F1 M868.59,806.56z M0,0z M587.75,717.08C590.08,696.17,592.29,676.36,594.63,655.48L849.63,655.48 665.33,341.9 559.18,518.72C557.47,516.72 556.07,515.23 554.89,513.61 544.47,499.26 534.31,484.7 523.53,470.61 520.53,466.67 519.89,464.18 522.53,459.79 561.22,395.63 599.59,331.27 638.32,267.13 652.23,244.13 679.84,244.98 693.8,268.7Q776.62,409.4,859.25,550.18C881.99,588.88 904.58,627.67 927.57,666.23 934.57,677.94 937.26,689.46 929.99,701.77 922.99,713.65 911.99,717.2 898.71,717.17Q748.39,716.92,598.07,717.08z" />
|
||||||
|
</DrawingGroup>
|
||||||
|
<DrawingGroup Transform="1,0,0,1,-65.71,-96.72">
|
||||||
|
<GeometryDrawing Brush="#666666" Geometry="F1 M868.59,806.56z M0,0z M562.23,328.74L562.23,159 251.88,159 251.88,381.15 190.34,402.94C190.19,400.16,189.88,397.13,189.88,394.11Q189.88,263.25 189.88,132.39 189.88,96.75 225.73,96.73 407.01,96.73 588.3,96.73 624.05,96.73 624.07,132.46C624.07,164.13 624.24,195.79 623.89,227.46 623.89,231.46 621.66,235.77 619.56,239.46 616.56,244.74 612.34,249.36 609.18,254.59 594.18,279.42 579.28,304.36 564.35,329.26z" />
|
||||||
|
</DrawingGroup>
|
||||||
|
</DrawingGroup>
|
||||||
|
</DrawingImage.Drawing>
|
||||||
|
</DrawingImage>
|
||||||
|
</ResourceDictionary>
|
1136
Ink Canvas/Resources/Icons/DrawShapeIcon.ai
Normal file
1
Ink Canvas/Resources/Icons/DrawShapeIcon.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 868.59 806.56"><defs><style>.cls-1{fill:#fff;}</style></defs><title>DrawShapeIcon</title><path d="M562,655.39c-.07,136.73-111.32,247.88-248.11,247.89-137.19,0-248.38-111.46-248.16-248.8.21-136.6,111.69-247.55,248.59-247.41C451,407.21,562.05,518.56,562,655.39Zm-61.75.15c.1-102.9-83-186.52-185.54-186.73-103.46-.22-187.14,82.91-187.24,186-.09,102.9,83,186.51,185.54,186.73C416.45,841.76,500.14,758.62,500.23,655.54Z" transform="translate(-65.71 -96.72)"/><path d="M587.75,717.08c2.33-20.91,4.54-40.72,6.88-61.6h255L665.33,341.9,559.18,518.72c-1.71-2-3.11-3.49-4.29-5.11-10.42-14.35-20.58-28.91-31.36-43-3-3.94-3.64-6.43-1-10.82,38.69-64.16,77.06-128.52,115.79-192.66,13.91-23,41.52-22.15,55.48,1.57Q776.62,409.4,859.25,550.18c22.74,38.7,45.33,77.49,68.32,116.05,7,11.71,9.69,23.23,2.42,35.54-7,11.88-18,15.43-31.28,15.4q-150.32-.25-300.64-.09Z" transform="translate(-65.71 -96.72)"/><path d="M562.23,328.74V159H251.88V381.15l-61.54,21.79c-.15-2.78-.46-5.81-.46-8.83q0-130.86,0-261.72,0-35.64,35.85-35.66,181.28,0,362.57,0,35.75,0,35.77,35.73c0,31.67.17,63.33-.18,95,0,4-2.23,8.31-4.33,12-3,5.28-7.22,9.9-10.38,15.13-15,24.83-29.9,49.77-44.83,74.67Z" transform="translate(-65.71 -96.72)"/><path class="cls-1" d="M500.23,655.54c-.09,103.08-83.78,186.22-187.24,186-102.55-.22-185.63-83.83-185.54-186.73.1-103.09,83.78-186.22,187.24-186C417.25,469,500.33,552.64,500.23,655.54Z" transform="translate(-65.71 -96.72)"/></svg>
|
After Width: | Height: | Size: 1.5 KiB |
1111
Ink Canvas/Resources/Icons/ShapeArrowLine.ai
Normal file
1
Ink Canvas/Resources/Icons/ShapeArrowLine.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 755.16 752.41"><defs><style>.cls-1{fill:none;stroke:#000;stroke-linecap:round;stroke-miterlimit:10;stroke-width:50px;}</style></defs><title>ShapeArrowLine</title><line class="cls-1" x1="25" y1="727.41" x2="725.75" y2="26.66"/><line class="cls-1" x1="725.87" y1="25" x2="375.38" y2="28.04"/><line class="cls-1" x1="730.16" y1="376.99" x2="727.12" y2="26.49"/></svg>
|
After Width: | Height: | Size: 450 B |
1135
Ink Canvas/Resources/Icons/ShapeCircle.ai
Normal file
1
Ink Canvas/Resources/Icons/ShapeCircle.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 825 825"><defs><style>.cls-1,.cls-2{fill:none;stroke:#000;stroke-linecap:round;stroke-miterlimit:10;}.cls-1{stroke-width:50px;}.cls-2{stroke-width:100px;}</style></defs><title>ShapeCircle</title><circle class="cls-1" cx="412.5" cy="412.5" r="387.5"/><line class="cls-2" x1="412.45" y1="412.55" x2="412.55" y2="412.45"/></svg>
|
After Width: | Height: | Size: 411 B |
1125
Ink Canvas/Resources/Icons/ShapeCone.ai
Normal file
1
Ink Canvas/Resources/Icons/ShapeCone.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 579.5 750"><defs><style>.cls-1,.cls-2{fill:none;stroke:#000;stroke-linecap:round;stroke-miterlimit:10;stroke-width:50px;}.cls-2{stroke-dasharray:100.42 100.42;}</style></defs><title>ShapeCone</title><path class="cls-1" d="M764.5,800c0,55.23-118.42,100-264.5,100S235.5,855.23,235.5,800" transform="translate(-210 -175)"/><path class="cls-1" d="M235.5,800c0-15,8.67-29.13,24.22-41.86" transform="translate(-210 -175)"/><path class="cls-2" d="M350.75,717.43C393.23,706.43,444.63,700,500,700c78.18,0,148.44,12.82,196.87,33.21" transform="translate(-210 -175)"/><path class="cls-1" d="M740.28,758.14c15.55,12.73,24.22,26.91,24.22,41.86" transform="translate(-210 -175)"/><line class="cls-1" x1="290" y1="25" x2="554" y2="625"/><line class="cls-1" x1="25" y1="625" x2="290" y2="25"/></svg>
|
After Width: | Height: | Size: 869 B |
1150
Ink Canvas/Resources/Icons/ShapeCuboid.ai
Normal file
1
Ink Canvas/Resources/Icons/ShapeCuboid.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 801.77 798.2"><defs><style>.cls-1,.cls-2,.cls-3,.cls-4{fill:none;stroke:#000;stroke-linecap:round;stroke-miterlimit:10;stroke-width:50px;}.cls-2{stroke-dasharray:89.55 89.55;}.cls-3{stroke-dasharray:60.95 60.95;}.cls-4{stroke-dasharray:89.55 89.55;}</style></defs><title>ShapeCuboid</title><line class="cls-1" x1="25.23" y1="224.28" x2="572.99" y2="224.67"/><line class="cls-1" x1="25.23" y1="772.23" x2="25.23" y2="224.47"/><line class="cls-1" x1="575.5" y1="772.79" x2="575.5" y2="225.03"/><line class="cls-1" x1="26.01" y1="772.23" x2="573.77" y2="772.62"/><line class="cls-1" x1="25" y1="225" x2="225" y2="25"/><line class="cls-1" x1="575.75" y1="225.25" x2="775.75" y2="25.25"/><line class="cls-1" x1="224.5" y1="25.5" x2="775.5" y2="25.5"/><line class="cls-1" x1="576.77" y1="773.2" x2="776.77" y2="573.2"/><line class="cls-1" x1="775.75" y1="25.5" x2="776.25" y2="573.5"/><line class="cls-1" x1="223.77" y1="573.08" x2="223.77" y2="523.08"/><line class="cls-2" x1="223.77" y1="433.53" x2="223.77" y2="120.1"/><line class="cls-1" x1="223.77" y1="75.32" x2="223.77" y2="25.32"/><line class="cls-1" x1="25.77" y1="772.2" x2="61.12" y2="736.85"/><line class="cls-3" x1="104.22" y1="693.75" x2="168.86" y2="629.1"/><line class="cls-1" x1="190.41" y1="607.56" x2="225.77" y2="572.2"/><line class="cls-1" x1="223.89" y1="572.01" x2="273.89" y2="572.04"/><line class="cls-4" x1="363.44" y1="572.11" x2="676.87" y2="572.33"/><line class="cls-1" x1="721.65" y1="572.36" x2="771.65" y2="572.4"/></svg>
|
After Width: | Height: | Size: 1.5 KiB |
1117
Ink Canvas/Resources/Icons/ShapeCylinder.ai
Normal file
1
Ink Canvas/Resources/Icons/ShapeCylinder.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 579.5 850"><defs><style>.cls-1,.cls-2{fill:none;stroke:#000;stroke-linecap:round;stroke-miterlimit:10;stroke-width:50px;}.cls-2{stroke-dasharray:100.42 100.42;}</style></defs><title>ShapeCylinder</title><ellipse class="cls-1" cx="290" cy="125" rx="264.5" ry="100"/><path class="cls-1" d="M764.5,800c0,55.23-118.42,100-264.5,100S235.5,855.23,235.5,800" transform="translate(-210 -75)"/><path class="cls-1" d="M235.5,800c0-15,8.67-29.13,24.22-41.86" transform="translate(-210 -75)"/><path class="cls-2" d="M350.75,717.43C393.23,706.43,444.63,700,500,700c78.18,0,148.44,12.82,196.87,33.21" transform="translate(-210 -75)"/><path class="cls-1" d="M740.28,758.14c15.55,12.73,24.22,26.91,24.22,41.86" transform="translate(-210 -75)"/><line class="cls-1" x1="25" y1="125" x2="25" y2="725"/><line class="cls-1" x1="554" y1="125" x2="554" y2="725"/></svg>
|
After Width: | Height: | Size: 932 B |
1138
Ink Canvas/Resources/Icons/ShapeDashedLine.ai
Normal file
1
Ink Canvas/Resources/Icons/ShapeDashedLine.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 750.75 750.75"><defs><style>.cls-1,.cls-2{fill:none;stroke:#000;stroke-linecap:round;stroke-miterlimit:10;stroke-width:50px;}.cls-2{stroke-dasharray:99 99;}</style></defs><title>ShapeDashedLine</title><line class="cls-1" x1="25" y1="725.75" x2="60.36" y2="690.39"/><line class="cls-2" x1="130.36" y1="620.39" x2="655.39" y2="95.36"/><line class="cls-1" x1="690.39" y1="60.36" x2="725.75" y2="25"/></svg>
|
After Width: | Height: | Size: 489 B |
1158
Ink Canvas/Resources/Icons/ShapeEllipse.ai
Normal file
1
Ink Canvas/Resources/Icons/ShapeEllipse.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 825 825"><defs><style>.cls-1{fill:none;stroke:#000;stroke-linecap:round;stroke-miterlimit:10;stroke-width:50px;}</style></defs><title>ShapeEllipse</title><circle class="cls-1" cx="412.5" cy="412.5" r="387.5"/></svg>
|
After Width: | Height: | Size: 301 B |
1132
Ink Canvas/Resources/Icons/ShapeLine.ai
Normal file
1
Ink Canvas/Resources/Icons/ShapeLine.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 750.75 750.75"><defs><style>.cls-1{fill:none;stroke:#000;stroke-linecap:round;stroke-miterlimit:10;stroke-width:50px;}</style></defs><title>ShapeLine</title><line class="cls-1" x1="25" y1="725.75" x2="725.75" y2="25"/></svg>
|
After Width: | Height: | Size: 310 B |
1113
Ink Canvas/Resources/Icons/ShapeRectangle.ai
Normal file
1
Ink Canvas/Resources/Icons/ShapeRectangle.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 753.21 750.96"><defs><style>.cls-1{fill:none;stroke:#000;stroke-linecap:round;stroke-miterlimit:10;stroke-width:50px;}</style></defs><title>ShapeRectangle</title><line class="cls-1" x1="25" y1="25" x2="725" y2="25.5"/><line class="cls-1" x1="25" y1="725.25" x2="25" y2="25.25"/><line class="cls-1" x1="728.21" y1="725.96" x2="728.21" y2="25.96"/><line class="cls-1" x1="26" y1="725.25" x2="726" y2="725.75"/></svg>
|
After Width: | Height: | Size: 500 B |