vb分割三角形

2021-08-29 18:59:11 字數 1570 閱讀 3386

題目要求:

分割三角形的方法是從乙個大的等邊三角形開始,將其三邊的中點進行連線,分成相同的四個三角形,除中間外的三個三角形再重複上述過程,直到滿足給定條件的層次數為止.

模組**:

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...