Как сделать гусеницу в паскале
Перейти к содержимому

Как сделать гусеницу в паскале

  • автор:

Как сделать гусеницу в паскале

Регистрация: 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 .

Нарисовать гусеницу

Author24 — интернет-сервис помощи студентам

Нарисуйте на экране компьютера ползущую гусеницу.
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.

Похожие вопросы

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *