Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.01.2011, 05:00
ASSYS ASSYS вне форума
Прохожий
 
Регистрация: 05.01.2011
Сообщения: 6
Репутация: 10
Печаль Анимация на Delphi

http://assys.at.ua/DSC03082.jpg
Помогите в написании анимации! Не знаю как в Delphi записывается треугольник! Чтобы написать анимацию! Кто может выложите готовый код! А если нет то подскажите как сделать!
Ответить с цитированием
  #2  
Старый 16.01.2011, 12:50
Аватар для deltas
deltas deltas вне форума
Новичок
 
Регистрация: 22.11.2010
Сообщения: 99
Репутация: 47
По умолчанию

Не совсем понял какую анимацию вы хотите получить... но вот пример рисования треугольника-
Код:
begin 
Canvas.Brush.Color := clTeal; 
Canvas.Polygon([Point(30, 10), 
Point(130, 30), Point(240, 120)]); 
end;
Ответить с цитированием
  #3  
Старый 17.01.2011, 21:34
ASSYS ASSYS вне форума
Прохожий
 
Регистрация: 05.01.2011
Сообщения: 6
Репутация: 10
Печаль

Не получается все же сделать анимацию! Треугольник имеет вертеться вокруг точек 0 и 01! Против часовой стрелки!
Ответить с цитированием
  #4  
Старый 17.01.2011, 22:34
Аватар для AND_REY
AND_REY AND_REY вне форума
Активный
 
Регистрация: 31.03.2009
Адрес: Украина, г.Днепропетровск
Сообщения: 324
Версия Delphi: Delphi7
Репутация: 3877
По умолчанию 1

Вот набросал для одного плеча, идентично для второго сделать надо только сдвинуть на 30 градусов параметр t в радианах. Это 2-ве точки треугольника получиться а третью нужно считать (школьный курс геометрии я не помню ).

Процедуру Animation; поместить в таймер.

Код:
Var
 t: Real = -(20*pi); // Против часовой стрелки -2Пи).

Procedure Animation;
Const
 A = 150;  // Амплитуда = длина плеча.
 w = 5.5;  // частота = скорость.
 Xo = 200; // Точка центра Х.
 Yo = 200; // Точка центра Y.
Var
 Y,X: Integer;
begin
 t:= t+0.1; // Точность
 if t >= (20*pi) Then t:= -(20*pi); // Возврат.
 X:= Xo + Round(A*Sin(t/w));  // параметрические ур. окружности.
 Y:= Yo + Round(A*Cos(t/w));
 Form1.Canvas.Pen.Color:= clBtnFace;  // Прорисовка.
 Form1.Canvas.Rectangle(Xo-A, Yo-A, Xo+A+1, Yo+A+1);
 Form1.Canvas.Pen.Color:= clRed;
 Form1.Canvas.MoveTo(Xo,Yo);
 Form1.Canvas.LineTo(X,Y);
end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:38.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025