Compartir a través de


Strokes.Transform (Método) (Matrix, Boolean)

Actualización: noviembre 2007

Aplica una transformación lineal a una colección Strokes, con la posibilidad de aplicar la transformación al ancho de la pluma.

Espacio de nombres:  Microsoft.Ink
Ensamblado:  Microsoft.Ink (en Microsoft.Ink.dll)

Sintaxis

'Declaración
Public Sub Transform ( _
    inkTransform As Matrix, _
    applyOnPenWidth As Boolean _
)
'Uso
Dim instance As Strokes
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
)

Parámetros

  • applyOnPenWidth
    Tipo: System.Boolean
    Valor booleano que indica si se debe aplicar la transformación al ancho de la entrada manuscrita de la propiedad DrawingAttributes de los objetos Stroke de la colección Strokes.

    Valor

    Significado

    true

    La transformación se aplica a los puntos y al ancho de la pluma.

    false

    La transformación sólo se aplica a los puntos.

Comentarios

La transformación lineal puede representar el ajuste de escala, la rotación, la traslación y combinaciones de transformaciones.

Si se ajusta la escala del ancho de la pluma de forma adecuada para la transformación, el ancho de la pluma dibujado se calcula multiplicando el ancho de la pluma especificado (o el valor predeterminado de 53, si no se ha especificado) por la raíz cuadrada del determinante de la transformación.

Ejemplos

En este ejemplo, se ajusta la escala de la colección Strokes asociada a un objeto InkOverlay con un factor de dos. El ajuste de la escala se produce alrededor del centro del cuadro de límite de la colección Strokes. La escala del ancho de la entrada manuscrita también se ajusta con un factor de dos.

' Access to the Strokes property returns a copy of the Strokes object.
' This copy must be implicitly (via using statement) or explicitly
' disposed of in order to avoid a memory leak.
Using allStrokes As Strokes = mInkOverlay.Ink.Strokes

    Dim inkTransform As Matrix = New Matrix()
    Dim bounds As Rectangle = allStrokes.GetBoundingBox()
    Dim center As PointF = _
        New PointF(0.5F * (bounds.Left + bounds.Right), _
                   0.5F * (bounds.Top + bounds.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 strokes
    allStrokes.Transform(inkTransform, True)
End Using
// Access to the Strokes property returns a copy of the Strokes object.
// This copy must be implicitly (via using statement) or explicitly
// disposed of in order to avoid a memory leak.
using (Strokes allStrokes = mInkOverlay.Ink.Strokes)
{
    Matrix inkTransform = new Matrix();
    Rectangle bounds = allStrokes.GetBoundingBox();
    PointF center = new PointF(0.5f * (bounds.Left + bounds.Right),
                               0.5f * (bounds.Top + bounds.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 strokes
    allStrokes.Transform(inkTransform, true);
}

Plataformas

Windows Vista

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Información de versión

.NET Framework

Compatible con: 3.0

Vea también

Referencia

Strokes (Clase)

Strokes (Miembros)

Transform (Sobrecarga)

Microsoft.Ink (Espacio de nombres)

Strokes.Scale

Strokes.Move

Strokes.Rotate

Stroke.Transform