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

    运行效果:

  • 相关阅读:
    css实现文字渐变
    js 模拟window.open 打开新窗口
    在centos上安装nodejs
    css多行省略
    Vue 中渲染字符串形式的组件标签
    vue 中结合百度地图获取当前城市
    vue-cli 项目实现路由懒加载
    JavaScript学习-2循环
    早期自学jQuery-一入门
    JavaScript学习-1
  • 原文地址:https://www.cnblogs.com/fengju/p/6336246.html
Copyright © 2011-2022 走看看