Represents the custom geometry. A sequence of
CustomPaths
consisting of a series of moves, lines and curves, that when combined make up a geometry.
Inheritance Hierarchy Namespace: SautinSoft.Document.DrawingAssembly: SautinSoft.Document (in SautinSoft.Document.dll) Version: 2024.7.18
Syntax public sealed class CustomGeometry : Geometry,
IEnumerable<CustomPath>, IEnumerable
Public NotInheritable Class CustomGeometry
Inherits Geometry
Implements IEnumerable(Of CustomPath), IEnumerable
The CustomGeometry type exposes the following members.
Properties Methods Example See Developer Guide: This sample shows how to work with shapes and geometry
This sample shows how to work with shapes and geometry using C#
using System;
using System.IO;
using SautinSoft.Document;
using SautinSoft.Document.Drawing;
namespace Sample
{
class Sample
{
static void Main(string[] args)
{
Geometry();
}
public static void Geometry()
{
string pictPath = @"..\..\..\image1.jpg";
string documentPath = @"Geometry.docx";
DocumentCore dc = new DocumentCore();
Shape shp1 = new Shape(dc, Layout.Floating(
new HorizontalPosition(20f, LengthUnit.Millimeter, HorizontalPositionAnchor.LeftMargin),
new VerticalPosition(80f, LengthUnit.Millimeter, VerticalPositionAnchor.TopMargin),
new Size(100, 100)
));
shp1.Outline.Fill.SetSolid(new Color("358CCB"));
shp1.Outline.Width = 3;
shp1.Fill.SetSolid(Color.Orange);
shp1.Geometry.SetPreset(Figure.SmileyFace);
Shape shp2 = new Shape(dc, Layout.Floating(
new HorizontalPosition(85f, LengthUnit.Millimeter, HorizontalPositionAnchor.LeftMargin),
new VerticalPosition(80f, LengthUnit.Millimeter, VerticalPositionAnchor.TopMargin),
new Size(100, 100)
));
shp2.Outline.Fill.SetSolid(Color.Green);
shp2.Outline.Width = 2;
shp2.Fill.SetPicture(pictPath);
Size size = new Size(1, 1);
Point[] points = new Point[10];
double a = 0;
for (int i = 0; i < 10; ++i)
{
points[i] = new Point(0.5 + Math.Sin(a) * 0.5, 0.5 + Math.Cos(a) * 0.5);
a += 2 * Math.PI / 10;
}
shp2.Geometry.SetCustom().AddPath(size, points, true);
Shape shp3 = new Shape(dc, Layout.Floating(
new HorizontalPosition(150f, LengthUnit.Millimeter, HorizontalPositionAnchor.LeftMargin),
new VerticalPosition(80f, LengthUnit.Millimeter, VerticalPositionAnchor.TopMargin),
new Size(100, 100)
));
shp3.Outline.Fill.SetSolid(new Color(255,0,0));
shp3.Outline.Width = 2;
shp3.Fill.SetSolid(Color.Yellow);
CustomPath path = shp3.Geometry.SetCustom().AddPath(new Size(1, 1));
path.MoveTo(new Point(0, 0));
path.AddLine(new Point(0, 1));
path.AddLine(new Point(1, 1));
path.AddLine(new Point(1, 0));
path.ClosePath();
dc.Content.End.Insert(shp1.Content);
dc.Content.End.Insert(shp2.Content);
dc.Content.End.Insert(shp3.Content);
dc.Save(documentPath);
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(documentPath) { UseShellExecute = true });
}
}
}
This sample shows how to work with shapes and geometry using VB.Net
Imports System
Imports System.IO
Imports SautinSoft.Document
Imports SautinSoft.Document.Drawing
Module Sample
Sub Main()
Geometry()
End Sub
Sub Geometry()
Dim pictPath As String = "..\..\..\image1.jpg"
Dim documentPath As String = "Geometry.docx"
Dim dc As New DocumentCore()
Dim shp1 As New Shape(dc, Layout.Floating(New HorizontalPosition(20.0F, LengthUnit.Millimeter, HorizontalPositionAnchor.LeftMargin), New VerticalPosition(80.0F, LengthUnit.Millimeter, VerticalPositionAnchor.TopMargin), New Size(100, 100)))
shp1.Outline.Fill.SetSolid(New Color("358CCB"))
shp1.Outline.Width = 3
shp1.Fill.SetSolid(Color.Orange)
shp1.Geometry.SetPreset(Figure.SmileyFace)
Dim shp2 As New Shape(dc, Layout.Floating(New HorizontalPosition(85.0F, LengthUnit.Millimeter, HorizontalPositionAnchor.LeftMargin), New VerticalPosition(80.0F, LengthUnit.Millimeter, VerticalPositionAnchor.TopMargin), New Size(100, 100)))
shp2.Outline.Fill.SetSolid(Color.Green)
shp2.Outline.Width = 2
shp2.Fill.SetPicture(pictPath)
Dim size As New Size(1, 1)
Dim points(9) As Point
Dim a As Double = 0
For i As Integer = 0 To 9
points(i) = New Point(0.5 + Math.Sin(a) * 0.5, 0.5 + Math.Cos(a) * 0.5)
a += 2 * Math.PI / 10
Next i
shp2.Geometry.SetCustom().AddPath(size, points, True)
Dim shp3 As New Shape(dc, Layout.Floating(New HorizontalPosition(150.0F, LengthUnit.Millimeter, HorizontalPositionAnchor.LeftMargin), New VerticalPosition(80.0F, LengthUnit.Millimeter, VerticalPositionAnchor.TopMargin), New Size(100, 100)))
shp3.Outline.Fill.SetSolid(New Color(255, 0, 0))
shp3.Outline.Width = 2
shp3.Fill.SetSolid(Color.Yellow)
Dim path As CustomPath = shp3.Geometry.SetCustom().AddPath(New Size(1, 1))
path.MoveTo(New Point(0, 0))
path.AddLine(New Point(0, 1))
path.AddLine(New Point(1, 1))
path.AddLine(New Point(1, 0))
path.ClosePath()
dc.Content.End.Insert(shp1.Content)
dc.Content.End.Insert(shp2.Content)
dc.Content.End.Insert(shp3.Content)
dc.Save(documentPath)
System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(documentPath) With {.UseShellExecute = True})
End Sub
End Module
See Also