GraphicsPathIterator.HasCurve Metoda
Definicja
Ważny
Niektóre informacje dotyczą produktów przedpremierowych, które mogą zostać znacznie zmodyfikowane przed premierą. Microsoft nie udziela żadnych gwarancji, ani wyraźnych, ani domniemanych, dotyczących informacji podanych tutaj.
Wskazuje, czy ścieżka skojarzona z tym GraphicsPathIterator zawiera krzywą.
public:
bool HasCurve();
public bool HasCurve();
member this.HasCurve : unit -> bool
Public Function HasCurve () As Boolean
Zwraca
Ta metoda zwraca true, jeśli bieżąca ścieżka podrzędna zawiera krzywą; w przeciwnym razie false.
Przykłady
Poniższy przykład został zaprojektowany do użycia z formularzami systemu Windows i wymaga PaintEventArgseobiektu zdarzenia OnPaint. Kod wykonuje następujące akcje:
Tworzy obiekt GraphicsPath
myPath.Dodaje trzy linie, prostokąt i wielokropek.
Tworzy obiekt GraphicsPathIterator dla
myPath.Sprawdza, czy bieżąca ścieżka
myPathzawiera krzywą.Pokazuje wynik testu w polu komunikatu.
private:
void HasCurveExample( PaintEventArgs^ /*e*/ )
{
// Create a path and add three lines,
// a rectangle and an ellipse.
GraphicsPath^ myPath = gcnew GraphicsPath;
array<Point>^ myPoints = {Point(20,20),Point(120,120),Point(20,120),Point(20,20)};
Rectangle myRect = Rectangle(120,120,100,100);
myPath->AddLines( myPoints );
myPath->AddRectangle( myRect );
myPath->AddEllipse( 220, 220, 100, 100 );
// Create a GraphicsPathIterator for myPath.
GraphicsPathIterator^ myPathIterator = gcnew GraphicsPathIterator( myPath );
// Test for a curve.
bool myHasCurve = myPathIterator->HasCurve();
// Show the test result.
MessageBox::Show( myHasCurve.ToString() );
}
private void HasCurveExample(PaintEventArgs e)
{
// Create a path and add three lines,
// a rectangle and an ellipse.
GraphicsPath myPath = new GraphicsPath();
Point[] myPoints = {new Point(20, 20), new Point(120, 120),
new Point(20, 120),new Point(20, 20) };
Rectangle myRect = new Rectangle(120, 120, 100, 100);
myPath.AddLines(myPoints);
myPath.AddRectangle(myRect);
myPath.AddEllipse(220, 220, 100, 100);
// Create a GraphicsPathIterator for myPath.
GraphicsPathIterator myPathIterator = new
GraphicsPathIterator(myPath);
// Test for a curve.
bool myHasCurve = myPathIterator.HasCurve();
// Show the test result.
MessageBox.Show(myHasCurve.ToString());
}
Public Sub HasCurveExample(ByVal e As PaintEventArgs)
Dim myPath As New GraphicsPath
Dim myPoints As Point() = {New Point(20, 20), _
New Point(120, 120), New Point(20, 120), New Point(20, 20)}
Dim myRect As New Rectangle(120, 120, 100, 100)
myPath.AddLines(myPoints)
myPath.AddRectangle(myRect)
myPath.AddEllipse(220, 220, 100, 100)
' Create a GraphicsPathIterator for myPath.
Dim myPathIterator As New GraphicsPathIterator(myPath)
Dim myHasCurve As Boolean = myPathIterator.HasCurve()
MessageBox.Show(myHasCurve.ToString())
End Sub
Uwagi
Wszystkie krzywe w ścieżce są przechowywane jako sekwencje linii Bézier. Na przykład po dodaniu wielokropka do ścieżki należy określić lewy górny róg, szerokość i wysokość prostokąta ograniczenia wielokropka. Te liczby (lewy górny róg, szerokość i wysokość) nie są przechowywane w ścieżce; zamiast; wielokropek jest konwertowany na sekwencję czterech linii Bézier. Ścieżka przechowuje punkty końcowe i punkty kontrolne tych linii Bézier.
Ścieżka przechowuje tablicę punktów danych, z których każda należy do linii lub linii spline Bézier. Jeśli niektóre punkty w tablicy należą do krzywych Bézier, HasCurve zwraca true. Jeśli wszystkie punkty w tablicy należą do wierszy, HasCurve zwraca wartość false.
Niektóre metody spłaszczają ścieżkę, co oznacza, że wszystkie krzywe w ścieżce są konwertowane na sekwencje linii. Po spłaszczeniu ścieżki HasCurve zawsze zwróci false. Wywołanie metody Flatten, Widenlub Warp klasy GraphicsPath spowoduje spłaszczenie ścieżki.