frame op• 데이터 종류: pairs → pairs
• 호출: import fullseye as fs; fs.ledger.profile_normalise(contour)(구현을 직접 호출하려면 import profileops; profileops.profile_normalise(contour), 원장에서 가져오려면 opsprofile.get("profile_normalise"))
시위 길이 1, 앞전이 원점, 시위가 +x 방향이 되도록 회전과 평행 이동으로 정규화한다.
스케일은 시위 길이로만 바꾼다(형상을 왜곡하지 않는다). 반환은 정규화한 윤곽.
절차: profile_chord_frame 으로 앞전 le·뒷전 te(열린 뒷전은 틈의중점)·시위 길이 chord·시위 방향 angle_deg 를 구하고, ((contour - le) @ R(-angle).T) / chord 를 반환한다. 회전·평행이동·균일 스케일의닮음 변환뿐이며, 점의 수와 순서는 유지한다(재샘플링하지 않는다).
• contour: (N, 2) 의 (x, y), 8 점 이상, 유한. (row, col) 을 넘기면시위는 찾지만 위아래가 뒤바뀐다(예외는 발생하지 않는다). 닫혀 있는지는 여기서는검사하지 않는다(profile_sides 이후가 검사한다).
• 반환값: (N, 2) float64. 앞전이 (0, 0), 뒷전이 (1, 0) 부근, x 는 [0, 1] 의 시위 비. y 의 부호(윗면이 양인지 음인지)는 입력의 순회 방향으로 정해지며 반전하지 않는다.
• 실패: ValueError(형태, 점 수 부족, 비유한, 시위 길이 0 = 전 점 일치).
앞전·뒷전 판정은 "최원점 쌍 중 조금 안쪽에서 단면이 두꺼운 쪽 = 앞전"이므로, 앞뒤 두께가 같은 대칭 단면(타원 등)에서는 앞뒤가 뒤바뀔 수 있다. profile_sides / profile_thickness / profile_camber 는 내부에서 이것을 호출한다.
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.
• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.
• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.
• profile_frame_tour — py -3.11 examples/profile_frame_tour.py
pairs 를 입력으로 받는 것)profile_perturb · profile_chord_frame · profile_resample · profile_sides · profile_thickness · profile_camber · profile_leading_edge_radius · profile_trailing_edge_gap
frame)profile_chord_frame · profile_resample
*Provenance: profileops.py — PROFILE 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.