哪位老师能说说“马丁迭代”
vb吧
全部回复
仅看楼主
level 1
banjinjiu33 楼主
受Mandelbrot集产生思想的影响,Martin提出了一对公式,而利用该公式和同样简单的计算机程序便可产生非常新奇的图形。这些混沌图像很精彩。
参考网址:——https://——blog.csdn.net——/weixin_33694620/article/details/85705156。
网址,请去掉横线。
各位老师,这个VB能做吗?
2021年04月06日 11点04分 1
level 1
banjinjiu33 楼主
2021年04月06日 11点04分 2
level 11
没有听过这个马丁
2021年04月06日 11点04分 3
只有我自己不会用vb做到的事情,没有vb做不到的事情
2021年04月06日 11点04分
是我自作多情,看别的程序能做,我以为VB也能的。
2021年04月06日 11点04分
不会发帖,不用@vlaoda,能看到吗?是这样@vlaoda吗?
2021年04月06日 11点04分
level 1
banjinjiu33 楼主
混沌分形之马丁(Martin)迭代
https://www.cnblogs.com/WhyEngine/p/4069247.html
2021年04月06日 11点04分 4
level 1
banjinjiu33 楼主
发的帖,太low了吗?找到一个高手,就说不。
2021年04月06日 11点04分 5
level 15
这个VB当然能做
2021年04月06日 12点04分 6
麻烦老师做个实例,谢谢。
2021年04月06日 23点04分
level 15
'窗体上画一个正方形的图片框,编写以下代码,点击图片框即可看到图形逐渐生长出来
'以下代码只绘制了6万多个点,只是你发的图形中间的一小部分
'——这个图形是可以无限生长的
Private Sub Picture1_Click()
Const ParamA = 0.68, ParamB = 0.75, ParamC = 0.83
Const Epsilon = 0.0001
Dim X As Single, Y As Single
Dim i As Long, t As Single
Picture1.Scale (-30, 30)-(30, -30) '这个大小刚好能完全显示绘制的这部分点
X = 1: Y = 1
For i = 1 To 65535
Picture1.PSet (X, Y)
If X > Epsilon Then
t = Y - Sqr(Abs(ParamB * X - ParamC))
ElseIf X < -Epsilon Then
t = Y + Sqr(Abs(ParamB * X - ParamC))
Else
t = Y
End If
Y = ParamA - X
X = t
Next i
End Sub
效果如下图:
2021年04月07日 04点04分 7
有事刚看到,牛人!改成VBA PowerPoint了。我不会发图片,请看我下面的图片
2021年04月07日 11点04分
谢谢老师。我在下面贴我的VBA PowerPoint代码
2021年04月07日 11点04分
发现,PA,PB,PC,乘不同的数字,图像都不一样。不知道规律是几组?
2021年04月07日 11点04分
@banjinjiu33 你下面贴出的这三个数字都是等比放大了,图形本身没变,只是跟着放大了而已;你可以试试改变它们的比例,再看看效果
2021年04月07日 11点04分
level 1
banjinjiu33 楼主
PA=6.8,PB=7.5,PC=8.3
图片1
2021年04月07日 11点04分 8
level 1
banjinjiu33 楼主
PA=68,PB=75,PC=83
图片2
2021年04月07日 11点04分 9
level 1
banjinjiu33 楼主
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal crColor As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Sub CommandButton1_Click()
hwnd& = FindWindow(vbNullString, Me.Caption)
hdc = GetDC(hwnd)
Const ParamA = 68, ParamB = 75, ParamC = 83
Const Epsilon = 0.01
Dim X As Single, Y As Single
Dim i As Long, t As Single
X = 1: Y = 1
For i = 1 To 65535
SetPixel hdc, X + 300, 300 - Y, vbbreak
If X > Epsilon Then
t = Y - Sqr(Abs(ParamB * X - ParamC))
ElseIf X < -Epsilon Then
t = Y + Sqr(Abs(ParamB * X - ParamC))
Else
t = Y
End If
Y = ParamA - X
X = t
Next i
End Sub
2021年04月07日 11点04分 10
[泪]太利害了。这么多年了。都把VB都忘记了。
2021年04月07日 16点04分
1