次の方法で共有


Graphics.MultiplyTransform メソッド (Matrix)

この Graphics オブジェクトと指定した Matrix オブジェクトのワールド変換を乗算します。

Overloads Public Sub MultiplyTransform( _
   ByVal matrix As Matrix _)
[C#]
public void MultiplyTransform(Matrixmatrix);
[C++]
public: void MultiplyTransform(Matrix* matrix);
[JScript]
public function MultiplyTransform(
   matrix : Matrix);

パラメータ

  • matrix
    ワールド変換を乗算する 4 × 4 Matrix オブジェクト。

戻り値

このメソッドは値を返しません。

解説

このメソッドは、matrix パラメータで指定した行列を前に付加することにより、matrix × ワールド変換を生成します。

MeasureString メソッドは独立した文字列で使用するようにデザインされており、グリフの突出に対応するための少量の余白を文字列の前後に含めます。また、 DrawString メソッドはグリフのポイントを調整して表示品質を最適化するため、 MeasureString で報告されるよりも狭い範囲に文字列が表示される可能性があります。書式指定したテキストを実装する場合などに、レイアウト内の隣接する文字列に最適なメトリックを取得するには、 MeasureCharacterRanges メソッドを使用します。

使用例

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

  • transformMatrix 行列 (2 × 2 の単位行列とゼロ平行移動ベクタ) を作成します。
  • ベクタ (200, 100) で変換行列を平行移動します。
  • Windows フォームのワールド変換行列を 30 度回転して、30 度の回転行列を Windows フォームの変換行列の前に付加します。
  • 回転したワールド変換行列と平行移動した transformMatrix を乗算し、 transformMatrix をワールド変換行列の前に付加します。
  • 回転して平行移動した楕円を描画します。
 
Public Sub MultiplyTransformMatrix(e As PaintEventArgs)
' Create transform matrix.
Dim transformMatrix As New Matrix()
' Translate matrix, prepending translation vector.
transformMatrix.Translate(200F, 100F)
' Rotate transformation matrix of graphics object,
' prepending rotation matrix.
e.Graphics.RotateTransform(30F)
' Multiply (prepend to) transformation matrix of
' graphics object to translate graphics transformation.
e.Graphics.MultiplyTransform(transformMatrix)
' Draw rotated, translated ellipse.
e.Graphics.DrawEllipse(New Pen(Color.Blue, 3), - 80, - 40, 160, 80)
End Sub
        
[C#] 
public void MultiplyTransformMatrix(PaintEventArgs e)
{
// Create transform matrix.
Matrix transformMatrix = new Matrix();
// Translate matrix, prepending translation vector.
transformMatrix.Translate(200.0F, 100.0F);
// Rotate transformation matrix of graphics object,
//  prepending rotation matrix.
e.Graphics.RotateTransform(30.0F);
// Multiply (prepend to) transformation matrix of
//  graphics object to translate graphics transformation.
e.Graphics.MultiplyTransform(transformMatrix);
// Draw rotated, translated ellipse.
e.Graphics.DrawEllipse(new Pen(Color.Blue, 3), -80, -40, 160, 80);
}
        

[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 ファミリ

参照

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