Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Анимация движения по дуге 
:(
    Опции темы
Codemancer
Дата 9.12.2008, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 25.11.2008

Репутация: нет
Всего: нет



Уважаемые форумчане, помогите решить следующую проблему. В приложение на Canvas рисуется дуга стандартным методом явы. Далее рисуется круг, опять же стандартной функцией. Необходимо создать анимацию движения круга по заданной дуге.
Код

...
g.drawArc(getX1(), getY1()-getR(), getX2()-getX1(), 2*getR(), 0, -180); //Дуга, с радиусом 20, вписанная в квадрат со стороной 40
...
g.drawOval(element[2].getX1() - 2 * dX - 1 + k, element[2].getY1() - 2 * dY + 2*k, 4 * dX , 4 * dY); // Это окружность, вписанная в квадрат 
...


Анимацию этой же окружности по прямой делал следующим образом 
Код

for(...)
{
Thread.sleep(20);
g.clearRect(element[j].getX1() - 2 * dX - 1, element[j].getY1() - 2 * dY - k + 2, 4 * dX+1, 4 * dY+1 );
g.drawOval(element[j].getX1() - 2 * dX - 1, element[j].getY1() - 2 * dY - k, 4 * dX , 4 * dY);
...
}


здесь в массиве элементов element[j] хранятся координаты начала и конца элементов. Для дуг еще добавляется радиус. Соответственно, отрисвовывется кажде 20мс окружность, потом перемещается на новое место (на 1 вперед), а старае стирается. Но с дугой этот подход не сработает. Что посоветует?

Это сообщение отредактировал(а) Codemancer - 9.12.2008, 23:23
PM MAIL ICQ   Вверх
math64
Дата 12.12.2008, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 5
Всего: 72



Используй двойную буферизацию и рисуй всё вместо того, чтобы стирать старое и рисовать новое. При наличии полос прокрутки можно рисовать только то, что попадёт на экран. Наследуйся от Component, а не от Canvas, который расчитан на работу с компонентами AWT, а не Swing. При наследовании от Component можно пользоваться и AWT, и Swing.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0544 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.