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

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

Войти
Регистрация
Восстановить пароль
 
JuliaMa
4 / 2 / 1
Регистрация: 09.05.2013
Сообщений: 48
#1

Передвижение графических объектов на языке С++ - C++

09.05.2013, 17:55. Просмотров 716. Ответов 2
Метки нет (Все метки)

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

Передвижение графических объектов - C++
Перемещать треугольник по диагонали с заданным шагом и задержкой в полторы секунды

GeoTiff - примеры ее использования на языке c , желательно на русском языке - C++
Добрый вечер. Дана курсовая с использованием библиотеки GeoTiff. Подскажите где можно прочитать про нее, и найти примеры ее использования...

В программе реализовать возможность записи объектов в файл и чтения объектов из файла - C++
Добрый день, помогите, пожалуйста! У меня есть программа: #include <iostream> #include <locale.h> using namespace std; class...

Передвижение графических объектов - C (СИ)
#include <graphics.h> #include <stdlib.h> #include <string.h> #include <stdio.h> #include <conio.h> int main() { int...

Передвижение объектов - Delphi
Помогите. Пришлите код движения! Кинуть на форму любую панель или что-то еще и чтобы оно двигалось при нажатии клавиатурных кнопок верх...

Передвижение объектов - C++ Qt
main.cpp #include <QtWidgets> #include "Point.h" class GraphicsView : public QGraphicsView { public: ...

2
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
10.05.2013, 02:42 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Не стал реализовывать полноценный паттерн command, ограничился одной командой. Да и не шибко-то он тут нужен.
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
#include <iostream>
#include <iomanip>
 
/* 
 * В выпуклый четырёхугольник ABCD можно вписать окружность тогда и
 * только тогда, когда суммы его противоположных сторон равны. 
 * По условию окружность вписана в прямоугольник.
 * Прямоугольник, в котором суммы противоположных сторон равны,
 * есть квадрат.
 */
 
struct Point {
  Point() :x(0), y(0) {}
  Point(double x, double y) : x(x), y(y) {}
  double x, y;
};
 
std::ostream &operator<<(std::ostream &stream, const Point &p) {
  return stream << "Point{" <<
    std::fixed << std::setprecision(2) <<
    "x=" << p.x << "," <<
    "y=" << p.y << "}";
}
 
class Surface;
 
class Drawable {
 public:
  virtual void draw(Surface &surface) = 0;
};
 
/*
 * Этот класс должен отрисовывать примитивы
 */
class Surface {
 public:
  void draw(Drawable &object) {
    object.draw(*this);
  }
  void drawLine(const Point &a, const Point &b) {
    // тут должен быть код, отрисовывающий линию
    std::cout << "Line{a=" << a << ",b=" << b << "}" << std::endl;
  }
  void drawCircle(const Point &center, double radius) {
    // тут должен быть код, отрисовывающий оркужность
    std::cout << "Circle{center=" << center << ",radius=" << radius <<
      "}" << std::endl;    
  }
  void clear() {
    // тут должен быть код, очищающий поверхность
    std::cout << "Surface cleared." << std::endl;
  }
};
 
class Placeable {
 public:
  Placeable() : point() {}
  Placeable(double x, double y) : point(x, y) {}
  double getX() const { return point.x; }
  double getY() const { return point.y; }
  void setX(double x) { this->point.x = x; }
  void setY(double y) { this->point.y = y; }
 private:
  Point point;
};
 
class Square : public Drawable, public Placeable {
 public:
  Square(double x, double y, double side) : Placeable(x, y), side(side) {}
  double getSide() const { return side; }
  void setSide(double side) { this->side = side; }
  virtual void draw(Surface &surface) {
    surface.drawLine(Point(getX(), getY()), Point(getX() + side, getY()));
    surface.drawLine(Point(getX(), getY()), Point(getX(), getY() + side));
    surface.drawLine(Point(getX() + side, getY()), Point(getX() + side,
      getY() + side));
    surface.drawLine(Point(getX(), getY() + side), Point(getX() + side,
      getY() + side));
  }
 private:
  double side;
};
 
class Circle : public Drawable, public Placeable {
 public:
  Circle(double x, double y, double radius) : Placeable(x, y),
    radius(radius) {}
  double getRadius() const { return radius; }
  void setRadius(double radius) { this->radius = radius; }
  virtual void draw(Surface &surface) {
    surface.drawCircle(Point(getX(), getY()), radius);
  }
 private:
  double x, y, radius;
};
 
class Scene {
 public:
  Scene(size_t capacity) : capacity(capacity), size(0),
    drawables(new Drawable*[capacity]) {}
  virtual ~Scene() {
    delete [] drawables;
  }
  Drawable **add(Drawable *drawable) {
    drawables[size++] = drawable;
    return drawables + size;
  }
  Drawable *operator[](size_t position) {
    return drawables[position];
  }
  const Drawable *operator[](size_t position) const {
    return drawables[position];
  }
  size_t getSize() const {
    return size;
  }
  
  void draw(Surface &surface) {
    surface.clear();
    for (size_t i = 0; i < size; ++i) {
      surface.draw(*(drawables[i]));
    }
  }
 private:
  Scene(const Scene&);
  Scene &operator=(const Scene&);
  size_t capacity;
  size_t size;
  Drawable **drawables;
};
 
class Command {
 public:
  virtual void execute() = 0;
};
 
class ShiftPlaceableCommand : public Command {
 public:
  ShiftPlaceableCommand(Placeable &placeable, double shiftX, double shiftY)
    : placeable(placeable), shiftX(shiftX), shiftY(shiftY) {}
  virtual void execute() {
    placeable.setX(placeable.getX() + shiftX);
    placeable.setY(placeable.getY() + shiftY);
  }
 private:
  Placeable &placeable;
  double shiftX, shiftY;
};
 
Circle getInscribedCircle(const Square &square) {
  double halfSide = square.getSide() / 2.0;
  return Circle(square.getX() + halfSide,
    square.getY() + halfSide, halfSide);
}
 
int main(int argc, char *argv[]) {
  Surface surface;
  Scene scene(2);
 
  Square square(1, 1, 2);
  Circle circle = getInscribedCircle(square);
 
  scene.add(&square);
  scene.add(&circle);
 
  ShiftPlaceableCommand shiftCircle(circle, 1.03, 1.03);
  ShiftPlaceableCommand shiftSquare(square, 1.03, 1.03);
 
  for (int i = 0; i < 100; ++i) {
    shiftCircle.execute();
    shiftSquare.execute();
    scene.draw(surface);
  }
  
  return 0;
}
1
JuliaMa
4 / 2 / 1
Регистрация: 09.05.2013
Сообщений: 48
10.05.2013, 15:50  [ТС] #3
Спасибо огромное!))))))))))))))))))Вы мне очень помогли!)))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.05.2013, 15:50
Привет! Вот еще темы с ответами:

Передвижение объектов по сцене - OpenGL
Еще один вопрос, ребята направьте в каком направлении думать или как сделать возможность передвигать объекты по сцене, то есть вперед назад...

Передвижение объектов в игре одновременно - Delphi
Столкнулся вот с такой проблемой - в игре есть 2 объекта и 2 обработчика событий KeyDown. Нажатие кнопок завязано не на самих объектах а...

Передвижение объектов по форме мышкой - C#
Хочу написать в Windows Forms игру Unblock King. На данном этапе реализовал реализовал перемещение PictureBox по форме, и их столкновение....

Передвижение мышью объектов в 3D figure - Matlab
Исходная задача: построить массив точек p_r на 3Д графике. Написать функцию, которая позволяет их перемещать в пространстве. Написать...


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

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

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