|
0 / 0 / 0
Регистрация: 12.12.2018
Сообщений: 28
|
|
Анимация Canvas,Timage02.06.2019, 17:54. Показов 4589. Ответов 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
3190 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,023
|
|
| 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|