Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2013, 02:14   #1
Dezodor
Новичок
Джуниор
 
Регистрация: 26.02.2013
Сообщений: 2
Вопрос Графика (PaskalABC.net)

Доброго времени суток.
1) Нужна небольшая помощь. Если у кого-то есть какие-нибудь коды программ на графику, то выложите сюда пожалуйста, буду непременно благодарен.
2) Есть такой код:

Код:
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.
Если кто-то разнообразит данную "наркоманию", то буду опять таки благодарен (цвет фона поменять, добавить пару новых положений гусеницы и т.п.).
Dezodor вне форума Ответить с цитированием
Старый 24.04.2013, 09:13   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

дорабатьывать чужой код с гусеницей за бесплатно никто за Вас не будет, это уже Вы сами постарайтесь!

что же касается первого вопроса. Вы поиском по форуму пройдитесь (слова графика, анимация), думаю, много в копилку насобираете примеров..

так, для затравки "Анимированный паровозик":
Код:
uses GraphABC;
var i: integer;
begin
  LockDrawing;
  for i := 1 to WindowWidth do begin
    SetWindowSize(1280, 600);
    ClearWindow;
    Line(0, 300, 1600, 300);
    FloodFill(0, 200, clMoneyGreen);
    FloodFill(400, 500, clSilver);

    Line(i + 380, 200, i + 410, 200);
    Line(i + 380, 200, i + 390, 210);
    Line(i + 400, 210, i + 410, 200);

    Line(i + 100, 270, i + 120, 270);
    Line(i + 300, 270, i + 320, 270);
    Line(i + 200, 270, i + 220, 270);

    SetBrushColor(clRed);
    setfontcolor(clblue);
    setfontsize(28);
    Rectangle(i + 20, 230, i + 100, 280);
    TextOut(48 + i, 231, 'ЖЭ');
    Rectangle(i + 120, 230, i + 200, 280);
    TextOut(144 + i, 231, 'ДЭ');
    Rectangle(i + 220, 230, i + 300, 280);
    TextOut(246 + i, 231, 'ВЭ');

    SetBrushColor(clYellow);
    RoundRect(i + 320, 200, i + 365, 280, 30, 20);
    SetBrushColor(clSkyBlue);
    RoundRect(i + 320, 230, i + 420, 280, 30, 20);
    Rectangle(i + 390, 230, i + 400, 210);
    SetBrushColor(clyellow);

    Circle(i + 30, 290, 10);
    Circle(i + 90, 290, 10);

    Circle(i + 130, 290, 10);
    Circle(i + 190, 290, 10);

    Circle(i + 230, 290, 10);
    Circle(i + 290, 290, 10);

    Circle(i + 345, 278, 22);
    Circle(i + 377, 288, 12);
    Circle(i + 400, 288, 12);
    Redraw;

    SetFontColor(clBlack);
  end;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.04.2013, 01:47   #3
Dezodor
Новичок
Джуниор
 
Регистрация: 26.02.2013
Сообщений: 2
По умолчанию

понял)
спасибо!
Dezodor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Графики в PaskalABC Солнышконанебе Помощь студентам 2 10.04.2012 15:36
графика, pascal.net альбертоо Паскаль, Turbo Pascal, PascalABC.NET 2 28.01.2012 19:14
Стрелка в PaskalABC. Falter Паскаль, Turbo Pascal, PascalABC.NET 0 08.01.2011 12:53
Графика PascalABC.NET Ученик. Помощь студентам 6 04.02.2010 15:24