FractalPark
버닝 쉽쉬움

Burning Ship

이차 탈출 시간 프랙탈이에요. 제곱 전에 두 좌표를 절댓값으로 접으면 색 띠가 비대칭의 배 모양 윤곽을 만들어요.

탐색기에서 열기
버닝 쉽 프랙탈: 어두운 본체 선체, 불꽃 색 탈출 띠
버닝 쉽: 쐐기 모양 선체, 실수축 위의 불꽃 같은 능선, 층층이 쌓인 탈출 시간 띠.

개요

버닝 쉽은 만델브로 집합과 아주 가까운데, 한 가지 변화가 모든 것을 바꿔요. 제곱할 때마다 z의 실수부와 허수부를 각각 절댓값으로 바꿔요. 궤도가 축 쪽으로 접히면서 이차 사상의 회전 대칭이 사라져요. 이 사상은 더 이상 해석적이지 않아요. 코시–리만 방정식을 만족하지 않거든요. 가장자리를 따라 단단한 모서리가 나타나요.

실수축을 수평으로, 허수축을 뒤집어 놓는 일반적인 표시 관례를 쓰면, 그 접힘이 불타는 배를 떠올리게 해요. 쐐기 모양의 선체가 불꽃 같은 능선 아래에 자리 잡아요. 왼쪽의 실수선을 따라 더 작은 배들이 같은 톱니 윤곽을 반복해요.

일반적인 탈출 반지름 테스트는 여전히 유효해요. |z|가 2를 넘으면 발산이 확실하거든요. 하지만 이 비해석적 궤도는 더 이상 복소해석 함수처럼 행동하지 않아요. 탈출 시간 띠가 만델브로 집합의 부드러운 방사형 그라데이션 대신 단단한 가장자리의 층과 겹겹의 직사각형 경계로 쌓여요.

수학

Fold, then square

z(n+1) = (absolute real z(n) + i times absolute imaginary z(n))^2 + c

Both real and imaginary components are reflected to nonnegative values, combined into a complex number, then squared. In expanded form, the real part is xₙ₊₁ = xₙ² − yₙ² + Re(c) and the imaginary part is yₙ₊₁ = 2|xₙ||yₙ| + Im(c). At every iteration, the absolute values fold the orbit back toward the axes: if xₙ or yₙ is negative, it is mirrored to positive before the squaring step. That fold produces the sharp, rectangular boundaries that set the Burning Ship apart from the Mandelbrot set’s smooth contours.

Try c = −1. For the Mandelbrot set, the orbit z₀=0, z₁=−1, z₂=0, z₃=−1, … stays bounded (period 2). For the Burning Ship, z₁ = (|0| + i|0|)² − 1 = −1, then z₂ = (|−1| + i|0|)² − 1 = 0, and the orbit settles into the same 2-cycle. Now take a point such as c = i: the fold redirects its orbit where the Mandelbrot iteration would not, producing a different escape decision.

역사

In 1992, Michael Michelitsch and Otto E. Rössler first described and rendered the Burning Ship in a Computers & Graphics paper. Both were then researchers at the University of Tübingen (Eberhard Karls Universität Tübingen). Their paper gave the iteration and showed that the absolute-value fold produces what they called a “quasi-Julia set”: it resembles a classical Julia set, but arises from a non-analytic map.

The name “Burning Ship” comes from a close view near the real axis: a dark hull below, flame-like ridges above. Paul Bourke independently implemented the fractal in October 1993, crediting Michelitsch and Rössler; his page became an early online reference.

Because it is a non-analytic alteration of the Mandelbrot recurrence, the formula falls outside the classical complex-dynamics theory Fatou and Julia developed for analytic functions. It has since become one of the most widely explored non-analytic escape-time fractals. Buffalo, Airship, Celtic, and Perpendicular variants rearrange which coordinates are folded and when.

시각적 특징

Dark hulls, flame-like masts, and chimney shapes rise through folded layers. Set beside the Mandelbrot set, the asymmetry is immediate.

리믹스와 예제

표준 문서에서 시작하기

이 가이드가 사용하는 동일한 승인된 수식 상태를 연 다음, 인터랙티브 탐색기에서 뷰, 컬러링, 변환, 애니메이션을 바꿔보세요.

자주 묻는 질문

What changed from the Mandelbrot set?

Taking absolute values component by component breaks the Mandelbrot set’s rotational symmetry and makes the map non-analytic. Rounded boundaries become angled edges and nested rectangles; escape-time color settles into bands rather than smooth radial gradients.

Why is the ship sometimes upside down?

The canonical formula puts the ship upside down because absolute values turn negative imaginary coordinates positive before squaring. Most renderers, including FractalPark, reflect the image vertically for display. A screen whose Y-axis points down can add a second flip, so the final orientation depends on where the renderer applies that reflection.

참고 자료

소스 해설

  1. frm-v1:cfef49944d8f9bd8f2ee91b2d4ab4f9b30ad66475a6f783f52bb91a7a36b1617:init/0

    burningShip에서 이 노드는 다음 연산을 실행해요: ismand이면 z = 0; 아니면 z = pixel.

  2. frm-v1:cfef49944d8f9bd8f2ee91b2d4ab4f9b30ad66475a6f783f52bb91a7a36b1617:loop/0

    burningShip에서 이 노드는 다음 연산을 실행해요: a = abs(z).

  3. frm-v1:cfef49944d8f9bd8f2ee91b2d4ab4f9b30ad66475a6f783f52bb91a7a36b1617:loop/1

    burningShip에서 이 노드는 다음 연산을 실행해요: power == 2이면 real(z) = real(a) * real(a) - imag(a) * imag(a), imag(z) = 2 * real(a) * imag(a), 이어서 z = z + c; 아니면 z = a ^ power + c.

  4. frm-v1:cfef49944d8f9bd8f2ee91b2d4ab4f9b30ad66475a6f783f52bb91a7a36b1617:bailout

    burningShip에서 이 노드는 다음 연산을 실행해요: |z| <= 256.

구문 특징

state-flow

구체적인 상태 흐름은 ismand 선택이 z의 초기값을 정하고, abs(z)가 a가 돼요, 이어서 power 분기가 z를 다시 만들어요.

stopping-test

종료 검사는 |z| <= 256만 판단하며 상태에 값을 대입하지 않아요.

매개변수 실험

power

단계

  1. 고정 프로필에서 burningShip을 실행하고 결과를 기록하세요.
  2. power만 바꾸고 다른 런타임 슬롯과 프로필 제어는 고정한 뒤 다시 실행하여 차이가 있는지 기록하세요.

관찰할 내용

기준 실행과 비교해 a = abs(z); power == 2이면 real(a)와 imag(a)로 z를 다시 만든 뒤 z = z + c, 아니면 z = a ^ power + c가 보이는 결과나 |z| <= 256 종료 검사에 차이를 만드는지 기록하세요. 정의가 차이를 보장하지는 않아요.

연습

burningShip의 주석을 추적하고 표시된 연산에서 a = abs(z); power == 2이면 real(a)와 imag(a)로 z를 다시 만든 뒤 z = z + c, 아니면 z = a ^ power + c가 어떻게 실행되는지 설명하세요.

완료 확인

답에는 4개 주석의 설명, a = abs(z); power == 2이면 real(a)와 imag(a)로 z를 다시 만든 뒤 z = z + c, 아니면 z = a ^ power + c의 식별, 그리고 |z| <= 256가 대입이 아닌 종료 검사라는 구분이 있어요.

힌트

상태 흐름에서는 ismand이면: z = 0; 아니면 z = pixel → a = abs(z) → power == 2이면: a의 성분으로 z를 다시 만들고 c를 더해요; 아니면 z = a ^ power + c 순서로 연산하고 결과를 다음 단계에 넘겨요.

출처 및 권리

출처: 고정된 실행 정의와 공개 결정이에요.

권리 정보는 영어 단원의 고정된 결정을 따라요.

수식 레코드

burningShip

이 FractalPark 표준 구현은 게시되어 실행할 수 있습니다.

burningShip의 결정적 미리보기

표준 소스

언어
frm-like/1
표준 라이브러리
1
프로필 모드
parameter-plane
프로필 중심
-0.5, 0
프로필 확대
0.4
프로필 반복 횟수
96
프로필 근거
mechanical

매개변수

  • power: real

표준 소스

검증된 표준 리비전은 읽기 전용입니다. Remix는 별도의 편집 가능한 포크를 만듭니다.

표준 소스를 불러오는 중…

출처 및 현재 구현

수식 ID
2ab193f5-4919-5e5c-a9fb-c1a0e3f5eb02
표준 이름
burningShip
원래 이름
burningShip
역사적 출처
FractalPark
현재 구현
프로젝트 소유

FractalPark 프로젝트 소유 구현입니다. 연결된 파일은 고정된 정식 Definition입니다.

권리 또는 저작자 표시에 문제가 있나요?

수식 ID와 근거 자료를 보내 주세요. 검토 중에는 관리자가 구현을 보류하거나 철회할 수 있습니다. contact@fractalpark.com