Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Дорожный знак

Автор: SSEAL 10.07.2009 21:52

Нужно нарисовать дорожный знак мойка автомобиля на paintbox. Как это сделать?

Автор: мисс_граффити 13.07.2009 13:57

А как этот знак выглядит? Нарисуй в чем-нить, выложи - набросаю код.
Пока что просто не представляю...

Автор: volvo 13.07.2009 19:53

Цитата(мисс_граффити @ 13.07.2009 9:57) *
Пока что просто не представляю...

blink.gif http://www.vodish.ru/theory/sign/7/7.5/

Автор: мисс_граффити 14.07.2009 15:00

Мдя... Надо ПДД повторять.
Чем пользуюсь постоянно - то помню. А таких на дорогах ни разу не видела...

SSEAL, вопрос еще актуален?

Автор: помой меня! )) 14.07.2009 15:54

Цитата(мисс_граффити @ 14.07.2009 11:00) *
Чем пользуюсь постоянно - то помню
Немытенькая ездишь? smile.gif

Автор: Unconnected 14.07.2009 17:44

Машину мыть сам не умеешь?

Автор: сотрудник ГИБДД 15.07.2009 5:14

Цитата(Unconnected @ 14.07.2009 13:44) *
Машину мыть сам не умеешь?
Нарушать??
Правила для кого придуманы? Выходит, знаки не нужны, так?
Мыться надо, где знак. А умеешь-неумеешь - никого не волнует.
Знаки соблюдать надо!

Автор: sheka 15.07.2009 17:49

Только вставляй, уважаемый SSEAL, сотрудник ГИБДД:

 
Uses crt,graph;

const
x0=170;
y0=20;
Hight_blue=420;
Wide_blue=300;
Wide_White=270;
Wide_Leika=60;

var a,b:integer;

procedure init;
var GDriver,GMode:integer;
begin
GDriver:=Detect;
InitGraph(GDriver,GMode,'');
end;

begin
Init;
(*obsii fon*)
SetBkColor(Black);
(*fon vnutrennii sinii*)
SetFillStyle(SolidFill,Blue);
bar(x0,y0,x0+Wide_blue,y0+Hight_blue);
(*fon vnutrennii belii*)
SetFillStyle(SolidFill,White);
bar(x0+round((Wide_Blue-Wide_White)/2),y0+40,x0+Wide_Blue-round((Wide_Blue-Wide_White)/2),y0+40+Wide_White);
(*leika*)
SetFillStyle(SolidFill,Black);
bar(x0+round((Wide_blue-10)/2),y0+40+10,x0+round((Wide_blue+10)/2),y0+40+20);
bar(x0+round((Wide_blue-Wide_Leika)/2),y0+40+20,x0+round((Wide_blue+Wide_Leika)/2),y0+40+30);
(*strui*)
SetColor(Black);
setlinestyle(SolidLn,0,ThickWidth);
line(x0+round((Wide_blue-Wide_Leika)/2),y0+40+35,x0+round((Wide_blue-Wide_White)/2)+10,y0+40+Wide_White-10);
line(x0+round((Wide_blue+Wide_Leika)/2),y0+40+35,x0+round((Wide_blue+Wide_White)/2)-10,y0+40+Wide_White-10);
line(x0+round((Wide_blue-Wide_Leika)/2)+round((Wide_Leika)/4),y0+40+35,x0+round((Wide_blue-Wide_Leika)/2),y0+40+30+40);
line(x0+round((Wide_blue+Wide_Leika)/2)-round((Wide_Leika)/4),y0+40+35,x0+round((Wide_blue+Wide_Leika)/2),y0+40+30+40);
line(x0+round((Wide_blue)/2),y0+40+35,x0+round((Wide_blue)/2),y0+40+30+40);
(*SSEAL & Sotrudnik GIBDD*)
SetColor({Light}Green);
setlinestyle(SolidLn,0,NormWidth);
(*tulovise*)
line(x0+round((Wide_blue)/2),y0+40+140,x0+round((Wide_blue)/2),y0+40+200);
(*levaya ruka*)
line(x0+round((Wide_blue)/2),y0+40+170,x0+round((Wide_blue)/2)-40,y0+40+170-15);
line(x0+round((Wide_blue)/2)-35,y0+40+145,x0+round((Wide_blue)/2)-40,y0+40+170-15);
(*pravaya ruka*)
line(x0+round((Wide_blue)/2),y0+40+170,x0+round((Wide_blue)/2)+20,y0+40+170+30);
line(x0+round((Wide_blue)/2)+10,y0+40+170+25,x0+round((Wide_blue)/2)+20,y0+40+170+30);
line(x0+round((Wide_blue)/2)+10,y0+40+170+30,x0+round((Wide_blue)/2)+20,y0+40+170+30);
line(x0+round((Wide_blue)/2)+15,y0+40+170+35,x0+round((Wide_blue)/2)+20,y0+40+170+30);
line(x0+round((Wide_blue)/2)+20,y0+40+170+37,x0+round((Wide_blue)/2)+20,y0+40+170+30);
line(x0+round((Wide_blue)/2)+25,y0+40+170+35,x0+round((Wide_blue)/2)+20,y0+40+170+30);
(*levaya noga*)
line(x0+round((Wide_blue)/2)-20,y0+40+Wide_White-45,x0+round((Wide_blue)/2)-20,y0+40+Wide_White-15);
line(x0+round((Wide_blue)/2)-20,y0+40+Wide_White-45,x0+round((Wide_blue)/2),y0+40+200);
(*pravaya noga*)
line(x0+round((Wide_blue)/2)+20,y0+40+Wide_White-45,x0+round((Wide_blue)/2)+20,y0+40+Wide_White-15);
line(x0+round((Wide_blue)/2)+20,y0+40+Wide_White-45,x0+round((Wide_blue)/2),y0+40+200);
(*golova*)
SetColor(LightRed);
SetFillStyle(SolidFill,LightRed);
PiesLice(x0+round((Wide_blue)/2),y0+40+110,0,360,30);
(*schetka*)
SetColor(Black);
setlinestyle(SolidLn,0,ThickWidth);
line(x0+round((Wide_blue)/2)-15,y0+40+155,
x0+round((Wide_blue)/2)-15-round(45*cos(26/180*pi)),y0+40+155-round(45*sin(26/180*pi)));
setlinestyle(SolidLn,0,NormWidth);
for b:=0 to 15 do
begin
a:=3*b;
line(x0+round((Wide_blue)/2)-15-round(a*cos(26/180*pi)),y0+40+155-round(a*sin(26/180*pi)),
x0+round((Wide_blue)/2)-15-round(a*cos(26/180*pi))+round(10*cos((90-26)/180*pi)),
y0+40+155-round(a*sin(26/180*pi))-round(10*sin((90-26)/180*pi)));
end;
readkey;
CloseGraph;
end.


Добавлено через 2 мин.
Ой, извините, недочитал тему, это же на Делфи просили... а я так старался...sad.gif

Автор: -Volvo- 15.07.2009 21:48

Цитата
это же на Делфи просили...
Эту же картинку совсем не сложно отрисовать на Canvas (код очень незначительно изменится).

Автор: Гость 15.07.2009 23:16

Тема еще актуальна,если что

Автор: SSEAL 15.07.2009 23:18

Мне надо чтоб именно на canvas было нарисовано

Автор: sheka 15.07.2009 23:38

Ладно, раз тебе это делать лень, буду учить графику в делфи. smile.gif

Автор: sheka 16.07.2009 1:21

 procedure TForm1.FormPaint(Sender: TObject);
const
x0=50;
y0=50;
Hight_blue=420;
Wide_blue=300;
Wide_White=270;
Wide_Leika=60;
var a,b:integer;
begin
With Form1.Canvas do // ê êàæäîé ïîñëåäóþùåé ñòðîêå äîáàâëÿòü Form1.Canvas.
Begin
(*obsii fon*)
Form1.Color:=clBlack;
(*fon vnutrennii sinii*)
Pen.Color:=clBlue;
Brush.Color:=clBlue; //óñòàíîâêà öâåòà çàëèâêè);
FillRect(Rect(x0,y0,x0+Wide_blue,y0+Hight_blue));
(*fon vnutrennii belii*)
Pen.Color:=clWhite;
Brush.Color:=clWhite;
FillRect(Rect(x0+round((Wide_Blue-Wide_White)/2),y0+40,x0+Wide_Blue-round((Wide_Blue-Wide_White)/2),y0+40+Wide_White));
(*leika*)
Brush.Color:=clBlack;
FillRect(Rect(x0+round((Wide_blue-10)/2),y0+40+10,x0+round((Wide_blue+10)/2),y0+40+20));
FillRect(Rect(x0+round((Wide_blue-Wide_Leika)/2),y0+40+20,x0+round((Wide_blue+Wide_Leika)/2),y0+40+30));
(*strui*)
Pen.Color:=clBlack; //óñòàíîâêà öâåòà ïåðà
Pen.Width:=3; //óñòàíîâêà ïîëùèíû ïåðà
PolyLine([Point(x0+round((Wide_blue-Wide_Leika)/2),y0+40+35),Point(x0+round((Wide_blue-Wide_White)/2)+10,y0+40+Wide_White-10)]);
PolyLine([Point(x0+round((Wide_blue+Wide_Leika)/2),y0+40+35),Point(x0+round((Wide_blue+Wide_White)/2)-10,y0+40+Wide_White-10)]);
PolyLine([Point(x0+round((Wide_blue-Wide_Leika)/2)+round((Wide_Leika)/4),y0+40+35),Point(x0+round((Wide_blue-Wide_Leika)/2),y0+40+30+40)]);
PolyLine([Point(x0+round((Wide_blue+Wide_Leika)/2)-round((Wide_Leika)/4),y0+40+35),Point(x0+round((Wide_blue+Wide_Leika)/2),y0+40+30+40)]);
PolyLine([Point(x0+round((Wide_blue)/2),y0+40+35),Point(x0+round((Wide_blue)/2),y0+40+30+40)]);
(*SSEAL & Sotrudnik GIBDD*)
Pen.Color:=clGreen;
Pen.Width:=1;
(*tulovise*)
PolyLine([Point(x0+round((Wide_blue)/2),y0+40+140),Point(x0+round((Wide_blue)/2),y0+40+200)]);
(*levaya ruka*)
PolyLine([Point(x0+round((Wide_blue)/2),y0+40+170),Point(x0+round((Wide_blue)/2)-40,y0+40+170-15)]);
PolyLine([Point(x0+round((Wide_blue)/2)-35,y0+40+145),Point(x0+round((Wide_blue)/2)-40,y0+40+170-15)]);
(*pravaya ruka*)
PolyLine([Point(x0+round((Wide_blue)/2),y0+40+170),Point(x0+round((Wide_blue)/2)+20,y0+40+170+30)]);
PolyLine([Point(x0+round((Wide_blue)/2)+10,y0+40+170+25),Point(x0+round((Wide_blue)/2)+20,y0+40+170+30)]);
PolyLine([Point(x0+round((Wide_blue)/2)+10,y0+40+170+30),Point(x0+round((Wide_blue)/2)+20,y0+40+170+30)]);
PolyLine([Point(x0+round((Wide_blue)/2)+15,y0+40+170+35),Point(x0+round((Wide_blue)/2)+20,y0+40+170+30)]);
PolyLine([Point(x0+round((Wide_blue)/2)+20,y0+40+170+37),Point(x0+round((Wide_blue)/2)+20,y0+40+170+30)]);
PolyLine([Point(x0+round((Wide_blue)/2)+25,y0+40+170+35),Point(x0+round((Wide_blue)/2)+20,y0+40+170+30)]);
(*levaya noga*)
PolyLine([Point(x0+round((Wide_blue)/2)-20,y0+40+Wide_White-45),Point(x0+round((Wide_blue)/2)-20,y0+40+Wide_White-15)]);
PolyLine([Point(x0+round((Wide_blue)/2)-20,y0+40+Wide_White-45),Point(x0+round((Wide_blue)/2),y0+40+200)]);
(*pravaya noga*)
PolyLine([Point(x0+round((Wide_blue)/2)+20,y0+40+Wide_White-45),Point(x0+round((Wide_blue)/2)+20,y0+40+Wide_White-15)]);
PolyLine([Point(x0+round((Wide_blue)/2)+20,y0+40+Wide_White-45),Point(x0+round((Wide_blue)/2),y0+40+200)]);
(*golova*)
Pen.Color:=clRed;
Brush.Color:=clRed;
Pen.Width:=1;
Pie(x0+round((Wide_blue)/2)-30,y0+40+110-30,x0+round((Wide_blue)/2)+30,y0+40+110+30,0,0,0,0);
(*schetka*)
Pen.Color:=clBlack;
Pen.Width:=2;
PolyLine([Point(x0+round((Wide_blue)/2)-15,y0+40+155),Point(x0+round((Wide_blue)/2)-15-round(45*cos(26/180*pi)),y0+40+155-round(45*sin(26/180*pi)))]);
Pen.Width:=1;
for b:=0 to 15 do
begin
a:=3*b;
PolyLine([Point(x0+round((Wide_blue)/2)-15-round(a*cos(26/180*pi)),y0+40+155-round(a*sin(26/180*pi))),
Point(x0+round((Wide_blue)/2)-15-round(a*cos(26/180*pi))+round(10*cos((90-26)/180*pi)),
y0+40+155-round(a*sin(26/180*pi))-round(10*sin((90-26)/180*pi)))]);
end;
end;
end;

Автор: мисс_граффити 16.07.2009 3:08

Цитата(сотрудник ГИБДД @ 15.07.2009 2:14) *

Нарушать??
Правила для кого придуманы? Выходит, знаки не нужны, так?
Мыться надо, где знак. А умеешь-неумеешь - никого не волнует.
Знаки соблюдать надо!

Почему нарушать?
Это ж не запрещающий знак. И я его на дорогах просто ни разу не видела. Не вешают у нас.
Заправки, например, тоже далеко не все обозначены. И кафешки...

Автор: Lapp 16.07.2009 17:48

Цитата(мисс_граффити @ 16.07.2009 0:08) *
Почему нарушать?
Это ж не запрещающий знак. И я его на дорогах просто ни разу не видела. Не вешают у нас.
Заправки, например, тоже далеко не все обозначены. И кафешки...

smile.gif. Sorry. Шутка была)).