我有一个1000*1000的网格A,我想在以A[500][500]为圆心画一个半径是3的圆,请用C++写一下
时间: 2024-03-11 14:46:54 浏览: 141
好的,以下是在 1000x1000 网格 A 上以 A[500][500] 为圆心画一个半径是 3 的圆的 C++ 代码示例:
```c++
#include <iostream>
#include <cmath>
using namespace std;
const int N = 1000;
int main()
{
int A[N][N] = {0}; // 定义 1000x1000 的网格 A,初始化为 0
int x = 500, y = 500; // 圆心坐标为 A[500][500]
int r = 3; // 圆的半径为 3
// 遍历 A 中的每个点,计算它与圆心的距离,如果小于等于半径则设为 1,表示被圆覆盖
for(int i = 0; i < N; i++){
for(int j = 0; j < N; j++){
if(sqrt(pow(i-x,2) + pow(j-y,2)) <= r){
A[i][j] = 1;
}
}
}
// 输出圆形网格 A
for(int i = 0; i < N; i++){
for(int j = 0; j < N; j++){
if(A[i][j] == 1) cout << "O"; // 圆内格子用 "O" 表示
else cout << "."; // 圆外格子用 "." 表示
}
cout << endl;
}
return 0;
}
```
在上面的代码中,我们使用两个嵌套的循环遍历网格 A 中的每个点,计算它与圆心的距离,如果小于等于半径则设为 1,表示被圆覆盖。然后,我们输出圆形网格 A,圆内格子用 "O" 表示,圆外格子用 "." 表示。
阅读全文