Condividi tramite


Metodo Stroke.Transform (Matrix, Boolean)

Aggiornamento: novembre 2007

Applica una trasformazione lineare a un oggetto Stroke con la possibilità di applicare la trasformazione allo spessore della penna.

Spazio dei nomi:  Microsoft.Ink
Assembly:  Microsoft.Ink (in Microsoft.Ink.dll)

Sintassi

'Dichiarazione
Public Sub Transform ( _
    inkTransform As Matrix, _
    applyOnPenWidth As Boolean _
)
'Utilizzo
Dim instance As Stroke
Dim inkTransform As Matrix
Dim applyOnPenWidth As Boolean

instance.Transform(inkTransform, applyOnPenWidth)
public void Transform(
    Matrix inkTransform,
    bool applyOnPenWidth
)
public:
void Transform(
    Matrix^ inkTransform, 
    bool applyOnPenWidth
)
public void Transform(
    Matrix inkTransform,
    boolean applyOnPenWidth
)
public function Transform(
    inkTransform : Matrix, 
    applyOnPenWidth : boolean
)

Parametri

  • applyOnPenWidth
    Tipo: System.Boolean
    Valore booleano che indica se applicare la trasformazione allo spessore dell'input penna nell'oggetto DrawingAttributes dell'oggetto Stroke.

    Valore

    Significato

    true

    La trasformazione viene applicata sia ai punti, sia allo spessore della penna.

    false

    La trasformazione viene applicata solo ai punti.

Note

La trasformazione lineare può rappresentare ridimensionamento, rotazione, traslazione e combinazioni di trasformazioni.

Se lo spessore della penna viene ridimensionato in modo appropriato per la trasformazione, lo spessore della penna disegnato viene calcolato moltiplicando lo spessore della penna specificato (o, in caso contrario, il valore predefinito 53) per la radice quadrata del determinante della trasformazione.

Esempi

In questo esempio di C# viene ridimensionato un oggetto Stroke, theStroke, in base a un fattore di due attorno al centro del riquadro del tratto. Lo spessore dell'input penna viene ridimensionato anche in base a un fattore pari a due.

using System.Drawing.Drawing2D;
//...
Matrix inkTransform = new Matrix();
Rectangle inkBounds = theStroke.GetBoundingBox();
PointF center = new PointF(0.5f * (inkBounds.Left + inkBounds.Right),
                           0.5f * (inkBounds.Top + inkBounds.Bottom));
// Translate to center of bounding box
inkTransform.Translate(center.X, center.Y);
// Scale by factor of 2
inkTransform.Scale(2.0F, 2.0F);
// Translate back
inkTransform.Translate(-center.X, -center.Y);
// Transform stroke
theStroke.Transform(inkTransform, true);

In questo esempio di Microsoft Visual Basic .NET viene ridimensionato un oggetto Stroke, theStroke, in base a un fattore di due attorno al centro del riquadro del tratto. Lo spessore dell'input penna viene ridimensionato anche in base a un fattore pari a due.

Imports System.Drawing.Drawing2D
'...
Dim inkTransform As New Matrix()
Dim inkBounds As Rectangle = theStroke.GetBoundingBox()
Dim center As New PointF(0.5F * (inkBounds.Left + inkBounds.Right), _
                         0.5F * (inkBounds.Top + inkBounds.Bottom))
'Translate to center of bounding box
inkTransform.Translate(center.X, center.Y)
'Scale by a factor of 2
inkTransform.Scale(2.0F, 2.0F)
'Translate back
inkTransform.Translate(-center.X, -center.Y)
'Transform stroke
theStroke.Transform(inkTransform, True)

Piattaforme

Windows Vista

.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Informazioni sulla versione

.NET Framework

Supportato in: 3.0

Vedere anche

Riferimenti

Stroke Classe

Membri Stroke

Overload Transform

Spazio dei nomi Microsoft.Ink

Transform

Stroke.Move

Stroke.Rotate

Strokes.Transform