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

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

Восстановить пароль Регистрация
 
Dispenser
0 / 0 / 0
Регистрация: 11.09.2012
Сообщений: 4
05.04.2013, 12:16     Разработать программу, отображающую фигуру #1
На фото выберите одну из фигур, что по проще, и помогите сделать, кому не впадлу.
http://s019.***********/i600/1304/08/66679f2f8bfb.bmp
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2013, 12:16     Разработать программу, отображающую фигуру
Посмотрите здесь:

Составить программу, которая по введенному адресу клеточки определяет фигуру C++
Напишите программу, которая выводит на экран фигуру в виде ромба, состоящего из звезд. Количество строк в ромбе задавать с клавиатуры. C++
C++ Разработать программу
C++ Написать программу, реализующую связный список с информацией о студентах и отображающую список в порядке убывания возраста студента
C++ Написать программу, которая выводит на экран вращающуюся фигуру
C++ Составить программу , проверяющую, попадает ли введенная точка с кооординатами (x;y) в заштрихованную фигуру
C++ Записать программу, выводящую изображенную фигуру
C++ Разработать алгоритм и тесты, написать и отладить программу Выполнить программу, проанализировать результат

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kamre
126 / 130 / 4
Регистрация: 25.12.2011
Сообщений: 438
06.04.2013, 13:16     Разработать программу, отображающую фигуру #2
Звездочка явно попроще будет. Но до Брезенхема я не стал опускаться:
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"
Миниатюры
Разработать программу, отображающую фигуру  
Yandex
Объявления
06.04.2013, 13:16     Разработать программу, отображающую фигуру
Ответ Создать тему
Опции темы

Текущее время: 02:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru