zoukankan      html  css  js  c++  java
  • 一个转子

    无需控件,直接复制代码

    Option Explicit
    Private Const PI = 3.141592654
    Dim R As Single, Rx As Single, Ry As Single
    Dim w As Single, h As Single
    Dim A As Single, bool As Boolean
    Dim Wall As Long
    Dim dotY(360) As Long
    Public Sub Draw()
        Me.Cls
        w = R * Sin(PI / 180 * A) '由于sin的参数单位是弧度,要转换
        h = Sqr(R ^ 2 - w ^ 2)
        Me.Line (Wall, Ry - R)-(Wall, Ry + R), vbYellow
        Me.Circle (Rx, Ry), R, vbRed
        If bool Then
            DrawTriangle Rx, Ry, Rx, Ry + h, Rx + w, Ry + h
            DrawDot Ry + h, Rx + w
        Else
            DrawTriangle Rx, Ry, Rx, Ry - h, Rx + w, Ry - h
            DrawDot Ry - h, Rx + w
        End If
        A = A + 1
        If A = 360 Then A = 0
        If A = 90 Or A = 270 Then bool = Not bool
    End Sub
    Private Sub DrawDot(y As Long, x As Long)
    Dim i As Long
    For i = 360 To 1 Step -1
        dotY(i) = dotY(i - 1)
        Me.PSet (i + Wall, dotY(i)), vbYellow
    Next i
    dotY(0) = y
    Me.PSet (Wall, dotY(0)), vbYellow
    End Sub
    
    Private Sub DrawTriangle(x0 As Single, y0 As Single, x1 As Single, y1 As Single, x2 As Single, y2 As Single)
        Me.Line (x0, y0)-(x1, y1), vbWhite
        Me.Line (x2, y2)-(x1, y1), vbWhite
        Me.Line (x0, y0)-(x2, y2), vbWhite
        Me.Circle (x2, y2), 5, &HFFFF00
    End Sub
    
    Private Sub Form_Load()
    R = 50: Rx = 55: Ry = 55
    Wall = Ry + R + 2
    Me.AutoRedraw = True
    Me.Show
    Do
        Draw
        DoEvents
    Loop
    End Sub
    
    Private Sub Form_Unload(Cancel As Integer)
    End
    End Sub
    
  • 相关阅读:
    洛谷 P1578 奶牛浴场 题解
    LOJ167 康托展开 题解
    三校联训 【NOIP模拟】寻找
    洛谷 P1809 过河问题 题解
    有关多边形面积的总结
    LOJ 103 字串查找 题解
    洛谷 P2384 最短路 题解
    POJ 2492 A Bug's Life 题解
    LOJ 10214 计算器 题解
    洛谷 P2868 [USACO07DEC]观光奶牛Sightseeing Cows 题解
  • 原文地址:https://www.cnblogs.com/xiii/p/5001547.html
Copyright © 2011-2022 走看看