溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

VB.NET中心旋轉(zhuǎn)圖像的實(shí)現(xiàn)方法

發(fā)布時(shí)間:2021-07-20 00:20:15 來源:億速云 閱讀:659 作者:chen 欄目:編程語言

這篇文章主要講解了“VB.NET中心旋轉(zhuǎn)圖像的實(shí)現(xiàn)方法”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“VB.NET中心旋轉(zhuǎn)圖像的實(shí)現(xiàn)方法”吧!

我們?cè)趯W(xué)習(xí)一門編程語言的時(shí)候,需要通過不斷的實(shí)踐去積累經(jīng)驗(yàn),來加深我們對(duì)這門語言的理解程度。對(duì)于VB.NET的學(xué)習(xí)同樣也是如此。在這里我們先通過一段VB.NET中心旋轉(zhuǎn)圖像的實(shí)現(xiàn)代碼來初步的了解一下這門語言的編寫方式和應(yīng)用方法。

鼠標(biāo)拖拽旋轉(zhuǎn)。實(shí)現(xiàn)任意角度的VB.NET中心旋轉(zhuǎn)圖像。

  1. Public Class Form1  

  2. Dim bmp As Bitmap  

  3. Dim bmpsize As Single  

  4. Dim gr As Graphics  

  5. Dim pb As Point  

  6. Dim po As PointF  

  7. Private Sub Form1_Load(ByVal sender As 
    System.Object, ByVal e As System.EventArgs)
     Handles MyBase.Load  

  8. bmpsize = Math.Sqrt(Me.Icon.Width ^ 
    2 + Me.Icon.Height ^ 2)  

  9. bmp = New Bitmap(CInt(bmpsize), CInt(bmpsize))  

  10. gr = Graphics.FromImage(bmp)  

  11. po = New PointF((bmpsize - Me.Icon.Width) 
    / 2, (bmpsize - Me.Icon.Height) / 2)  

  12. gr.DrawIcon(Me.Icon, po.X, po.Y)  

  13. PictureBox1.Image = bmp 

  14. End Sub  

  15. Private Sub PictureBox1_MouseDown(ByVal 
    sender As Object, ByVal e As System.Windows.
    Forms.MouseEventArgs) Handles PictureBox1.MouseDown  

  16. pb = e.Location  

  17. End Sub  

  18. Private Sub PictureBox1_MouseMove(ByVal 
    sender As Object, ByVal e As System.Windows.
    Forms.MouseEventArgs) Handles PictureBox1.MouseMove  

  19. If Not pb = Point.Empty Then  

  20. 'O\-----------B  

  21. ' \   

  22. ' \  

  23. ' \  

  24. ' E  

  25. Dim vOB, vOE As Windows.Vector  

  26. vOB = New Windows.Vector(bmpsize / 2, 
    bmpsize / 2) - New Windows.Vector(pb.X, pb.Y)  

  27. vOE = New Windows.Vector(bmpsize / 2, bmpsize / 2)
     - New Windows.Vector(e.X, e.Y)  

  28. '可以用叉乘求面積,正負(fù)號(hào)代表旋轉(zhuǎn)方向,而后正弦定理求角度,  

  29. Dim O As Double = Windows.Vector.AngleBetween(vOB, vOE)  

  30. '若角度為有效值  

  31. gr.TranslateTransform(bmpsize / 2, bmpsize / 2) 
    '移動(dòng)坐標(biāo)至圖像中心  

  32. gr.RotateTransform(O) '按角度旋轉(zhuǎn)  

  33. gr.TranslateTransform(-bmpsize / 2, -bmpsize / 2)
     '移回  

  34. gr.Clear(Color.Transparent) '清除原有圖像  

  35. gr.DrawIcon(Me.Icon, po.X, po.Y) '繪制新圖像  

  36. PictureBox1.Image = bmp 

  37. pb = e.Location  

  38. End If  

  39. End Sub  

  40. Private Sub PictureBox1_MouseUp(ByVal sender As 
    Object, ByVal e As System.Windows.Forms.MouseEventArgs) 
    Handles PictureBox1.MouseUp  

  41. pb = Point.Empty  

  42. End Sub  

  43. End Class 

感謝各位的閱讀,以上就是“VB.NET中心旋轉(zhuǎn)圖像的實(shí)現(xiàn)方法”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)VB.NET中心旋轉(zhuǎn)圖像的實(shí)現(xiàn)方法這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI