Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में कंप्यूटर ग्राफिक्स में पॉइंट क्लिपिंग एल्गोरिदम


कंप्यूटर ग्राफिक्स कंप्यूटर स्क्रीन पर छवियों और ग्राफिक्स को बनाने से संबंधित है। यहां, हम स्क्रीन को 2-D निर्देशांक प्रणाली के रूप में मानते हैं। यह निर्देशांक प्रणाली शीर्ष-बाएं (0,0) से शुरू होती है और नीचे-दाएं पर समाप्त होती है।

व्यूइंग प्लेन कंप्यूटर ग्राफिक्स में ग्राफिक्स बनाने के लिए परिभाषित क्षेत्र है। या स्क्रीन का दृश्य क्षेत्र।

क्लिपिंग उन पॉइंट्स या ग्राफिक्स को हटा रहा है जो व्यूइंग प्लेन के बाहर हैं।

आइए क्लिपिंग को समझने के लिए एक उदाहरण लेते हैं।

C++ में कंप्यूटर ग्राफिक्स में पॉइंट क्लिपिंग एल्गोरिदम

यहां पॉइंट्स C और D क्लिप हो जाएंगे क्योंकि वे नीले रंग से चिह्नित व्यूइंग प्लेन के बाहर हैं।

कंप्यूटर ग्राफिक्स में एक पॉइंट को क्लिप करने के लिए। हमें व्यूइंग प्लेस के निर्देशांक जानने होंगे यानी (Xmin, Ymin) और (Xmax, Ymax)। फिर हम पॉइंट के निर्देशांकों की तुलना इन निर्देशांकों से करेंगे।

यदि (Xmin, Ymin) <= (Xpoint, Y point) <= (Xmax, Ymax), तो पॉइंट व्यूइंग प्लेन के अंदर स्थित है अन्यथा इसे क्लिप ऑफ कर दिया जाएगा।

उदाहरण

पॉइंट क्लिपिंग को दर्शाने वाला प्रोग्राम,

#include <iostream>
using namespace std;

void pointClipping(int points[][2], int n, int Xmin, int Ymin, int Xmax, int Ymax) {
    cout << "पॉइंट क्लिपिंग एल्गोरिदम द्वारा हटाए गए पॉइंट्स हैं :" << endl;
    for (int i = 0; i < n; i++) {
        if ((points[i][0] < Xmin) || (points[i][0] > Xmax))
            cout << "(" << points[i][0] << "," << points[i][1] << ")\t";
        else if ((points[i][1] < Ymin) || (points[i][1] > Ymax))
            cout << "(" << points[i][0] << "," << points[i][1] << ")\t";
    }
}

int main() {
    int points[6][2] = {{0, 0}, {-10, 10}, {1000, 1000}, {100, 900}, {501, 311}, {250, 250}};
    int Xmin = 0;
    int Xmax = 500;
    int Ymin = 0;
    int Ymax = 500;
    pointClipping(points, 6, Xmin, Ymin, Xmax, Ymax);
    return 0;
}

आउटपुट

पॉइंट क्लिपिंग एल्गोरिदम द्वारा हटाए गए पॉइंट्स हैं :
(-10,10) (1000,1000) (100,900) (501,311)
  1. - C++ प्रोग्राम: एडमंड्स-कार्प एल्गोरिदम इम्प्लीमेंट करना

    यह सोर्स और सिंक वर्टेक्स के बीच अधिकतम प्रवाह की गणना करने के लिए एडमंड्स-कार्प एल्गोरिदम को इम्प्लीमेंट करने के लिए एक C++ प्रोग्राम है। एल्गोरिदम: Begin    function edmondsKarp() :       फ्लो को 0 के रूप में इनिशियलाइज़ करें।       यदि सोर्स से सिंक तक एक

  1. - C++ में नियरेस्ट नेबर एल्गोरिदम को लागू करना

    यह नियरेस्ट नेबर एल्गोरिदम को लागू करने के लिए एक C++ प्रोग्राम है जिसका उपयोग ट्रैवलिंग सेल्समैन प्रॉब्लम को लागू करने के लिए किया जाता है ताकि सभी नोड्स को विजिट करने के लिए आवश्यक न्यूनतम लागत की गणना की जा सके, एजेस को केवल एक बार पार करके।आवश्यक फंक्शन्स और स्यूडोकोड्सएल्गोरिदमBegin   &nbs

  1. - C++ प्रोग्राम: एक्सटेंडेड यूक्लिडियन एल्गोरिदम इम्प्लीमेंट करना

    एक्सटेंडेड यूक्लिडियन एल्गोरिदम दो संख्याओं का GCD निकालने का बस एक और तरीका है। इसमें ax + by = gcd(a, b) की गणना के लिए अतिरिक्त वेरिएबल्स हैं। यह कंप्यूटर प्रोग्राम में उपयोग करने के लिए अधिक कुशल है। एल्गोरिदम Begin वेरिएबल a, b, x और y घोषित करें gcdExtended(int a, int b, int *x, int