Krissi

半亩方塘一鉴开,天光云影共徘徊。

EasyIFS 1.0,开源的分形学 IFS 演示程序 金牌收录

说明

EasyIFS 是开源的分形学 IFS 演示程序。该程序可以依据 IFS 数据文件中定义的参数,生成图像。

下载的压缩包中包括源代码、编译好的程序、安装脚本源代码、编译好的安装程序、范例若干、说明文件。

使用方法

EasyIFS.exe filename.ifs

filename.ifs 是参数数据。

安装程序会做好 .ifs 文件的关联,可以双击 .ifs 文件实现图像生成。

文件系统结构

  • Sample   <dir> 范例数据。
  • SourceCode <dir> EasyIFS 的 C++ 源代码,编译环境:VC 6.0 + EasyX_20130610(beta)。
  • Setup.src   <dir> Inno Setup 5.4.0 安装脚本,用来生成安装程序。
  • setup.exe     编译好的 EasyIFS 安装程序。

编写数据文件

IFS 数据文件是标准的 ini 配置文件,可以直接用记事本编辑。在下载的压缩包中,包含 LEVY 曲线、谢宾斯基(Sierpinski)三角形、山、树、羊齿叶、皇冠、circle、枫叶等多个范例,并且每个范例中都包含详细的参数说明。文件中,以 ; 开头的行表示注释。例如枫叶的 ifs 文件如下:

;IFS(Iterator Function System) 配置文件
;
;[main] 节中:
;name = IFS 名称
;iterLimit = IFS 迭代次数
;color = 绘图颜色(默认为绿色)
;minX, maxX = 绘图窗口的 x 坐标范围 [minX, maxX]
;minY, maxY = 绘图窗口的 y 坐标范围 [minX, maxX]
;condition = IFS 公式个数
;
;[conditionx] 节中
;a、b、c、d、e、f 是 IFS 公式的常数项:
; x = a * x + b * y + e
; y = c * x + d * y + f
;p = 概率
;要求各公式的概率和 == 1

[main]
name=枫叶
iterLimit=50000
color=255
minX=0
maxX=1
minY=0
maxY=1
condition=5

[condition1]
a=0.35173
b=0.35537
c=-0.35537
d=0.35173
e=0.3545
f=0.5
p=0.1773

[condition2]
a=0.35338
b=-0.3537
c=0.35373
d=0.35338
e=0.2879
f=0.1528
p=0.38

[condition3]
a=0.5
b=0
c=0
d=0.5
e=0.25
f=0.462
p=0.1773

[condition4]
a=0.5154
b=-0.0018
c=0.00157
d=0.58795
e=0.2501
f=0.1054
p=0.2091

[condition5]
a=0.00364
b=0
c=0
d=0.57832
e=0.5016
f=0.0606
p=0.0563

部分执行效果

源代码下载

点击这里下载完整的源代码

添加评论