[英]How to change the origin for rotation in VB.net
我正在嘗試使用以下命令旋轉一個名為 player1 的圖片框
e.Graphics.RotateTransform(angle)
e.Graphics.DrawImage(BMP, New Point(-player1.Width \ 2, -player1.Height \ 2))
player1.Refresh()
但是,它似乎將我繪制的圖片放在圖片框左上角附近的圖片框之外,我相信這是當前的原點。 此外,它僅圍繞位於左上角的原點旋轉。 我想將圖片框的旋轉點/原點設置為中心。 謝謝!
我想將圖片框的旋轉點/原點設置為中心。
只需在旋轉之前使用TranslateTransform :
e.Graphics.TranslateTransform(player1.Width / 2, player1.Height / 2)
e.Graphics.RotateTransform(angle)
e.Graphics.DrawImage(BMP, New Point(-player1.Width \ 2, -player1.Height \ 2))
根據您之前對e.Graphics
所做的操作,有時您必須在平移/旋轉/繪制之前執行ResetTransform()
以將事物恢復到 Paint() 事件開始時的狀態。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.