|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.05.2014, 21:02 | #1 |
Регистрация: 04.11.2011
Сообщений: 4
|
Работа с геометрическими фигурами
Здравствуйте, друзья. Прошу помощи)
Требуется написать класс для трех фигур прямоугольника, прямоугольной трапеции и параллелограмма. Далее эти фигуры нужно перемещать по форме одним из способов (захват мышкой или с помощью клавиатуры). С первым я справился, а вот перемещение не знаю как организовать. Сам язык изучаю чуть более недели (в книге, которую читаю, дошел до классов, что помогло мне с выполнением первой части)). Пытался сделать перемещение с помощью компонента ApplicationEvents, но не знаю, как связать само событие принятия сообщения с клавиатуры, с созданным классом фигур. Вот моя программа: на форме 3 эдита, куда вводятся параметры фигур, выпадающий список (для выбора фигуры) и кнопка рисующая фигуру. Код HTML:
class figure { protected: int xF,yF; //Координаты int len; //Длина int width; //Ширина int height; //Высота public: //конструктор figure(int x, int y, int l, int w, int h): xF(x), yF(y), len(l), width(w), height(h) {} //Прототипы методов класса void draw_rect(); void draw_trap(); void draw_paral(); void movement(float fi); }; //--------------Прямоугольник------------------ void figure::draw_rect() { TPoint tPoints[4]; tPoints[0] = TPoint(xF, yF); tPoints[1] = TPoint(xF + len, yF); tPoints[2] = TPoint(xF + len, yF + width); tPoints[3] = TPoint(xF, yF + width); tPoints[4] = TPoint(xF, yF); Form1->Canvas->Polygon(tPoints,4); } //--------------Трапеция---------------------- void figure::draw_trap() { TPoint tPoints[4]; tPoints[0] = TPoint(xF, yF); tPoints[1] = TPoint(xF + len, yF); tPoints[2] = TPoint(xF + width, yF + height); tPoints[3] = TPoint(xF, yF + height); tPoints[4] = TPoint(xF, yF); Form1->Canvas->Polygon(tPoints,4); } //--------------Параллелограмм---------------------- void figure::draw_paral() { TPoint tPoints[4]; tPoints[0] = TPoint(xF, yF); tPoints[1] = TPoint(xF + len, yF); tPoints[2] = TPoint(xF + len + sqrt(width*width-height*height), yF + height); tPoints[3] = TPoint(xF + sqrt(width*width-height*height), yF + height); tPoints[4] = TPoint(xF, yF); Form1->Canvas->Polygon(tPoints,4); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { Form1->Canvas->Pen->Color=clBlack; if (Form1->ColorDialog1->Execute()) {Form1->Canvas->Brush->Color = Form1->ColorDialog1->Color;} int len = StrToInt(Form1->Edit1->Text); int width = StrToInt(Form1->Edit2->Text); int height = StrToInt(Form1->Edit3->Text); int X = Form1->Width/2; int Y = Form1->Height/2; figure f(X,Y,len,width,height); switch (Form1->ComboBox1->ItemIndex) { case 0: f.draw_rect();break; case 1: f.draw_trap();break; case 2: f.draw_paral();break; } } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с фигурами | ramzes777 | Мультимедиа в Delphi | 2 | 28.10.2011 18:14 |
Тестирование памяти с фигурами | Acab | Помощь студентам | 3 | 05.06.2011 15:28 |
VBA: работа с фигурами | Kuraj | Microsoft Office Excel | 5 | 04.01.2010 18:33 |
Работа с графическими фигурами | Fanat1k | Помощь студентам | 1 | 03.05.2007 07:59 |
Воспроизведение мелодии с геометрическими фигурами | Let | Помощь студентам | 2 | 27.12.2006 08:03 |