Advertisement
Guest User

musty

a guest
Feb 21st, 2020
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. // Mustafa.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <minmax.h>
  6. #include <math.h>
  7.  
  8. int _tmain(int argc, _TCHAR* argv[])
  9. {
  10. int xm,ym,xa,ya,xb,yb,xc,yc,xd,yd;
  11. bool isInRectangle=0;
  12.  
  13. scanf_s("%d %d %d %d %d %d %d %d %d %d",&xm,&ym,&xa,&ya,&xb,&yb,&xc,&yc,&xd,&yd);
  14. if(xm > 1000 || xm < -1000 ||xm > 1000 || ym < -1000 || xa > 1000 || xa < -1000 || ya > 1000 || ya < -1000 || xb >1000 || xb < -1000 || yb >1000 || yb < -1000 || xc > 1000 || xc < -1000 || yc > 1000 || yc < -1000 || xd > 1000 || xd <-1000 || yd > 1000 || yd <-1000)
  15. {
  16. printf("Invalid input data\n");
  17. }
  18.  
  19. // Определить находиться ли точка внутри прямоугольника включая его границу
  20.  
  21. int a1=min(min(xa,xb),xc);
  22. int a2=max(max(xa,xb),xc);
  23.  
  24. int b1=max(max(ya,yb),yc);
  25. int b2=min(min(ya,yb),yc);
  26.  
  27.  
  28. // Condition to check if the point xm ym lies in the rectangle or not
  29. if( (xm >= a1 && xm <= a2) && (ym >= b2 && ym <= b1))
  30. {
  31. isInRectangle=1;
  32. }
  33.  
  34. // Check if the point lies in the circle describing the rectangle
  35.  
  36. float cx,cy;
  37. cx=(xa+xb)/2 ;
  38. cy=(yb+yc)/2;
  39.  
  40. double radius= sqrt(double(((xa-xc)*(xa-xc)) + ((ya-yc)*(ya-yc))));
  41. double pc=sqrt(double((xm-cx)*(xm-xc) + (ym-cy)*(ym-cy)));
  42. bool isInCircle=0;
  43.  
  44. if(pc < radius)
  45. {
  46. isInCircle=1;
  47. }
  48.  
  49. if(isInRectangle==0 && isInCircle==1)
  50. {
  51. printf("1\n");
  52. }
  53. else
  54. printf("0\n");
  55. return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement