題目要求:
分割三角形的方法是從乙個大的等邊三角形開始,將其三邊的中點進行連線,分成相同的四個三角形,除中間外的三個三角形再重複上述過程,直到滿足給定條件的層次數為止.
模組**:
type point
x as
single
y as
single
end type
sub drawit(byval deep as
long, byref pp1 as point, byref pp2 as point, byref pp3 as point)
dim pp(2) as point
pp(0).x = (pp1.x + pp2.x) / 2
pp(0).y = (pp1.y + pp2.y) / 2
pp(1).x = (pp1.x + pp3.x) / 2
pp(1).y = (pp1.y + pp3.y) / 2
pp(2).x = (pp3.x + pp2.x) / 2
pp(2).y = (pp3.y + pp2.y) / 2
if deep = 1 then
form1.forecolor = qbcolor(int(rnd * 16))
for j = 0 to 2
form1.line (pp(j).x, pp(j).y)-(pp((j + 1) mod 3).x, pp((j + 1) mod 3).y)
next
exit
subend
ifif deep > 1 then
drawit 1, pp1, pp2, pp3
drawit deep - 1, pp1, pp(0), pp(1)
drawit deep - 1, pp2, pp(0), pp(2)
drawit deep - 1, pp3, pp(2), pp(1)
endif
endsub
窗體**:
dim p(2) as point
private
sub form_load()
me.autoredraw = true
p(0).x = rnd
p(0).y = 0
p(1).x = 0
p(1).y = 1
p(2).x = 1
p(2).y = 1
me.scale (0, 0)-(1.1, 1.1)
me.line (p(0).x, p(0).y)-(p(1).x, p(1).y)
me.line (p(1).x, p(1).y)-(p(2).x, p(2).y)
me.line (p(0).x, p(0).y)-(p(2).x, p(2).y)
endsub
private
sub form_click()
drawit 5, p(0), p(1), p(2)
endsub
執行效果:
vb分割三角形
題目要求 分割三角形的方法是從乙個大的等邊三角形開始,將其三邊的中點進行連線,分成相同的四個三角形,除中間外的三個三角形再重複上述過程,直到滿足給定條件的層次數為止.模組 type point x as single y as single end type sub drawit byval dee...
求大三角形中三角形個數
一道筆試程式設計題要求求乙個大三角形中所有小三角形的個數,大約是下面這種情況 首先想到是的將問題由求邊長為n的三角形個數 求邊長為n 1的三角形個數 求邊長為1的三角形個數 1,回溯求得所有三角形個數。但是再仔細一看因為有重疊三角形和倒置的三角形,所以這個方法不可行。接著找到三角形個數由三部分組成 ...
經典演算法 (三)帕斯卡三角形(楊輝三角形)
楊輝三角,是二項式係數在三角形中的一種幾何排列。在歐洲,這個表叫做帕斯卡三角形。帕斯卡 1623 1662 是在1654年發現這一規律的,比楊輝要遲393年,比賈憲遲600年。簡介 楊輝三角,是二項式係數在三角形中的一種幾何排列。在歐洲,這個表叫做帕斯卡三角形。帕斯卡 1623 1662 是在165...