24小时热门版块排行榜    

查看: 645  |  回复: 3

wuhaiyou111

新虫 (初入文坛)

[求助] VB 分形算法实现科赫格子

自己写的,加大写A的地方也就是角度的变化不太清楚如何实现?请教高手啊!新虫,金币不多,谅解。
Const pi = 3.14159

Private Sub Form_Click()

ScaleTop = 50
ScaleLeft = 0
ScaleWidth = 100
ScaleHeight = -50
Call koch(20, 20, 80, 20, 1)
End Sub

Sub koch(ax As Single, ay As Single, bx As Single, by As Single, c As Single)

Dim cx As Single
Dim cy As Single
Dim dx As Single
Dim dy As Single
Dim ex As Single
Dim ey As Single
Dim fx As Single
Dim fy As Single
Dim l As Single
Dim alpha As Single

If (bx - ax) * (bx - ax) + (by - ay) * (by - ay) < c Then
  
  Line (ax, ay)-(bx, by)
  
  Else
  
  cx = ax + (bx - ax) / 3
  cy = ay + (by - ay) / 3
  ex = bx - (bx - ax) / 3
  ey = by - (by - ay) / 3
  l = Sqr((ex - cx) * (ex - cx) + (ey - cy) * (ey - cy))
  
  
  AA”If (ex - cx) > 0 Then
  AA”alpha = pi / 2
  AA”Else
  AA”alpha = 0 / pi
  
  AA” End If
  
  dy = cy + Sin(alpha) * l
  dx = cx + Cos(alpha) * l
  fx = ex + Cos(alpha) * l
  fy = ey + Sin(alpha) * l
  
  Call koch(ax, ay, cx, cy, c)
  Call koch(cx, cy, ex, ey, c)
  Call koch(ex, ey, bx, by, c)
  Call koch(cx, cy, dx, dy, c)
  Call koch(dx, dy, fx, fy, c)
  Call koch(fx, fy, ex, ey, c)
  
  End If
  
  
End Sub

0C99Z%H8}531TL`$N)FUAA6.jpg
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wuhaiyou111

新虫 (初入文坛)

图片是文章中的。截图,这个科赫格子怎么实现???
2楼2013-01-02 10:32:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wuhaiyou111

新虫 (初入文坛)

Const pi = 3.14159

Private Sub Form_Click()

ScaleTop = 50
ScaleLeft = 0
ScaleWidth = 100
ScaleHeight = -50

Call koch(5, 0, 20, 20, 80, 20, 1)
End Sub

Sub koch(n As Integer, s As Integer, ax As Single, ay As Single, bx As Single, by As Single, c As Single)

Dim cx As Single
Dim cy As Single
Dim dx As Single
Dim dy As Single
Dim ex As Single
Dim ey As Single
Dim fx As Single
Dim fy As Single
Dim l As Single
Dim alpha As Single

If n = 2 Then

  Line (ax, ay)-(bx, by)
  
  Else
  
  cx = ax + (bx - ax) / 3
  cy = ay + (by - ay) / 3
  ex = bx - (bx - ax) / 3
  ey = by - (by - ay) / 3
  l = Sqr((ex - cx) * (ex - cx) + (ey - cy) * (ey - cy))
  
  If s = 0 Then

  alpha = pi / 2

  
  ElseIf s = 1 Then
  alpha = 2 * pi
  ElseIf s = -1 Then
  alpha = pi
   
  End If
  
  dy = cy + Sin(alpha) * l
  dx = cx + Cos(alpha) * l
  fx = ex + Cos(alpha) * l
  fy = ey + Sin(alpha) * l
  
  Call koch(n - 1, 0, ax, ay, cx, cy, c)
  Call koch(n - 1, 1, cx, cy, dx, dy, c)
  Call koch(n - 1, 0, dx, dy, fx, fy, c)
  Call koch(n - 1, -1, fx, fy, ex, ey, c)
  Call koch(n - 1, 0, ex, ey, bx, by, c)
  Call koch(n - 1, 2, cx, cy, ex, ey, c)
  

  
  
  
  End If
  
  
End Sub


迭代次数为一时正确,但是大于1就有问题了
3楼2013-01-04 13:24:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wuhaiyou111

新虫 (初入文坛)

所给图形是迭代次数为3的
4楼2013-01-04 13:24:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wuhaiyou111 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 材料与化工一志愿南昌大学327求调剂推荐 +5 Ncdx123456 2026-03-13 6/300 2026-03-15 23:39 by lovewei0727
[考研] 调剂 +8 调剂的考研学生 2026-03-09 8/400 2026-03-15 22:14 by Winj1e
[考研] 26考研一志愿中国石油大学(华东)305分求调剂 +3 嘉年新程 2026-03-15 3/150 2026-03-15 13:58 by 哈哈哈哈嘿嘿嘿
[考研] 0856专硕279求调剂 +5 加油加油!? 2026-03-15 5/250 2026-03-15 11:58 by 2020015
[考研] 070305求调剂 +3 mlpqaz03 2026-03-14 4/200 2026-03-15 11:04 by peike
[考研] 学硕285求调剂 +13 Wisjxn 2026-03-12 46/2300 2026-03-14 10:33 by JourneyLucky
[考研] 337一志愿华南理工材料求调剂(有希望2吗?) +3 mysdl 2026-03-09 3/150 2026-03-14 02:53 by JourneyLucky
[考研] 308求调剂 +4 是Lupa啊 2026-03-09 4/200 2026-03-14 02:06 by tranquil_ya
[考研] 265求调剂 +9 小木虫085600 2026-03-09 12/600 2026-03-14 01:11 by JourneyLucky
[基金申请] 有必要更换申报口吗 20+3 fannyamoy 2026-03-11 3/150 2026-03-14 00:52 by zhanghaozhu
[考研] 271求调剂 +10 生如夏花… 2026-03-11 10/500 2026-03-14 00:35 by 卖报员小雨
[考研] 285 求调剂 资源与环境 一志愿北京化工大学 +3 未名考生 2026-03-10 3/150 2026-03-13 23:04 by JourneyLucky
[考研] 332求调剂 +3 zjy101327 2026-03-11 6/300 2026-03-13 22:48 by JourneyLucky
[考研] 0703化学调剂 +4 快乐的香蕉 2026-03-11 4/200 2026-03-13 22:41 by JourneyLucky
[考研] 一志愿中科院,化学方向,295求调剂 +4 一氧二氮 2026-03-11 4/200 2026-03-13 22:35 by JourneyLucky
[考研] 求b区学校调剂 +3 周56 2026-03-11 3/150 2026-03-13 16:20 by JourneyLucky
[论文投稿] 投稿问题 5+4 星光灿烂xt 2026-03-12 6/300 2026-03-13 14:17 by god_tian
[考研] 化工学硕306求调剂 +9 42838695 2026-03-12 9/450 2026-03-13 10:16 by houyaoxu
[考研] 333求调剂 +3 152697 2026-03-12 4/200 2026-03-13 07:08 by Iveryant
[考博] 26申博求助 +3 跳跃饼干 2026-03-10 4/200 2026-03-10 21:15 by Tntcnn
信息提示
请填处理意见