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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2009, 20:21   #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_Kulakov a_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.
Sined121 вне форума Ответить с цитированием
Старый 14.12.2009, 20:22   #2
Sined121
Пользователь
 
Регистрация: 30.03.2009
Сообщений: 26
По умолчанию

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

пытаюсь через цикл:
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);
Sined121 вне форума Ответить с цитированием
Старый 14.12.2009, 20:23   #4
Sined121
Пользователь
 
Регистрация: 30.03.2009
Сообщений: 26
По умолчанию

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

через динамику это накладно делать
Sined121 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль, Борланд Паскаль-в чем разница??? Vremya-Dengy Паскаль, Turbo Pascal, PascalABC.NET 13 31.05.2011 18:23
улитка паскаля Sined121 Помощь студентам 0 14.12.2009 20:15
паскаль! игорек фролоff Помощь студентам 1 17.05.2009 14:49
Паскаль Alfis Паскаль, Turbo Pascal, PascalABC.NET 2 07.12.2008 15:28