GraphicsPathIterator.HasCurve Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bu GraphicsPathIterator ile ilişkilendirilmiş yolun eğri içerip içermediğini gösterir.
public:
bool HasCurve();
public bool HasCurve ();
member this.HasCurve : unit -> bool
Public Function HasCurve () As Boolean
Döndürülenler
Bu yöntem, geçerli alt yol bir eğri içeriyorsa true
döndürür; aksi takdirde false
.
Örnekler
Aşağıdaki örnek, Windows Forms ile kullanılmak üzere tasarlanmıştır ve OnPaint bir olay nesnesi PaintEventArgse
gerektirir. Kod aşağıdaki eylemleri gerçekleştirir:
myPath
bir GraphicsPath nesnesi oluşturur.Üç çizgi, bir dikdörtgen ve üç nokta ekler.
myPath
için bir GraphicsPathIterator nesnesi oluşturur.Geçerli yolun
myPath
eğri içerip içermediğini sınar.Testin sonucunu bir ileti kutusunda gösterir.
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
Açıklamalar
Bir yoldaki tüm eğriler Bézier eğrilerinin dizileri olarak depolanır. Örneğin, bir yola üç nokta eklediğinizde, sol üst köşeyi, genişliği ve üç noktanın sınırlayıcı dikdörtgeninin yüksekliğini belirtirsiniz. Bu sayılar (sol üst köşe, genişlik ve yükseklik) yolda depolanmaz; yerine; üç nokta dört Bézier splines dizisine dönüştürülür. Yol, bu Bézier spline'larının uç noktalarını ve denetim noktalarını depolar.
Yol, her biri bir satıra veya Bézier spline'a ait olan bir veri noktaları dizisi depolar. Dizideki bazı noktalar Bézier splines'a aitse, HasCurvetrue
döndürür. Dizideki tüm noktalar satırlara aitse, HasCurvefalse
döndürür.
Bazı yöntemler bir yolu düzleştirme, bu da yoldaki tüm eğrilerin çizgi dizilerine dönüştürüldüğü anlamına gelir. Bir yol düzlendikten sonra, HasCurve her zaman false
döndürür.
GraphicsPath sınıfının Flatten, Widenveya Warp yöntemini çağırmak bir yolu düzleştirmeye neden olur.