24小时热门版块排行榜    

查看: 739  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] filecode +8 cratir 2026-08-14 12/600 2026-08-15 18:08 by zyfgau
[基金申请] filecode=后面第一个是大写字母 +3 wangze12014 2026-08-14 4/200 2026-08-15 18:05 by babangida
[基金申请] 时间戳又变了8-15 +11 archvillain 2026-08-15 20/1000 2026-08-15 17:47 by 医学老男孩
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +27 医学老男孩 2026-08-13 58/2900 2026-08-15 15:57 by GZUZM
[基金申请] 哪位老哥知道今年的国自然具体哪一天放榜? +7 Ldrop2023 2026-08-13 7/350 2026-08-15 15:57 by mzhh2000
[基金申请] 关于Filecode分析方法 +10 majunge000 2026-08-10 13/650 2026-08-15 12:26 by hanpeng972
[基金申请] 是这周出结果还是下周出结果? +4 yuleib84 2026-08-11 4/200 2026-08-14 23:05 by lfy8008
[基金申请] 应该是93bebmhtak前后十一个字符比较关键 +23 Lanmanbaby 2026-08-09 37/1850 2026-08-14 13:40 by Equinoxhua
[硕博家园] 读博的好处 +4 lnee 2026-08-11 4/200 2026-08-14 10:20 by ahsoarli
[基金申请] filecode +15 documentary 2026-08-10 17/850 2026-08-14 10:08 by kissu88
[基金申请] 我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人 +10 家与远方 2026-08-10 15/750 2026-08-14 02:08 by 绵羊哥哥
[基金申请] 静等基金结果 +8 gjjjzhong 2026-08-10 21/1050 2026-08-13 17:56 by 且听虎啸
[基金申请] 重要来源:本周末出结果 +10 瞬息宇宙 2026-08-12 10/500 2026-08-13 15:46 by likettle
[基金申请] 不应该看fileCode +7 且听虎啸 2026-08-12 9/450 2026-08-13 14:27 by flydreamws
[基金申请] Filecode 又变了,巨变 +3 WH3796 2026-08-12 4/200 2026-08-13 14:13 by 小木虫6752397
[基金申请] 分享一下我之前已中青C的计划书的filecode +4 布布和一二 2026-08-11 5/250 2026-08-13 12:56 by cratir
[基金申请] 帮忙看看fileCode +7 wwncly 2026-08-10 13/650 2026-08-11 19:36 by 冰心玉壶晴
[基金申请] 为什么网上很多人说本周 12号出结果 +6 瞬息宇宙 2026-08-10 7/350 2026-08-11 19:25 by Tide man
[基金申请] 确定了,国自然21号放榜 +6 布布和一二 2026-08-10 7/350 2026-08-10 19:15 by 2000zf36392
[基金申请] 国自然结果 +4 Vierhys 2026-08-10 8/400 2026-08-10 15:06 by Vierhys
信息提示
请填处理意见