detect_rotational_symmetry — 3D symmetry op

• Data kinds: points → primitive

• Call: import fullseye as fs; fs.ledger.detect_rotational_symmetry(points, orders=(2, 3, 4, 6, 8)) (implementation को सीधे call करना हो तो import symmetry3d; symmetry3d.detect_rotational_symmetry(points, orders=(2, 3, 4, 6, 8)), registry से लेना हो तो ops3d.get("detect_rotational_symmetry"))

उपयोग

PCA principal axes को candidate axes मानकर सबसे अच्छी rotational symmetry (axis × order) चुनता है।

→ dict{axis_point, axis_dir, order, score, table, margin}। score जितना छोटा, उतना अधिक symmetric।

★ margin (दूसरे यानी 2nd स्थान से अंतर) को हमेशा साथ में पढ़ें। कारण detect_reflection_symmetry जैसा ही है — candidates गुच्छे में हों तो चुनाव लॉटरी है, और उस समय पहले score नहीं, margin ढहता है। rotational symmetry में candidates 3 axes x order होते हैं, इसलिए अक्सर उसी axis का दूसरा order 2nd स्थान पर आता है, और उस स्थिति में छोटा margin का अर्थ है "order तय नहीं होता" (axis तय है)। table में सभी candidates हैं, इसलिए केवल axis स्थिर करके order दोबारा जाँचा जा सकता है।

★ candidates केवल PCA के 3 axes हैं। जिस आकार का असली symmetry axis किसी भी principal axis से मेल नहीं खाता, उसमें यह नहीं मिलता, और फिर भी चुपचाप सबसे अच्छा लौटाता है।

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• rotational_symmetry_fold — py -3.11 examples_3d/rotational_symmetry_fold.py

• symmetry — py -3.11 examples_3d/symmetry.py

वे अगले ops जिनसे type जुड़ता है (primitive को input के रूप में लेते हैं)

fuse_to_voxel · angle_between_lines · angle_between_planes · angle_line_plane · distance_point_plane · distance_point_line · distance_line_line · distance_segment_segment

इसी category के (symmetry)

detect_reflection_symmetry · reflect_points · reflection_symmetry_score


*Provenance: symmetry3d.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

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