Предмет: Информатика, автор: mikrob4928

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

только с помощью функций для работы с консолью - цвет, позиция печати, БЕЗ эскейп символов

Ответы

Автор ответа: pupkinll2016
1

Ответ:

Вот пример кода на C++, который рисует круг с использованием уравнения Декарта:

#include <iostream>

#include <windows.h>

using namespace std;

int main()

{

int x, y, r;

COLORREF yellow = RGB(255, 255, 0);

COLORREF blue = RGB(0, 0, 255);

cout << "Введите координаты центра круга (x, y): ";

cin >> x >> y;

cout << "Введите радиус круга: ";

cin >> r;

for (int i = x - r; i <= x + r; i++)

{

for (int j = y - r; j <= y + r; j++)

{

if ((i - x) * (i - x) + (j - y) * (j - y) <= r * r)

{

if (j < y)

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE);

else

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);

COORD coord = {i, j};

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);

cout << "*";

}

}

}

return 0;

}

Эта программа запрашивает у пользователя координаты центра круга и его радиус. Затем она проходит через каждую точку в прямоугольной области, описываемой кругом, и для каждой точки проверяет, является ли она частью круга, используя уравнение Декарта. Если точка находится в пределах круга, программа рисует в ней символ звездочки ("*"), при этом устанавливая цвет красный или синий в зависимости от того, находится ли точка в верхней или нижней половине круга, с помощью функции SetConsoleTextAttribute(). Кроме того, мы используем функцию SetConsoleCursorPosition() для установки курсора в нужной позиции в консоли, чтобы наша фигура смогла рисоваться справа в центре консоли.

Примечание: обратите внимание, что для корректной работы функций SetConsoleTextAttribute() и SetConsoleCursorPosition() необходимо добавить директиву #include <windows.h>, а также чтобы компилятор поддерживал ANSI-кодировку, иначе корректное отображение цветов может не произойти.


yurabrodzinskyy: Привет, если знаеш язик JAva, можеш мне помочь плиз? https://znanija.com/task/52230928
yurabrodzinskyy: Привет, если знаеш язик JAva можеш мне помочь плиз?https://znanija.com/task/52230928
mikrob4928: спасибо вам, но напишите, пожалуйста, ваши тестовые вводы в консоль, ибо что я не вводил, выводится удлиненный круг и нижняя часть не желтая, а белая
mikrob4928: могли бы вы помочь с рисованием круга на С++
pupkinll2016: ща исправлю
pupkinll2016: а я не могу :(((исчезла кнопка редактирования
mikrob4928: вставьте пожалуйста в комментарии или могу сделать новое задание
pupkinll2016: давай новое на минимум баллов
pupkinll2016: я его поймаю через твой профиль
mikrob4928: уже сделал
Похожие вопросы
Предмет: Математика, автор: odilyunusov1984
Предмет: Алгебра, автор: dtltumakova4
Предмет: Алгебра, автор: vladislav500272