Products | Support | Email a link to this topic. | Send comments on this topic. | Back to Introduction - All Topics | Help Version 19.0.6.28
|
Leadtools Namespace > RasterCurve Class : ToBezierPoints Method |
public LeadPoint[] ToBezierPoints()
'Declaration
Public Function ToBezierPoints() As LeadPoint()
'Usage
Dim instance As RasterCurve Dim value() As LeadPoint value = instance.ToBezierPoints()
public LeadPoint[] ToBezierPoints()
function Leadtools.RasterCurve.ToBezierPoints()
public: array<LeadPoint>^ ToBezierPoints();
This method is used to convert a standard curve to an array of Bézier control points. A standard curve (RasterCurveType.Standard) is defined by the current RasterCurve. The standard curve passes through all of the points in the Points collection, and is continuous at each point. This method can be used to draw a curve by converting it to an array of Bézier points, using System.Drawing.Graphics.DrawBeziers to draw the equivalent Bezier(s).
This sample draws a smooth closed curve on a graphics that goes through five points.
Imports Leadtools Imports Leadtools.Codecs Imports Leadtools.ImageProcessing.Color Public Sub ToBezierPointsExample() ' Define the curve Dim curve As RasterCurve = New RasterCurve() curve.Points.Add(New LeadPoint(130, 130)) curve.Points.Add(New LeadPoint(130, 300)) curve.Points.Add(New LeadPoint(230, 230)) curve.Points.Add(New LeadPoint(175, 175)) curve.Points.Add(New LeadPoint(230, 130)) curve.Type = RasterCurveType.Standard curve.FillMode = LeadFillMode.Winding curve.Tension = 0.5 curve.Close = RasterCurveClose.Close ' convert this curve into bezier points Dim bezierPoints As LeadPoint() = curve.ToBezierPoints() ' Draw this curve on a bitmap Using btmp As New System.Drawing.Bitmap(400, 400) Using g As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(btmp) g.FillRectangle(System.Drawing.Brushes.White, New System.Drawing.Rectangle(0, 0, 400, 400)) ' Convert the LeadPoint array to a Point array Dim pts(bezierPoints.Length - 1) As System.Drawing.Point For i As Integer = 0 To bezierPoints.Length - 1 pts(i) = New System.Drawing.Point(bezierPoints(i).X, bezierPoints(i).Y) Next g.DrawBeziers(System.Drawing.Pens.Black, pts) End Using ' save this image to disk Dim fileName As String = Path.Combine(LEAD_VARS.ImagesDir, "ToBezierPoints.bmp") btmp.Save(fileName, System.Drawing.Imaging.ImageFormat.Bmp) End Using End Sub Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class
using Leadtools; using Leadtools.Codecs; using Leadtools.ImageProcessing; using Leadtools.ImageProcessing.Color; public void ToBezierPointsExample() { // Define the curve RasterCurve curve = new RasterCurve(); curve.Points.Add(new LeadPoint(130, 130)); curve.Points.Add(new LeadPoint(130, 300)); curve.Points.Add(new LeadPoint(230, 230)); curve.Points.Add(new LeadPoint(175, 175)); curve.Points.Add(new LeadPoint(230, 130)); curve.Type = RasterCurveType.Standard; curve.FillMode = LeadFillMode.Winding; curve.Tension = 0.5; curve.Close = RasterCurveClose.Close; // convert this curve into bezier points LeadPoint[] bezierPoints = curve.ToBezierPoints(); // Draw this curve on a bitmap using (System.Drawing.Bitmap btmp = new System.Drawing.Bitmap(400, 400)) { using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(btmp)) { g.FillRectangle(System.Drawing.Brushes.White, new System.Drawing.Rectangle(0, 0, 400, 400)); // Convert the LeadPoint array to a Point array System.Drawing.Point[] pts = new System.Drawing.Point[bezierPoints.Length]; for (int i = 0; i < bezierPoints.Length; i++) { pts[i] = new System.Drawing.Point(bezierPoints[i].X, bezierPoints[i].Y); } g.DrawBeziers(System.Drawing.Pens.Black, pts); } // save this image to disk string fileName = Path.Combine(ImagesPath.Path, "ToBezierPoints.bmp"); btmp.Save(fileName, System.Drawing.Imaging.ImageFormat.Bmp); } }