![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() http://assys.at.ua/DSC03082.jpg
Помогите в написании анимации! Не знаю как в Delphi записывается треугольник! Чтобы написать анимацию! Кто может выложите готовый код! А если нет то подскажите как сделать! ![]() |
#2
|
||||
|
||||
![]() Не совсем понял какую анимацию вы хотите получить... но вот пример рисования треугольника-
Код:
begin Canvas.Brush.Color := clTeal; Canvas.Polygon([Point(30, 10), Point(130, 30), Point(240, 120)]); end; |
#3
|
|||
|
|||
![]() Не получается все же сделать анимацию! Треугольник имеет вертеться вокруг точек 0 и 01! Против часовой стрелки!
![]() |
#4
|
||||
|
||||
![]() Вот набросал для одного плеча, идентично для второго сделать надо только сдвинуть на 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; |