Compartir a través de


Cómo girar un objeto

En este tema se describe cómo girar un objeto sobre un punto especificado. Para rotar un objeto, llame al método Matrix3x2F::Rotation . Este método toma dos parámetros, el ángulo especificado y el punto central. El ángulo es un ángulo de giro en sentido de las agujas del reloj en grados y el punto central es el punto sobre el que gira el objeto. El punto central se expresa en el sistema de coordenadas del objeto que se transforma.

Por ejemplo, el código siguiente gira un cuadrado en el sentido de las agujas del reloj de 45 grados sobre el centro del cuadrado.

    // Create a rectangle.
    D2D1_RECT_F rectangle = D2D1::Rect(438.0f, 301.5f, 498.0f, 361.5f);

    // Draw the rectangle.
    m_pRenderTarget->DrawRectangle(
        rectangle,
        m_pOriginalShapeBrush,
        1.0f,
        m_pStrokeStyleDash
        );

    // Apply the rotation transform to the render target.
    m_pRenderTarget->SetTransform(
        D2D1::Matrix3x2F::Rotation(
            45.0f,
            D2D1::Point2F(468.0f, 331.5f))
        );

    // Fill the rectangle.
    m_pRenderTarget->FillRectangle(rectangle, m_pFillBrush);

    // Draw the transformed rectangle.
    m_pRenderTarget->DrawRectangle(rectangle, m_pTransformedShapeBrush);

En la ilustración siguiente se muestra el efecto de aplicar la transformación de rotación anterior al cuadrado. El cuadrado original es un contorno punteado y el cuadrado girado es un contorno sólido.

ilustración de un cuadrado girado en el sentido de las agujas del reloj de 45 grados sobre el centro del cuadrado original

En la ilustración siguiente se muestra el efecto de girar por el mismo ángulo sobre un punto central diferente. Observe que los objetos girados están en diferentes posiciones relativas al original. El cuadrado de contorno izquierdo es el resultado de girar alrededor del centro del cuadrado original, y el cuadrado de contorno derecho es el resultado de girar alrededor de la esquina superior izquierda del cuadrado original.

Ilustración de un cuadrado girado en el sentido de las agujas del reloj de 45 grados sobre un punto central diferente

Referencia de Direct2D

Introducción a las transformaciones de Direct2D