Нахождение квадранта координаты относительно круга
Учитывая радиус и координаты центра круга. Найдите квадрант, в котором другая заданная координата (X, Y) лежит относительно центра круга, если точка лежит внутри круга. Иначе выведите ошибку «Лежит вне круга».
Если точка находится в центре круга, выведите 0 или если точка лежит на любой из осей и внутри круга, выведите следующий квадрант против часовой стрелки.
Примеры:
Input : Centre = (0, 0), Radius = 10
(X, Y) = (10, 10)
Output : Lies Outside the Circle
Input : Centre = (0, 3), Radius = 2
(X, Y) = (1, 4)
Output : 1 (I quadrant)
Подход:
Пусть центр будет (x ', y')
Уравнение круга - (уравнение 1)
Согласно этому уравнению,
Если точка (x, y) лежит вне круга
Если точка (x, y) лежит на окружности
Если точка (x, y) лежит внутри круга
Чтобы проверить положение точки относительно круга: -
1. Поместите заданные координаты в уравнение 1. 2. Если больше 0, координата лежит вне окружности. 3. Если точка находится внутри круга, найдите квадрант внутри круга. Проверить точку относительно центра круга.
Below is the implementation of above idea :
C++
// CPP Program to find the quadrant of // a given coordinate with respect to the // centre of a circle #include <bits/stdc++.h> using namespace std; // Thus function returns the quadrant number int getQuadrant( int X, int Y, int R, int PX, int PY) { // Coincides with center if (PX == X && PY == Y) return 0; int val = pow ((PX - X), 2) + pow ((PY - Y), 2); // Outside circle if (val > pow (R, 2)) return -1; // 1st quadrant if (PX > X && PY >= Y) return 1; // 2nd quadrant if (PX <= X && PY > Y) return 2; // 3rd quadrant if (PX < X && PY <= Y) return 3; // 4th quadrant if (PX >= X && PY < Y) return 4; } // Driver Code int main() { // Coordinates of centre int X = 0, Y = 3; // Radius of circle int R = 2; // Coordinates of the given point int PX = 1, PY = 4; int ans = getQuadrant(X, Y, R, PX, PY); if (ans == -1) cout << "Lies Outside the circle" << endl; else if (ans == 0) cout << "Coincides with centre" << endl; else cout << ans << " Quadrant" << endl; return 0; } |
Java
// Java Program to find the quadrant of // a given coordinate with respect to the // centre of a circle import java.io.*; class GFG { // Thus function returns // the quadrant number static int getQuadrant( int X, int Y, int R, int PX, int PY) { // Coincides with center if (PX == X && PY == Y) return 0 ; int val = ( int )Math.pow((PX - X), 2 ) + ( int )Math.pow((PY - Y), 2 ); // Outside circle if (val > Math.pow(R, 2 )) return - 1 ; // 1st quadrant if (PX > X && PY >= Y) return 1 ; // 2nd quadrant if (PX <= X && PY > Y) return 2 ; // 3rd quadrant if (PX < X && PY <= Y) return 3 ; // 4th quadrant if (PX >= X && PY < Y) return 4 ; return 0 ; } // Driver Code public static void main (String[] args) { // Coordinates of centre int X = 0 , Y = 3 ; // Radius of circle int R = 2 ; // Coordinates of the given point int PX = 1 , PY = 4 ; int ans = getQuadrant(X, Y, R, PX, PY); if (ans == - 1 ) System.out.println( "Lies Outside the circle" ); else if (ans == 0 ) System.out.println( "Coincides with centre" ); else System.out.println( ans + " Quadrant" ); } } // This code is contributed by anuj_67. |
Python3
# Python3 Program to find the # quadrant of a given coordinate # w.rt. the centre of a circle import math # Thus function returns the # quadrant number def getQuadrant(X, Y, R, PX, PY): # Coincides with center if (PX = = X and PY = = Y): return 0 ; val = (math. pow ((PX - X), 2 ) + math. pow ((PY - Y), 2 )); # Outside circle if (val > pow (R, 2 )): return - 1 ; # 1st quadrant if (PX > X and PY > = Y): return 1 ; # 2nd quadrant if (PX < = X and PY > Y): return 2 ; # 3rd quadrant if (PX < X and PY < = Y): return 3 ; # 4th quadrant if (PX > = X and PY < Y): return 4 ; # Driver Code # Coordinates of centre X = 0 ; Y = 3 ; # Radius of circle R = 2 ; # Coordinates of the given po PX = 1 ; PY = 4 ; ans = getQuadrant(X, Y, R, PX, PY); if (ans = = - 1 ) : print ( "Lies Outside the circle" ); elif (ans = = 0 ) : print ( "Coincides with centre" ); else : print (ans, "Quadrant" ); # This code is contributed by mits |
C#
// C# Program to find the quadrant of // a given coordinate with respect to // the centre of a circle using System; class GFG { // Thus function returns // the quadrant number static int getQuadrant( int X, int Y, int R, int PX, int PY) { // Coincides with center if (PX == X && PY == Y) return 0; int val = ( int )Math.Pow((PX - X), 2) + ( int )Math.Pow((PY - Y), 2); // Outside circle if (val > Math.Pow(R, 2)) return -1; // 1st quadrant if (PX > X && PY >= Y) return 1; // 2nd quadrant if (PX <= X && PY > Y) return 2; // 3rd quadrant if (PX < X && PY <= Y) return 3; // 4th quadrant if (PX >= X && PY < Y) return 4; return 0; } // Driver Code public static void Main () { // Coordinates of centre int X = 0, Y = 3; // Radius of circle int R = 2; // Coordinates of the given point int PX = 1, PY = 4; int ans = getQuadrant(X, Y, R, PX, PY); if (ans == -1) Console.WriteLine( "Lies Outside" + " the circle" ); else if (ans == 0) Console.WriteLine( "Coincides " + "with centre" ); else Console.WriteLine( ans + " Quadrant" ); } } // This code is contributed by anuj_67. |
PHP
<?php // PHP Program to find the quadrant of // a given coordinate with respect to the // centre of a circle // Thus function returns the // quadrant number function getQuadrant( $X , $Y , $R , $PX , $PY ) { // Coincides with center if ( $PX == $X and $PY == $Y ) return 0; $val = pow(( $PX - $X ), 2) + pow(( $PY - $Y ), 2); // Outside circle if ( $val > pow( $R , 2)) return -1; // 1st quadrant if ( $PX > $X and $PY >= $Y ) return 1; // 2nd quadrant if ( $PX <= $X and $PY > $Y ) return 2; // 3rd quadrant if ( $PX < $X and $PY <= $Y ) return 3; // 4th quadrant if ( $PX >= $X and $PY < $Y ) return 4; } // Driver Code // Coordinates of centre $X = 0; $Y = 3; // Radius of circle $R = 2; // Coordinates of the given po$ $PX = 1; $PY = 4; $ans = getQuadrant( $X , $Y , $R , $PX , $PY ); if ( $ans == -1) echo "Lies Outside the circle" ; else if ( $ans == 0) echo "Coincides with centre" ; else echo $ans , " Quadrant" ; // This code is contributed by anuj_67. ?> |
Javascript
<script> // Javascript Program to find the quadrant of // a given coordinate with respect to the // centre of a circle // Thus function returns the quadrant number function getQuadrant( X, Y, R, PX, PY) { // Coincides with center if (PX == X && PY == Y) return 0; let val = Math.pow((PX - X), 2) + Math.pow((PY - Y), 2); // Outside circle if (val > Math.pow(R, 2)) return -1; // 1st quadrant if (PX > X && PY >= Y) return 1; // 2nd quadrant if (PX <= X && PY > Y) return 2; // 3rd quadrant if (PX < X && PY <= Y) return 3; // 4th quadrant if (PX >= X && PY < Y) return 4; } // Driver Code // Coordinates of centre let X = 0, Y = 3; // Radius of circle let R = 2; // Coordinates of the given point let PX = 1, PY = 4; let ans = getQuadrant(X, Y, R, PX, PY); if (ans == -1) document.write( "Lies Outside the circle" + "</br>" ); else if (ans == 0) document.write( "Coincides with centre" + "</br>" ); else document.write(ans + " Quadrant" + "</br>" ); </script> |
Выход:
1 квадрант
Вниманию читателя! Не прекращайте учиться сейчас. Получите все важные математические концепции для соревновательного программирования с курсом Essential Maths for CP по доступной для студентов цене. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .