GraphicsPathIterator.HasCurve Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Anger om sökvägen som är associerad med detta GraphicsPathIterator innehåller en kurva.
public:
bool HasCurve();
public bool HasCurve();
member this.HasCurve : unit -> bool
Public Function HasCurve () As Boolean
Returer
Den här metoden returnerar true om den aktuella undersökvägen innehåller en kurva, falseannars .
Exempel
Följande exempel är utformat för användning med Windows Forms och kräver PaintEventArgse, ett OnPaint händelseobjekt. Koden utför följande åtgärder:
Skapar ett GraphicsPath objekt,
myPath.Lägger till tre rader, en rektangel och en ellips.
Skapar ett GraphicsPathIterator objekt för
myPath.Tester för att se om den aktuella sökvägen
myPathinnehåller en kurva.Visar resultatet av testet i en meddelanderuta.
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
Kommentarer
Alla kurvor i en sökväg lagras som sekvenser av Bézier-splines. När du till exempel lägger till en ellips i en sökväg anger du det övre vänstra hörnet, bredden och höjden på ellipsens avgränsningsrektangel. Dessa siffror (övre vänstra hörnet, bredd och höjd) lagras inte i sökvägen. Istället; ellipsen konverteras till en sekvens med fyra Bézier-splines. Sökvägen lagrar slutpunkterna och kontrollpunkterna för dessa Bézier-splines.
En sökväg lagrar en matris med datapunkter som var och en tillhör en linje eller en Bézier-spline. Om några av punkterna i matrisen tillhör Bézier-splines returnerar HasCurve.true Om alla punkter i matrisen tillhör linjer returnerar HasCurve.false
Vissa metoder plattar ut en sökväg, vilket innebär att alla kurvor i sökvägen konverteras till sekvenser av linjer. När en sökväg har plattats HasCurve ut returneras falsealltid .
FlattenOm du anropar metoden , Wideneller Warp för klassen plattas GraphicsPath en sökväg ut.