Mandelbrot集的最新变化形态一览——MandelBox,Mandelbulb,Burning Ship,NebulaBrot

本文涉及的产品
视觉智能开放平台,视频资源包5000点
视觉智能开放平台,分割抠图1万点
视觉智能开放平台,图像资源包5000点
简介: 该文介绍了几种基于Mandelbrot集的衍生形态,包括Mandelbulb、MandelBox、Burning Ship和NebulaBrot。Mandelbulb是3D扩展,使用球坐标;MandelBox利用盒映射创造复杂形状;Burning Ship以复数模和实部迭代;NebulaBrot则结合多种分形特征。文中提供了简单的Python代码示例来生成这些图形,并提到了相关学习资源。

Mandelbrot集的衍生形态如MandelBox、Mandelbulb、Burning Ship和NebulaBrot都是基于Mandelbrot集的基本概念,但它们在公式和渲染技术上有所不同,从而产生了更为复杂和多样化的图形。下面我会给出这些衍生形态的一些基本介绍和代码示例。

Mandelbulb

Mandelbulb是三维空间中的Mandelbrot集的扩展,由Daniel White和Paul Nylander在2009年提出。它使用球坐标系而不是复数坐标系。

Python代码示例 (Mandelbulb)

Python

import numpy as np
from scipy.spatial import SphericalVoronoi
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt

def mandelbulb(x, y, z, max_iter=8):
    c = complex(np.sqrt(x*x + y*y), z)
    z = 0.0j
    for i in range(max_iter):
        z = z*z + c
    return abs(z)

x, y, z = np.ogrid[-2:1:100j, -2:1:100j, -2:1:100j]
vals = np.vectorize(mandelbulb)(x, y, z)

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.voxels(vals < 2.0, facecolors='red')

plt.show()

MandelBox

MandelBox是另一个三维分形,由Tom Lowe在2010年创造。它使用盒映射(box folding)来创建复杂的形状。

Python代码示例 (MandelBox)

Python

def mandelbox(x, y, z, max_iter=8):
    z = complex(x, y) + z
    for n in range(max_iter):
        if abs(z) > 2:
            break
        # Box folding
        z = 2 - abs(z) if abs(z) > 1 else 2*z*z + z
    return n

x, y, z = np.ogrid[-2:1:100j, -2:1:100j, -2:1:100j]
vals = np.vectorize(mandelbox)(x, y, z)

# Plotting the Mandelbox using matplotlib or any other plotting library

Burning Ship

Burning Ship是一个二维分形,由Michael Michelitsch和 Otto E. Rössler 在1992年定义。它的迭代公式与Mandelbrot集类似,但使用的是复数的模和实部。

Python代码示例 (Burning Ship)

Python

def burning_ship(x, y, max_iter=8):
    z = complex(x, y)
    for i in range(max_iter):
        z = (z.real ** 2 - z.imag ** 2, 2 * z.real * z.imag)  # Complex conjugate
        z = complex(abs(z[0]), abs(z[1])) + z
    return abs(z)

x, y = np.ogrid[-2:1:100j, -1.5:1.5:100j]
vals = np.vectorize(burning_ship)(x, y)

plt.imshow(vals.T, extent=[-2, 1, -1.5, 1.5], cmap='hot')
plt.show()

NebulaBrot

NebulaBrot是一个较新的概念,它结合了多种分形特性来创造星云状的效果。目前没有统一的定义或公式,因此下面的代码只是一个示例,展示了如何组合不同的分形元素来创造类似的效果。

Python代码示例 (NebulaBrot)

Python

def nebulabrot(x, y, max_iter=8):
    z = complex(x, y)
    for i in range(max_iter):
        z = z*z + z.conjugate()  # Example formula
    return abs(z)

x, y = np.ogrid[-2:1:100j, -1.5:1.5:100j]
vals = np.vectorize(nebulabrot)(x, y)

plt.imshow(vals.T, extent=[-2, 1, -1.5, 1.5], cmap='plasma')
plt.show()

参考文档

这些代码示例仅用于演示目的,可能需要根据具体环境进行调整。对于深入学习和研究这些分形,可以参考以下文档和资源:

请注意,这些代码示例可能需要额外的库和优化才能在实际环境中高效运行。

相关文章
|
3月前
|
存储 人工智能 vr&ar
AR整体设计思路
【8月更文挑战第3天】AR整体设计思路。
52 11
|
3月前
|
存储 前端开发 JavaScript
"Angular与AWS Amplify的神奇之处:如何用云端连接技术让你的项目一鸣惊人?"
【8月更文挑战第31天】在现代软件开发中,云端连接的前端应用已成为主流。本文探讨了Angular与AWS Amplify的结合,展示了如何通过示例代码快速构建云端连接的前端应用。Angular是由Google支持的开源前端框架,而AWS Amplify是AWS提供的云服务,两者结合可以快速构建云端连接的前端应用。文中还分享了一些最佳实践,帮助开发者更高效地使用这两种技术构建高性能的云端连接的前端应用。随着Angular和AWS Amplify生态的不断成熟,它们将在未来的Web开发中扮演更加重要的角色。
52 0
|
3月前
|
缓存 前端开发 安全
Angular 与 GraphQL 强势联合超厉害!现代前端数据获取新范式,开启高效开发新旅程!
【8月更文挑战第31天】在前端开发领域,Angular 与 GraphQL 的结合为数据获取带来了革命性的变化。Angular 凭借其强大的组件化开发模式和依赖注入特性,成为构建大型应用的理想选择。然而,在数据获取上,传统 RESTful API 显得力不从心。这时,GraphQL 出现了,它允许前端精确获取所需数据,避免了数据过度获取或不足的问题。通过一个简单的查询语句,即可一次性获取所需数据,极大地提升了效率。虽然在实际应用中仍需解决缓存和错误处理等问题,但这种结合无疑为现代前端数据获取开辟了新道路,推动技术不断进步。
42 0
|
3月前
|
前端开发 JavaScript 开发者
Angular状态管理神器ngrx Store:从零开始的实践指南与进阶优化秘籍,让你的前端应用状态井井有条、高效运行的绝招大揭秘
【8月更文挑战第31天】状态管理在现代Web应用开发中至关重要,特别是在构建大型、复杂的Angular应用时。ngrx Store借鉴Redux的设计理念,提供集中式状态管理和可预测的数据流,有助于增强应用的可维护性和可测试性。
69 0
|
6月前
|
数据可视化 Java 数据库
回顾 2023,NebulaGraph 的这一年的变化
在整体上,从 v3.3.0 到 v3.6.0,NebulaGraph 的稳定性有了明显的提升;而最新的发行版 v3.6.0 版本,在性能上,针对图上常用的路径查询、多跳查询上,均有不同程度的性能提升,最高提升了 6 倍。
96 0
回顾 2023,NebulaGraph 的这一年的变化
|
SQL 自然语言处理 关系型数据库
从真实案例出发,全方位解读 NebulaGraph 中的执行计划
当我们遇到语句执行慢问题时,也许你该读一读这条语句的执行计划,看看它卡在哪里。读完执行计划之后,针对性优化相关耗时长的算子。
100 0
|
JavaScript 前端开发 Oracle
ES6:基础使用,积累
ES6:基础使用,积累
49 0
|
弹性计算 监控 NoSQL
图数据库系统重构之路:从OrientDB迁移到NebulaGraph 真实案例分享
图数据库系统重构之路:从OrientDB迁移到NebulaGraph 真实案例分享
187 0
|
机器人 vr&ar 数据安全/隐私保护
项目实战典型案例25——ar、第三方服务、用户三角形超级稳定耦合
项目实战典型案例25——ar、第三方服务、用户三角形超级稳定耦合
105 0
|
SQL 缓存 分布式计算
从实测出发,掌握 NebulaGraph Exchange 性能最大化的秘密
NebulaGraph Exchange 是图数据库 NebulaGraph 的一款数据处理工具,本篇内容从实测出发,教你如何用上、用好这个数据产品。
121 0

热门文章

最新文章