次の方法で共有


GraphicsPath.Flatten メソッド (Matrix, Single)

GraphicsPath オブジェクトの各曲線を、接続された線分のシーケンスに変換します。

Overloads Public Sub Flatten( _
   ByVal matrix As Matrix, _   ByVal flatness As Single _)
[C#]
public void Flatten(Matrixmatrix,floatflatness);
[C++]
public: void Flatten(Matrix* matrix,floatflatness);
[JScript]
public function Flatten(
   matrix : Matrix,flatness : float);

パラメータ

  • matrix
    平坦化の前に GraphicsPath を変換する Matrix オブジェクト。
  • flatness
    曲線とそれを平坦化した近似線との間で許容される最大の誤差を指定します。既定値は 0.25 です。平坦化の値を小さくすると、近似線の線分の数が増加します。

使用例

[Visual Basic, C#] 次の例は、Windows フォームでの使用を意図してデザインされており、 OnPaint イベントのオブジェクトである PaintEventArgs e が必要です。このコードは次のアクションを実行します。

  • グラフィックス パスと変換行列を作成します。
  • 4 点を使用して曲線をパスに追加します。
  • 黒いペンを使用して、パス (曲線) を画面に描画します。
  • 曲線を 10 ピクセルに下方にシフトし、平坦化します。
  • 赤いペンを使用して、曲線を画面に描画します。

[Visual Basic, C#] 赤い曲線には、点を接続する平坦化された直線があります。

 
Public Sub FlattenExample(e As PaintEventArgs)
Dim myPath As New GraphicsPath()
Dim translateMatrix As New Matrix()
translateMatrix.Translate(0, 10)
Dim point1 As New Point(20, 100)
Dim point2 As New Point(70, 10)
Dim point3 As New Point(130, 200)
Dim point4 As New Point(180, 100)
Dim points As Point() =  {point1, point2, point3, point4}
myPath.AddCurve(points)
e.Graphics.DrawPath(New Pen(Color.Black, 2), myPath)
myPath.Flatten(translateMatrix, 10F)
e.Graphics.DrawPath(New Pen(Color.Red, 1), myPath)
End Sub 'FlattenExample
        
[C#] 
private void FlattenExample(PaintEventArgs e)
{
GraphicsPath myPath = new GraphicsPath();
Matrix translateMatrix = new Matrix();
translateMatrix.Translate(0, 10);
Point point1 = new Point(20, 100);
Point point2 = new Point(70, 10);
Point point3 = new Point(130, 200);
Point point4 = new Point(180, 100);
Point[] points = {point1, point2, point3, point4};
myPath.AddCurve(points);
e.Graphics.DrawPath(new Pen(Color.Black, 2), myPath);
myPath.Flatten(translateMatrix, 10f);
e.Graphics.DrawPath(new Pen(Color.Red, 1), myPath);
}
        

[C++, JScript] C++ および JScript のサンプルはありません。Visual Basic および C# のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

GraphicsPath クラス | GraphicsPath メンバ | System.Drawing.Drawing2D 名前空間 | GraphicsPath.Flatten オーバーロードの一覧