임의로 마니 차원 지점과 벡터의 기하학적 조작을 수행하는 파이썬 라이브러리 및 4D 장면을 2D 이미지로 렌더링하는 CGI 도구.
main.py 에는 간단한 4D 장면과 코드의 정의가 포함되어있어 2D 이미지로 렌더링됩니다.
Point(list[float]) - 점 또는 벡터
Poly(list[list[float]]) - 포인트 또는 벡터 모음
Span(org:Point, basis:Poly) - 공간의 특정 지점 ( org )에 고정 된 벡터의 basis 또는 프레임. 하위 공간을 나타내거나 (서브 클래스를 통해) 병렬 동점 또는 단순을 나타낼 수 있습니다.
Body(org:Point, basis:Poly) - 스팬의 서브 클래스. 단순화 및 병렬 동점에 공통적 인 작업이 포함되어 있습니다.
Simplex(org:Point, basis:Poly) - 신체의 서브 클래스. N- 차원 단순 (삼각형의 일반화 및 사면체)은 벡터를 따라 org 주위의 지점을 basis 으로 최대 1의 양의 양수 계수를 기준으로하는 것입니다.
Parallelotope(org:Point, basis:Poly) - 신체의 서브 클래스. N- 차원 평행 동점 (평행 사변형의 일반화 및 평행 한 피트)은 0에서 1의 basis 로 벡터를 따라 org 주위의 지점을 수집하는 것입니다.
ObjectFace (
body : Simplex ,
normal : Point ,
color : ( R , G , B ),
surface : str
)Objectface 객체는 풍경의 빌딩 블록입니다. 우리는 장면의 치수보다 1 차원이 낮은 삼각형 (단순)면으로 작업하므로 4D 장면에서는 4D 객체의 표면을 덮는 3D면으로 작업합니다. 얼굴도 방향을 향해야하므로 일반 벡터와 색상 및 조명 효과에 사용되는 계산 (예 : 무광택, 반투명 등)을 결정하는 표면의 유형을 저장합니다.
Camera(space:Span, focd:float) - 카메라를 정의합니다. 카메라는 전체 공간에 걸친 범위로 정의 된 기준으로 정의됩니다. 첫 번째 D-1 벡터는 이미지 창을 형성하는 반면 초점은 마지막 벡터를 따라 focd (초점 거리)입니다.
Light(p:Point) - 점 표시등을 정의합니다.
Renderer (
objects : list [ ObjectFace ],
cameras : list [ Camera ], # one for each dimension reduction
lights : list [ Light ],
img_range : float , # the maximum 2D coordinate in the 2D image
img_step : float # the resolution of the 2D image
)객체, 카메라 및 조명을 그룹화하고 4D 장면을 2D 이미지로 렌더링하는 논리를 포함합니다.
https://github.com/csirmaz/hypergeometrety/wiki의 Wiki의 자세한 설명 및 배경 정보를 읽으십시오.