GraphicsPathIterator.HasCurve Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Wskazuje, czy ścieżka skojarzona z tą GraphicsPathIterator ścieżką zawiera krzywą.
public:
bool HasCurve();
public bool HasCurve ();
member this.HasCurve : unit -> bool
Public Function HasCurve () As Boolean
Zwraca
Ta metoda zwraca wartość true
, jeśli bieżąca ścieżka podrzędna zawiera krzywą; w przeciwnym razie false
.
Przykłady
Poniższy przykład jest przeznaczony do użycia z Windows Forms i wymaga PaintEventArgse
OnPaint obiektu zdarzenia . Kod wykonuje następujące akcje:
GraphicsPath Tworzy obiekt
myPath
.Dodaje trzy linie, prostokąt i wielokropek.
GraphicsPathIterator Tworzy obiekt dla elementu
myPath
.Testy, aby sprawdzić, czy bieżąca ścieżka
myPath
zawiera krzywą.Przedstawia 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 splines 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 splines Bézier.
Ścieżka przechowuje tablicę punktów danych, z których każda należy do linii lub linii Bézier. Jeśli niektóre punkty w tablicy należą do linii splines Bézier, zwraca HasCurve wartość true
. Jeśli wszystkie punkty w tablicy należą do wierszy, zwraca HasCurve wartość false
.
Niektóre metody spłaszczają ścieżkę, co oznacza, że wszystkie krzywe w ścieżce są konwertowane na sekwencje linii. Po spłaszczonej HasCurve ścieżce zawsze zwraca false
wartość . FlattenWywołanie metody GraphicsPath , Widenlub Warp klasy spowoduje spłaszczenie ścieżki.
Dotyczy
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla