C++中关于圆的坐标象限查找
我们有一个圆(圆心坐标和半径),我们需要找到另一个给定点 (x, y) 相对于圆心的象限,如果该点在圆内,则打印象限,否则打印错误信息,因为该点在圆外。
假设圆心为 (h, k),点的坐标为 (x, y)。我们知道圆的方程为:
(𝑥−ℎ)2+(𝑦−𝑘)2+𝑟2=0
现在有一些条件,我们可以根据这些条件来决定结果。
如果 (𝑥−ℎ)2+(𝑦−𝑘)2> 𝑟,则该点在圆外
如果 (𝑥−ℎ)2+(𝑦−𝑘)2= 0,则该点在圆上
如果 (𝑥−ℎ)2+(𝑦−𝑘)2< 𝑟,则该点在圆内
示例
#include<iostream>
#include<cmath>
using namespace std;
int getQuadrant(int h, int k, int rad, int x, int y) {
if (x == h && y == k)
return 0;
int val = pow((x - h), 2) + pow((y - k), 2);
if (val > pow(rad, 2))
return -1;
if (x > h && y >= k)
return 1;
if (x <= h && y > k)
return 2;
if (x < h && y <= k)
return 3;
if (x >= h && y < k)
return 4;
}
int main() {
int h = 0, k = 3;
int rad = 2;
int x = 1, y = 4;
int ans = getQuadrant(h, k, rad, x, y);
if (ans == -1)
cout << "Point is Outside of the circle" << endl;
else if (ans == 0)
cout << "Present at the center" << endl;
else
cout << ans << " Quadrant" << endl;
}输出
1 Quadrant
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP