StreamGeometryContext.BezierTo(Point, Point, Point, Boolean, Boolean) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Рисует кривую Безье к заданной точке.
public:
abstract void BezierTo(System::Windows::Point point1, System::Windows::Point point2, System::Windows::Point point3, bool isStroked, bool isSmoothJoin);
public abstract void BezierTo (System.Windows.Point point1, System.Windows.Point point2, System.Windows.Point point3, bool isStroked, bool isSmoothJoin);
abstract member BezierTo : System.Windows.Point * System.Windows.Point * System.Windows.Point * bool * bool -> unit
Public MustOverride Sub BezierTo (point1 As Point, point2 As Point, point3 As Point, isStroked As Boolean, isSmoothJoin As Boolean)
Параметры
- point1
- Point
Первая контрольная точка, используемая для задания формы кривой.
- point2
- Point
Вторая контрольная точка, используемая для задания формы кривой.
- point3
- Point
Конечная точка кривой.
- isStroked
- Boolean
true
, чтобы сегмент был обведенным, когда для его визуализации используется Pen; в противном случае — false
.
- isSmoothJoin
- Boolean
true
для интерпретации соединения между этим и предыдущим сегментами как угла при обводке с помощью Pen; в противном случае — false
.
Исключения
Предпринята попытка добавить сегмент без запуска фигуры путем вызова метода BeginFigure(Point, Boolean, Boolean).
Примеры
В следующем примере показано, как нарисовать кривую Безье с помощью BezierTo метода.
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Shapes;
namespace SDKSample
{
public partial class StreamGeometryBezierToExample : Page
{
public StreamGeometryBezierToExample()
{
// Create a StreamGeometry to use to specify myPath.
StreamGeometry geometry = new StreamGeometry();
geometry.FillRule = FillRule.EvenOdd;
// Open a StreamGeometryContext that can be used to describe this StreamGeometry
// object's contents.
using (StreamGeometryContext ctx = geometry.Open())
{
// Set the begin point of the shape.
ctx.BeginFigure(new Point(10, 100), true /* is filled */, false /* is closed */);
// Create a Bezier curve using the 3 specifed points where the first two points
// are control points and the last point is the destination point for the curve.
ctx.BezierTo(new Point(100, 0), new Point(200,200), new Point(300,100),
true /* is stroked */, false /* is smooth join */);
}
// Create a path to draw a geometry with.
Path myPath = new Path();
myPath.Stroke = Brushes.Black;
myPath.StrokeThickness = 1;
// Freeze the geometry (make it unmodifiable)
// for additional performance benefits.
geometry.Freeze();
// specify the shape (Bezier Curve) of the path using the StreamGeometry.
myPath.Data = geometry;
// Add path shape to the UI.
StackPanel mainPanel = new StackPanel();
mainPanel.Children.Add(myPath);
this.Content = mainPanel;
}
}
}
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Media
Imports System.Windows.Shapes
Namespace SDKSample
Partial Public Class StreamGeometryBezierToExample
Inherits Page
Public Sub New()
' Create a StreamGeometry to use to specify myPath.
Dim geometry As New StreamGeometry()
geometry.FillRule = FillRule.EvenOdd
' Open a StreamGeometryContext that can be used to describe this StreamGeometry
' object's contents.
Using ctx As StreamGeometryContext = geometry.Open()
' Set the begin point of the shape.
ctx.BeginFigure(New Point(10, 100), True, False) ' is closed - is filled
' Create a Bezier curve using the 3 specifed points where the first two points
' are control points and the last point is the destination point for the curve.
ctx.BezierTo(New Point(100, 0), New Point(200,200), New Point(300,100), True, False) ' is smooth join - is stroked
End Using
' Create a path to draw a geometry with.
Dim myPath As New Path()
myPath.Stroke = Brushes.Black
myPath.StrokeThickness = 1
' Freeze the geometry (make it unmodifiable)
' for additional performance benefits.
geometry.Freeze()
' specify the shape (Bezier Curve) of the path using the StreamGeometry.
myPath.Data = geometry
' Add path shape to the UI.
Dim mainPanel As New StackPanel()
mainPanel.Children.Add(myPath)
Me.Content = mainPanel
End Sub
End Class
End Namespace
Комментарии
Кубическая кривая Безье определяется начальной точкой, конечной точкой и двумя контрольными точками. Первая контрольная точка определяет кривизну первой половины сегмента, а вторая контрольная точка определяет кривизну второй половины сегмента.
Этот метод использует конечную точку предыдущего сегмента в качестве начальной точки. Если это первый сегмент на рисунке, он использует точку, указанную методом BeginFigure в качестве начальной точки.
Не StreamGeometry удается сериализовать, если он содержит сегменты Transform , не заполненные или неразглавенные.