簡體   English   中英

如何更改 VB.net 中的旋轉原點

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM