Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 12.12.2018
Сообщений: 28

Анимация Canvas,Timage

02.06.2019, 17:54. Показов 4888. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, возникла проблема при выполнении задания, вообщем-то необходимо построить модель атома. Суть проблемы состоит в анимации электронов, находящихся на различных уровнях.Прорисовать сами уровни с помощь TCanvas я смог, но вот встала проблема с движением электронов.Каким образом реализовать их движение? уже 2 сутки мучаюсь над буферами изображений для отрисовки, подключения библиотек для png,которые никак не хотят создавать динамически Timage. Просто сделать большое количество компонентов Timage и, вследствие, получая данные из файла, отправляя их в класс и запуская методы, которые будут включать видимость этих самых компонент для меня видится самым простым, но глупым решением.
Пожалуйста объясните каким образом лучше реализовать анимацию!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.06.2019, 17:54
Ответы с готовыми решениями:

Анимация движения изображения квадрата по графику на Canvas
Нужна помощь...в создании как бы анимации с помощью Сanvas, которая будет идти по траектории графика заданой формулой.. Вот у меня есть...

TImage
Вообщем написал я программу которая при нажатии стрелки влево картинка начинает двигаться влево, только есть одна проблема картина делает...

Рисование на TImage
У меня есть картинка TImage и у нее загружается *.png файл. Нужно на этой картинке нарисовать красный прямоугольник, что я и делаю: ...

26
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
09.06.2019, 22:10
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от StalinGuf Посмотреть сообщение
Осталось организовать поиск по файлу, где будут храниться данные об элементе, используя его номер в таблице или же название, каким образом это осуществить будет удобнее?
Любой способ будет правильным. зависит что должно хранится в файле?
что должно произойти после загрузки файла? стартовать с координатами на которых была остановлена программа?
для этих нужд можно использовать ini файл конфигурации.
там будет легче прочитать настройки элемента.
если же нужна история - тогда можно файл , с возможностью выбора определенной точки.
думаю этот вариант для этой программки, лишний.
все в ваших руках.
надо определиться какую информацию сохранять. а там и решение само придёт.
0
0 / 0 / 0
Регистрация: 12.12.2018
Сообщений: 28
10.06.2019, 00:26  [ТС]
Храниться в файле должен номер элемента в таблице Менделеева, название этого элемента, ну, я полагаю, количество уровней или же хотя бы количество электронов, чтобы я мог осуществить поиск или номеру в периодической таблице или по названию, тем самым выведя его модель
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
10.06.2019, 07:33
StalinGuf, тогда легче хранить в таблице(StringGrid). будет очень просто потом найти элемент или по номеру или по названию и всем другим параметрам. можно редактировать.
таблицу сохранять в файл.
0
0 / 0 / 0
Регистрация: 12.12.2018
Сообщений: 28
10.06.2019, 16:32  [ТС]
Т.е. мне лучше сначала заполнить таблицу при создании формы, присвоив ячейкам данные о элементах, а после сохранить их в файл, сразу же после этого, затем делать поиск по записанным данным в файле?

Добавлено через 49 секунд
Просто специфика задания в том, чтобы был файл в котором будут содержаться данные и необходимо осуществить поиск
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
10.06.2019, 16:54
Цитата Сообщение от vladi4ka Посмотреть сообщение
необходима анимация идущего человечка в с++ builder, как раз именно таким способом с выводом разных позиций человечка поочередно. Не могли бы, пожалуйста, объяснить как это делается
Рисуется в паинте большая картинка со всеми возможными слайдами, отражающими одно движение человечка. То есть слева направа на однородном фоне рисуются, например, четыре изображения человечка одинакового размера: обе ноги стоят, одна нога поднялась, верхняя нога передвинулась, верхняя нога опустилась.
Это изображение с четырьмя стадиями движения загружается один раз в битмап.
Для анимации реализуется цикл по количеству стадий движения (в нашем случае четыре итерации). На каждой итерации цикла из битмапа вырезается кусок по ширине равный одной четвертой (потому что четыре картинки) и со смещением равным одной четвертой умноженной на номер итерации.
Каждая вырезанная картинка отрисовывается в одном и том же месте на экране, перекрывая предыдущую.

Добавлено через 1 минуту
Ну или как правильно подсказывает Avazart, использовать специальный компонент TAnimate.
0
0 / 0 / 0
Регистрация: 12.12.2018
Сообщений: 28
18.06.2019, 23:51  [ТС]
Здравствуйте, я сейчас подробно начал рассматривать программу, что построил по вашему прототипу и не очень понял, зачем нам d_aplha, d_alpha_, alpha_, пожалуйста, не могли бы вы объяснить, я не очень понимаю, как у нас происходит прирощение, если они даже не проинициализированы?
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
19.06.2019, 11:50
Цитата Сообщение от StalinGuf Посмотреть сообщение
зачем нам d_aplha, d_alpha_, alpha_, пожалуйста, не могли бы вы объяснить, я не очень понимаю, как у нас происходит прирощение, если они даже не проинициализированы?
Обратите внимание на символ нижнего подчеркивания в конце названия каждой переменной:
d_aplha (вот тут вот нету), d_alpha_, alpha_
Есть переменные, у которых есть в конце символ подчеркивания, а есть у которых нет.
Те переменные, у которых нет - это обычные переменные. Обычные переменные, участвующие в расчетах.
Эти обычные переменные инициализируются как раз значениями переменных, у которых есть в конце символ подчеркивания.
Остается разобраться как получают значения переменные с символом подчеркивания.
Обратите внимание, если обычные переменные у нас объявлены как члены класса, то переменных с нижним подчеркиванием на конце там нет:
C++
6
7
8
9
10
11
12
class Electron
{
private:
  Graphics::TBitmap *bitmap;
  int x,y,h,v,z,l,m,j;
  int a,b,cntrx,cntry;
  double alpha, d_alpha;
Они есть зато в определении метода Init:
C++
20
void Init(int a_, int b_, double alpha_, double d_alpha_);
Переменные, находящиеся в скобочках в определении метода, называются параметрами метода.
Эти параметры метода заполняются реальными значениями при вызове этого метода. И чтобы в коде понять как использовать какой параметр, их - эти параметры - именуют.
Обратите внимание опять на код:
C++
14
15
16
17
18
19
20
21
22
23
24
void Electron::Init(int a_, int b_, double alpha_, double d_alpha_)
{
  x = h =  bitmap->Width/2;
  y = v = bitmap->Height/3;
  a = a_;
  b = b_;
  alpha = alpha_;
  d_alpha = d_alpha_;
  cntrx = bitmap->Width/2;
  cntry = bitmap->Height/2;
}
А конкретнее на строку 21:
C++
21
  d_alpha = d_alpha_
Переменной d_alpha присваивается значение параметра d_alpha_.
Параметр d_alpha_ мог бы называться и PupkinVasia, тогда бы код имел вид:
C++
d_alpha = PupkinVasia;
Но так, как мне показалось, будет не очень понятно какой параметр устанавливает значение какой переменной. Поэтому я в своем примере назвал соответствующие параметры функций именами переменных, которые они устанавливают. И чтобы избежать конфликта имен, добавил к концу каждого параметра символ нижнего подчеркивания.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.06.2019, 11:50

Работа с TImage
Ребят,есть вот такие,например, строчки: Image1_1->Picture->LoadFromFile("..\\..\\models\\dot\\dot.bmp"); ...

Рисунок в Timage
Здравствуйте. Суть в том, что создаются динамически Timage, сколько задает пользователь. При нажатии image должен заполнятся картинкой в...

TImage и AutoSize
Загружаю картинку в Image2 таким способом c заранее заданными координатами void __fastcall TEdit_Form::Button3Click(TObject...

Кнопка из TImage
Сделал кнопку из TImage. При нажатии картинка меняется. Но назад при отпускании не могу вернуть. 2 дня мучаюсь. Подскажите кто знает.

TImage в C++ Builder
Начинаю работу с изображениями в C++ Builder. Требуется сделать поворот, масштабирование и т.д. Не подскажете литературу попроще по работе...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru