Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 26.10.2014
Сообщений: 46

Нарисуйте, пожалуйста, машину получше, чем получилось

20.10.2015, 21:00. Показов 3494. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите пожалуста заранее всем спасибо

Добавлено через 8 минут
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, MMSystem, Jpeg;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Timer1: TTimer;
    Image_Red: TImage;
    Image_Green: TImage;
    Timer_svet: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Timer_svetTimer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    Jpg : TJpegImage;
    Car, BkGnd : TBitmap;
    Engine : TResourceStream;
 
    procedure DrawCar;
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
const
  dx = 5;
  dy = 5;
 
var
  X, Y  : Integer; //координаты базовой точки грузовика
  Light : Integer;
 
procedure TForm1.FormCreate(Sender: TObject);
var
  RS : TResourceStream;
begin
  DoubleBuffered := True;
 
  Jpg   := TJpegImage.Create;
  BkGnd := TBitmap.Create;
  Car   := TBitmap.Create;
  Car.Width  := 200;
  Car.Height := 150;
  Car.PixelFormat := pf24Bit;
  Car.Transparent := True;
  Car.TransparentColor := clFuchsia;
 
  RS := TResourceStream.Create(hInstance, 'BkGnd', RT_RCDATA);
  try
    Jpg.LoadFromStream(RS);
  finally
    RS.Free;
  end;
 
  Form1.ClientWidth  := Jpg.Width;                                      // ширина формы
  Form1.ClientHeight := Jpg.Height;                                     // высота формы
  BkGnd.Width  := Jpg.Width;
  BkGnd.Height := Jpg.Height;
  BkGnd.Canvas.Draw(0, 0, Jpg);
 
  Engine := TResourceStream.Create(hInstance, 'Engine', 'WAVE');
 
  X := -35 * dx;                                                        // начальная координата х грузовика
  Y := 300;                                                             // начальная координата y грузовика
  DrawCar;
end;
 
procedure TForm1.FormDestroy(Sender: TObject);
begin
  Engine.Free;
  Jpg.Free;
  Car.Free;
  BkGnd.Free;
end;
 
procedure TForm1.FormPaint(Sender: TObject);
begin
  Canvas.Draw(0, 0, BkGnd);
end;
 
// процедура вычерчивает грузовик
procedure TForm1.DrawCar;
var
  p : array[1..6] of TPoint;                                            // координаты точек кабины
begin
  with Car.Canvas do
  begin
    Brush.Color := clFuchsia;
    FillRect(Rect(0, 0, Car.Width, Car.Height));
 
    Pen.Width := 2;
    Pen.Color := clBlack;
    // кузов грузовика
    Brush.Color := clTeal;
    Rectangle(0, 100 - 10 * dy, 20 * dx, 100);
    // кабина грузовика
    p[1].X := 22 * dx; p[1].Y := 100;
    p[2].X := 22 * dx; p[2].Y := 100 - 20 * dy;
    p[3].X := 27 * dx; p[3].Y := 100 - 20 * dy;
    p[4].X := 32 * dx; p[4].Y := 100 - 12 * dy;
    p[5].X := 35 * dx; p[5].Y := 100 - 12 * dy;
    p[6].X := 35 * dx; p[6].Y := 100;
    Polygon(p);
    // окно кабины
    MoveTo(27 * dx, 100 - 20 * dy);
    LineTo(27 * dx, 100 - 12 * dy);
    LineTo(32 * dx, 100 - 12 * dy);
    Brush.Color := clWhite;
    FloodFill(28 * dx, 100 - 13 * dy, clBlack, fsBorder);
    // колеса грузовика
    Brush.Color := clGray;
    Ellipse(3  * dx, 100, 12 * dx, 100 + 9 * dy);
    Ellipse(23 * dx, 100, 32 * dx, 100 + 9 * dy);
    // рама грузовика
    Brush.Color := $002B7399;
    Rectangle(0, 100, 35 * dx, 100 + dy);
  end;
end;
 
// Загрузка формы
// Процедура нажатия на кнопку
procedure TForm1.Button1Click(Sender: TObject);
const
  btnCaption : array[Boolean] of String = ('Пуск', 'Стоп');
begin
  Timer1.Enabled      := not Timer1.Enabled;
  Timer_svet.Enabled  := not Timer_svet.Enabled;
  Button1.Caption     := btnCaption[Timer1.Enabled];
  Image_Green.Visible := Timer1.Enabled;
  Image_Red.Visible   := not Timer1.Enabled;
  if Timer1.Enabled then
    PlaySound(Engine.Memory, 0, SND_MEMORY or SND_ASYNC or SND_LOOP or SND_NOWAIT)
  else
    PlaySound(NIL, 0, SND_MEMORY or SND_ASYNC or SND_LOOP or SND_NOWAIT);
end;
 
// Таймер автомобиля
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  BkGnd.Canvas.Draw(0, 0, Jpg);
  BkGnd.Canvas.Draw(X, Y, Car);
  Refresh;
 
  // определить новую точку появления грузовика
  if X > ClientWidth then
    X := -35 * dx                                                         // начальная координата х грузовика
  else if Image_Red.Visible and ((X > 290) and (X < 300)) then
    Exit
  else
    inc(X, 2);
end;
 
procedure TForm1.Timer_svetTimer(Sender: TObject);
begin
  inc(Light);
  if Light > 5 then
    Light := 0;
 
  Image_Green.Visible := Light in [0..2];
  Image_Red.Visible   := Light in [3..5];
end;
 
end.
Вот собственно код
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.10.2015, 21:00
Ответы с готовыми решениями:

Нарисуйте пожалуйста
помогите пожалуйста

Нарисуйте машину
Напишите графику в паскаль...рисунок машины)

Нарисуйте домик, ёлочку и машину
Ничего,не получается(как и с Азбукой морзе(тема созданная раннее))

3
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
20.10.2015, 21:08
Ффу... аж вспотел. Pagani Zonda подойдёт?
Миниатюры
Нарисуйте, пожалуйста, машину получше, чем получилось  
0
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,180
Записей в блоге: 3
20.10.2015, 21:09
а можно скрин? или проект полностью?
0
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
21.10.2015, 00:02
Цитата Сообщение от qwertehok Посмотреть сообщение
а можно скрин? или проект полностью?
какой проект?
если ты про первый пост, то это код, выдранный из готового проекта,
который выложен в этой теме Светофор+авто
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.10.2015, 00:02
Помогаю со студенческими работами здесь

Нарисуйте пожалуйста
В Си++ рисунок

Нарисуйте пожалуйста.
В Си++ надо сделать рисунки.

Нарисуйте в делфи. Пожалуйста
По нажатию на компонент TButton, на форме должен рисоваться рисунок.

Нарисуйте пожалуйста в делфи
Никак не получается нарисовать

Нарисуйте пожалуйста любой логотип
Здравствуйте многоуважаемые форумчане КиберФорума! Нарисуйте пожалуйста логотип в Borland C++ Builder и программный код к нему. Спасибо.


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru