解释一段VB程序,本人新手
如下一段程序能够实现picture里的图片逆时针旋转90度,但是我看不懂程序
Private Sub Timer1_Timer()
Dim p()
w = Picture1.ScaleWidth
h = Picture1.ScaleHeight
ReDim p(w - 1, h - 1)
For i = 0 To w - 1
For j = 0 To h - 1
p(i, j) = Picture1.Point(i, j)
Next j
Next i
Picture1.Width = h + 4 * Picture1.BorderStyle
Picture1.Height = w + 4 * Picture1.BorderStyle
For i = 0 To h - 1
For j = 0 To w - 1
Picture1.PSet (i, w - j - 1), p(j, i)
Next j
Next i
End Sub
答案:这段代码没什么不明白的地方嘛
'声明一个动态数组变量
Dim p()
'取图片框的宽度与高度
w = Picture1.ScaleWidth
h = Picture1.ScaleHeight
'定义一个二维数组,VB的数组从0开始,而不是1,所以减1。
'这样就产生的数组个数与图片框的图片的点的个数相同。
ReDim p(w - 1, h - 1)
' 下面这段通过二重循环,将图片中每个点的值存到二维数组里。刚好能存完。
For i = 0 To w - 1
For j = 0 To h - 1
p(i, j) = Picture1.Point(i, j)
Next j
Next i
'下面首先将图片框的宽变成与原来的高相等,图片框的高变得与原来的宽相等。
'看起来好像旋转了90度似的。4 * Picture1.BorderStyle这个没有特别作用,只是在原来的基础稍稍增加点宽和高而已
Picture1.Width = h + 4 * Picture1.BorderStyle
Picture1.Height = w + 4 * Picture1.BorderStyle
'这段双重循环,将刚才取出的点重新写入到图片框里。不过是旋转90后再写入。
For i = 0 To h - 1
For j = 0 To w - 1
Picture1.PSet (i, w - j - 1), p(j, i)
Next j
Next i
End Sub
上一个:一个很菜的vb问题
下一个:vb在文本框输入一个字符,发生什么事件