C/C++
Программный код для рисования круга на C++
Нужно написать программный код на C++ для рисования круга, используя уравнение Декарта, чтобы в консоль вывелся круг, который раскрашен снизу в желтый, а сверху – в синий (желательно, чтобы круг был в центре консоли)
В наше время на российском сайте давать код, рисующий ТАК раскрашенные круги, опасно для здоровья.
#include
#include
#include
using namespace std;
void print(int val)
{
static HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(console, val);
putchar(' ');
SetConsoleTextAttribute(console, 0x07);
}
int main()
{
double ratio = 1.5; //поправка на длину знакоместа
int radius = 15;
int cen_x = 40;
int cen_y = 18;
for (int y = 0; y < 25; y++)
{
for (int x = 0; x < 80; x++)
{
double dist = sqrt((x - cen_x) * (x - cen_x) + (y*ratio - cen_y) * (y*ratio - cen_y));
if (dist
Вот пример программного кода на C++, который рисует круг с использованием уравнения Декарта и раскрашивает его в желтый снизу и в синий сверху:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
const int R = 20; // радиус круга
const int x_center = 40; // координата центра круга по оси x
const int y_center = 10; // координата центра круга по оси y
for (int y = 0; y <= 2*R; y++) {
for (int x = 0; x <= 2*R; x++) {
int dx = x - R;
int dy = y - R;
if (dx*dx + dy*dy <= R*R) {
if (y <= R) {
cout << "\033[44m "; // синий цвет сверху
} else {
cout << "\033[43m "; // желтый цвет снизу
}
} else {
cout << " "; // пробелы вне круга
}
}
cout << endl;
}
return 0;
}
Этот код использует два цикла для перебора всех пикселей внутри прямоугольника, описывающего круг. Затем для каждого пикселя проверяется, находится ли он внутри круга, используя уравнение Декарта. Если пиксель находится внутри круга, то он раскрашивается в желтый цвет снизу или в синий цвет сверху, в зависимости от того, на какой половине круга он находится. Если же пиксель находится вне круга, он оставляется прозрачным, используя пробелы.
Для изменения размера круга можно изменить значение константы R, а для изменения позиции круга - значения констант x_center и y_center.
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
const int R = 20; // радиус круга
const int x_center = 40; // координата центра круга по оси x
const int y_center = 10; // координата центра круга по оси y
for (int y = 0; y <= 2*R; y++) {
for (int x = 0; x <= 2*R; x++) {
int dx = x - R;
int dy = y - R;
if (dx*dx + dy*dy <= R*R) {
if (y <= R) {
cout << "\033[44m "; // синий цвет сверху
} else {
cout << "\033[43m "; // желтый цвет снизу
}
} else {
cout << " "; // пробелы вне круга
}
}
cout << endl;
}
return 0;
}
Этот код использует два цикла для перебора всех пикселей внутри прямоугольника, описывающего круг. Затем для каждого пикселя проверяется, находится ли он внутри круга, используя уравнение Декарта. Если пиксель находится внутри круга, то он раскрашивается в желтый цвет снизу или в синий цвет сверху, в зависимости от того, на какой половине круга он находится. Если же пиксель находится вне круга, он оставляется прозрачным, используя пробелы.
Для изменения размера круга можно изменить значение константы R, а для изменения позиции круга - значения констант x_center и y_center.
[ChatGPT]
#include
#include
using namespace std;
const int CONSOLE_WIDTH = 80;
const int CONSOLE_HEIGHT = 25;
void setCursorPosition(int x, int y) {
cout
Рустам Кенжаев
спасибо, но у меня вместо круга выводится какой-то набор цифр, что мне нужно сделать
Похожие вопросы
- Помогите с программным кодом на C++
- Написать код расшифровки шифра Цезаря на C++
- Помогите с кодом C++
- Ошибки в коде c++
- Что не так с кодом C++ ?
- Написать код для задачи C++
- Как оптимизировать код, чтобы не было превышения по времени к задаче (C++, динамическое программирование)?
- Как оптимизировать код, чтобы не было превышения по времени к задаче (C++)?
- Задание на C++. Помощь с кодом.
- Помогите пожалуйста написать код.(C++)