Bagikan melalui


Cara Memutar Objek

Topik ini menjelaskan cara memutar objek pada titik tertentu. Untuk memutar objek, panggil metode Matrix3x2F::Rotation. Metode ini mengambil dua parameter, sudut yang ditentukan dan titik tengah. Sudut 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 jarum jam 45 derajat sekitar pusat 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 bergaris putus-putus, dan persegi yang diputar adalah bergaris penuh.

ilustrasi persegi yang diputar 45 derajat searah jarum jam di sekitar pusat persegi asli

Ilustrasi berikut menunjukkan efek memutar dengan sudut yang sama terhadap titik pusat yang berbeda. Perhatikan bahwa objek yang diputar berada dalam posisi yang berbeda relatif terhadap yang asli. Persegi bergaris kiri adalah hasil memutar sekitar tengah persegi asli, dan persegi bergaris kanan adalah hasil memutar sekitar sudut kiri atas persegi asli.

ilustrasi persegi yang diputar searah jarum jam 45 derajat sekitar titik pusat yang berbeda

Referensi Direct2D

Gambaran Umum Transformasi Direct2D