Cara Mengubah Kemiringan Objek
Untuk condong (atau geser) objek berarti mendistorsi objek dengan sudut tertentu dari sumbu x, sumbu y, atau keduanya. Misalnya, ketika Anda condong persegi, itu menjadi parallelogram.
Metode Matrix3x2F::Skew mengambil 3 parameter:
- angleX: Sudut miring sumbu x, yang diukur dalam derajat berlawanan arah jarum jam dari sumbu y.
- sudutY: Sudut miring sumbu y, yang diukur dalam derajat searah jarum jam dari sumbu x.
- centerPoint : Titik di mana kecondongan dilakukan.
Untuk memprediksi efek transformasi condong, pertimbangkan bahwa angleX adalah sudut condong yang diukur dalam derajat berlawanan arah jarum jam dari sumbu y. Misalnya, jika sudut angleX diatur ke 30, objek akan miring 30 derajat berlawanan arah jarum jam sepanjang sumbu y mengelilingi titik tengah . Ilustrasi berikut menunjukkan persegi yang miring secara horizontal 30 derajat dengan titik pusat pada sudut kiri atas persegi.
Demikian pula, sudut Y adalah sudut miring yang diukur dalam derajat searah jarum jam dari sumbu x. Misalnya, jika angleY diatur ke 30, objek condong 30 derajat searah jarum jam di sepanjang sumbu-x tentang titik pusat . Ilustrasi berikut menunjukkan persegi yang dimiringkan secara vertikal sebesar 30 derajat mengarah pada sudut kiri atas persegi.
Jika Anda mengatur sudut dan sudut Y ke 30 derajat, dan centerPoint ke sudut kiri atas persegi, Anda akan melihat persegi miring berikut (kerangka solid). Perhatikan bahwa persegi condong condong 30 derajat berlawanan arah jarum jam dari sumbu y dan 30 derajat searah jarum jam dari sumbu x.
Contoh kode berikut condongkan persegi 45 derajat secara horizontal tentang sudut kiri atas persegi.
// Create a rectangle.
D2D1_RECT_F rectangle = D2D1::Rect(126.0f, 301.5f, 186.0f, 361.5f);
// Draw the outline of the rectangle.
m_pRenderTarget->DrawRectangle(
rectangle,
m_pOriginalShapeBrush,
1.0f,
m_pStrokeStyleDash
);
// Apply the skew transform to the render target.
m_pRenderTarget->SetTransform(
D2D1::Matrix3x2F::Skew(
45.0f,
0.0f,
D2D1::Point2F(126.0f, 301.5f))
);
// Paint the interior of the rectangle.
m_pRenderTarget->FillRectangle(rectangle, m_pFillBrush);
// Draw the outline of the rectangle.
m_pRenderTarget->DrawRectangle(rectangle, m_pTransformedShapeBrush);
Ilustrasi berikut menunjukkan efek penerapan transformasi miring pada persegi, di mana persegi asli adalah garis putus-putus dan objek yang dimiringkan (jajaran genjang) adalah garis yang solid. Perhatikan bahwa sudut condong adalah 45 derajat berlawanan arah jarum jam dari sumbu y.
Topik terkait