|
0 / 0 / 0
Регистрация: 12.12.2018
Сообщений: 28
|
|
Анимация Canvas,Timage02.06.2019, 17:54. Показов 4577. Ответов 26
Метки нет (Все метки)
Здравствуйте, возникла проблема при выполнении задания, вообщем-то необходимо построить модель атома. Суть проблемы состоит в анимации электронов, находящихся на различных уровнях.Прорисовать сами уровни с помощь TCanvas я смог, но вот встала проблема с движением электронов.Каким образом реализовать их движение? уже 2 сутки мучаюсь над буферами изображений для отрисовки, подключения библиотек для png,которые никак не хотят создавать динамически Timage. Просто сделать большое количество компонентов Timage и, вследствие, получая данные из файла, отправляя их в класс и запуская методы, которые будут включать видимость этих самых компонент для меня видится самым простым, но глупым решением.
Пожалуйста объясните каким образом лучше реализовать анимацию!
0
|
|
| 02.06.2019, 17:54 | |
|
Ответы с готовыми решениями:
26
Анимация движения изображения квадрата по графику на Canvas TImage Рисование на TImage |
|
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
|
|
| 02.06.2019, 20:23 | |
|
самым простым можно. нарисовать готовые картинки со смещением электронов и потом их выводить через таймер поочередно.
другой вариант. BMP динамически созданы электроны, для каждого прописаны координаты движения. и через таймер их выводить.
1
|
|
|
place status here
3189 / 2225 / 640
Регистрация: 20.07.2013
Сообщений: 6,021
|
|
| 03.06.2019, 02:05 | |
|
Можешь такой вариант глянуть: C++ Builder - Orbita.
1
|
|
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
|
| 03.06.2019, 09:43 | |
|
1
|
|
|
0 / 0 / 0
Регистрация: 12.12.2018
Сообщений: 28
|
||
| 03.06.2019, 16:54 [ТС] | ||
|
Спасибо всем, буду смотреть.
Добавлено через 22 минуты
0
|
||
|
0 / 0 / 0
Регистрация: 12.12.2018
Сообщений: 28
|
|
| 03.06.2019, 18:39 [ТС] | |
|
Не могли бы вы поподробнее описать в чем смысл использования именно tpaintbox'a или же дать ссылку на литературу, это ведь контейнер для изображений, я находил что-то про свойство Onpaint, но не очень понимаю принцип его работы, я буду очень благодарен, если вы поможете мне с этим
0
|
|
|
0 / 0 / 0
Регистрация: 12.12.2018
Сообщений: 28
|
|||||||||||
| 03.06.2019, 21:06 [ТС] | |||||||||||
|
Я посмотрел данную тему, взял оттуда то, что так долго искал, теперь у меня возникла проблема с тем, что прорисовка границы не успевает за изображением, а также то,что границы остаются едиными и для ядра и для нейтрона
0
|
|||||||||||
|
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
|
|||||||||||||||||
| 04.06.2019, 00:16 | |||||||||||||||||
|
надо поиграть с формулой. ведь после первого прохода в таймере значения для ядра и нейтрона станут равны с задержкой на расстоянии вычисленной из формулы x = cntrx + floor(a*cos(alpha)); y = cntry + floor(b*sin(alpha)); если задать какое-то смещение к примеру
1
|
|||||||||||||||||
|
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
|
|
| 04.06.2019, 00:20 | |
|
вот что получилось.
1
|
|
|
0 / 0 / 0
Регистрация: 12.12.2018
Сообщений: 28
|
||||||
| 04.06.2019, 19:48 [ТС] | ||||||
|
Ну я вроде что-то подмудрил с тем, чтобы это работало как мне надо, теперь у меня встал вопрос- можно ли добавить на один уровень еще электронов? Начинаю играться с формулами и меняется движение и еще вопрос, возможно ли как-то запихнуть часть действий в класс? Поскольку сама суть задания состоит в считывании данных о нескольких атомов из файла, а после построения модели, нужно использовать класс и я ума не приложу, как можно использовать здесь класс.Неужто сам способ исполнения неверный и придется все начинать по-иному? Подскажите пожалуйста
0
|
||||||
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
|||||||||||||||||
| 06.06.2019, 16:34 | |||||||||||||||||
Сообщение было отмечено StalinGuf как решение
РешениеСоздайте еще один модуль в вашем проекте (File->New->Unit), например, с именем Unit2. В заголовок модуля поместите код из Unit2.h, а в тело модуля соответственно из Unit2.cpp. На основной форме оставьте только кнопку и таймер. Код самой формы отредактируйте согласно Unit1.cpp. Unit2.h
Unit2.cpp
Unit1.cpp
2
|
|||||||||||||||||
|
0 / 0 / 0
Регистрация: 01.12.2018
Сообщений: 8
|
|
| 08.06.2019, 12:42 | |
|
Здравствуйте, вы написали "самым простым можно. нарисовать готовые картинки со смещением электронов и потом их выводить через таймер поочередно.". У меня похожая проблема, необходима анимация идущего человечка в с++ builder, как раз именно таким способом с выводом разных позиций человечка поочередно. Не могли бы, пожалуйста, объяснить как это делается, или дать ссылку на материал, где это объясняется, понимаю, что это наверное не очень сложно, но я плохо знакома с этим языком. Буду очень благодарна за любую помощь)
0
|
|
|
0 / 0 / 0
Регистрация: 01.12.2018
Сообщений: 8
|
|
| 08.06.2019, 13:29 | |
|
Вы про книги Архангельского ? Скачала книгу, в "разделе графика и мультимедиа" есть объяснения про анимацию, но там рассказывается и приводится пример про создание анимации по точкам координат, мне не нужно такое сложное исполнение. Просто поочередный вывод изображений, а об этом не рассказывается
0
|
|
|
0 / 0 / 0
Регистрация: 12.12.2018
Сообщений: 28
|
||||||
| 08.06.2019, 18:00 [ТС] | ||||||
|
Большое спасибо за проделанную работу и уделенное время, это очень помогло мне в решении моей проблемы, пока что все идет гладко, за исключение того, что я столкнулся с проблемой, когда создать новый метод или же добавить в старый, работу с Tcanvas, конкретно с Pen, почему-то компилятор ругается, хотя с Brush ничего подобного не было:
[bcc32c Error] Unit18.cpp(39): member reference type 'System::Uitypes::TColor' is not a pointer [bcc32c Error] Unit18.cpp(40): member reference type 'Vcl::Graphics::TPenStyle' is not a pointer
Я не могу отредактировать это сообщение, но вообщем я был слеп и понял ошибку, извините
0
|
||||||
|
0 / 0 / 0
Регистрация: 12.12.2018
Сообщений: 28
|
|
| 09.06.2019, 13:06 [ТС] | |
|
Осталось организовать поиск по файлу, где будут храниться данные об элементе, используя его номер в таблице или же название, каким образом это осуществить будет удобнее?
0
|
|
|
|
||
| 09.06.2019, 14:30 | ||
|
Для анимации картинками есть компонент TAnimate.
В остальном что бы что-то более или менее качественно сделать лучше использовать OpenGL / DirectX Добавлено через 1 минуту
0
|
||
| 09.06.2019, 14:30 | |
|
Помогаю со студенческими работами здесь
20
TImage и AutoSize Кнопка из TImage TImage в C++ Builder Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|