Как сделать гусеницу в паскале
Регистрация: 21.01.2011
Сообщений: 1
графика в Pascal ABC
Дана окружность, представляющая собой кольцевую железную дорогу, имеющую определенный радиус. По дороге происходит движение поездов. Каждый поезд характеризуется своей скоростью движения. Но кольцевой дороге расположены светофоры. Светофор показывает:
• красный свет, если на участке от него до следующего светофора имеется хотя бы один поезд
• желтый свет, если поезд имеется на втором от него участке
• зеленый, если на двух ближайших участках поездов нет.
Скорость движения поезда определяется по следующему правилу:
• едет с половинной скоростью, если пересек светофор не желтый
• едет с полной скоростью, если на зеленый
• стоит перед светофором, если красный.
(дописать код. )
uses graphabc,crt; const t=500; begin setwindowsize (600, 600); setpencolor (clblack); setbrushcolor (clblack); rectangle (45, 45, 105, 225 ); setpencolor (clred); setbrushcolor (clred); circle (75, 75, 25); setpencolor (clyellow); setbrushcolor (clyellow); circle (75, 130, 25); setpencolor (clgreen); setbrushcolor (clgreen); circle (75, 185, 25); setpencolor (clblack); setbrushcolor (clblack); rectangle (70, 225, 80, 300); setbrushcolor (clDkGray); circle (75, 130, 25); setbrushcolor (clgreen); circle (75, 185, 25); repeat setbrushcolor (clDkGray); circle (75, 185, 25); setbrushcolor (clred); circle (75, 75, 25); delay(t); setbrushcolor (clDkGray); circle (75, 75, 25); setbrushcolor (clyellow); circle (75, 130, 25); delay(t); setbrushcolor (clDkGray); circle (75, 130, 25); setbrushcolor (clgreen); circle (75, 185, 25); delay(t); until keypressed; end.
________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.
Последний раз редактировалось Serge_Bliznykov; 31.03.2012 в 11:08 .
Нарисовать гусеницу
Нарисуйте на экране компьютера ползущую гусеницу.
19. Нарисуйте на экране компьютера ползущую гусеницу. Гусеница проползает через весь экран и.
Нарисовать гусеницу
написать программу которая нарисует гусеницу
Нарисовать гусеницу
Нарисовать гусеницу изображенную на рисунке
137 / 136 / 127
Регистрация: 16.03.2011
Сообщений: 461
Сообщение было отмечено Памирыч как решение
Решение
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
uses GraphABC; var i,x,y,k:integer; procedure Gus; begin SetPenWidth(3); SetBrushColor(clGreen); circle(i,y,k); SetBrushColor(clMoneyGreen); circle(i+x,y,k); SetBrushColor(clGreen); circle(i+x*2,y,k); SetBrushColor(clMoneyGreen); circle(i+x*3,y,k); SetBrushColor(clGreen); circle(i+x*4,y,k); SetBrushColor(clMoneyGreen); circle(i+x*5,y,k); SetBrushColor(clGreen); circle(i+x*6,y,k); SetBrushColor(clMoneyGreen); circle(i+x*7+round(0.3*k),y-round(0.3*k),round(1.3*k)); SetBrushColor(clblack); circle(i+x*7,y-k,round(0.1*k)); circle(i+x*7+round(0.6*k),y-k,round(0.1*k)); Arc(i+x*7+round(0.2*k),y-round(0.3*k),round(0.2*k),k*5,round(0.1*k)); Arc(i+x*7+round(0.2*k),y+round(0.3*k),round(0.1*k),k*4,round(0.1*k)); Line(i+x*7-round(0.3*k),y-round(3.1*k),i+x*7,y-round(1.6*k)); Line(i+x*7+k,y-round(3.1*k),i+x*7+k-10,y-round(1.6*k)); circle(i+x*7-round(0.3*k),y-round(3.1*k),round(0.2*k)); circle(i+x*7+k,y-round(3.1*k),round(0.2*k)); end; procedure Gus2; begin SetPenWidth(3); SetBrushColor(clGreen); circle(i+x,y,k); SetBrushColor(clMoneyGreen); circle(i+x*2,y,k); SetBrushColor(clGreen); circle(i+x*3-round(0.2*k),y-round(0.6*k),k); SetBrushColor(clMoneyGreen); circle(i+x*4-round(0.7*k),y-k*2,k); SetBrushColor(clGreen); circle(i+x*5-round(0.7*k),y-k*2,k); SetBrushColor(clMoneyGreen); circle(i+x*6-round(1.3*k),y-round(0.6*k),k); SetBrushColor(clGreen); circle(i+x*7-round(1.4*k),y,k); SetBrushColor(clMoneyGreen); circle(i+x*7+round(0.9*k),y-round(0.3*k),round(1.3*k)); SetBrushColor(clblack); circle(i+x*7+round(0.6*k),y-k,round(0.1*k)); circle(i+x*7+round(1.2*k),y-k,round(0.1*k)); Arc(i+x*7+round(0.8*k),y-round(0.3*k),round(0.2*k),k*5,round(0.1*k)); Arc(i+x*7+round(0.8*k),y+round(0.3*k),round(0.1*k),k*4,round(0.1*k)); Line(i+x*7+round(0.2*k),y-round(3.1*k),i+x*7+round(0.6*k),y-round(1.6*k)); Line(i+x*7+round(1.5*k),y-round(3.1*k),i+x*7+round(1.2*k),y-round(1.6*k)); circle(i+x*7+round(0.2*k),y-round(3.1*k),round(0.2*k)); circle(i+x*7+round(1.5*k),y-round(3.1*k),round(0.2*k)); end; begin x:=60; y:=200; k:=30; cls; SetWindowWidth(640); SetWindowHeight(460); LockDrawing; for i:=50 to 500 do begin gus; RedRaw; Sleep(500); clearwindow; gus2; RedRaw; Sleep(500); clearwindow; end; end.
Как сделать гусеницу в паскале
не совсем понятно, что означает «сделать через процедуры».
program Gusinica; uses GraphABC; var i:integer; procedure ShowOneBodyElement(x, y : integer; SizeBody : integer; BodyColor : integer); begin SetBrushColor(BodyColor); circle(x,y,SizeBody); end; procedure ShowGusenica(x, y : integer; CountOfBody : integer; SizeBody : integer); var i : integer; f : text; begin for i:=0 to CountOfBody-1 do if odd(i) then ShowOneBodyElement(x+(i*SizeBody*2), y, SizeBody, clMoneyGreen) else ShowOneBodyElement(x+(i*SizeBody*2), y, SizeBody, clGreen); x := x + CountOfBody*SizeBody*2; //Голова SetBrushColor(clMoneyGreen); circle(x+9,y-10, 40); //Глазки SetBrushColor(clblack); circle(x,y-30,4); SetBrushColor(clblack); circle(x+20,y-30,4); //Носик SetPenWidth(3); Arc(x+8,y-10,5,150,10); //Ротик Arc(x+5,y+10,4,120,10); SetBrushColor(clblack); //Ушки Line(x-10,y-85,x,y-48); SetBrushColor(clblack); Line(x+30,y-85,x+20,y-48); SetBrushColor(clblack); circle(x-10,y-90,6); SetBrushColor(clblack); circle(x+30,y-90,6); end; begin SetWindowWidth(800); SetWindowHeight(460); LockDrawing; for i:=50 to 250 do begin ShowGusenica(i-10, 250, 7, 30); ReDraw; Sleep(10); ClearWindow(clwhite); end; end.
Последний раз редактировалось Serge_Bliznykov; 13.06.2010 в 18:43 .
Serge_Bliznykov |
Посмотреть профиль |
Найти ещё сообщения от Serge_Bliznykov |
Пользователь
Регистрация: 02.03.2010
Сообщений: 59
Serge_Bliznykov, через процедуру расписать нужно её как то, и что б она ползала! Мне сказали два вида положения гусеницы надо нарисовать, что я и сделала т.е. вот:
SetBrushColor(clGreen); circle(i-10,200,30); SetBrushColor(clMoneyGreen); circle(i+50,200,30); SetBrushColor(clGreen); circle(i+110,200,30); SetBrushColor(clMoneyGreen); circle(i+170,200,30); SetBrushColor(clGreen); circle(i+230,200,30); SetBrushColor(clMoneyGreen); circle(i+290,200,30); SetBrushColor(clGreen); circle(i+350,200,30); //Голова SetBrushColor(clMoneyGreen); circle(i+419,190,40); //Глазки SetBrushColor(clblack); circle(i+410,170,4); SetBrushColor(clblack); circle(i+430,170,4); //Носик SetPenWidth(3); Arc(i+418,190,5,150,10); //Ротик Arc(i+415,210,4,120,10); SetBrushColor(clblack); //Ушки Line(i+400,115,i+410,152); SetBrushColor(clblack); Line(i+440,115,i+430,152); SetBrushColor(clblack); circle(i+400,110,6); SetBrushColor(clblack); circle(i+440,110,6);
SetBrushColor(clGreen); circle(i+30,200,30); SetBrushColor(clMoneyGreen); circle(i+90,200,30); SetBrushColor(clGreen); circle(i+145,180,30); SetBrushColor(clMoneyGreen); circle(i+190,140,30); SetBrushColor(clGreen); circle(i+250,140,30); SetBrushColor(clMoneyGreen); circle(i+295,180,30); SetBrushColor(clGreen); circle(i+350,200,30); //Голова SetBrushColor(clMoneyGreen); circle(i+419,190,40); //Глазки SetBrushColor(clblack); circle(i+410,170,4); SetBrushColor(clblack); circle(i+430,170,4); //Носик SetPenWidth(3); Arc(i+418,190,5,150,10); //Ротик Arc(i+415,210,4,120,10); SetBrushColor(clblack); //Ушки Line(i+400,115,i+410,152); SetBrushColor(clblack); Line(i+440,115,i+430,152); SetBrushColor(clblack); circle(i+400,110,6); SetBrushColor(clblack); circle(i+440,110,6);
Нужно наверно, что б он первое положение гуссиницы показывал, через секунду второе. И так повторялся!
а может и по другому как то можно?
Последний раз редактировалось blondino4ka_milk; 13.06.2010 в 18:40 .
blondino4ka_milk |
Посмотреть профиль |
Найти ещё сообщения от blondino4ka_milk |
Пользователь
Регистрация: 02.03.2010
Сообщений: 59
я вот так сделала!
не знаю как можно ещё..
program Gusinica; uses GraphABC; var i,x,y,k:integer; procedure Gus; // Процедура рисования 1-го положения гусеницы begin SetPenWidth(3); SetBrushColor(clGreen); circle(i,y,k); SetBrushColor(clMoneyGreen); circle(i+x,y,k); SetBrushColor(clGreen); circle(i+x*2,y,k); SetBrushColor(clMoneyGreen); circle(i+x*3,y,k); SetBrushColor(clGreen); circle(i+x*4,y,k); SetBrushColor(clMoneyGreen); circle(i+x*5,y,k); SetBrushColor(clGreen); circle(i+x*6,y,k); //Голова SetBrushColor(clMoneyGreen); circle(i+x*7+round(0.3*k),y-round(0.3*k),round(1.3*k)); //Глазки SetBrushColor(clblack); circle(i+x*7,y-k,round(0.1*k)); circle(i+x*7+round(0.6*k),y-k,round(0.1*k)); //Носик Arc(i+x*7+round(0.2*k),y-round(0.3*k),round(0.2*k),k*5,round(0.1*k)); //Ротик Arc(i+x*7+round(0.2*k),y+round(0.3*k),round(0.1*k),k*4,round(0.1*k)); //Ушки Line(i+x*7-round(0.3*k),y-round(3.1*k),i+x*7,y-round(1.6*k)); Line(i+x*7+k,y-round(3.1*k),i+x*7+k-10,y-round(1.6*k)); circle(i+x*7-round(0.3*k),y-round(3.1*k),round(0.2*k)); circle(i+x*7+k,y-round(3.1*k),round(0.2*k)); end; procedure Gus2; //Процедура рисования 2-го положения гусеницы begin SetPenWidth(3); SetBrushColor(clGreen); circle(i+x,y,k); SetBrushColor(clMoneyGreen); circle(i+x*2,y,k); SetBrushColor(clGreen); circle(i+x*3-round(0.2*k),y-round(0.6*k),k); SetBrushColor(clMoneyGreen); circle(i+x*4-round(0.7*k),y-k*2,k); SetBrushColor(clGreen); circle(i+x*5-round(0.7*k),y-k*2,k); SetBrushColor(clMoneyGreen); circle(i+x*6-round(1.3*k),y-round(0.6*k),k); SetBrushColor(clGreen); circle(i+x*7-round(1.4*k),y,k); //Голова SetBrushColor(clMoneyGreen); circle(i+x*7+round(0.9*k),y-round(0.3*k),round(1.3*k)); //Глазки SetBrushColor(clblack); circle(i+x*7+round(0.6*k),y-k,round(0.1*k)); circle(i+x*7+round(1.2*k),y-k,round(0.1*k)); //Носик Arc(i+x*7+round(0.8*k),y-round(0.3*k),round(0.2*k),k*5,round(0.1*k)); //Ротик Arc(i+x*7+round(0.8*k),y+round(0.3*k),round(0.1*k),k*4,round(0.1*k)); //Ушки Line(i+x*7+round(0.2*k),y-round(3.1*k),i+x*7+round(0.6*k),y-round(1.6*k)); Line(i+x*7+round(1.5*k),y-round(3.1*k),i+x*7+round(1.2*k),y-round(1.6*k)); circle(i+x*7+round(0.2*k),y-round(3.1*k),round(0.2*k)); circle(i+x*7+round(1.5*k),y-round(3.1*k),round(0.2*k)); end; begin x:=60; y:=200; k:=30; cls; SetWindowWidth(640); SetWindowHeight(460); LockDrawing; for i:=50 to 500 do begin gus; RedRaw; Sleep(500); clearwindow; gus2; RedRaw; Sleep(500); clearwindow; end; end.
blondino4ka_milk |
Посмотреть профиль |
Найти ещё сообщения от blondino4ka_milk |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Turbo Pascal or Pascal ABC | Ikram | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 27.04.2010 13:44 |
Pascal ABC | ArcaN0id | Помощь студентам | 8 | 07.12.2009 15:24 |
C++ аналог Pascal ABC | russian-stalker | Софт | 2 | 24.11.2009 18:15 |
надо нарисовать рисунки в паскале
Line(x1, y1, x2, y2) – рисует отрезок с началом в точке (x1,y1) и концом в точке (x2,y2).
Circle(x,y,r) – рисует окружность с центром в точке (x,y) и радиусом r.
в помощь. рисуй.
Кубик Рубика будем рисовать в 3D? Тогда придётся познакомиться с понятием обратной матрицы.
Гусеницу же делаем так: открываем фотошоп или просто находим фотографию подходящей гусеницы. Cохраняем её в файле допустим zver.bmp
После этого
var
p: picture;
begin
.
P := new Picture(‘zver.bmp’);//загружаем картинку
P.Draw(0,0);// выводим её на экран
.
end.
Похожие вопросы