🌐 VI

🌀 Mandelbrot Set Explorer

Phóng to để khám phá độ chi tiết vô hạn của tập Mandelbrot. Nhấp ở bất kỳ đâu để phóng to, shift-nhấp hoặc nhấp chuột phải để thu nhỏ, và tinh chỉnh số vòng lặp cùng bảng màu theo thời gian thực.

200

Nhấp vào canvas để phóng to · Shift-nhấp hoặc nhấp chuột phải để thu nhỏ.

HƯỚNG DẪN

Tìm hiểu thêm

01

Tập Mandelbrot là gì?

Tập Mandelbrot là tập các số phức c mà phép lặp z → z² + c (bắt đầu từ z = 0) luôn bị chặn mãi mãi. Các điểm nằm trong tập được tô đen; các điểm bên ngoài được tô theo tốc độ thoát ra vô cực. Được đặt theo tên Benoit Mandelbrot, người nghiên cứu nó vào năm 1980, đây là ví dụ nổi tiếng nhất về fractal — một đối tượng có cấu trúc tinh vi, tự đồng dạng lặp lại ở mọi thang đo.
02

Công cụ này hoạt động thế nào

Với mỗi pixel, công cụ ánh xạ vị trí của nó thành một số phức c, rồi lặp z² + c cho đến khi độ lớn vượt quá 2 (thoát được bảo đảm) hoặc đạt giới hạn số vòng lặp. Số lần thoát quyết định màu sắc. Công cụ này dùng tô màu mượt (liên tục) — một giá trị thoát dạng phân số được tính từ độ lớn cuối cùng — nên các dải màu hòa vào nhau thay vì tạo thành các vòng cứng. Việc dựng hình chạy theo từng dải hàng bằng requestAnimationFrame để trang vẫn phản hồi tốt ngay cả ở 1000 vòng lặp.
03

Cách có ảnh đẹp nhất

Khi bạn zoom sâu hơn, hãy tăng số vòng lặp: các khung nhìn nông trông ổn ở 100–200 vòng lặp, nhưng zoom sâu cần 500–1000 để phân giải các sợi mảnh. Những cấu trúc ngoạn mục nhất — các Mandelbrot thu nhỏ, xoắn ốc và các thung lũng "seahorse" — nằm dọc ranh giới giữa phần đen bên trong và phần có màu bên ngoài. Khi tìm được khung hình ưng ý, hãy nhấp Lưu PNG để xuất ở độ phân giải đầy đủ của canvas.

Câu hỏi thường gặp

Tại sao ảnh bị ô vuông khi tôi zoom rất sâu?
Việc zoom dựa trên số thực dấu phẩy động độ chính xác kép. Sau khoảng mức phóng đại 10^13×, các con số mất độ chính xác và chi tiết trở nên ô vuông — đó là giới hạn phần cứng của số JavaScript tiêu chuẩn, không phải lỗi. Hãy đặt lại và khám phá một vùng khác.
Thanh trượt số vòng lặp thực sự thay đổi gì?
Nó đặt số bước tối đa của z → z² + c trước khi một điểm được xem là nằm trong tập. Giá trị cao hơn cho thấy chi tiết biên mịn hơn nhưng mất nhiều thời gian dựng hơn. Giới hạn là 1000.
Công cụ này có liên quan đến Julia set không?
Có. Tập Mandelbrot về cơ bản là bản đồ của mọi Julia set: mỗi điểm c tương ứng với một Julia set, và các giá trị c nằm trong tập Mandelbrot sẽ tạo ra các Julia set liên thông. Hãy thử Julia Set Generator của chúng tôi để khám phá chúng.