跳转到内容

分形/复平面迭代/算法

来自维基教科书,开放的书籍,面向开放的世界


2D静态图像的工作流程

[编辑 | 编辑源代码]
                    Separate the calculation phase from the colouring phase (Claude Heiland-Allen)

工作流程

  • 计算阶段:第一个程序计算实际迭代或使用表示函数计算其他像素参数
  • 将原始像素数据保存到文件中
  • 着色阶段:然后使用另一个程序将结果着色到图像中
  • 使用不同的绘图算法[1]并合成图像(图层)


例子

Image Magic 使用 CLUT

convert input.pgm -level 0,65532 clut.ppm  -clut -depth 8 output.png


PFract程序

./pfract -x 0.160211 -y -0.684246 -size $xSize $ySize -iterations 256 -rad -10 example5.raw
./colorize example5.raw example5.ppm -spawn -400 -scale 1.6 -fadedepth 25
  • 空间(2D平面)
    • 平面描述
    • 平面扫描
    • 平面变换
  • 像素
    • 像素特征:复势(外部/内部角和实势)、距离估计、平均z、盆地、轨道陷阱、纹理、纤维
  • 着色(颜色梯度)
  • 闪电(将2D分形带入3D的灯光效果)=高度场
  • 计算机生成的图像(CGI)是计算机图形的一种特定技术或应用,用于在艺术、印刷媒体、模拟器、视频和视频游戏中创建或改进图像。
  • 特效(通常缩写为SFX、F/X或简称为FX)是在剧院、电影、电视、电子游戏、游乐园和模拟器行业中使用的幻觉或视觉技巧,用于模拟故事或虚拟世界中想象的事件。现代图形处理单元(GPU)提供称为纹理采样器或纹理映射单元的专用固定功能单元,以执行纹理映射,通常使用三线性滤波或更好的多点各向异性滤波,以及用于解码特定格式(如DXTn)的硬件。截至2016年,纹理映射硬件无处不在,因为大多数SOC都包含合适的GPU。

算法类型

[编辑 | 编辑源代码]

通用计算机图形算法

[编辑 | 编辑源代码]
  • 纹理映射
  • 闪电
  • 着色
  • 特效


着色算法

[编辑 | 编辑源代码]
  • 通用着色算法:(像素特征 -> 颜色):
    • 离散梯度
    • 连续梯度:以归一化位置([0.0, 1.0]范围内的浮点数)作为输入,并输出颜色,与分形无关,但在通用计算机图形中使用;


页面

表示函数

[编辑 | 编辑源代码]

算法:算法、绘制/计算方法或表示函数(有关空间变换,请参见此处


  1. (水平集方法 (LSM)、水平曲线方法 (LCM))的逃逸和吸引时间
    1. Julia集
      1. 目标集、陷阱和溢出测试
        1. 目标集的分解:二元分解方法 (BDM),在抛物线情况下给出:Qn 的零点或抛物线棋盘格(棋盘)
        2. 埃舍尔式的平铺
        3. 轨道陷阱
    2. 曼德布罗特集的布尔逃逸时间
      1. BDM/M
  2. 用于绘制的逆迭代法(IIM)
    1. Julia 集 = IIM/J
  3. 复势
    1. 在参数平面上
    2. 在动力平面上
  4. 原子域
  5. bof60
  6. Lyapunov 指数
  7. 真实形状
  8. 离散拉格朗日描述符
  9. 曲线
    1. 边界 - 扫描
    2. 展开闭合曲线,然后拉伸成无限条
    3. 等势线
    4. 外部射线(参数和动力)轨迹
      1. 参数射线
      2. 动力射线
    5. 内部射线
    6. 路径:逃逸路线
  10. DEM = 距离估计方法
    1. DEM/M - 用于曼德布罗特集
    2. DEM/J 用于 Julia 集
  11. 将分量映射到单位圆盘(黎曼映射
    1. 乘数映射 和内部射线
      1. 在参数平面上
      2. 在动力平面上
    2. Boettcher 映射,复势和外部射线
      1. 在参数平面上
        1. 参数射线 = 场线
        2. 复势,外部角
      2. 在动力平面上
  12. 直方图着色:“主要思想是使用直方图更有效地将颜色梯度分布到已使用的索引,而不是均匀地将许多颜色浪费在未使用的索引上。它还使用特定的视觉上令人愉悦的梯度函数”(Spektre)
  13. 平均着色“是使用平滑迭代计数的小数部分在平均和之间进行插值的着色函数族。” Jussi Harkonen
    1. 三角不等式平均着色 = TIA 和曲率平均算法(CAA)
    2. 条纹平均着色 = SAC
    3. Chris King的非吸引盆地和花瓣的离散速度
    4. 平均距离
  14. 2D 到 3D:凹凸映射
    1. 高度图
    2. 斜率
    3. 浮雕[3] 和照明
    4. 照明
  15. 参数平面:组合算法
    1. 尾流:如何找到落在尾流根点的外部射线的角度(= 尾流的角度)?
    2. 尾流 k/r 的主 Misiurewicz 点,调谐:如何找到落在尾流主 Misiurewicz 点的外部射线的角度?
    3. 分支和尖端
    4. 子尾流,调整和内部地址
    5. 根、岛屿和 Douady 调谐 - 如何找到落在任何曼德布罗特集分量的根点的外部射线的角度,这些分量无法通过有限次边界交叉访问主心形线 (M0)?
    6. 周期倍增级联和 1/2 族中的 Myrberg-Feigenbaum 点。逃逸路线 1/2
  16. 缩放
    1. 在参数平面上
      1. (浅或正常)缩放
      2. 深度缩放和扰动方法
        1. Julia变形 - 用于雕刻曼德布罗特集部分的形状(缩放)并显示拐点
      3. 指数映射或墨卡托投影或对数极坐标映射


参数平面(使用曼德布罗特集,它的分量、岛屿、装饰等)

动力平面(带有 Julia 集和 Fatou 集)

Claude Heiland-Allen 的算法

[edit | edit source]
  • 图形算法 或着色算法或表示函数[4]
    • 成员资格
    • 逃逸时间
    • 二进制分解
    • 连续停留
    • 外部坐标
    • 停留梯度
    • 外部距离
    • 原子域
    • Misiurewicz 域
    • 内部坐标
    • 内部距离
  • 数值算法
    • 吸引子
    • 内部点
    • Misiurewicz 点(“朴素”)
    • Misiurewicz 点(“完整”)
    • 子大小
    • 大小估计
    • 形状估计
    • 域大小
    • 外部射线进入(曲线跟踪)
    • 外部射线离开(曲线跟踪):用于在 c 不在曼德布罗特集的情况下查找外部角 θ。与外部射线进入相同,但 λ>1。在通过停留带时以相反顺序收集 θ 的位。
    • 外部角
  • 符号算法
    • 调谐
    • 主球茎
    • Farey 树
    • Lavaurs 的算法
    • 辐条导航
    • 头发中的岛屿
    • 头发导航
    • 其他角度
  • 其他(更远)算法
    • 扰动
    • 毛刺校正
    • 级数逼近
    • 缩放插值
    • 庞加莱缩放
    • 指数映射
    • 拉伸尖点
    • Julia 变形
    • Buddhabrot
    • 蜘蛛算法
    • 曼德布罗特集中的 π
    • Julia 集的分形维数
    • 曼德布罗特笔记本
    • 位置分析


代码

外部示例

[edit | edit source]

参考文献

[edit | edit source]
  1. 二进制分解 来自曼德布罗特集词汇表和百科全书,作者:Robert Munafo,版权所有 1987-2023。
  2. fractalforums:tricky-mandelbrot-problem
  3. fractalforums.org:3d-emboss-effect-for-2d-fractals
  4. 来自曼德布罗特集词汇表和百科全书的表示函数,作者:Robert Munafo,版权所有 1987-2023
华夏公益教科书