Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2014, 21:02   #1
Anaxaim
 
Регистрация: 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;
  }
}
прощу помочь с организацией перемещения, хотя бы одной фигуры, далее я смог бы сам
Anaxaim вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с фигурами 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