Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Wlad_
0 / -1 / 1
Регистрация: 31.07.2017
Сообщений: 32
#1

Перемещение параллелограмма - C++ Builder

16.05.2018, 15:42. Просмотров 107. Ответов 4
Метки нет (Все метки)

Здравствуйте. Задали в универе в этой проге нарисовать окружность вписанную в параллелограмм. Допустим, это я сделал, если не придиратся к мелочам. Но вот следующее задание - это заставить параллелограмм двигаться. Как??? Я кучу времени потратил на гугл, но так ничего и не нашел, что мог бы усвоить.
Вот мой код без попытки переместить параллелограмм.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TPoint points[4];
points[0] = Point(50, 50);
points[1] = Point(150, 50);
points[2] = Point(120, 100);
points[3] = Point(20, 100);
Canvas->Polygon(points, 4);
Canvas->Ellipse(37,50,134,100);
}
//---------------------------------------------------------------------------
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2018, 15:42
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Перемещение параллелограмма (C++ Builder):

Построение параллелограмма на Image
Помогите построить параллелограмм на Image. Могу построить, если задать все 4...

Перемещение Timage
Как сделать перемещение TImage по клику, т.е нажать на Timage, а затем в место...

Перемещение контрола
Как перемещать контрол (TPaintBox) по форме при помощи мышки, чтобы перемещение...

Перемещение Image
Нужно,чтобы шашки перемещались. Файл cpp ...

Перемещение шашки
Не получается прописать функцию перемещения шашки,пишу в FormMouseMove, но...

Перемещение Image
Добрый вечер, в общем такая проблема: надо при нажатии левой кнопки (Left...

4
Si14
31 / 31 / 25
Регистрация: 26.07.2015
Сообщений: 76
16.05.2018, 18:21 #2
Что бы заставить параллелограмм двигаться надо через равные промежутки времени рисовать его на новом месте. Так и создается иллюзия движения.
Для этого добавляешь на форму таймер. В поле интервал вписываешь маленькое значение, скажем 50.
В событие "OnTimer" рисуешь параллелограмм на новых координатах
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int origin_x=0, origin_y=0;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Canvas->FillRect(Rect(0, 0, Form1->ClientWidth, Form1->ClientHeight)); //очистить от предыдущего изображения
TPoint points[4];
points[0] = Point(50+origin_x, 50+origin_y);
points[1] = Point(150+origin_x, 50+origin_y);
points[2] = Point(120+origin_x, 100+origin_y);
points[3] = Point(20+origin_x, 100+origin_y);
Canvas->Polygon(points, 3); // надо 3!!!
origin_x++; // смещение для следующего кадра
origin_y++;
}
//---------------------------------------------------------------------------
0
Wlad_
0 / -1 / 1
Регистрация: 31.07.2017
Сообщений: 32
18.05.2018, 10:17  [ТС] #3
Вставил Ваш код, но мне выдает ошибку.
[C++ Error] Unit1.cpp(20): E2316 '_fastcall TForm1::Timer1Timer(TObject *)' is not a member of 'TForm1'
Попытки гугла привели к выводу, что я не прописал прототип либо что-то не объявил, но мне это ни о чем не говорит. Что же с этим делать? Где читать про это?
0
TrollHammer
224 / 149 / 73
Регистрация: 22.02.2018
Сообщений: 442
Записей в блоге: 2
18.05.2018, 10:29 #4
Кинуть на форму Timer из вкладки System, а этот код прописать в событии OnTimer

Добавлено через 4 минуты
И лучше всего взять любую книгу Архангельского по билдеру и почитать главу "Графика и мультимедиа"
0
Wlad_
0 / -1 / 1
Регистрация: 31.07.2017
Сообщений: 32
18.05.2018, 10:41  [ТС] #5
Всем большое спасибо, разобрался)
0
18.05.2018, 10:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2018, 10:41
Привет! Вот еще темы с решениями:

Перемещение формы С++
Помогите пожалуйста создал форму FormBorderStyle с параметром None так как хочу...

Плавное перемещение
Добрый день, хочу спросить, может кто сталкивался с подобной задачей. Нужно...

Перемещение фигуры
Реализовать отображение на экране геометрической фигуры с возможностью...

Перемещение курсора
Мне нужно, чтобы после клика на Button1 то курсор в Мемо1 перемещался бы к...


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

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

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