Cara Memutar Objek

Topik ini menjelaskan cara memutar objek tentang titik tertentu. Untuk memutar objek, panggil metode Matrix3x2F::Rotation . Metode ini mengambil dua parameter, sudut yang ditentukan dan titik tengah. Sudutnya adalah sudut rotasi searah jarum jam dalam derajat, dan titik tengah adalah titik di mana objek berputar. Titik tengah dinyatakan dalam sistem koordinat objek yang diubah.

Misalnya, kode berikut memutar persegi searah jajar 45 derajat tentang tengah persegi.

    // 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);

Ilustrasi berikut menunjukkan efek menerapkan transformasi rotasi sebelumnya ke kuadrat. Persegi asli adalah kerangka putus-putus, dan persegi yang diputar adalah kerangka yang solid.

ilustrasi persegi diputar searah jajar 45 derajat tentang tengah persegi asli

Ilustrasi berikut menunjukkan efek memutar dengan sudut yang sama tentang titik tengah yang berbeda. Perhatikan bahwa objek yang diputar berada di posisi yang berbeda relatif terhadap aslinya. Persegi kerangka kiri adalah hasil memutar tentang tengah persegi asli, dan persegi kerangka kanan adalah hasil memutar di sudut kiri atas persegi asli.

ilustrasi persegi diputar searah jajar 45 derajat tentang titik tengah yang berbeda

Referensi Direct2D

Gambaran Umum Transformasi Direct2D