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

Разработать программу, отображающую фигуру - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поиск одинаковых элементов массива http://www.cyberforum.ru/cpp-beginners/thread828766.html
#include <conio.h> #include <locale> #include <iostream> using namespace std; int main () { setlocale (LC_ALL, "RUSSIAN");
C++ Алгоритм для игры Народ, кто знает алгоритм проверки конца игры в игре "Четыре в ряд 7х6" Цель игры — расположить раньше противника подряд по горизонтали, вертикали или диагонали четыре фишки своего цвета. Игровое поле представлено в виде матрицы 7х6 заполненной для первого игрока1 1 для игрока2 2 и не занятые клетки 0 Кто знает поделитесь если не сложно. http://www.cyberforum.ru/cpp-beginners/thread828751.html
C++ написать программу с описанием класса Employee
написать программу с описанием класса Employee. Класс должен содержать поля: фамилия, имя, отчество, дата рождения в формате (XX/YY/ZZZZ), должность, дата поступления на службу, срок окончания договора. Описать методы позволяющие вывода данных о работниках, сортировать их по запрашиваему полю (году поступления, дате рождения). Описать метод позволяющий вычислить количество месяцев до окончания...
Составить программу, которая корректирует список и сортирует его либо по среднему баллу C++
Список студенческой группы записан на диске как текстовый файл. Каждая строка списка содержит фамилию студента и три экзаменационные оценки, причем список никак не упорядочен. Составить программу, которая корректирует список и сортирует его либо по среднему баллу, либо по алфавиту, либо по оценкам, либо по заданному предмету. Список записывается в файл либо под старым, либо под новым именем. ...
C++ Структура в Ветви бинарного дерева http://www.cyberforum.ru/cpp-beginners/thread828703.html
Есть программа, которая работает, но в ветвях дерева - x. Вместо x, необходимо использовать структуру (инт и 2 чара). Как это реализовать? #include <iostream> using namespace std; struct Node { int x; Node *l,*r; };
C++ Разъясните код пжлст(выдает ошибку:cannot convert from 'class std::list<class c_bullet *,class std::allocator<class c_bullet *> >::iterator' to 'int') Есть такие строки: std::list<c_bullet*> Bullets; ... for(auto i = Bullets.begin(); i != Bullets.end(); /**/) В строке цикла вот такая ошибка(компилятор VC++ 6): 'initializing' : cannot convert from 'class std::list<class c_bullet *,class std::allocator<class c_bullet *> >::iterator' to 'int' Как я понял код видимо под 2010 и выше студию С++, так вот: как мне его перенести под VC++ 6? подробнее

Показать сообщение отдельно
kamre
126 / 130 / 4
Регистрация: 25.12.2011
Сообщений: 443
06.04.2013, 13:16     Разработать программу, отображающую фигуру
Звездочка явно попроще будет. Но до Брезенхема я не стал опускаться:
C++ (Qt)
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
#include <QApplication>
#include <QLabel>
#include <QSlider>
#include <QLayout>
#include <QPainter>
 
#include <cmath>
 
using namespace std;
 
class Widget: public QWidget {
Q_OBJECT
public:
    Widget() : scale(1), angle(0) {
        const qreal r1 = 60;
        const qreal r2 = 150;
        const int n = 5;
        const qreal r = 0.75*r1;
        figure.addEllipse(-r, -r, 2*r, 2*r);
        qreal d = 0.5*M_PI/n;
        for (int i = 0; i < n; ++i) {
            qreal a = 2.0*M_PI*i/n;
            QPointF p(r1*cos(a + d), r1*sin(a + d));
            if (i == 0)
                figure.moveTo(p);
            else
                figure.lineTo(p);
            figure.lineTo(QPointF(r2*cos(a + 3*d), r2*sin(a + 3*d)));
        }
        figure.closeSubpath();
    }
public slots:
    void setAngle(int value) {
        angle = value;
        update();
    }
 
    void setScale(int value) {
        scale = pow(2, 0.02*value);
        update();
    }
 
protected:
    virtual void paintEvent(QPaintEvent *event) {
        Q_UNUSED(event)
        QPainter painter(this);
        painter.fillRect(0, 0, width(), height(), Qt::darkGray);
        painter.setRenderHint(QPainter::Antialiasing);
        painter.setPen(QPen(QBrush(Qt::white), 1.25));
        painter.setBrush(Qt::NoBrush);
        qreal cx = 0.5*width();
        qreal cy = 0.5*height();
        painter.drawLine(QLineF(0, cy, width(), cy));
        painter.drawLine(QLineF(cx, 0, cx, height()));
        painter.setPen(QPen(QBrush(Qt::green), 2));
        painter.translate(cx, cy);
        painter.scale(scale, scale);
        painter.rotate(angle);
        painter.drawPath(figure);
    }
 
private:
    qreal scale, angle;
    QPainterPath figure;
};
 
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QWidget root;
    QGridLayout* layout = new QGridLayout(&root);
    layout->addWidget(new QLabel("Scale:"), 0, 0);
    layout->addWidget(new QLabel("Rotation Angle:"), 1, 0);
    QSlider* scale = new QSlider(Qt::Horizontal);
    QSlider* angle = new QSlider(Qt::Horizontal);
    layout->addWidget(scale, 0, 1);
    layout->addWidget(angle, 1, 1);
    scale->setRange(-100, 100);
    angle->setRange(-180, 180);
    Widget* widget = new Widget();
    layout->addWidget(widget, 2, 0, 1, 2);
    QObject::connect(scale, SIGNAL(valueChanged(int)), widget, SLOT(setScale(int)));
    QObject::connect(angle, SIGNAL(valueChanged(int)), widget, SLOT(setAngle(int)));
    root.resize(800, 600);
    root.setWindowTitle("Figure Transformation");
    root.show();
    return app.exec();
}
 
#include "main.moc"
Миниатюры
Разработать программу, отображающую фигуру  
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru