
Нужно написать программный код на C++ для рисования круга, используя уравнение Декарта, чтобы в
консоль вывелся круг, который раскрашен снизу в желтый, а сверху – в синий (желательно, чтобы круг был в центре консоли)

Ответы на вопрос

Ответ:
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int radius = 10; // Радиус круга
int centerX = 40; // Координата X центра круга
int centerY = 12; // Координата Y центра круга
for (int y = 0; y < 25; y++) {
for (int x = 0; x < 80; x++) {
// Расстояние от текущей точки до центра круга
float distance = sqrt(pow(x - centerX, 2) + pow(y - centerY, 2));
if (distance <= radius) {
// Точка находится внутри круга
if (y < centerY) {
// Верхняя половина круга
cout << "\033[1;44m \033[0m"; // Синий цвет
} else {
// Нижняя половина круга
cout << "\033[1;43m \033[0m"; // Желтый цвет
}
} else {
// Точка находится за пределами круга
cout << " ";
}
}
cout << endl;
}
return 0;
}
Объяснение:
Этот код использует циклы для прохода через каждую точку в консоли и вычисления расстояния от текущей точки до центра круга. Если расстояние меньше или равно радиусу круга, то точка находится внутри круга и ее цвет изменяется на желтый или синий в зависимости от того, в какой половине круга находится точка.



Вот пример программного кода на C++, который рисует круг в консоли, используя уравнение Декарта, и раскрашивает его в желтый и синий цвета:
cpp#include <iostream>
#include <cmath>
// Размер консоли
const int ConsoleWidth = 80;
const int ConsoleHeight = 24;
// Центр круга
const int CircleCenterX = ConsoleWidth / 2;
const int CircleCenterY = ConsoleHeight / 2;
// Радиус круга
const int CircleRadius = 10;
// Цвета
const char YellowColor = '#';
const char BlueColor = '*';
int main() {
for (int y = 0; y < ConsoleHeight; ++y) {
for (int x = 0; x < ConsoleWidth; ++x) {
// Расстояние от текущей позиции до центра круга
double distance = std::sqrt((x - CircleCenterX) * (x - CircleCenterX) +
(y - CircleCenterY) * (y - CircleCenterY));
// Определяем цвет пикселя
char pixelColor = ' ';
if (std::abs(distance - CircleRadius) <= 1.0) {
if (y < CircleCenterY) {
pixelColor = BlueColor; // Синий цвет сверху
} else {
pixelColor = YellowColor; // Желтый цвет снизу
}
}
// Выводим пиксель в консоль
std::cout << pixelColor;
}
// Переход на новую строку
std::cout << std::endl;
}
return 0;
}
При выполнении этого кода в консоли должен отобразиться круг, раскрашенный в желтый цвет снизу и синий цвет сверху. Круг будет находиться в центре консоли и иметь радиус 10 пикселей.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili