Ultra Fractal是一款非常不错的图形分形软件,采用图像着色算法,可以轻松的创建图片分形效果了,可设置颜色、添加图层、使用蒙版或者创建动画等,支持PNG,JPEG或BMP等图像格式的导入,需要的朋友可以下载使用!
软件功能
1、【快速入门使用集成教程】
使用内置教程开始使用Ultra Fractal非常简单有趣。从基础知识开始,您将很快学会如何创建自己的分形,更改颜色,添加图层,使用蒙版,甚至创建动画。您也可以下载PDF手册来打印教程。
2、【探索数以千计的分形类型和着色选项】
首先探索Ultra Fractal官方版中的标准分形类型以熟悉它们。然后连接到在线公式数据库,下载其他用户提供的数千个其他分形公式和着色算法。
公式还可以使用插件,让您轻松混合和匹配功能。通过组合不同的插件,可能性真正变得无穷无尽。有关更多信息,请参阅Ultra Fractal帮助文件中的插件。
3、【享受超快速深度变焦】
使用Ultra Fractal可以放大到几乎无限的深度。深度缩放是完全集成的,适用于所有分形类型和着色选项,甚至是您自己编写的那些。并且由于Ultra Fractal 6中的新扰动计算算法,以前需要数小时或数天才能生成的图像现在可在几分钟内完成!
使用上面显示的经典选择框,或通过按住Shift键拖动或双击分形窗口内部的鼠标进行缩放。当然,平移,旋转,拉伸和倾斜也是可能的。
4、【使用多功能探索功能调整参数使用】
新的探索功能轻松选择参数值。通过在“探索”窗口中将鼠标光标移动到坐标网格上来尝试新参数值,而“分形模式”工具窗口则显示结果的实时预览。
5、【为分形】
着色并添加透明效果使用Ultra Fractal的渐变编辑器可以轻松对分形进行着色。向上和向下拖动渐变曲线以创建平滑的颜色范围,或使用“随机化”选项快速尝试各种颜色组合。您还可以使用渐变编辑器添加透明效果。
6、【使用图层,蒙版,图层组和类似Photoshop的合并模式】
构建分形图Ultra Fractal的一个主要功能是分层。您可以将多个分形图层放在一起,以组合它们并创建复杂的着色和纹理效果。添加遮罩层以创建透明区域,使底层透过。组织图层组中的相关图层。存储您经常在图层预设菜单中使用的图层或组,以便快速访问它们。您甚至可以选择多个图层来一起编辑它们的参数。
7、【图像导入】
使用内置图像导入功能在分形中导入PNG,JPEG或BMP图像。只需选择包含图像参数的着色算法,即可选择要使用的计算机上的任何图像。
着色算法确定如何使用来自图像的信息。例如,标准图像着色算法只在分形窗口中显示整个图像。
8、【使用强大的动画功能轻松创建分形动画】
在Ultra Fractal中,每个分形都可能是动画。每个参数都可以单独设置动画。动画可以根据需要随意使用,并使用任何所需的帧速率。使用强大的时间轴工具窗口可以轻松编辑动画,如下所示。您可以使用可选的运动模糊渲染动画到图像序列或AVI电影。
软件特色
1、操作易于上手
内置了人性化的操作教程,用户可以从基础开始,您将很快了解如何创建自己的分形、更改颜色、添加图层、使用蒙版,甚至创建动画。您还可以下载PDF手册来打印教程。
2、探索数以千计的分形类型和颜色选项
首先探索超分形中的标准分形类型,熟悉它们。然后连接到在线公式数据库,下载其他用户提供的数千个额外的分形公式和着色算法。
公式还可以使用插件,让您轻松地混合和匹配特性。通过组合不同的插件,这种可能性实际上是无穷无尽的。有关更多信息,请参见Ultra Fractal帮助文件中的插件。
3、享受超高速深度缩放
你可以放大到几乎无限的深度与超分形。深度缩放是完全集成和工作与所有分形类型和颜色选项。拥有全新的超分形扰动计算算法,以前需要数小时或数天才能生成的图像现在只需几分钟就可以完成!
4、使用通用的Explore功能调整参数
使用新的Explore特性,可以轻松地选择参数值。通过将鼠标移动到Explore窗口中的坐标网格上试验新的参数值,分形模式工具窗口显示结果的实时预览。
5、给你的分形着色并添加透明度效果
用Ultra Fractal的渐变编辑器着色你的分形是很容易的。将渐变曲线上下拖动以创建平滑的颜色范围,或者使用随机选项快速尝试各种颜色组合。您还可以使用渐变编辑器添加透明度效果。
6、用图层、蒙版、图层组和类似photoshop的合并模式组合分形
超分形的关键特征之一是分层。您可以将多层分形叠加在一起,以组合它们并创建复杂的着色和纹理效果。添加遮罩层,以创建透明区域,让底层发光。在层组中组织相关层。将您经常使用的层或组存储在“层预置”菜单中,以便快速访问它们。您甚至可以选择多个图层一起编辑它们的参数。
7、图像导入
使用内置的图像导入功能在分形中导入PNG、JPEG或BMP图像。只需选择包含图像参数的着色算法,就可以选择计算机上要使用的任何图像。
8、强大的动画功能
在超分形中,每一个分形都可能是一个动画。每个参数都可以单独动画。动画可以是你想要和使用任何想要的帧率。
Ultra Fractal安装教程
1、根据系统选择对应的安装文件,双击,进入安装界面,点击next
2、阅读许可协议,点击“Yes”
3、选择安装目的地,默认的是C盘,可以点击browse修改
4、选择开始菜单文件夹
5、选择需要创建的快捷方式,点击install开始安装
6、安装完成,暂时不要打开软件
7、将对应位数的Uf6.exe文件放到软件的安装目录下替换一下即可
使用教程
点击软件菜单的File-->New-->Fractal Formula File,你就创建了一个新的(大)代码文件。这里加了一个'大'字是因为里面还可以有小的代码:
Formula1{
...}
Formula2{
...}
......
每个代码对应一个小的分形文件:(图为Standard.ufm,也就是官方制作的最著名的分形图形的集合;形如".ufm"的文件都是代码文件)
在贴出具体的代码之前,先说明一下Ultra Fractal的计算机制:它是利用迭代运算来生成分形的。也就是,图形中的每一个点代表一个复数,然后用某个公式作用在这个复数上得到另一个复数,然后不停地迭代……有一些数会越来越大,最终爆炸(也就是发散);有一些会最终收敛到一个常值,有一些最终会接近形成周期,还有一些则会进入混沌状态,取值飘忽不定(不过分形不能揭示关于这些点的性质)。我们最终要得到的分形则是一个代表着"最终有界"的点的集合。所以,分形代码里应该事先设定好一个值,一旦迭代过程中出现比这个值"大"(对于复数,则是比较模的大小,但之后我们将会看到,不只能比较模的大小,还能比较实部,虚部甚至奇怪的条件)的情况,则自动认为这个数已经爆炸了,然后终止迭代,统计从开始到爆炸间进行了几次迭代。迭代的次数越多,则代表发散的越慢。Ultra Fractal对每一个正整数预定一个颜色值(即:分形的颜色设置),一个点迭代几次后发散,就给对应的点画上这个数代表的颜色。最终我们将得到一个色彩缤纷的"等发散速度图"。对于那些最终收敛的点,Ultra Fractal选择了把它画成黑色,以表示那个点最终被吸入了某个吸引不动点的"黑洞"里。(当然,也可能是某个"周期性吸引不动点",就是A-->B-->C-->...-->A的那种点……总之我这个说法比较扯蛋就对了)
好了,现在让我们打开其中一个分形的代码(这需要找到储存.ufm文件的位置,一般在我的文档里面)。事实上,我打开的是Julia集的代码,它的迭代公式是z=z^2+c,c是像素点代表的值。这个公式本身就可以生成十分美妙的图形。然而我们现在关心的是它的代码:
Julia { 注意这个括号不能写在第二行
; 分号后面都是注释
; Generic Julia set.
;
init: 初始条件
z = #pixel 这就是那个给屏幕每个位置赋予一个复数的那个函数。准确来说,这是一个宏(见后面)。
loop: 迭代过程
z = z^@power + @seed 带'@'符号的是可以人工设定的参数(就是在界面Formula一栏里可以修改的那几个变量)。这些参数现在只是声明,代码的后面需要另外的操作。
bailout: 这里设定一个数在什么情况下被认为是"爆炸了"
|z| <= @bailout 一个简单的模的比较
default: 代码信息的声明
title = "Julia" 打开公式文件时显示的名字
helpfile = "Uf*.chm" 帮助文档,这我不需要……
helptopic = "Htmlformulasstandardjulia.html" 帮助网页,这我也不需要……
$IFDEF VER50 与版本号有关的声明,这我更不需要……
rating = recommended
$ENDIF
param seed 这里开始对每个在上面出现过的参数做进一步的设置
caption = "Julia seed" 在Formula一栏里显示的名称
default = (-1.25, 0) 默认值
hint = "Use this parameter to create many different Julia sets. A good
way to set this parameter is with the Switch, Eyedropper, or
Explore features." 帮助信息,也就是鼠标移到那里时显示的东西
endparam 别忘了这个
param power
caption = "Power"
default = (2,0)
hint = "This parameter sets the exponent for the Julia formula.
Increasing the real part to 3, 4, and so on, will multiply the
symmetry of the Julia figure. Non-integer real values and non-zero
imaginary values will create distorted Julia fractals. Use (2, 0)
for the standard Julia set."
endparam
param bailout
caption = "Bailout value"
default = 4.0
min = 1.0 可以设置最小值,同理也可以设置最大值max
$IFDEF VER40
exponential = true
$ENDIF
hint = "This parameter defines how soon an orbit bails out while
iterating. Larger values give smoother outlines; values around 4
give more interesting shapes around the set. Values less than 4
will distort the fractal."
endparam
switch: 这个我也不知道是干啥的,不过不写它并不影响代码的运行
type = "Mandelbrot"
power = power
bailout = bailout
}
最精简的代码至少要包含init,loop,bailout和default四个部分。
这里的代码还只是一个最简单的框架,之后将会认识到Ultra fractal的代码语言支持还是挺强的,它的语法与C语言甚为相似,除了一些软件特别添加的功能函数以及句子末尾没有分号(因为分号是用来表示注释的)。
还有一个地方值得注意:软件是如何分辨一个参数到底是实数还是复数还是其他东西。这体现在default的设定里面。形如(x,y)的就认为是复数(x+iy),只写一个数就认为是实数。不过也可以这样声明:
complex param par1
......
float param par2
......
至此,我们已经可以写出最简单的分形了。作为模仿,来写一个迭代公式是a^z+c(a和c都是参数)的代码。
Julia_a^z+c {
init:z=#pixel
loop:z=@base^z+@constant
bailout:|z|<@bailout
default:
title="Julia a^z+c"
center=(0,0)
param constant
caption="Constant"
default=(0,0)
endparam
param base
caption="Base"
default=2.71828
endparam
param bailout
caption="Bailout"
default=1e20
min=1.0
endparam
}
其实这个公式画出来比较丑……
写完代码后保存,然后用File-->New-->Fractal打开即可。在选择小分形的窗口的右下有一个预览窗口,如果你的代码有问题,那么这个窗口就会显示"Contains Errors":
然后你打开它,在Formula一栏显示代码名称的地方会出现一个感叹号:
点击它,就会在代码窗口里显示你第一个出错的地方。
(我用的是5.04版,老的版本可能会有不同的显示方式)
最后贴一个比较好看的图(sinz+c,c=-0.06061+0.82425i;局部放大)
接下来简要说明一下代码的语法,上面说过,代码的风格接近于C语言,除了一些微小的改变。这意味着C语言能做的事情Ultra Fractal大多数都能做:
*数据类型:bool int float complex color
complex的数据都长成(x,y)的样子,并且可以和bool,int,float运算,此时将把#和(#,0)等同,算出来也就是个复数。一般来说,不同的数据运算后的数据类型满足bool
*常量,变量,表达式:没什么不同。
*数组(从这里看出编译器确实比较牛)
这里只打算说明一下这个软件特有的数组声明方式:
int A[]
setLength(A,100)
这等效于int A[100]。
*条件和循环
这里需要endif。
if(...)
...
elseif(...) elseif可以写很多次
...
else
...
endif 别忘了这个
这比较容易理解,因为这个软件里没有花括号的模块功能,只能用endif标记代表if的结束。
同样的,while后面还有endwhile。然而这里没有do while格式,取而代之的是repeat until格式。还有一点令人相当不爽:这个软件没有for。
*运算符:没什么不同。
*内置函数(多半为数学函数;这是可以理解的……):
sqrt, log, exp, abs(float-->float), cabs(complex-->float), |#|(兼有abs,cabs功能), recip(倒数), zero(就是零函数), 除了sec和csc和acotanh外的所有三角反三角双曲三角函数(arcsin写作asin), round(取整), trunc(取整再加一,就是truncate的意思), ceil(四舍五入; ceiling), real(实部), imag(虚部), floor(复数取整,也就是实部虚部同时取整。没有复数的四舍五入,要写只能写成(ceil(real(#))),ceil(imag(#))), flip(比较奇特的函数,将复数的实部虚部调换: flip=(imag(#),real(#)))。此外,没有复共轭函数,所以也只能用(real(#),-imag(#))了。
此外其实还有很多这里没列出来的函数……
*内置的宏:
#e=2.71828... 自然对数
#pi=3.14159... 就是那个pi
#pixel 获取像素点的复数值
#random 获取一个0到1的随机数
*自定义函数,通常写在init部分里。
只需注意它的格式(例如:)
complex func MyFunc(complex z)
complex a=z^2
return exp(a)
endfunc 同样,不要忘了这个
一般情况,这些东西也够用了……制作分形的主要问题是数学问题而不是写代码问题。所以简单介绍之后我就这样略过了。
软件评论 您的评论需要经过审核才能显示
网友评论