Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 08.04.2012
Сообщений: 41
1

Графика в Delphi

16.04.2013, 03:12. Показов 1065. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет всем,нужна помощь, задание такое нужно нарисовать палатку и два дерева в делфи, я нарисовал таким вот способом
Canvas.MoveTo(190,220);
Canvas.LineTo(230,150); ну и в этом духе.
Теперь нужно сделать типа анимации, чтобы палатка в правый нижний угол перемещалась плавно по нажатию кнопки, а два дерева оставались на месте, с помощью таймера, только я не знаю как сделать, помогите
Вот код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
procedure TForm1.Button1Click(Sender: TObject);
var
x,y:integer;
begin
Canvas.MoveTo(190,220);
Canvas.LineTo(230,150);
Canvas.MoveTo(230,150);
Canvas.LineTo(270,220);
Canvas.MoveTo(190,220);
Canvas.LineTo(270,220);
Canvas.MoveTo(230,150);
Canvas.LineTo(330,125);
Canvas.MoveTo(270,220);
Canvas.LineTo(365,195);
Canvas.MoveTo(330,125);
Canvas.LineTo(365,195);
//палатка
Canvas.MoveTo(190,220);
Canvas.LineTo(175,225);
Canvas.MoveTo(175,220);
Canvas.LineTo(175,230);
//левый нижний крючок
Canvas.MoveTo(365,195);
Canvas.LineTo(380,195);
Canvas.MoveTo(380,190);
Canvas.LineTo(380,200);
//правый крючок
Canvas.MoveTo(270,220);
Canvas.LineTo(285,230);
Canvas.MoveTo(285,225);
Canvas.LineTo(285,235);
//средний крючок
X:=175;
Y:=205;
Canvas.Rectangle(X+3, Y-30, X-3, Y);
X:=170;
Y:=180;
canvas.Ellipse(x-5,y,x+15,y-50);
//левое дерево
X:=385;
Y:=175;
Canvas.Rectangle(X+3, Y-30, X-3, Y);
X:=375;
Y:=150;
canvas.Ellipse(x-10,y,x+30,y-50);
//правое дерево
end;
 
procedure TForm1.FormPaint(Sender: TObject);
begin
Canvas.Brush.Color := clgray;
Color := clWhite;
end;
Добавлено через 10 часов 2 минуты
помогите пожалуйста, срочно нужно
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.04.2013, 03:12
Ответы с готовыми решениями:

Графика Delphi
Нужно проводить масштабирование и выводить только тот отрезок на весь image который введет...

Графика Delphi
Нужна помощь с одной задачкой,не понимаю что за ошибка. Вот условие:Часть 1.1 Разработать иерархию...

Графика в Delphi
Я delphi изучаю только пол года и дошёл до изучения графики.Меня волнует вопрос ответ на который я...

Графика в Delphi
Всем привет, с дельфином совсем,совсем недавно столкнулся, но в общем вот задачка: Как менять...

1
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
16.04.2013, 09:07 2
Кликните здесь для просмотра всего текста
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  bmp: TBitmap;
  ix, iy: integer;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  ix := 0;
  iy := 0;
  Timer1.Enabled := true;
end;
 
procedure TForm1.FormPaint(Sender: TObject);
var
x,y:integer;
begin
  Canvas.Draw(ix, iy, bmp);
 
X:=175;
Y:=205;
Canvas.Rectangle(X+3, Y-30, X-3, Y);
X:=170;
Y:=180;
canvas.Ellipse(x-5,y,x+15,y-50);
//ëåâîå äåðåâî
X:=385;
Y:=175;
Canvas.Rectangle(X+3, Y-30, X-3, Y);
X:=375;
Y:=150;
canvas.Ellipse(x-10,y,x+30,y-50);
//ïðàâîå äåðåâî
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  bmp := TBitmap.Create;
  with bmp do
  begin
    Canvas.Brush.Color := clBtnFace;
    Canvas.FillRect(Canvas.ClipRect);
    Width := 400;
    Height := 250;
    Canvas.MoveTo(190,220);
Canvas.LineTo(230,150);
Canvas.MoveTo(230,150);
Canvas.LineTo(270,220);
Canvas.MoveTo(190,220);
Canvas.LineTo(270,220);
Canvas.MoveTo(230,150);
Canvas.LineTo(330,125);
Canvas.MoveTo(270,220);
Canvas.LineTo(365,195);
Canvas.MoveTo(330,125);
Canvas.LineTo(365,195);
//ïàëàòêà
Canvas.MoveTo(190,220);
Canvas.LineTo(175,225);
Canvas.MoveTo(175,220);
Canvas.LineTo(175,230);
//ëåâûé íèæíèé êðþ÷îê
Canvas.MoveTo(365,195);
Canvas.LineTo(380,195);
Canvas.MoveTo(380,190);
Canvas.LineTo(380,200);
//ïðàâûé êðþ÷îê
Canvas.MoveTo(270,220);
Canvas.LineTo(285,230);
Canvas.MoveTo(285,225);
Canvas.LineTo(285,235);
//ñðåäíèé êðþ÷îê
end;
  Canvas.Brush.Color := clGreen;
 
end;
 
procedure TForm1.FormDestroy(Sender: TObject);
begin
  bmp.Free;
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  inc(ix, 5);
  inc(iy, 5);
  Repaint;
  if ix > 400 then
    Timer1.Enabled := false;
end;
 
end.
Вложения
Тип файла: rar Палатка.rar (1.6 Кб, 24 просмотров)
2
16.04.2013, 09:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.04.2013, 09:07
Помогаю со студенческими работами здесь

Графика в Delphi
Расположить на вкладке компоненты для ввода параметров изображения и кнопку «Рисование», по нажатию...

Delphi 7 графика
Помогите с графикой плиз кто может=) Надо нарисовать пушку из которого через каждые 10 сек....

Графика в Delphi
Почему при запуске ничего не рисует? unit Unit1; interface uses Windows, Messages, SysUtils,...

Графика в Delphi
В одном приложении на разных вкладках выполнить следующие задания: Задание 1. Нарисовать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru