• API
• FAQ
• Tools
• Archive
SHARE
TWEET

# Untitled

a guest Mar 26th, 2019 64 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. #include <iostream>
2.
3. using namespace std;
4. struct Point
5. {
6.     double x, y;
7.
8.     Point(){x=y=0;}
9.     Point(double x, double y)
10.     {
11.         this->x=x;
12.         this->y=y;
13.     }
14. };
15.
16. struct Rectangle
17. {
18.     Point topLeft;
19.     double width, height;
20.
21.     Rectangle(Point topLeft, double width, double height)
22.     {
23.         this->topLeft = topLeft;
24.         this->width = width;
25.         this->height = height;
26.     }
27. };
28.
29. //Връща дължината на общата част на отсечките (a1, b1) и (a2, b2)
30. double segmentIntersectionLength(double a1, double b1, double a2, double b2)
31. {
32.     return max(min(b1, b2) - max(a1, a2),0.0);
33. }
34.
35. double getIntersectionArea(const Rectangle &r1, const Rectangle &r2)
36. {
37.     double horizontalIntersection  =
38.         segmentIntersectionLength(r1.topLeft.x, r1.topLeft.x + r1.width, r2.topLeft.x, r2.topLeft.x + r2.width);
39.
40.     double verticalIntersection =
41.         segmentIntersectionLength(r1.topLeft.y-r1.height, r1.topLeft.y, r2.topLeft.y-r2.height, r2.topLeft.y);
42.
43.     double rectangleIntersectionArea = horizontalIntersection * verticalIntersection;
44.
45.     return rectangleIntersectionArea;
46. }
47.
48. int main()
49. {
50.     Point a(1,7);
51.     Point b(3,5);
52.     Rectangle r1(a,5,7);
53.     Rectangle r2(b,4,3);
54.     cout<<getIntersectionArea(r1,r2);
55.
56.     return 0;
57. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy.

Top