Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/231: Рейтинг темы: голосов - 231, средняя оценка - 4.65
26 / 26 / 3
Регистрация: 10.04.2013
Сообщений: 167
1

Анимация: Паровоз движется по рельсам, из трубы идет дым

13.04.2013, 21:38. Показов 41991. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Кто может помогите с 2мя задачами) только начал разбирать графику.. но не все получаеться.
Одно из заданий я нарисовал только анимацию сделать, а вот второе хз как. спасибо
Вот задания:
1)Нарисовать прямоугольник, который, вращаясь вокруг своего центра, движется по синусоиде вдоль экрана
2)Паровоз движется по рельсам, из трубы идет дым.
Вот паравоз рельсы и т.д я нарисовал)
Pascal
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
uses crt, graphABC;
begin
 
// verh
circle(25,70,15 );
floodfill(26,69,clblue);
circle(52,70,19 );
floodfill(53,69,clblue);
   circle(80,70,15 );
   floodfill(81,69,clblue);
 
circle(195,70,15 );
floodfill(196,69,clblue);
circle(222,70,19 );
floodfill(223,69,clblue);
   circle(250,70,15 );
   floodfill(251,69,clblue);
 
circle(365,70,15 );
floodfill(366,69,clblue);
circle(392,70,19 );
floodfill(393,69,clblue);
   circle(420,70,15 );
   floodfill(421,69,clblue);
    circle(520,70,25);
    floodfill(521,69,clyellow);
//--
       //рельсы +
    line(10,350,630,350);  //верхняя линия
    line(10,360,630,360);//нижняя линия
    lineto(630,350);                       //палочка по бокам рельс
    line(10,350,10,360); //палочки по бокам
    floodfill(351,359,clbrown);
      //рельсы -
 
      //поезд +
       line(400,300,361,329);
       line(361,329,400,329);
        lineto(400,300);
       floodfill(399,303,clSilver);  // цвет ковша поезда
 
      line(490,240,470,260);
      line(490,240,510,260);
      line(510,260,470,260);
 
            floodfill(486,245,clSilver);
          rectangle(470,260,510,310);
           floodfill(471,261,clSilver);
          Rectangle(400,330, 520, 300);
               floodfill(401,302,clSilver);
          rectangle(420,290,440,301);
          floodfill(421,292,clTeal);
 
           circle(430,340,10);      //колеса
             circle(490,340,10);    //колеса
             line(430,340,490,340);
             rectangle(480,270,500,301);
              //человек +
 
              circle(490,280,5);        //голова
              circle(489,279,1);  //глаз
              line(490,285,490,300);  //тулуб
              line(490,289,480,289);
 //человек -
 
 
      //-
 
 
     floodfill(1,1,clSkyBlue);
end.
Добавлено через 1 час 54 минуты
помогите пожалуйста
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.04.2013, 21:38
Ответы с готовыми решениями:

Графика: домик, из трубы идет дым
написать программу в котором изображается домик, с трубы которого идет дым, помогите пож-ста

Нарисовать домик, из трубы которого идет дым
Нарисовать домик из трубы которого идет дым

Нарисовать домик из трубы которого идет дым
Помогите нарисовать домик из трубы которого идет дым в паскале абц

Нарисовать паровоз, который движется по рельсам, из трубы идет дым
Нужно на завтра программу: Паровоз движется по рельсам, из трубы идет дым. Помогите пожалуйста,...

3
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
14.04.2013, 03:54 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
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
uses graphABC;
var xx, i: integer;
 
procedure Parovoz(x: integer);
begin
      //поезд +
 
       line(x+400,300,x+361,329);
       line(x+361,329,x+400,329);
        lineto(x+400,300);
       floodfill(x+399,303,clSilver);  // цвет ковша поезда
 
      line(x+490,240,x+470,260);
      line(x+490,240,x+510,260);
      line(x+510,260,x+470,260);
       floodfill(x+486,245,clSilver);
 
         setbrushcolor(clSilver);
          rectangle(x+470,260,x+510,310);
          Rectangle(x+400,330, x+540, 300);
          rectangle(x+525,300,x+535,250);
          rectangle(x+420,290,x+440,301);
 
           setbrushcolor(clwhite);
           circle(x+430,340,10);      //колеса
             circle(x+490,340,10);    //колеса
             line(x+430,340,x+490,340);
             rectangle(x+480,270,x+500,301);
              //человек +
 
              circle(x+490,280,5);        //голова
              circle(x+489,279,1);  //глаз
              line(x+490,285,x+490,300);  //тулуб
              line(x+490,289,x+480,289);
 //человек -
 
 //дым
 setbrushcolor(cldkgray);
 circle(x+540+random(5),220+random(5),10+random(5));
 circle(x+565+random(5),210+random(5),20+random(5));
 circle(x+590+random(5),200+random(5),20+random(5));
 circle(x+615+random(5),190+random(5),10+random(5));
end;
 
procedure Obl (x,y: integer);
begin
// verh
setbrushcolor(clblue);
circle(x+25+random(5),y+random(5),15 +random(5));
circle(x+52+random(5),y+random(5),19 +random(5));
circle(x+80+random(5),y+random(5),15 +random(5));
end;
 
procedure Fon;
begin
       //рельсы +
    line(0,350,640,350);  //верхняя линия
    line(0,360,640,360);//нижняя линия
    lineto(640,350);                       //палочка по бокам рельс
    floodfill(351,359,clbrown);
      //рельсы -
setbrushcolor(clyellow);
circle(520,70,25);
end;
 
begin
xx:=500;
lockdrawing;
while true do
      begin
      clearwindow(clSkyBlue);
      Fon;
      Parovoz(xx);
      for i:=1 to 3 do
          Obl (i*100-50,i*50);
      xx:=xx-5;
      sleep(10);
      redraw;
      if xx<-700 then xx:=500;
      end;
end.
3
26 / 26 / 3
Регистрация: 10.04.2013
Сообщений: 167
14.04.2013, 10:09  [ТС] 3
Спасибо огромное) я в восторге)
сори конечно за наглость, но если кто может, помогите еще с 1 заданием, с синусоидой)))
вот где то на форуме нашел шарик движеться по синусоиде)
может можно изменить ее
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
uses GraphABC;
var y0,t0,y1,t1,k,u: integer; y,t,i: real;
begin
lockdrawing;
setWindowSize(640,400);
y0:=0; t0:=200; k:=60;
lockdrawing;
for u:=1 to 50 do
  begin
   while y<=10 do
    begin
      clearwindow;
      setPenColor(clRed);
      t:=sin(y+i);
      y1:=trunc(y0+y*k);
      t1:=trunc(t0-t*k);
      circle(y1,t1,2);
      y:=y+0.02;
      sleep(10);
      redraw;
    end;
y:=0; i:=i+0.5;
end;
end.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
14.04.2013, 10:19 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

1) Примерно так
Pascal
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
uses graphABC;
var a,b,h,xc,yc,x1,y1,x2,y2,x3,y3,x4,y4,x5,y5:integer;
    x,m,u,u1,u2,r:real;
begin
xc:=windowwidth div 2; //центр экрана
yc:=windowheight div 2;
a:=30;//стороны прямоугольника
b:=15;
r:=sqrt(a*a+b*b);//радиус описанной окружности
u:=arctan(b/a);//угол между большей стороной и диагональю
u1:=0;//начальный угол поворота прямоугольника
h:=yc-round(r)-20;//амплитуда движения по синусоиде
m:=(xc-r)/(2*pi);//масштаб по Х
x:=-2*pi;//левый край
x5:=xc+round(x*m);//положение центра прямоугольника
y5:=yc-round(sin(x)*h);
lockdrawing;
while x5<=2*xc do
 begin
  clearwindow;
  x1:=x5+round(r*cos(u1+u));
  y1:=y5-round(r*sin(u1+u));
  x2:=x5+round(r*cos(u1+pi-u));
  y2:=y5-round(r*sin(u1+pi-u));
  x3:=x5+round(r*cos(u1+pi+u));
  y3:=y5-round(r*sin(u1+pi+u));
  x4:=x5+round(r*cos(u1-u));
  y4:=y5-round(r*sin(u1-u));
  setpencolor(clRed);
  line(x1,y1,x2,y2);
  line(x2,y2,x3,y3);
  line(x3,y3,x4,y4);
  line(x4,y4,x1,y1);
  sleep(300);
  u1:=u1+0.8;
  x:=x+0.1;
  x5:=xc+round(x*m);
  y5:=yc-round(sin(x)*h);
  redraw
 end;
end.
1
14.04.2013, 10:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.04.2013, 10:19
Помогаю со студенческими работами здесь

Нарисовать домик, из трубы которого идет дым
Нарисовать домик из трубы которого идет дым. Помогите!

Разработать приложение, в котором изображается домик, из трубы которого идет дым
Разработать приложение, в котором изображается домик, с трубы которого идет дым, а по небу...

Нарисовать паровоз, который выпускает дым
Нарисовать паровоз, который выпускает дым. Родительский класс – перемещающийся прямоугольник.

Выполнить анимацию, чтобы из трубы домика шел дым
Необходимо выполнить анимацию, что-бы из трубы домика шел дым. P.S Буду благодарен, кто поможет,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru