vb分割三角形

题目要求:

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

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

模块代码:

  1. Typepoint
  2. xAsSingle
  3. yAsSingle
  4. EndType
  5. Subdrawit(ByValdeepAsLong,ByRefpp1Aspoint,ByRefpp2Aspoint,ByRefpp3Aspoint)
  6. Dimpp(2)Aspoint
  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. Ifdeep=1Then
  14. Form1.ForeColor=QBColor(Int(Rnd*16))
  15. Forj=0To2
  16. Form1.Line(pp(j).x,pp(j).y)-(pp((j+1)Mod3).x,pp((j+1)Mod3).y)
  17. Next
  18. ExitSub
  19. EndIf
  20. Ifdeep>1Then
  21. drawit1,pp1,pp2,pp3
  22. drawitdeep-1,pp1,pp(0),pp(1)
  23. drawitdeep-1,pp2,pp(0),pp(2)
  24. drawitdeep-1,pp3,pp(2),pp(1)
  25. EndIf
  26. EndSub

窗体代码:

  1. Dimp(2)Aspoint
  2. PrivateSubForm_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. EndSub
  15. PrivateSubForm_Click()
  16. drawit5,p(0),p(1),p(2)
  17. EndSub

运行效果:

vb分割三角形

你可能感兴趣的:(html,.net,J#,vb,VB.NET)