궤도 트랩
Orbit trap수학에서 궤도 트랩은 프랙탈을 만드는 데 사용되는 반복 함수가 "트랩"이라고 불리는 기하학적 형상에 얼마나 가까이 접근하는지에 따라 프랙탈 이미지를 색칠하는 방법이다.일반적인 트랩은 점, 선, 원, 꽃 모양, 심지어 래스터 이미지입니다.궤도 트랩은 일반적으로 복합 평면을 나타내는 2차원 프랙탈을 색칠하는 데 사용됩니다.
예
포인트 베이스
점 기반 궤도 트랩은 함수의 궤도가 단일 점(일반적으로 원점)에 얼마나 근접하는지에 따라 점을 색칠합니다.
회선 베이스
선 기반 궤도 트랩은 함수의 궤도가 하나 이상의 선(일반적으로 수직 또는 수평)에 얼마나 가까운지에 따라 점을 색칠합니다(x=a 또는 y=a 선).픽오버 레버는 2개의 라인을 사용하는 라인 기반의 궤도 트랩의 예입니다.
알고리즘.
궤도 트랩은 일반적으로 반복 함수에 기반한 2차원 프랙탈 클래스와 함께 사용됩니다.이러한 프랙탈을 생성하는 프로그램으로, 복소 평면내의 이산적인 점을 나타내는 각 픽셀이 함수를 통과할 때의 이러한 점의 거동에 근거해 색을 입힌다.
이러한 종류의 프랙탈의 가장 잘 알려진 예는 z = zn2 + c 함수에n+1 기초한 만델브로트 집합이다.Mandelbrot 이미지를 색칠하는 가장 일반적인 방법은 특정 구제금융 값에 도달하는 데 필요한 반복 횟수를 취한 다음 해당 값을 색으로 지정하는 것입니다.이를 이스케이프 타임알고리즘이라고 합니다.
포인트 기반 궤도 트랩을 사용하여 Mandelbrot 세트에 색을 입히는 프로그램은 각 픽셀에 "거리" 변수를 할당합니다. 일반적으로 처음 할당할 때 이 변수는 매우 높습니다.
이중으로 하다 거리 = 10e5
프로그램이 반복 함수를 통해 복잡한 값을 전달하면 궤도의 각 지점과 트랩 지점 사이의 거리를 확인합니다.거리 변수의 값은 반복 중에 발견된 최단 거리입니다.
사적인 이중으로 하다 get Distance(복잡한 c, 복잡한 포인트, 인트 최대 반복) { 이중으로 하다 거리 = 1e20; 복잡한 z = 신규 복잡한(0, 0); 위해서 (인트 i=0; i< >최대 반복; i++) { // Mandelbrot 반복 실행 z = z.곱하다(z); z = z.더하다(c); // 새 거리 디스트 설정 = min(dist, z-point) 복잡한 zMinusPoint = 신규 복잡한(z); zMinusPoint = zMinusPoint.빼다(포인트); 이중으로 하다 zMinusPoint 모듈러스 = zMinusPoint.규모(); 한다면 (zMinusPoint 모듈러스 < > 거리) 거리 = zMinusPoint 모듈러스; } 돌아가다 거리; }
레퍼런스
- 를 클릭합니다Carlson, Paul W. (1999), "Two artistic orbit trap rendering methods for Newton M-set fractals", Computers & Graphics, 23 (6): 925–931, doi:10.1016/S0097-8493(99)00123-5.
- 를 클릭합니다Lu, Jian; Ye, Zhongxing; Zou, Yuru; Ye, Ruisong (2005), "Orbit trap rendering methods for generating artistic images with crystallographic symmetries", Computers & Graphics, 29 (5): 787–794, doi:10.1016/j.cag.2005.08.008.