मुझे लगता है कि गुइबास और स्टॉल्पी का "एज अलजेब्रा" औपचारिकता थोड़ा अनावश्यक है।
यह सब वास्तव में आवश्यक है कि वह मौलिक और दोहरे रेखांकन के बीच के अंतर को याद रखे। प्रत्येक चेहरे मौलिक ग्राफ की इसी दोहरी शिखर है च * ; प्रत्येक बढ़त ई मौलिक ग्राफ की इसी दोहरी बढ़त है ई * ; और प्रत्येक शिखर वी मौलिक ग्राफ की इसी दोहरी चेहरा है v * । प्राइमल एजें प्राइमल कोने को जोड़ती हैं और प्राइमल फेस को अलग करती हैं; दोहरी किनारों दोहरी कोने और अलग दोहरी चेहरे को जोड़ने। किसी भी चीज के दोहरे होना मूल बात है। गुइबास और स्टॉल्पी के पेपर में चित्र 4 देखें:ff∗ee∗vv∗
गुइबास और स्टॉल्फी प्रत्येक धार (या तो प्राण या दोहरी) के बारे में चार निर्देशित, उन्मुख किनारों के संग्रह के रूप में सोचने का प्रस्ताव करते हैं ; सादगी के लिए, मैं इन डार्ट्स को फोन करूंगा । प्रत्येक डार्ट पॉइंट एक एंडपॉइंट टेल ( → ई ) से दूसरे एंडपॉइंट हेड ( → ई ) तक जाता है , और स्थानीय रूप से दो चेहरे बाएं ( → ई ) और राइट ( → ई ) को अलग करता है । पूंछ ( → e ) कॉल करने के लिए समापन बिंदु का चुनाव डार्ट का हैe⃗ tail(e⃗ )head(e⃗ )left(e⃗ )right(e⃗ )tail(e⃗ )दिशा , और किस विकल्प का चयन इसकी अभिविन्यास है । (गुइबास और स्टॉल्पी "टेल" और "हेड" के बजाय "ऑर्ग" और "डेस्ट" का उपयोग करते हैं, लेकिन मैं छोटे लेबल पसंद करता हूं, क्योंकि अनावश्यक संकेताक्षर ईविल हैं।)left(e⃗ )
किसी भी डार्ट के लिए , गुइबास और स्टॉल्पी तीन संबंधित डार्ट्स:e⃗
- : डार्ट छोड़ने वाली पूंछ ( → e ) के बाद वामावर्त क्रम में अगलाटेलनेक्स्ट ( ई⃗ )पूंछ ( ई⃗ )।इ⃗
- : "वही" डार्ट के रूप में → ई , लेकिन बाएं ( → ई ) और दाएं ( → ई ) के साथ स्वैप किया गया।फ्लिप ( ई⃗ )इ⃗ बायां ( ई⃗ )सही ( e)⃗ )
- : दोहरी डार्ट देकर → e ने अपने मध्य बिंदु के चारों ओर एक चौथाई मोड़ वामावर्त घुमाया ।घुमाना ( ई)⃗ )इ⃗
ये तीन कार्य निम्न प्रकार की अद्भुत पहचानों को संतुष्ट करते हैं:
- दायां ( टेलनेक्स्ट) ( ई⃗ ) ) = छोड़ दिया ( ई⃗ )
- सही ( फ्लिप ( ई)⃗ ) ) = छोड़ दिया ( ई⃗ )
- सही ( घुमाने ( ई⃗ ) ) = सिर ( ई⃗ )*
- फ्लिप ( फ्लिप ( ई⃗ ) ) = ई⃗
- rotate(rotate(rotate(rotate(e⃗ ))))=e⃗
- tailNext(rotate(tailNext(rotate(e⃗ ))))=e⃗
एक पूरी सूची के लिए, कागज के पृष्ठ 83 देखें (लेकिन सावधान रहें कि लेखक पोस्टफिक्स नोटेशन उपयोग करते हैंe Flipe.Flip
इसके अलावा, इन तीन कार्यों को देखते हुए, कई अन्य उपयोगी कार्यों को परिभाषित किया जा सकता है
- reverse(e⃗ )=rotate(flip(rotate(e⃗ )))
- leftNext(e⃗ )=rotate(tailNext(rotate(rotate(rotate(e⃗ )))))e⃗ left(e⃗ )
अंत में, इन कार्यों को जानना आपको उपखंड की टोपोलॉजी के बारे में पूरी तरह से सब कुछ बताता है, और किसी भी सतह (उन्मुख या नहीं) के किसी भी बहुभुज उपविभाजन को इन तीन कार्यों का उपयोग करके एन्कोड किया जा सकता है।
क्वाड-एज डेटा संरचना एक सतह ग्राफ का एक विशेष रूप से सुविधाजनक प्रतिनिधित्व है जो इन सभी कार्यों के साथ-साथ किनारों को सम्मिलित करने, हटाने, अनुबंध करने, विस्तार करने और फ़्लिप करने जैसे कई अन्य कार्यों तक पहुँच प्रदान करता है; बंटवारे या चेहरे का विलय या विलय; और हैंडल या क्रॉस-कैप को जोड़ना या हटाना।
मज़े करो!