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

C++ में मध्य बिंदुओं का उपयोग करके आयत के कोनों का पता लगाएं

मान लीजिए हमारे पास एक आयत ABCD है, लेकिन हमारे पास केवल मध्य बिंदुओं P और Q के निर्देशांक और आयत L की लंबाई है।

C++ में मध्य बिंदुओं का उपयोग करके आयत के कोनों का पता लगाएं

हमारा कार्य P और Q के निर्देशांकों और भुजा L की लंबाई का उपयोग करके A, B, C और D के निर्देशांक ज्ञात करना है। उदाहरण के लिए, यदि P (1, 0) है, और Q (1, 2) है , और L 2 है, तो A, B, C, D क्रमशः (0, 0), (0, 2), (2, 2) होंगे। (2, 0)।

तीन मामले हो सकते हैं जो हो सकते हैं।

  • आयत क्षैतिज है, इसलिए AD और BC X अक्ष के समानांतर हैं
  • आयत लंबवत है, इसलिए AD और BC Y अक्ष के समानांतर हैं
  • आयत कुल्हाड़ियों के साथ एक निश्चित कोण पर झुका हुआ है।

तीसरी स्थिति के लिए, हमें P और Q के निर्देशांक का उपयोग करके ढलान का पता लगाना है। यदि हमें AD का ढलान मिलता है, तो हम AD से होकर जाने वाली सीधी रेखा समीकरण उत्पन्न कर सकते हैं, फिर दूरी सूत्र का उपयोग करके हमें परिणाम मिलेगा।

$$ AD का ढलान,m=\frac{px-qx}{py-qy}$$ $$विस्थापन\:साथ\:x\:axis, dx=\frac{L}{2\sqrt{1+m ^{2}}}$$ $$विस्थापन\:साथ\:y\:अक्ष, dy=\frac{mL}{2\sqrt{1+m^{2}}}$$

उदाहरण

#include <iostream>
#include <cmath>
using namespace std;
class Point {
   public:
      float x, y;
      Point(float a = 0.0f, float b = 0.0f) {
      x = a, y = b;
   }
};
void printCorners(Point p, Point q, float l) {
   Point a, b, c, d;
   if (p.x == q.x) {
      a.x = p.x - (l/2.0);
      d.x = p.x + (l/2.0);
      a.y = d.y = p.y;
      b.x = q.x - (l/2.0);
      c.x = q.x + (l/2.0);
      b.y = c.y = q.y;
   }else if (p.y == q.y) {
      a.y = p.y - (l/2.0);
      d.y = p.y + (l/2.0);
      a.x = d.x = p.x;
      b.y = q.y - (l/2.0);
      c.y = q.y + (l/2.0);
      b.x = c.x = q.x;
   }else{
      float m = (p.x-q.x)/float(q.y-p.y);
      float dx = (l /sqrt(1+(m*m))) *0.5 ;
      float dy = m*dx;
      a.x = p.x - dx;
      a.y = p.y - dy;
      d.x = p.x + dx;
      d.y = p.y + dy;
      b.x = q.x - dx;
      b.y = q.y - dy;
      c.x = q.x + dx;
      c.y = q.y + dy;
   }
   cout << "A (" << a.x << ", " << a.y << ")\n"
   << "B (" << b.x << ", " << b.y << ")\n"
   << "C (" << c.x << ", " << c.y << ")\n"
   << "D (" << d.x << ", " << d.y << ")\n";
}
int main() {
   Point p(1, 1), q(-1, -1);
   printCorners(p, q, 2*sqrt(2));
}

आउटपुट

A (0, 2)
B (-2, 0)
C (0, -2)
D (2, 0)

  1. C++ . का उपयोग करके स्टॉपिंग स्टेशनों की संख्या ज्ञात कीजिए

    बिंदु X और Y के बीच मध्यवर्ती ट्रेन स्टेशनों की संख्या n है। गिनें कि अलग-अलग तरीकों से ट्रेनों को s स्टेशनों पर रुकने के लिए व्यवस्थित किया जा सकता है जैसे कि कोई भी दो स्टेशन एक दूसरे के बगल में नहीं हैं। तो इस लेख में, हम स्टॉपिंग स्टेशनों की संख्या का पता लगाने के लिए हर संभव तरीके की व्याख्या क

  1. C++ का प्रयोग करते हुए दिए गए बिंदुओं से संभव चतुर्भुजों की संख्या ज्ञात कीजिए

    एक चतुर्भुज यूक्लिडियन समतल ज्यामिति में चार शीर्षों और चार किनारों वाला एक बहुभुज बनाता है। नाम 4-गॉन आदि। चतुर्भुज के अन्य नामों में शामिल हैं और कभी-कभी उन्हें एक वर्ग, प्रदर्शन शैली आदि के रूप में भी जाना जाता है। इस लेख में, हम दिए गए बिंदुओं से संभव चतुर्भुजों की संख्या का पता लगाने के तरीकों

  1. C++ का उपयोग करके OpenCV में आयत कैसे बनाएं?

    एक आयत बनाने के लिए हमें चार बिंदुओं की आवश्यकता होती है। निम्न आकृति को देखें। आकृति में, चार बिंदु x1, x2, y1 और y2 हैं। ये चार बिंदु चार निर्देशांक बना रहे हैं। OpenCV का उपयोग करके एक आयत बनाने के लिए, हमें इन बिंदुओं को परिभाषित करना होगा और उस आयत को दिखाना होगा जिसकी हमें एक मैट्रिक्स की आ