Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.78
unikalen
-2 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 65
#1

Нарисовать круг в классе - C++

06.06.2013, 13:13. Просмотров 4026. Ответов 42
Метки нет (Все метки)

Нужно нарисовать круг в классе чтоб можна било в консоле задавать его 1)цвет 2)радиус 3) и угол на которий я захочю его повернуть!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2013, 13:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нарисовать круг в классе (C++):

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

Нарисовать круг через цикл - C++
Народ, салют. У меня уже бошка кипит, не могу никак поймать "озарение". Нужно нарисать круг при помощи цикла "for" ну или while. С...

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

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

Выведено изображение, нужно на нем нарисовать по фигуру (квадрат, круг) - C++
Выведено изображение, нужно на нем нарисовать по фигуру (квадрат, круг). размер и положение я должен выбрать.

С помощью циклов нарисовать символами "звездочка" куб и круг - C++
Здравствуйте! Задачка сама по себе не сложная, но мозг ломает.. Помогите решить, пожалуйста!! Нужно с помощью циклов нарисовать символами...

42
unikalen
-2 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 65
12.06.2013, 13:53  [ТС] #16
Croessmah, да там все верно но там нельзя задать радиус в консоле!
И ви понимаете что такое класси в с++?
0
Croessmah
Эксперт CЭксперт С++
13415 / 7568 / 855
Регистрация: 27.09.2012
Сообщений: 18,631
Записей в блоге: 3
Завершенные тесты: 1
12.06.2013, 14:12 #17
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от unikalen Посмотреть сообщение
но там нельзя задать радиус в консоле!
Так доработайте
Цитата Сообщение от unikalen Посмотреть сообщение
И ви понимаете что такое класси в с++?
Я? Нет, совершенно. Буду рад, если кто объяснит мне
4
UnsKneD
12.06.2013, 15:23
  #18

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
Вот еще Как нарисовать круг
Что то мне подсказывает, что авторы этой темы и той, как минимум в одной школе учили русский язык.

0
unikalen
-2 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 65
12.06.2013, 19:23  [ТС] #19
Croessmah, нарисовать окружность с помощью базового класса Point.

SCHEDULE.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#pragma once
 
class SCHEDULE
{
protected:
    char *subject;
    char *surrname;
    char *form;
public:
    SCHEDULE(void);
    SCHEDULE(char *subject, char *surrname, char *form);
    ~SCHEDULE(void);
};
SCHEDULE.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "StdAfx.h"
#include <String.h>
#include "SCHEDULE.h"
#include <iostream>
using namespace std;
 
SCHEDULE::SCHEDULE(void)
{
    subject = new char [strlen ("Unknown name") + 1];
    strcpy (subject, "Unknown name");
    surrname = new char [strlen ("Unknown group") + 1];
    strcpy (surrname, "Unknown group");
    form = new char [strlen ("Unknown type") + 1];
    strcpy (form, "Unknown type");
}
 
SCHEDULE::SCHEDULE(char *subject, char *surrname, char *form)
{
    this->subject = new char [strlen (subject) + 1];
    strcpy (this->subject, subject);
    this->surrname = new char [strlen (surrname) + 1];
    strcpy (this->surrname, surrname);
    this->form = new char [strlen (form) + 1];
    strcpy (this->form, form);
}
 
SCHEDULE::~SCHEDULE(void)
{
    delete [] subject;
    delete [] surrname;
    delete [] form;
    std::cout<<"deleting..."<<std::endl;
}
Lab.2.1

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "stdafx.h"
#include "INFO.h"
#include <iostream>
#include<stdio.h>
#include <conio.h>
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    INFO base[100];
    //DATE g;
    //DATE k("Sergiy", "pi", 1, "A", 2012, 12, 12);
    //base[0].input();
    //base[0].print();
    int counter = 0;
    menu(base, counter);
    return 0;
}
Croessmah, вот это я показал пример класса в с++
1
Croessmah
Эксперт CЭксперт С++
13415 / 7568 / 855
Регистрация: 27.09.2012
Сообщений: 18,631
Записей в блоге: 3
Завершенные тесты: 1
12.06.2013, 20:58 #20
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Спасибо! Пойду учить классы теперь
4
unikalen
-2 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 65
12.06.2013, 21:10  [ТС] #21
Croessmah, да ладно необижайся я просто немогу тебе правельно обяснить вот и пытаюсь!) так что сможеш сделать?
0
Matan!
Delphi/Java/DB Dev + Math
280 / 135 / 26
Регистрация: 31.05.2013
Сообщений: 1,223
Записей в блоге: 2
Завершенные тесты: 1
13.06.2013, 12:29 #22
unikalen, примере Вы привели пример класса с использованием форм.Раз у Вас такие познания,вот и примените их к Вашей задаче
P.S. Командная строка не может использоваться в качестве графического интерфейса.Можно попробовать чтобы программа рисовала окружность из звёздочек,об этом сказано в примере,приведённом мной выше. В среде программирования на Visual Basic Pascal используется интерфейс ПОХОЖИЙ на командную строку.И,если не ошибаюсь,этот язык и Delphi призваны для использования командной для графических целей.
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,530
Завершенные тесты: 1
13.06.2013, 15:24 #23
Цитата Сообщение от unikalen Посмотреть сообщение
сделай мне тогда програму которая будет рисовать круг и чтоб в консоле можна било задавать радиус и несколько цветов! а так-же перемещать по екранне его
____Безумие порождает еще большее безумие
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#include <iostream.h>
#include <math.h>
#include <conio.h>
 
 
class MadRound
{
private :
        int a, b, R; // Координаты центра и радиус
        int Color;
 
        int **matrix;
        int mx, my;
 
public :
        MadRound(int R);
        ~MadRound();
 
        void Drow();
        int Wait();
};
MadRound::MadRound(int R_)
: a(20), b(20)
{
R = R_;
cout << "Choose your madness color scheme:\n1, 2, 3 : ";
/*  0 = Черный 8 = Серый
    1 = Синий 9 = Светло-синий
    2 = Зеленый A = Светло-зеленый
    3 = Голубой B = Светло-голубой
    4 = Красный C = Светло-красный
    5 = Лиловый D = Светло-лиловый
    6 = Желтый E = Светло-желтый
    7 = Белый F = Ярко-белый */
cin >> Color;
 
system("cls");
 
switch(Color)
  {
  case 1 : system("color 0C"); break;
  case 2 : system("color 56"); break;
  case 3 : system("color 70"); break;
  deefault : system("color 01"); break;
  }
 
 
mx=a*2+1, my=b*2+1;
matrix = new int*[mx];
for(int i=0; i<mx; i++)
  matrix[i] = new int [my];
 
}
 
MadRound::~MadRound()
{
for(int i = 0; i < mx; ++i)
  delete [] matrix[i];
delete [] matrix;
}
 
void MadRound::Drow()
{
system("cls");
 
for(int x=0; x<mx; x++)
  for(int y=0; y<my; y++)
    {
    if( (pow((x-a),2) + pow((y-b),2)) <= pow(R,2) ) //(x-a)^2 + (y-b)^2 <= R^2 Формула круга
      matrix[x][y]=1;
    else
      matrix[x][y]=0;
    }
 
for(int x=0; x<mx; x++)
  {
  for(int y=0; y<my; y++)
    {
    cout << matrix[x][y] << ""; // Вывод на экран
    }
  cout << endl;
  }
}
 
int MadRound::Wait()
{
 
int g = getch();
 
 
switch(g)
  {
  case 75 : if(b>0) b--; break; //Лево
  case 72 : if(a>0) a--; break; //Верх
  case 77 : if(b<my) b++; break; //Право
  case 80 : if(a<mx) a++; break; //Низ
  case 27 : break;
  default : g = 13;
  }
return g;
}
 
int main()     
{
int R;
cout << "R=";
cin >> R;
 
MadRound *MR = new MadRound(R);
MR->Drow();
 
int g;
while(g!=27)
  {
  g = MR->Wait();
  MR->Drow();
  }
 
return 0;
}
0
unikalen
-2 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 65
16.06.2013, 00:34  [ТС] #24
SatanaXIII, pow почему у меня ошибку выбивает? я не знаю как ее исправить?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7278 / 4439 / 650
Регистрация: 29.11.2010
Сообщений: 12,017
16.06.2013, 03:55 #25
unikalen, давайте угадаю ваш компиль. VS? Приз в студию!
Приведите основание к типу double
static_cast<double>(тут основание)
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,530
Завершенные тесты: 1
17.06.2013, 11:35 #26
Цитата Сообщение от unikalen Посмотреть сообщение
pow почему у меня ошибку выбивает? я не знаю как ее исправить?
Есть старое народное средство исцеления pow(..., 2):
запись вида
C++
1
if( (pow((x-a),2) + pow((y-b),2)) <= pow(R,2) )
превращается в
C++
1
if( (x-a)*(x-a) + (y-b)*(y-b) <= R*R )
0
unikalen
-2 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 65
17.06.2013, 21:45  [ТС] #27
SatanaXIII, да ну это не круг а какоето чудо) и не перемещаеца)
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,530
Завершенные тесты: 1
18.06.2013, 08:58 #28
Цитата Сообщение от unikalen Посмотреть сообщение
и не перемещаеца)
А вот с такой функцией ожидания?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <windows.h>
#include <stdio.h>
int MadRound::Wait()
{
 
int g = 13;
getch();
 
        if(GetAsyncKeyState(VK_LEFT)) // (c)Юра X)))
        {
            keybd_event(VK_LEFT, 0, KEYEVENTF_KEYUP, 0);//Отжимаем кнопку
            if(b>0) b--;
            g = 75;
        }
        if(GetAsyncKeyState(VK_RIGHT))
        {
            keybd_event(VK_RIGHT, 0, KEYEVENTF_KEYUP, 0);//Отжимаем кнопку
            if(b<my) b++;
            g = 77;
        }
        if(GetAsyncKeyState(VK_UP))
        {
            keybd_event(VK_UP, 0, KEYEVENTF_KEYUP, 0);//Отжимаем кнопку
            if(a>0) a--;
            g = 72;
        }
        if(GetAsyncKeyState(VK_DOWN))
        {
            keybd_event(VK_DOWN, 0, KEYEVENTF_KEYUP, 0);//Отжимаем кнопку
            if(a<mx) a++;
            g = 80;
        }
        if(GetAsyncKeyState(VK_ESCAPE))
        {
        g = 27;
        }
return g;
}
Цитата Сообщение от unikalen Посмотреть сообщение
да ну это не круг а какоето чудо)
Увольте, почему?! Это же не окружность. Это круг - множество единичек на плоскости, ограниченных окружностью с заданным радиусом!
И полностью удовлетворяет заданию:
Цитата Сообщение от unikalen Посмотреть сообщение
сделай мне тогда програму которая будет рисовать круг и чтоб в консоле можна било задавать радиус и несколько цветов! а так-же перемещать по екранне его
0
Matan!
Delphi/Java/DB Dev + Math
280 / 135 / 26
Регистрация: 31.05.2013
Сообщений: 1,223
Записей в блоге: 2
Завершенные тесты: 1
18.06.2013, 12:29 #29
Цитата Сообщение от SatanaXIII Посмотреть сообщение
int g;
Можно проинициализировать (хотя бы 0),чтобы компилятор об это предупреждение не спотыкался.
Цитата Сообщение от SatanaXIII Посмотреть сообщение
getch();
Может,лучше _getch(); ?
0
Wolkodav
604 / 457 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
18.06.2013, 18:22 #30
unikalen, вам человек просто чудо техники написал, а вам еще и не нравится...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2013, 18:22
Привет! Вот еще темы с ответами:

В классе инициализировать массив, в классе создать функцию вывода массива на экран - C++
Прошу помоши с выводом данных, которые содержаться в массиве, на экраy: Задача: В классе инициализировать массив, в классе создать...

Как обьявить переменную в одном классе и что бы ее было видно в дочернем классе - C++
У меня есть основной класс с названием Root один из его членов наследует дочерний класс SubRoot. Скажите как объявить, что бы один из...

У меня класс B в классе A, а в классе B рекурсивная функция переопределения оператора "()", как её вызвать, не создавая явно объект класса B? - C++
#include &lt;windows.h&gt; #include &lt;iostream&gt; using namespace std; //Вот главный класс class A{ public: A (){}; class...

Известны оценки по физике каждого ученика двух классов.Определить средниюю оценку в каждом классе.Количество учащихся в каждом классе одинаковое! - C++
Известны оценки по физике каждого ученика двух классов.Определить средниюю оценку в каждом классе.Количество учащихся в каждом классе...


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

Или воспользуйтесь поиском по форуму:
30
Yandex
Объявления
18.06.2013, 18:22
Ответ Создать тему
Опции темы

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