GraphicsPathIterator.HasCurve Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Určuje, zda cesta přidružená k tomuto GraphicsPathIterator obsahuje křivku.
public:
bool HasCurve();
public bool HasCurve ();
member this.HasCurve : unit -> bool
Public Function HasCurve () As Boolean
Návraty
Tato metoda vrátí true
, pokud aktuální dílčí cesta obsahuje křivku; jinak false
.
Příklady
Následující příklad je navržený pro použití s Windows Forms a vyžaduje PaintEventArgse
, objekt události OnPaint. Kód provede následující akce:
Vytvoří objekt GraphicsPath
myPath
.Přidá tři čáry, obdélník a tři tečky.
Vytvoří objekt GraphicsPathIterator pro
myPath
.Testuje, jestli aktuální cesta
myPath
obsahuje křivku.Zobrazí výsledek testu v poli se zprávou.
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
Poznámky
Všechny křivky v cestě jsou uloženy jako sekvence Bézierových čar. Když například přidáte tři tečky do cesty, zadáte levý horní roh, šířku a výšku ohraničujícího obdélníku se třemi tečkou. Tato čísla (levý horní roh, šířka a výška) nejsou uložená v cestě; namísto; tři tečky jsou převedeny na sekvenci čtyř Bézierových čar. Cesta ukládá koncové body a kontrolní body těchto spojnic Bézier.
Cesta ukládá matici datových bodů, z nichž každá patří do čáry nebo Bézierovy křivky. Pokud některé body v matici patří do Bézierových čar, HasCurve vrátí true
. Pokud všechny body v matici patří k řádkům, HasCurve vrátí false
.
Některé metody zploštějí cestu, což znamená, že všechny křivky v cestě jsou převedeny na sekvence čar. Po zploštění cesty se HasCurve vždy vrátí false
. Volání metody Flatten, Widennebo Warp třídy GraphicsPath zploštěne cestu.