Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
lFoster
0 / 0 / 1
Регистрация: 15.10.2015
Сообщений: 59
1

Нарисовать круг через цикл

15.10.2015, 17:05. Просмотров 1308. Ответов 6
Метки нет (Все метки)

Народ, салют.
У меня уже бошка кипит, не могу никак поймать "озарение".
Нужно нарисать круг при помощи цикла "for" ну или while.
С условием, что пользователь вводит радиус.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2015, 17:05
Ответы с готовыми решениями:

Нарисовать рисунок через цикл for
Здравствуйте помогите пожалуйста написать программу . которая будет рисовать...

Нарисовать ромб через цикл,почти сделал,не могу понять что делать дальше
#include <iostream> #include <math.h> #include <conio.h> using namespace...

Нарисовать круг в классе
Нужно нарисовать круг в классе чтоб можна било в консоле задавать его 1)цвет...

Как нарисовать круг
Нужно нарисовать круг

Нарисовать круг C++ (для чайников)
Добрый день! Я, вообще, новичок в программировании, в том числе и на C ++. Я...

6
nmcf
6274 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
15.10.2015, 17:07 2
Уравнение окружности используй. Из двух половин составишь, меняя знак.
0
lFoster
0 / 0 / 1
Регистрация: 15.10.2015
Сообщений: 59
15.10.2015, 17:19  [ТС] 3
Ты имеешь ввиду, чтоб начинало с середины и убывалось в стороны?

Добавлено через 6 минут
попробовал так... дальше додуматься чтото не могу... не работает

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
    int r,a=10,b=10;
    cin >> r;
    
    COORD c = { a, b };
    SetConsoleCursorPosition(h, c);
    for (int y = 0; y < r; y++)
    {
        SetConsoleCursorPosition(h, c);
        for (int x = 0; x < r; x++)
        if (r*2 == (y - b) * 2 + (x-a)*2)
            cout << '*';
        
        cout << endl;
    }
0
nmcf
6274 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
15.10.2015, 17:32 4
Лучший ответ Сообщение было отмечено lFoster как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
    COORD c;
 
    for (int x = -r; x <= r; ++x)
    {
        c.X = x + 40;
        c.Y = 12 - static_cast<int>(sqrt(r * r - x * x));
        SetConsoleCursorPosition(h, c);
        cout << '*';
        c.Y = -c.Y;
        SetConsoleCursorPosition(h, c);
        cout << '*';
    }
0
lFoster
0 / 0 / 1
Регистрация: 15.10.2015
Сообщений: 59
15.10.2015, 17:38  [ТС] 5
Спасибо. И пользуясь моментом, не подскажешь, как его наоборот дорисовать? нижнюю часть..
0
nmcf
6274 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
15.10.2015, 17:53 6
Лучший ответ Сообщение было отмечено lFoster как решение

Решение

Вообще-то обе должны рисоваться. Так попробуй:
C++
1
2
3
4
5
6
7
8
9
10
    for (int x = -r; x <= r; ++x)
    {
        int y = static_cast<int>(sqrt(r * r - x * x));
        c.X = x + 40;
        c.Y = 12 - y;
        SetConsoleCursorPosition(h, c);
        cout << '*';
        c.Y = 12 + y;
        SetConsoleCursorPosition(h, c);
        cout << '*';
0
lFoster
0 / 0 / 1
Регистрация: 15.10.2015
Сообщений: 59
15.10.2015, 18:19  [ТС] 7
есть. спасибо большое.
0
15.10.2015, 18:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2015, 18:19

Нарисовать цветной круг. Ошибка компиляции
Доброго времени суток! Помогите, пожалуйста, разобраться с темной магией Мне...

Как можно нарисовать ровный круг в консоли?
Всем привет! Делаю проект на 1 курсе. Для начала нужно понять, как нарисовать в...

Круг, множество точек, прямая проходящая через две точки и через центр круга
плиз хелп. Нужно вывести координаты двух точек. #include &lt;stdio.h&gt; #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru