gpt4 book ai didi

c++ - 确定阴阳穴位

转载 作者:行者123 更新时间:2023-11-27 23:59:02 25 4
gpt4 key购买 nike

我必须发明一种算法,当我们在控制台中输入两个坐标 (x,y) 时,如果具有该坐标的点位于图片的黑色部分,要么是白色,要么是在边框上。如果你能帮助我,那就太好了。

enter image description here

我从最小的圆圈开始,然后这样做,但我不知道如何继续。

     double x;
double y;

const int smallCircleRadius = 1;
const int mediumCircleRadius = 3;
const int bigCircleRadius = 6;

cin >> x >> y;

double d1 = sqrt(pow(abs(x - 0),2) + pow(abs(y - 3),2));
double d2 = sqrt(pow(abs(x - 0),2) + pow(abs(y + 3),2));
if(d1 < smallCircleRadius)
{
cout<<"Evil";
}
else if(d2 < smallCircleRadius)
{
cout<<"Good";
}
if(d1 == smallCircleRadius || d2 == smallCircleRadius)
{
cout<<"Neutral";
}

最佳答案

这是您在 C++ 中的实现方式。也就是说,如果您的作业要求倾倒 ASCII 艺术而不是这种“好”和“坏”的东西。但是根据您的需要调整 GetYyZone 将是微不足道的。

#include <iostream>
#include <cmath>

// GetYyZone returns the color corresponding to a point:
// +1 for one color, -1 for its opposite and 0 for points outside the figure
int GetYyZone(double x, double y, double radius=6) {
// Calculate sub-radii
const double med_radius = radius / 2; // always half the major radius
const double sm_radius = med_radius / 3; // anything smaller than the medium radius

// check for points outside the main disk, returing 0 if so.
if(x*x + y*y > radius*radius) return 0;

// d_xl_sq is the squared distance from the point to its sub-center
const double d_xl_sq = x*x + y*y - std::fabs(y)*med_radius*2 + med_radius*med_radius;
if(d_xl_sq < sm_radius*sm_radius) return y > 0 ? -1 : 1;
if(d_xl_sq < med_radius*med_radius) return y > 0 ? 1 : -1;
return x > 0 ? -1 : 1;
}

int main() {
// This calls GetYyZone to select characters for ASCII art
const int cols = 75;
const int rows = 36;
for(int j=0; j<rows; ++j) {
for(int i=0; i<cols; ++i) {
const double x = (2.0/(cols - 1) * i - 1) * 6.5;
const double y = (2.0/(rows - 1) * j - 1) * -6.5;
const int zone = GetYyZone(x, y);
std::cout << (zone == 0 ? '+' : zone == -1 ? '#' : ' ');
}
std::cout << '\n';
}
}

输出:

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++ ###++++++++++++++++++++++++++++
++++++++++++++++++++++ #####++++++++++++++++++++++
+++++++++++++++++++ ######+++++++++++++++++++
++++++++++++++++ #######++++++++++++++++
++++++++++++++ ########++++++++++++++
++++++++++++ ##### #########++++++++++++
++++++++++ ######### ###########++++++++++
++++++++ ########### ############++++++++
+++++++ ########### #############+++++++
++++++ ######### ###############++++++
+++++ ### ################+++++
+++++ #################+++++
++++ ###################++++
++++ #####################++++
+++ #########################+++
+++ #############################+++
+++ ########################################+++
+++ ############################################+++
++++ ##############################################++++
++++ ################################################++++
+++++ ################################################+++++
+++++ ############### ###############################+++++
++++++ ############ ###########################++++++
+++++++ ############ #########################+++++++
++++++++ ############ ########################++++++++
++++++++++ ############ #######################++++++++++
++++++++++++ ############## #######################++++++++++++
++++++++++++++ #######################################++++++++++++++
++++++++++++++++ ####################################++++++++++++++++
+++++++++++++++++++ ###############################+++++++++++++++++++
++++++++++++++++++++++ ##########################++++++++++++++++++++++
++++++++++++++++++++++++++++ ################++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

关于c++ - 确定阴阳穴位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40516222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com