zoukankan      html  css  js  c++  java
  • vb分割三角形

     题目要求:

    分割三角形的方法是从一个大的等边三角形开始,将其三边的中点进行连线,分成相同的四个三角形,除中间外的三个三角形再重复上述过程,直到满足给定条件的层次数为止.

    (原贴地址: http://topic.csdn.net/u/20081126/19/ea2362d5-613a-464d-8567-0ac64ca858a2.html)

    模块代码:

    1. Type point
    2. As Single
    3. As Single
    4. End Type
    5. Sub drawit(ByVal deep As LongByRef pp1 As point, ByRef pp2 As point, ByRef pp3 As point)
    6. Dim pp(2) As point
    7. pp(0).x = (pp1.x + pp2.x) / 2
    8. pp(0).y = (pp1.y + pp2.y) / 2
    9. pp(1).x = (pp1.x + pp3.x) / 2
    10. pp(1).y = (pp1.y + pp3.y) / 2
    11. pp(2).x = (pp3.x + pp2.x) / 2
    12. pp(2).y = (pp3.y + pp2.y) / 2
    13. If deep = 1 Then
    14. Form1.ForeColor = QBColor(Int(Rnd * 16))
    15. For j = 0 To 2
    16. Form1.Line (pp(j).x, pp(j).y)-(pp((j + 1) Mod 3).x, pp((j + 1) Mod 3).y)
    17. Next
    18. Exit Sub
    19. End If
    20. If deep > 1 Then
    21. drawit 1, pp1, pp2, pp3
    22. drawit deep - 1, pp1, pp(0), pp(1)
    23. drawit deep - 1, pp2, pp(0), pp(2)
    24. drawit deep - 1, pp3, pp(2), pp(1)
    25. End If
    26. End Sub

    窗体代码:

    1. Dim p(2) As point
    2. Private Sub Form_Load()
    3. Me.AutoRedraw = True
    4. p(0).x = Rnd
    5. p(0).y = 0
    6. p(1).x = 0
    7. p(1).y = 1
    8. p(2).x = 1
    9. p(2).y = 1
    10. Me.Scale (0, 0)-(1.1, 1.1)
    11. Me.Line (p(0).x, p(0).y)-(p(1).x, p(1).y)
    12. Me.Line (p(1).x, p(1).y)-(p(2).x, p(2).y)
    13. Me.Line (p(0).x, p(0).y)-(p(2).x, p(2).y)
    14. End Sub
    15. Private Sub Form_Click()
    16. drawit 5, p(0), p(1), p(2)
    17. End Sub

    运行效果:

  • 相关阅读:
    Maven2-profile多环境配置
    Maven-setting.xml详解
    Maven-通过命令操作maven项目
    Maven-eclipse运行maven命令
    Eclipse-导入maven项目
    Maven-搭建maven web项目
    Maven-搭建普通maven项目
    Maven-pom.xml详解
    Maven-生命周期
    Maven-常用命令
  • 原文地址:https://www.cnblogs.com/fengju/p/6336246.html
Copyright © 2011-2022 走看看