📄 vb.txt
字号:
图形填充底色出问题:
Private Sub form_Click()
Static i As Integer
Dim r As Integer, g As Integer, b As Integer
Randomize
r = Int(Rnd * 256)
g = Int(Rnd * 256)
b = Int(Rnd * 256)
Debug.Print r, g, b
Shape1.FillColor = RGB(0, 255, 0)
Shape1.BorderColor = RGB(r, g, b)
i = i + 1
If i <= 5 Then
Call shape(i)
Else
i = 0
Call shape(i)
End If
End Sub
Private Sub Form_Load()
Dim r As Integer, g As Integer, b As Integer
Randomize
r = Int(Rnd * 256)
g = Int(Rnd * 256)
b = Int(Rnd * 256)
Debug.Print r, g, b
Shape1.FillColor = RGB(255, 0, 0) '这里要注意建立一个shape 但还是不填色 为什么?
Shape1.BorderColor = RGB(r, g, b)
Shape1.shape = 0
End Sub
Private Sub shape(x As Integer)
Shape1.shape = x
End Sub
2.转动的指针
Option Explicit
Private Sub Form_load()
Line1.BorderColor = RGB(255, 0, 0)
Line1.BorderWidth = 2
Timer1.Interval = 1000
End Sub
Private Sub Timer1_Timer()
Static a As Integer
Dim x As Single, y As Single
Const pi = 3.14159265
a = a Mod 360
x = 1000 * Sin(a * pi / 180)
y = (-1) * 1000 * Cos(a * pi / 180)
Line1.X2 = x + 2160
Line1.Y2 = y + 1440
Line1.Refresh
a = a + 6
End Sub
3.打点 天女散花
Option Explicit
Private Sub Command1_Click()
Dim i As Integer
For i = 1 To 30000
Call draw
Next i
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub draw()
Dim r As Integer, g As Integer, b As Integer
Dim x As Single, y As Single
Dim w As Integer, h As Integer
Randomize
r = Int(Rnd * 256)
g = Int(Rnd * 256)
b = Int(Rnd * 256)
w = Picture1.Width
h = Picture1.Height
x = Int(Rnd * w)
y = Int(Rnd * h)
Picture1.PSet (x, y), RGB(r, g, b)
End Sub
4.成功的收获了一点点东西的正旋函数图象
Option Explicit
Private Sub Command1_Click()
Dim x As Single, y As Single, a As Integer
Const pi = 3.14159265
'画X轴
Line (450, 1500)-(4000, 1500)
Line (4000, 1500)-(3800, 1450) '利用这条线来画箭头
Line (4000, 1500)-(3800, 1550) '利用这条线来画箭头
'画Y轴
Line (500, 500)-(500, 2500)
Line (500, 500)-(450, 700) '利用这条线来画箭头
Line (500, 500)-(550, 700) '利用这条线来画箭头
'画函数曲线
For a = 0 To 360
y = (-1) * Sin(a * pi / 180) * 500 + 1500
x = a * 8 + 500
PSet (x, y), RGB(255, 0, 0)
Next a
CurrentY = 1500 '要注意了:窗体坐标系的原点在左上角
CurrentX = 500
PSet (500, 1500), RGB(255, 0, 0)
Print "0"
CurrentY = 1000
CurrentX = 500
PSet (500, 1000), RGB(255, 0, 0)
Print 1
CurrentY = 1000
CurrentX = 500
PSet (500, 2000), RGB(255, 0, 0)
Print -1
CurrentY = 600
CurrentX = 500
Print "y"
CurrentY = 1500
CurrentX = 1220
PSet (1220, 1500), RGB(255, 0, 0)
'这里的1220 是根据上面的 Sin(a * pi / 180)=1 计算出a=90,再代入 x = a * 8 + 500算出x=1220
'这里不能直接通过计算 y = (-1) * Sin(a * pi / 180) * 500 + 1500=1500来算,否则a=180,x=1940
Print "π/2" '注意了:这里的 X和Y 都受最近距离的pset中的 X和Y 控制,所以要打点则上面的必须正确
CurrentY = 1500
CurrentX = 1220
PSet (1940, 1500), RGB(255, 0, 0)
'这里的1940 是根据上面的 Sin(a * pi / 180)=0计算出a=180,再代入 x = a * 8 + 500算出x=1940
Print "π"
CurrentY = 1500
CurrentX = 2660 'Sin(a * pi / 180)=-1则a=270,再代入 x = a * 8 + 500算出x=2660
Print "3π/2"
PSet (3380, 1500), RGB(0, 0, 255)
CurrentY = 1500
CurrentX = 3380 'Sin(a * pi / 180)=0则a=360,再代入 x = a * 8 + 500算出x=3380
Print "2π"
CurrentY = 1500
CurrentX = 3750 'Sin(a * pi / 180)=-1则a=270,再代入 x = a * 8 + 500算出x=2660
Print "x"
End Sub
5.新整了后综合起来的东西,包括圆弧和立体圆饼
Option Explicit
Const pi = 3.14159265
Private Sub Command1_Click()
Dim x As Single, y As Single, a As Integer '这里的曲线为什么在第二次运行后就变粗呢???????
Form1.Cls
'画X轴
Line (450, 1500)-(4000, 1500)
Line (4000, 1500)-(3800, 1450) '利用这条线来画箭头
Line (4000, 1500)-(3800, 1550) '利用这条线来画箭头
'画Y轴
Line (500, 500)-(500, 2500)
Line (500, 500)-(450, 700) '利用这条线来画箭头
Line (500, 500)-(550, 700) '利用这条线来画箭头
'画函数曲线
For a = 0 To 360
y = (-1) * Sin(a * pi / 180) * 500 + 1500
x = a * 8 + 500
PSet (x, y), RGB(255, 0, 0)
Next a
CurrentY = 1500 '要注意了:窗体坐标系的原点在左上角
CurrentX = 500
PSet (500, 1500), RGB(255, 0, 0) '其实啊 这里有了这句话 就可以不要上面的CurrentY/x = 1500了
Print "0"
CurrentY = 1000
CurrentX = 500
PSet (500, 1000), RGB(255, 0, 0)
Print 1
CurrentY = 1000
CurrentX = 500
PSet (500, 2000), RGB(255, 0, 0)
Print -1
CurrentY = 600
CurrentX = 500
Print "y"
CurrentY = 1500
CurrentX = 1220
PSet (1220, 1500), RGB(255, 0, 0)
'这里的1220 是根据上面的 Sin(a * pi / 180)=1 计算出a=90,再代入 x = a * 8 + 500算出x=1220
'这里不能直接通过计算 y = (-1) * Sin(a * pi / 180) * 500 + 1500=1500来算,否则a=180,x=1940
Print "π/2" '注意了:这里的 X和Y 都受最近距离的pset中的 X和Y 控制,所以要打点则上面的必须正确
PSet (1940, 1500), RGB(255, 0, 0)
'这里的1940 是根据上面的 Sin(a * pi / 180)=0计算出a=180,再代入 x = a * 8 + 500算出x=1940
Print "π"
CurrentY = 1500
CurrentX = 2660 'Sin(a * pi / 180)=-1则a=270,再代入 x = a * 8 + 500算出x=2660
PSet (2660, 1500), RGB(255, 0, 0)
Print "3π/2"
PSet (3380, 1500), RGB(0, 0, 255)
CurrentY = 1500
CurrentX = 3380 'Sin(a * pi / 180)=0则a=360,再代入 x = a * 8 + 500算出x=3380
Print "2π"
CurrentY = 1500
CurrentX = 3750 'Sin(a * pi / 180)=-1则a=270,再代入 x = a * 8 + 500算出x=2660
Print "x"
End Sub
Private Sub Command2_Click() '画圆弧
Form1.Cls
DrawWidth = 2
Circle (2000, 1500), 800, RGB(255, 0, 0), -pi / 2, -pi / 6
'当 -pi / 2的绝对值大于 -pi / 6的绝对值时,就画圆心角大于180的圆弧
Circle (2050, 1400), 800, RGB(255, 0, 0), -pi / 6, -pi / 2
End Sub
Private Sub Command3_Click()
Form1.Cls
Dim i As Integer, n As Single
Form1.FillStyle = 4 '用斜线填充 '可为什么圆弧也会被填充呢??????
Circle (2000, 1200), 1500, RGB(12, 10, 25), , , 0.5 '这里的0.5<1,所以长半轴在x方向
For i = 1 To 100
n = i * 5
Circle (2000, 1200 + n), 1500, RGB(30, 30, 25), pi, 2 * pi, 0.5
Next i
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -