生成随机图形

一:试验目的

1 制作随机图形

2 制作动画

二:实验内容

   1先界面设置和属性设置

   2编写代码

     1,Private Sub Command1_Click()

Timer1.Enabled = True

Timer1.Interval = 100

End Sub

Private Sub Command2_Click()

Form1.Cls

End Sub

Private Sub Command3_Click()

Timer1 = False

End Sub

Private Sub Timer1_Timer()

Form1.Circle (Int(Rnd * 8000), Int(Rnd * 8000)), Int(Rnd * 800)

FillStyle = Int(Rnd * 7)

FillColor = QBColor(Int(Rnd * 15))

Line (Int(Rnd * 8000), Int(Rnd * 8000))-(Int(Rnd * 8000) + 1000, Int(Rnd * 8000))

End Sub

2,Public TopBottom, LeftRight As String

Private Sub Form_Click()

    If Timer1.Enabled = False Then

       Timer1.Enabled = True

    Else

       Timer1.Enabled = False

    End If

End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)

    Select Case KeyAscii

       Case 61

          Timer1.Interval = 10

       Case 45

          Timer1.Interval = 100

    End Select

End Sub

Private Sub Form_Load()

    TopBottom = "0"

    LeftRight = "0"

End Sub

Private Sub Timer1_Timer()

    Select Case TopBottom & LeftRight

        Case "00"

            Form1.Image1.Top = Form1.Image1.Top - 10

            Form1.Image1.Left = Form1.Image1.Left - 10

            Form1.Image1.Move _

            Form1.Image1.Left - 10, Form1.Image1.Top - 10

            If Form1.Image1.Top <= 0 Then

                TopBottom = "1"

            End If

            If Form1.Image1.Left <= 0 Then

            LeftRight = "1"

            End If

        Case "10"

            Form1.Image1.Top = Form1.Image1.Top + 10

            Form1.Image1.Left = Form1.Image1.Left - 10

            If Form1.Image1.Top >= _

            Form1.ScaleHeight - Form1.Image1.Height Then

                TopBottom = "0"

            End If

            If Form1.Image1.Left <= 0 Then

                LeftRight = "1"

            End If

        Case "01"

            Form1.Image1.Top = Form1.Image1.Top - 10

            Form1.Image1.Left = Form1.Image1.Left + 10

            If Form1.Image1.Top <= 0 Then

                TopBottom = "1"

            End If

            If Form1.Image1.Left >= _

            Form1.ScaleWidth - Form1.Image1.Width Then

                TopBottom = "0"

            End If

        Case "11"

            Form1.Image1.Top = Form1.Image1.Top + 10

            Form1.Image1.Left = Form1.Image1.Left + 10

            If Form1.Image1.Top >= _

            Form1.ScaleHeight - Form1.Image1.Height Then

                TopBottom = "0"

            End If

            If Form1.Image1.Left >= _

            Form1.ScaleWidth - Form1.Image1.Width Then

                LeftRight = "0"

            End If

    End Select

End Sub

三:心得体会

1, 熟才能生巧

2, 多背,多记

四:解决问题

逐渐的理解了一些vb词汇

五:没有解决的问题

 还有许多函数需要去记,以后应多看书,多练习

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Python中,生成随机图形验证码通常涉及到图像处理库,如PIL(Python Imaging Library)或其更新版本Pillow,以及可能用到的随机生成库如random和numpy。以下是一个简单的步骤概述: 1. 导入所需的库: ```python from PIL import Image, ImageDraw, ImageFont import random import numpy as np ``` 2. 定义图形元素,如线条、圆形、矩形、字母和数字: ```python def draw_random_shape(size, shapes): shape = random.choice(shapes) if shape == 'line': draw.line((random.randint(0, size), random.randint(0, size)), (random.randint(0, size), random.randint(0, size)), fill=(0, 0, 0)) elif shape == 'circle': center = (random.randint(0, size), random.randint(0, size)) draw.ellipse((center-10, center-10, center+10, center+10), fill=(0, 0, 0)) # 添加其他形状,如矩形等 def generate_text(): return ''.join(random.choices('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', k=random.randint(4, 6))) ``` 3. 创建验证码图像: ```python size = 100 image = Image.new('RGB', (size, size), color='white') draw = ImageDraw.Draw(image) shapes = ['line', 'circle', 'rectangle'] # 可自定义形状列表 for _ in range(random.randint(4, 6)): draw_random_shape(size, shapes) text = generate_text() font = ImageFont.truetype("arial.ttf", size=random.randint(20, 30)) # 加载字体 text_position = (random.randint(10, size-10), random.randint(10, size-10)) draw.text(text_position, text, font=font, fill=(0, 0, 0)) # 保存验证码图片 image.save('captcha.png') ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值