reflect_points — 3D symmetry op

• 데이터 종류: points → points

• 호출: import fullseye as fs; fs.ledger.reflect_points(points, plane_point, plane_normal)(구현을 직접 호출하려면 import symmetry3d; symmetry3d.reflect_points(points, plane_point, plane_normal), 원장에서 가져오려면 ops3d.get("reflect_points"))

사용법

점군을 평면(점 plane_point·법선 plane_normal)에 대해 반사. → (N,3).

각 점 p의 평면으로부터의 부호 있는 거리 d = (p - plane_point) · n(n은 정규화한 법선)을 구하고, p' = p - 2 d n을 반환한다(Householder 반사). 평면 위의 점은 움직이지 않고, 평면 양쪽의 점이 서로 바뀐다. 점의 순서는 유지되므로 p'[i]는 p[i]의 거울상이다. 좌표의 단위는 그대로다.

• points: (N,3) 배열(float로 변환). 형상 검증은 하지 않는다.

• plane_point: 평면 위의 1 점 (3,). plane_normal: 법선 (3,)(길이는 임의, 내부에서 정규화. 부호는 결과에 영향을 주지 않는다).

주의: 법선은 노름에 1e-12를 더해 나누므로, 영벡터를 넘겨도 예외가 발생하지 않고 점군이 거의그대로 반환된다(fail-closed(실패 시 거부)가 아니다). reflection_symmetry_score / detect_reflection_symmetry 내부에서 쓰이는 외에, 검출한 대칭면으로 결손 쪽을 메우는(거울상을 원래점군에 연결하는) 형상 보완에도 쓸 수 있다.

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

• reflection_symmetry — py -3.11 examples_3d/reflection_symmetry.py

타입이 이어지는 다음 연산자(points 를 입력으로 받는 것)

points_to_voxel · gaussians_to_voxel · estimate_point_normals · to_points · match_points_ncc · match_pca · moment_axes · icp_point2point_3d

같은 카테고리(symmetry)

detect_reflection_symmetry · detect_rotational_symmetry · reflection_symmetry_score


*Provenance: symmetry3d.py — 3D 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.