VB程序员博客

VB程序开发

Option Explicit
  Const Pi = 3.14
  Private Sub CommandRototate_Click()
          Dim x    As Integer, y      As Integer
          Dim X1    As Integer, Y1      As Integer
          Dim X2    As Double, Y2      As Double
          Dim X3    As Double, Y3      As Double
          Dim JiaoDu    As Double
          Dim HuDu    As Double
          PicSource.Cls
          PicTarget.Cls
          Dim i As Integer
          For i = Len(Text1.Text) To 1 Step -1
          PicSource.Print Mid(Text1.Text, i, 1);
          Next i
          JiaoDu = 180                                '  注释:  角  度
          HuDu = JiaoDu * Pi / 180                    ' 注释:  弧  度
          PicSource.ScaleMode = vbPixels
          PicTarget.ScaleMode = vbPixels
          For x = 0 To PicTarget.ScaleWidth
                  X1 = x - PicTarget.ScaleWidth 2
                  For y = 0 To PicTarget.ScaleHeight
                          Y1 = y - PicTarget.ScaleHeight 2
                          X2 = X1 * Cos(-HuDu) + Y1 * Sin(-HuDu)
                          Y2 = Y1 * Cos(-HuDu) - X1 * Sin(-HuDu)
                          X3 = X2 + PicSource.ScaleWidth 2
                          Y3 = Y2 + PicSource.ScaleHeight 2
                          If X3 > 0 And X3 < PicSource.ScaleWidth - 1 And Y3 > 0 And Y3 < PicSource.ScaleHeight - 1 Then
                          PicTarget.PSet (x, y), PicSource.Point(X3, Y3)
                          End If
                  Next y
          Next x
  End Sub

这种都挺好,但如果PicSource后面比较留出空位多,PicTarget前面也会留出空位来,请问能否有好的方法吗?谢谢了。

参考一下吧:
http://topic.csdn.net/u/20081020/17/452ec679-d433-44d2-9035-ab067cb4add6.html

please use GDI.

谢谢各位。


标签: