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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2009, 20:15   #1
Sined121
Пользователь
 
Регистрация: 30.03.2009
Сообщений: 26
По умолчанию улитка паскаля

вот прога:
Код:
uses Crt, Graph;

const
   A = 100;
   B = 70;
   L = 180;

var
   grDriver, grMode : Integer;
   MidX, MidY : Integer;

procedure DrawOsi;
begin
   {vivod OSEI}
   setcolor(red);
   moveto(1, Midy);
   lineto(GetMaxX, Midy);
   moveto(MidX, 1);
   lineto(MidX, GetMaxY);
end;

procedure Draw(dx : integer; dy : integer; fi : real; sy : real);
var
   g : Integer;
   t : Real;
   NX, NY : Real;
   X, Y : Real;
   poly : Array [0..L*2] Of PointType;
begin
   fi := fi * Pi / 180;
   for g := 0 to 2*L do begin
      t := g * Pi / 180;
      X := A * Sqr(Cos(t)) + B * Cos(t);
      Y := A * Cos(t) * Sin(t) + B * Sin(t);

      NX := (X-dx)*cos(fi) - (Y-dy)*sin(fi);
      NY := (X-dx)*sin(fi)*sy + (Y-dy)*cos(fi)*sy;

      X := MidX + NX;
      Y := MidY - NY;

      poly[g].x := round (X);
      poly[g].y := round(Y);

   end;
   DrawOsi;
   setcolor(yellow);
   SetFillStyle(LtSlashFill, yellow);
   FillPoly(2*L+1, poly);
   delay(60000); delay(60000);
   ClearDevice;
end;

begin
   grDriver := Detect;
   InitGraph(grDriver, grMode, '');


   outtextxy(100,70,'ulitka_pascalya');
   setcolor(green);


   outtextxy(135,140,'Vipolnil_magon');

   setcolor(red);

   outtextxy(100,210,'proveril_Kulakova_T_N');


   readln;
    cleardevice;

   MidX := GetMaxX div 2;
   MidY := GetMaxY div 2;

   Draw(0, 0, 0, 1);

   Draw(25, 0, L/3, 0.5);
   Draw(0, 20, 5*L/6, 1);
   Draw(-25, 0, 4*L/3, 0.5);
   Draw(0, -20, 11*L/6, 1);

   CloseGraph;
end.
У нас принято оформлять код специальным тэгом - кнопочка "#".
Модератор


20:16

надо сделать переход от одной фигуры к другой(анимация)

20:17

вот пытаюсь через цикл:
Код:
MidX := GetMaxX div 2;
   MidY := GetMaxY div 2;

   Draw(0, 0, 0, 1);

     for j:=0 to 25 do

    {Draw(j, 0, 0, 1);}
   Draw(j, 0, L/3, 0.5);


   Draw(0, 20, 5*L/6, 1);
   Draw(-25, 0, 4*L/3, 0.5);
   Draw(0, -20, 11*L/6, 1);
У нас принято оформлять код специальным тэгом - кнопочка "#".
Модератор


20:17

а она движется не туда. помогите плиз

20:26

через динамику сильно накладно делать

У нас принято пользоваться кнопочкой "Правка", дабы не плодить посты подряд, друг за другом.
Модератор

Последний раз редактировалось mihali4; 14.12.2009 в 22:22.
Sined121 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
от паскаля к с++ WOLFak Обсуждение статей 11 27.01.2010 00:18
из Паскаля в С++ Lees27 Общие вопросы C/C++ 1 14.09.2009 23:29
Из паскаля в ассемблер Archiserafim Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 16 03.09.2009 22:02
Графика Паскаля ErnurN Паскаль, Turbo Pascal, PascalABC.NET 3 03.06.2009 17:04