什么同样都是PL.DrawWidth = 1但是一个显示很细,一个显示很粗

jusudan6052 2017-12-12 08:41:18
我是复制了上一段程序的,只是改了几个参数,为什么同样都是PL.DrawWidth = 1但是一个显示很细,一个显示很粗
Sub Draw_Ellipse(X, y, Angle, color) ' 此句是画椭圆的的程序
ChangeB(1, 1) = Cos(Angle): ChangeB(1, 2) = Sin(Angle): ChangeB(1, 3) = 0
ChangeB(2, 1) = -Sin(Angle): ChangeB(2, 2) = Cos(Angle): ChangeB(2, 3) = 0
ChangeB(3, 1) = -(X) * Cos(Angle) + y * Sin(Angle) + X
ChangeB(3, 2) = -(X) * Sin(Angle) - y * Cos(Angle) + y
ChangeB(3, 3) = 1
For i = 1 To 360
Ellipse(i, 1) = Xz(i) + X
Ellipse(i, 2) = Yz(i) + y '中间轮的另一种表达方式
Ellipse(i, 3) = 1
Next i
Call JZCF
PL.DrawWidth = 2
For k = 2 To 360
PL.Line (Ellipse(k - 1, 1), Ellipse(k - 1, 2))-(Ellipse(k, 1), Ellipse(k, 2)), color '相当于两点之间的连线
Next k
PL.DrawWidth = 2
PL.Line (Ellipse(360, 1), Ellipse(360, 2))-(Ellipse(1, 1), Ellipse(1, 2)), color '相当于连中间的十字线
PL.Line (Ellipse(37, 1), Ellipse(37, 2))-(Ellipse(1, 1), Ellipse(1, 2)), color 'RGB(255, 255, 0)
PL.Line (Ellipse(19, 1), Ellipse(19, 2))-(Ellipse(55, 1), Ellipse(55, 2)), color 'RGB(255, 255, 0)
End Sub


Sub Draw_Ellipse1(X, y, Angle, color) ' 此句是画中间锥齿轮的的程序
ChangeB(1, 1) = Cos(Angle): ChangeB(1, 2) = Sin(Angle): ChangeB(1, 3) = 0
ChangeB(2, 1) = -Sin(Angle): ChangeB(2, 2) = Cos(Angle): ChangeB(2, 3) = 0
ChangeB(3, 1) = -(X) * Cos(Angle) + y * Sin(Angle) + X
ChangeB(3, 2) = -(X) * Sin(Angle) - y * Cos(Angle) + y
ChangeB(3, 3) = 1
For i = 1 To 360
Ellipse1(i, 1) = 24 * Cos(i) + X
Ellipse1(i, 2) = 24 * Sin(i) + y '中间锥齿轮的另一种表达方式
Ellipse1(i, 3) = 1
Next i
Call JZCF1
PL.DrawWidth = 2
For k = 2 To 360
PL.Line (Ellipse1(k - 1, 1), Ellipse1(k - 1, 2))-(Ellipse1(k, 1), Ellipse1(k, 2)), color '相当于两点之间的连线
Next k
PL.DrawWidth = 2
PL.Line (Ellipse1(360, 1), Ellipse1(360, 2))-(Ellipse1(1, 1), Ellipse1(1, 2)), color '相当于连中间的十字线
End Sub
...全文
232 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
舉杯邀明月 2017-12-13
  • 打赏
  • 举报
回复
你的“过程”:JZCF和JZCF1 做了些什么? 如果“同为PL.DrawWidth = 1”,画出的线粗细不一样,   最大的可能就是“度量单位”不一样: 你改变了ScaleMode,以及“坐标值范围”等。
用vb做一个简单的射击游戏 Option Explicit Dim RandX As Single Dim RandY As Single Dim Score As Single Dim Thisscore As Single Dim Average As Single Dim Shot As Integer Dim Appear As Boolean Dim Distance As Single Private Sub Command1_Click() Timer1.Enabled = True Command3.Enabled = True If Command1.Enabled = True Then Command3.Caption = "暂停" End If Command4.Enabled = True End Sub Private Sub Command2_Click() If Command4.Enabled = True Then MsgBox "请先结束游戏", 48, "警告" Else End End If End Sub Private Sub Command3_Click() Command1.Enabled = False Command3.Caption = "继续" Timer1.Enabled = Not Timer1.Enabled If Timer1.Enabled = True Then Command3.Caption = "暂停" End If End Sub Private Sub Command4_Click() Timer1.Enabled = False Command3.Enabled = False Command1.Enabled = True Picture1.Cls Label1.Caption = "射击:" Label2.Caption = "平均得分:" Label3.Caption = "环数:" Label4.Caption = "总分:" Command4.Enabled = False Command3.Caption = "暂停" End Sub Private Sub Form_Load() Appear = False Timer1.Enabled = False Thisscore = 0 Score = 0 Shot = 0 End Sub Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Beep Shot = Shot + 1 Picture1.DrawWidth = 4 Picture1.PSet (X, Y), RGB(255, 0, 0) Distance = Sqr((X - RandX) * (X - RandX) + (Y - RandY) * (Y - RandY)) If Appear And Timer1.Enabled Then Thisscore = 5 - Int(Distance / 10) If Thisscore <= 0 Then Thisscore = 0 End If Score = Score + Thisscore Average = Int((Score / Shot) * 100) / 100 Label1.Caption = "射击:" + Str(Shot) + "发" Label2.Caption = "平均得分:" & Format(Average, "0.00") & "环" Label3.Caption = "环数:" + Str(Thisscore) + "环" Label4.Caption = "总分:" + Str(Score) + "环" End If End Sub Private Sub Timer1_Timer() Dim i As Integer Appear = Appear Xor True RandX = 500 * Rnd() RandY = 370 * Rnd() If Appear Then Form1.Picture1.AutoRedraw = True Picture1.DrawWidth = 1 Picture1.DrawStyle = 0 For i = 10 To 50 Step 10 Picture1.Circle (RandX, RandY), i, RGB(0, 0, 255) Next i Picture1.Line (RandX - 60, RandY)-(RandX + 60, RandY) Picture1.Line (RandX, RandY - 60)-(RandX, RandY + 60) Else Picture1.Cls End If End Sub

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧