|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.03.2010, 23:16 | #1 |
Пользователь
Регистрация: 16.03.2010
Сообщений: 21
|
Создание анимации на VisualBasic
Пожалуйста, подскажите, если у кого есть какие-нибудь мысли.
Задача: создать анимацию, чтобы круг плавно превращался в квадрат. Примерный алгоритм будет примерно такой: 1) строим фигуру 2) небольшая задержка времени 3) стираем фигуру (рисуем фигуру с цветом фона) и повторение. Я просто не могу понять как сделать так, чтобы из круга получался квадрат. Есть у меня такая идея: рисую квадрат в PictureBox, ввожу на нем систему координат (оператор scale), затем рисую внутри него квадрат поменьше, чтобы его диагональ была равно диагонали круга. А круг у нас будет увеличиваться примерно так: for r=2 to 4 step 0.1 fillstyle=0 fillcolor=vbyellow circle(0,0),r next r И при максимальном радиусе этот круг полностью закрашивает маленький квадрат. Вот только мне эта идея кажется не очень хорошей. Есть у кого-нибудь идеи? |
17.03.2010, 01:06 | #2 |
Участник клуба
Регистрация: 29.12.2009
Сообщений: 1,166
|
нужно использовать эллипс и его возможности рисования
на делфи можно так (winApi) RoundRect( dc, 1, 1, r.Right, r.Bottom, FPercentEllipse, FPercentEllipse ); эта функция рисует эллипс с заданными параметрами: dc - холст 2-4 параметры задают расположение и размеры прямоугольника последние 2 параметра - процент закругления углов увеличивая последних 2 параметра можно получить плавно круг из квадрата, и наоборот
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть] |
19.03.2010, 14:33 | #3 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
Примерно та же идея на Visual Basic for Application (ВБА).
Если спрямлять не сразу, пошагово — получим нужный эффект. (Остаётся принять, что 8-угольник с скруглёнными углами является кругом.) Приложил пример проекта в документе. (Или проект проекта.) Нажимая Ctrl-Z, после выполнения, можно наблюдать шаги построения.
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 19.03.2010 в 23:10. Причина: иллюстрация. |
05.04.2010, 22:02 | #4 |
Пользователь
Регистрация: 16.03.2010
Сообщений: 21
|
Придумал однако такой алгоритм =)
Код:
|
09.04.2010, 23:22 | #5 |
Пользователь
Регистрация: 16.03.2010
Сообщений: 21
|
Немного переделал код, так лучше =)
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
создание анимации | Sergeu | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 2 | 01.01.2010 01:52 |
Создание анимации нажатия на кнопку | Alex Cones | Общие вопросы Delphi | 8 | 27.04.2009 19:06 |
Помогите с VisualBasic | RuNetStyle | Помощь студентам | 2 | 03.01.2009 00:45 |
Анимации | Sanek777 | Общие вопросы Delphi | 0 | 02.11.2008 17:19 |
Задачка! VisualBasic | vio | Помощь студентам | 1 | 25.10.2008 00:11 |