Помощь - Поиск - Пользователи - Календарь
Полная версия: Дорожный знак
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
SSEAL
Нужно нарисовать дорожный знак мойка автомобиля на paintbox. Как это сделать?
мисс_граффити
А как этот знак выглядит? Нарисуй в чем-нить, выложи - набросаю код.
Пока что просто не представляю...
volvo
Цитата(мисс_граффити @ 13.07.2009 9:57) *
Пока что просто не представляю...

blink.gif http://www.vodish.ru/theory/sign/7/7.5/
мисс_граффити
Мдя... Надо ПДД повторять.
Чем пользуюсь постоянно - то помню. А таких на дорогах ни разу не видела...

SSEAL, вопрос еще актуален?
помой меня! ))
Цитата(мисс_граффити @ 14.07.2009 11:00) *
Чем пользуюсь постоянно - то помню
Немытенькая ездишь? smile.gif
Unconnected
Машину мыть сам не умеешь?
сотрудник ГИБДД
Цитата(Unconnected @ 14.07.2009 13:44) *
Машину мыть сам не умеешь?
Нарушать??
Правила для кого придуманы? Выходит, знаки не нужны, так?
Мыться надо, где знак. А умеешь-неумеешь - никого не волнует.
Знаки соблюдать надо!
sheka
Только вставляй, уважаемый 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-
Цитата
это же на Делфи просили...
Эту же картинку совсем не сложно отрисовать на Canvas (код очень незначительно изменится).
Гость
Тема еще актуальна,если что
SSEAL
Мне надо чтоб именно на canvas было нарисовано
sheka
Ладно, раз тебе это делать лень, буду учить графику в делфи. smile.gif
sheka
 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;
мисс_граффити
Цитата(сотрудник ГИБДД @ 15.07.2009 2:14) *

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

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

smile.gif. Sorry. Шутка была)).
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.