⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 turtlegraph.cls

📁 用VB实现的编译器的源代码
💻 CLS
字号:
VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "TurtleGraph"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Const PI = 3.141582654
Public X As Double, Y As Double, W As Double
Public XMax%, YMax%, schlafzeit%
Public Sichtbar As Boolean
Public Turtle As Boolean
Public zFarbe As Long, hFarbe As Long, tFarbe As Long
Public Bild As PictureBox

Public Sub Init(picImage As PictureBox, pWidth As Integer, pHeight As Integer, pColor As Long)
    Set Bild = picImage
    Bild.ScaleMode = vbPixels
    Bild.FontName = "Tahoma"
    Bild.FontSize = 10
    iInit pWidth, pHeight, pWidth / 2, pHeight / 2, 0, pColor
End Sub

Public Function Bogen(Degrees As Double) As Double
    Bogen = Degrees * PI / 180
End Function

Public Sub Drehe(Winkel As Double)
    W = W + Winkel
    If W >= 360 Then
        Do Until W < 360
            W = W - 360
        Loop
    End If
    If W <= 0 Then
        Do Until W >= 0
            W = W + 360
        Loop
    End If
End Sub

Public Sub GeheZu(XN As Double, YN As Double)
    If Sichtbar Then
        Bild.Line (CInt(Round(X, 0)), CInt(Round(Y, 0)))-(CInt(Round(XN, 0)), CInt(Round(YN, 0)))
    End If
    X = XN
    Y = YN
End Sub

Public Function getX() As Double
    getX = X
End Function

Public Function getY() As Double
    getY = Y
End Function

Public Sub Hide()
    ZeichneIgel
    Turtle = False
End Sub

Public Sub iInit(pX As Integer, pY As Integer, xr As Integer, yr As Integer, Wr As Integer, h As Long)
    XMax = pX
    YMax = pY
    X = xr
    Y = YMax - yr
    W = Wr
    Sichtbar = True
    Turtle = False
    hFarbe = h
    Bild.BackColor = h
    Bild.Cls
    zFarbe = vbBlack
    tFarbe = vbRed
    Bild.ForeColor = zFarbe
    Hide
End Sub

Public Sub Move(Laenge As Double)
    ZeichneIgel
    Vor Laenge
    ZeichneIgel
    Schlafe schlafzeit
End Sub

Public Sub MoveTo(nX As Double, nY As Double)
    ZeichneIgel
    GeheZu nX, nY
    ZeichneIgel
    Schlafe schlafzeit
End Sub

Public Sub PenUp()
    Sichtbar = False
End Sub

Public Sub PenDown()
    Sichtbar = True
End Sub

Public Sub Schlafe(Zeit)
    Sleep Zeit
End Sub
    
Public Sub SetColor(newColor As Long)
    Bild.ForeColor = newColor
End Sub

Public Sub setSleepDuration(newDur)
    schlafzeit = newDur
End Sub

Public Sub Show()
    Turtle = True
    ZeichneIgel
End Sub

Public Sub Turn(Winkel As Double)
    ZeichneIgel
    Drehe Winkel
    ZeichneIgel
    Schlafe schlafzeit
End Sub

Public Sub TurnTo(Winkel As Double)
    ZeichneIgel
    W = Winkel
    ZeichneIgel
    Schlafe schlafzeit
End Sub

Public Sub Vor(Laenge As Double)
    Dim XN As Double, YN As Double
    XN = X + Laenge * Cos(Bogen(W))
    YN = Y - Laenge * Sin(Bogen(W))
    GeheZu XN, YN
End Sub

Public Sub WriteString(Text As String, pX As Integer, pY As Integer)
    Bild.CurrentX = pX
    Bild.CurrentY = pY
    Bild.Print Text
End Sub

Public Sub ZeichneIgel()
    If Not Turtle Then Exit Sub
    Dim Farbe As Long
    Farbe = Bild.ForeColor
    Backup = Sichtbar
    Sichtbar = True
    Dim xCopy As Double, yCopy As Double, wCopy As Double
    xCopy = X: yCopy = Y: wCopy = W
    Bild.ForeColor = tFarbe
    Bild.DrawMode = vbXorPen
    
    Vor 8
    Drehe -36.9
    Vor -10
    Drehe -90 + 36.9
    Vor 12
    Drehe 90 + 36.9
    Vor 10
    Drehe -36.9
    Sichtbar = False
    Vor -8
    Sichtbar = Backup
    X = xCopy
    Y = yCopy
    W = wCopy
    Bild.DrawMode = 13
    Bild.ForeColor = Farbe
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -