Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Mustafa.cpp : Defines the entry point for the console application.
- //
- #include "stdafx.h"
- #include <minmax.h>
- #include <math.h>
- int _tmain(int argc, _TCHAR* argv[])
- {
- int xm,ym,xa,ya,xb,yb,xc,yc,xd,yd;
- bool isInRectangle=0;
- scanf_s("%d %d %d %d %d %d %d %d %d %d",&xm,&ym,&xa,&ya,&xb,&yb,&xc,&yc,&xd,&yd);
- 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)
- {
- printf("Invalid input data\n");
- }
- // Определить находиться ли точка внутри прямоугольника включая его границу
- int a1=min(min(xa,xb),xc);
- int a2=max(max(xa,xb),xc);
- int b1=max(max(ya,yb),yc);
- int b2=min(min(ya,yb),yc);
- // Condition to check if the point xm ym lies in the rectangle or not
- if( (xm >= a1 && xm <= a2) && (ym >= b2 && ym <= b1))
- {
- isInRectangle=1;
- }
- // Check if the point lies in the circle describing the rectangle
- float cx,cy;
- cx=(xa+xb)/2 ;
- cy=(yb+yc)/2;
- double radius= sqrt(double(((xa-xc)*(xa-xc)) + ((ya-yc)*(ya-yc))));
- double pc=sqrt(double((xm-cx)*(xm-xc) + (ym-cy)*(ym-cy)));
- bool isInCircle=0;
- if(pc < radius)
- {
- isInCircle=1;
- }
- if(isInRectangle==0 && isInCircle==1)
- {
- printf("1\n");
- }
- else
- printf("0\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement