曼德勃罗集web可视化应用

曼德勃罗集web可视化应用

曼德勃罗集可视化应用

一个基于 Next.js 构建的沉浸式曼德勃罗集(Mandelbrot Set)探索工具,提供丰富的交互功能和精美的视觉效果。

在这里插入图片描述

源代码:https://gitee.com/yanjianzhong007/mandelbrotset
在线演示:https://z2p9jz49tp.coze.site/

git clone https://gitee.com/yanjianzhong007/mandelbrotset.git 

功能特性

核心功能

  • 全屏显示:沉浸式全屏浏览体验
  • 高性能渲染:基于 Canvas 的像素级渲染,支持流畅的实时交互
  • 拉框选择
    • Shift + 拖拽:放大选定区域
    • Ctrl + 拖拽:缩小选定区域
  • 一键全图:快速返回完整视图
  • 缩放滑块:快速定位缩放级别(2x - 1000x)

预设位置(上帝的指纹)

内置 10 个经典的分形区域:

  1. 完整视图
  2. 象鼻 (Elephant Valley)
  3. 海马谷 (Seahorse Valley)
  4. 双螺旋 (Double Spiral)
  5. 轻盈之羽 (Light Feather)
  6. 螺旋星系 (Spiral Galaxy)
  7. 迷你曼德勃罗 (Mini Mandelbrot)
  8. 海马群岛 (Seahorse Islands)
  9. 闪电峡谷 (Lightning Canyon)
  10. 螺旋花 (Spiral Flower)

颜色主题

7 种精心设计的颜色方案:

  • 彩虹
  • 火焰
  • 海洋
  • 灰度
  • 霓虹
  • 日落
  • 森林

交互工具

  • 撤销功能:支持多步撤销,快捷键 Ctrl+Z
  • 书签管理:保存、分类、命名并快速跳转到感兴趣的视图
  • 移动端支持:单指拖拽平移,双指缩放

界面特性

  • 悬浮控制面板:可折叠,支持深色/浅色主题切换
  • 渲染进度指示器:实时显示渲染状态
  • 水印显示:多行填充水印,跟随图案移动,字体小巧淡雅

技术栈

  • 框架: Next.js 16.0.10 (App Router)
  • 语言: TypeScript 5
  • UI: React 19 + Tailwind CSS 4
  • 渲染: HTML5 Canvas
  • 组件库: shadcn/ui

快速开始

环境要求

  • Node.js 18+
  • npm

操作指南

基本操作

  • 拖拽:按住鼠标左键拖动视图
  • 放大:按住 Shift 键并拖拽选择区域
  • 缩小:按住 Ctrl 键并拖拽选择区域
  • 缩放滑块:在控制面板中拖动滑块快速缩放
  • 撤销:按 Ctrl+Z 或点击撤销按钮

预设位置

在控制面板的"上帝的指纹"下拉菜单中选择预设位置,快速跳转到经典分形区域。

颜色主题

在控制面板的"颜色主题"下拉菜单中选择不同的配色方案,探索不同的视觉风格。

书签管理

  1. 点击控制面板中的书签图标(黄色书签按钮)
  2. 点击"添加书签"保存当前视图
  3. 为书签命名并选择分类
  4. 点击书签条目快速跳转

移动端操作

  • 单指拖拽:平移视图
  • 双指捏合:缩放视图

主题切换

点击控制面板右上角的太阳/月亮图标切换深色/浅色主题。

项目结构

mandelbrot-set/ ├── src/ │ ├── app/ │ │ └── page.tsx # 主页面组件 │ ├── components/ │ │ ├── ControlPanel.tsx # 控制面板 │ │ ├── MandelbrotCanvas.tsx # Canvas 渲染组件 │ │ ├── BookmarksPanel.tsx # 书签管理面板 │ │ ├── ProgressBar.tsx # 进度指示器 │ │ └── ui/ # shadcn/ui 组件 │ └── lib/ │ └── mandelbrot.ts # 核心算法和工具函数 ├── public/ # 静态资源 └── package.json 

核心算法

本项目使用经典的曼德勃罗集迭代算法:

z_{n+1} = z_n^2 + c 

其中 c 是复平面上的点,z 从 0 开始迭代。如果 |z| 始终保持在 2 以内,则点 c 属于曼德勃罗集。

性能优化

  • 使用 Canvas 直接操作像素,避免 DOM 操作
  • 画质模式切换:预览模式降低分辨率提升性能
  • 分块渲染:大画布分块处理,避免界面卡顿
  • Web Worker 支持:后台计算,保持界面响应

浏览器支持

  • Chrome/Edge 90+
  • Firefox 88+
  • Safari 14+
  • 支持桌面和移动端

开发说明

代码规范

  • 使用 TypeScript 进行类型检查
  • 遵循 ESLint 规则
  • 使用 Prettier 格式化代码

构建检查

pnpm build 

许可证

MIT

致谢

本应用受到曼德勃罗集的数学美学的启发,旨在为用户提供探索分形世界的沉浸式体验。

Read more

【征文计划】AR健身教练:形随心动 - 基于Rokid CXR-M SDK的实践落地

【征文计划】AR健身教练:形随心动 - 基于Rokid CXR-M SDK的实践落地

一、项目背景与创意起源 在当今快节奏的都市生活中,健身已成为许多人保持健康的重要方式。然而,居家健身面临一个普遍痛点:缺乏专业指导,容易因动作不规范导致运动损伤,同时低头看手机或平板的体验也大大降低了健身的沉浸感和效率。 根据《2024年中国健身行业白皮书》显示,超过65%的居家健身用户表示"缺乏专业指导"是他们放弃健身的主要原因。而Rokid Glasses作为一款轻量级AR眼镜,其独特的"抬头即见"交互方式,为解决这一问题提供了绝佳的硬件基础。 "形随心动"创意的诞生源于一个简单但关键的观察:如果能将专业教练"投射"到用户视野中,实时指导动作,同时提供直观的数据反馈,那么居家健身体验将发生质的飞跃。通过Rokid CXR-M SDK的AI场景、自定义页面和提词器功能,我们能够实现这一愿景。 二、Rokid CXR-M SDK 相关 1. Rokid

《星辰 RPA 全自动:做一个小红书自动发文机器人》

《星辰 RPA 全自动:做一个小红书自动发文机器人》

前引:在企业数智化转型的浪潮中,如何突破 “有 AI 无落地、有流程无智能” 的困局?星辰 Agent 与星辰 RPA 的出现,正是为了解决这一痛点。作为科大讯飞旗下的双核心产品,星辰 Agent 以企业级 Agentic Workflow 开发平台为底座,提供 AI 工作流编排、模型管理与跨系统连接能力;而星辰 RPA 则以超过 300 个自动化原子能力,让业务流程真正 “动” 起来! 目录 一、企业机器人自动化平台:RPA (1)RPA介绍 (2)服务端安装 (1)clone项目 (2)配置为本地访问 (3)检查镜像源 (4)配置default.conf

75元!复刻Moji 2.0 小智 AI 桌面机器人,基于乐鑫ESP32开发板,内置DeepSeek、Qwen大模型

文末联系小编,获取项目源码 Moji 2.0 是一个栖息在你桌面上的“有灵魂的伴侣”,采用乐鑫 ESP32-C5开发板,配置 1.5寸 360x360 高清屏,FPC 插接方式,支持 5G Wi-Fi 6 极速连接,内置小智 AI 2.0 系统,主要充当智能电子宠物的角色,在你工作学习枯燥时,通过圆形屏幕上的动态表情包卖萌解压,提供情绪陪伴;同时它也是功能强大的AI 语音助手,支持像真人一样流畅的连续对话,随时为你查询天气、解答疑惑或闲聊解闷,非常适合作为极客桌搭或嵌入式学习的开源平台。 🛠️ 装配进化 告别手焊屏幕的噩梦。全新设计的 FPC 插座连接,排线一插即锁,将复刻门槛降至最低。 🚀 性能进化 主控升级为 ESP32-C5。支持 5GHz Wi-Fi 6,

AIOps实践:基于 Dify+LangBot 实现飞书智能体对话机器人

AIOps实践:基于 Dify+LangBot 实现飞书智能体对话机器人

文章目录 * AIOps实践:Dify接入飞书实现与智能体对话 * 前言 * 环境搭建 * 1、Docker环境搭建 * 2、LangBot搭建 * 3、编辑流水线 * 4、配置飞书机器人 * 5、创建机器人 * 6、进行测试 * 附:遇到的问题 AIOps实践:Dify接入飞书实现与智能体对话 前言 前端时间把dify的智能体接入到了Prometheus和夜莺上,实现了与智能体的基本对话,并可以调取Prometheus数据进行分析,在那之后就开始深度研究AIOps实现原理于深度赋能运维的可能性,所以正在研究AIOps的核心:MCP Server;现在还并未成型,在研究的过程中,就想到了可否基于dify的agent,连接自建的mcp服务器,对接到飞书的机器人上,这样就可以和智能体进行对话,配合成型的mcp,就可以基本实现AIOps。 这里需要借助一个三方的开源工具LangBot,LangBot是一个生产级多平台 LLM 机器人开发平台。那么就开始实践吧: MCP Server开发的当前阶