
vb picturebox控件中 如何平移某条直线?如不能,哪种方式能实现线段的自动平移功能? 10
2个回答
展开全部
你看这样行不行,你可以自己根据需要修改我代码,窗体上放一picture和一个水平滚动条:
Dim X1 As Integer, Y1 As Integer
Dim X2 As Integer, Y2 As Integer
Dim V As Integer
'以上变量X1,X2,Y1,Y2是直线的坐标,V 是滚动条的起始数值
Private Sub Form_Load()
HScroll1.Max = 100
Picture1.AutoRedraw = True
'随机产生直线坐标
Randomize
X1 = Int(Picture1.ScaleWidth * Rnd)
Y1 = Int(Picture1.ScaleHeight * Rnd)
X2 = Int(Picture1.ScaleWidth * Rnd)
Y2 = Int(Picture1.ScaleHeight * Rnd)
'画出直线
Picture1.Line (X1, Y1)-(X2, Y2)
'计算滚动条的起始位置
V = (X1 + X2) / 2 / Picture1.ScaleWidth * 100
HScroll1.Value = V
End Sub
Private Sub HScroll1_Scroll()
Dim X As Integer
'X为滚动条的偏移量,重新画出直线
X = (HScroll1.Value - V) / 100 * Picture1.ScaleWidth
X1 = X1 + X
X2 = X2 + X
Picture1.Cls
Picture1.Line (X1, Y1)-(X2, Y2)
V = HScroll1.Value
End Sub
Dim X1 As Integer, Y1 As Integer
Dim X2 As Integer, Y2 As Integer
Dim V As Integer
'以上变量X1,X2,Y1,Y2是直线的坐标,V 是滚动条的起始数值
Private Sub Form_Load()
HScroll1.Max = 100
Picture1.AutoRedraw = True
'随机产生直线坐标
Randomize
X1 = Int(Picture1.ScaleWidth * Rnd)
Y1 = Int(Picture1.ScaleHeight * Rnd)
X2 = Int(Picture1.ScaleWidth * Rnd)
Y2 = Int(Picture1.ScaleHeight * Rnd)
'画出直线
Picture1.Line (X1, Y1)-(X2, Y2)
'计算滚动条的起始位置
V = (X1 + X2) / 2 / Picture1.ScaleWidth * 100
HScroll1.Value = V
End Sub
Private Sub HScroll1_Scroll()
Dim X As Integer
'X为滚动条的偏移量,重新画出直线
X = (HScroll1.Value - V) / 100 * Picture1.ScaleWidth
X1 = X1 + X
X2 = X2 + X
Picture1.Cls
Picture1.Line (X1, Y1)-(X2, Y2)
V = HScroll1.Value
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询