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

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


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

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

क्लिपिंग उन बिंदुओं या ग्राफिक्स को हटा रहा है जो देखने वाले विमान के बाहर हैं।

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

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

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

कंप्यूटर ग्राफिक्स में एक बिंदु को क्लिप करने के लिए। हमें देखने की जगह के निर्देशांक जानने की जरूरत है यानी (Xmin , वाई<उप>मिनट ) और (एक्समैक्स, यमैक्स)। फिर हम इन निर्देशांकों के साथ बिंदु के निर्देशांकों की तुलना करेंगे।

अगर (X<उप>मिनट , वाई<उप>मिनट ) <=(एक्सपॉइंट, वाई पॉइंट) <=(एक्स<उप>अधिकतम , वाई<उप>अधिकतम ), तो बिंदु देखने वाले विमान के अंदर होता है अन्यथा इसे काट दिया जाएगा।

उदाहरण

बिंदु कतरन को दर्शाने के लिए कार्यक्रम,

#include <iostream>
using namespace std;
void pointClipping(int points[][2], int n, int Xmin, int Ymin, int Xmax, int Ymax) {
   cout<<"Points that are removed by Point clipping Algorithm are :"<<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;
}

आउटपुट

Points that are removed by Point clipping Algorithm are :
(-10,10) (1000,1000) (100,900) (501,311)

  1. एडमंड्स-कार्प एल्गोरिथम को लागू करने के लिए C++ प्रोग्राम

    स्रोत और सिंक वर्टेक्स के बीच अधिकतम प्रवाह की गणना करने के लिए एडमंड्स-कार्प एल्गोरिदम को लागू करने के लिए यह एक सी ++ प्रोग्राम है। एल्गोरिदम: Begin    function edmondsKarp() :       initiate flow as 0.       If there is an augmenting path from source to sin

  1. सी ++ प्रोग्राम निकटतम पड़ोसी एल्गोरिदम को लागू करने के लिए

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

  1. विस्तारित यूक्लिडियन एल्गोरिथम को लागू करने के लिए C++ कार्यक्रम

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