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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2009, 14:47   #1
Promagnum
Новичок
Джуниор
 
Регистрация: 13.12.2009
Сообщений: 1
По умолчанию Самолет,описывающий "Петлю Нестерова"

Всем добрый день. Суть моей проблемы заключается в том,что написал программу,которая рисует самолет,выполняющий "Петлю Нестерова",но у меня возникли проблемы с отображением самого самолета. По существу у меня получилась какая-то кучка,выполняющая петлю). Просьба, если кто может приведите пример построения самолета или натолкните на мысль) Буду очень признателен.
Текст программы:

Код:
uses crt, graph;
const xn = 0;
      yn = 350;
var gm, gd, x, y, i: integer;
    an, r: real;
    mas: array[1..9] of record
                         x: integer;
                         y: integer;
                         r: integer;
                         angle: real;
                         end;

procedure plane(xc, yc: integer; a: real);
begin
mas[1].x := xc - 48;
mas[1].y := yc - 8;
mas[2].x := xc + 2;
mas[2].y := yc - 8;
mas[3].x := xc - 8;
mas[3].y := yc - 43;
mas[4].x := xc + 2;
mas[4].y := yc - 43;
mas[5].x := xc + 17;
mas[5].y := yc - 8;
mas[6].x := xc + 47;
mas[6].y := yc - 8;
mas[7].x := xc + 62;
mas[7].y := yc + 7;
mas[8].x := xc + 17;
mas[8].y := yc + 7;
mas[9].x := xc + 7;
mas[9].y := yc + 42;
mas[1].angle := 2.97;
mas[2].angle := 1.3;
mas[3].angle := 1.8;
mas[4].angle := 1.55;
mas[5].angle := 0.5;
mas[6].angle := 0.18;
mas[7].angle := -0.1;
mas[8].angle := -0.35;
mas[9].angle := -1.4;
for i := 1 to 9 do
 mas[i].r := round(sqrt(sqr(mas[i].x - xc) + sqr(mas[i].y - yc)));
for i := 1 to 9 do begin
 mas[i].x := xc + round(mas[i].r * cos(mas[i].angle + a));
 mas[i].y := yc - round(mas[i].r * sin(mas[i].angle + a));
end;
moveto(mas[9].x, mas[9].y);
for i := 1 to 9 do
 lineto(mas[i].x, mas[i].y);
end;

begin
clrscr;
initgraph(gm, gd, 'C:\TP7\BGI');
setcolor(13);
settextstyle(DefaultFont, HorizDir, 1);
outtextxy(50, 430, 'Samolet vipolnyaet "petlu Nesterova".');
x := xn;
y := yn;
setcolor(15);
r := 0;
plane(x, y, r);
{zahod na petlu}
for x := xn to 250 do begin
 setcolor(0);
 plane(x - 1, y, r);
 setcolor(15);
 plane(x, y, r);
 delay(1500);
end;
{vipolnenie petli}
an := 0.015;
while an <= 6.28 do begin
 setcolor(0);
 plane(x, y, r);
 x := x + round(2.4 * cos(an));
 y := y - round(2.4 * sin(an));
 an := an + 0.015;
 r := r + 0.015;
 setcolor(15);
 plane(x, y, r);
 delay(3000);
end;
{vihod iz petli}
setcolor(0);
plane(x, y, r);
r := 0;
for x := 250 to 560 do begin
 setcolor(0);
 plane(x - 1, y, r);
 setcolor(15);
 plane(x, y, r);
 delay(1500);
end;
readln;
closegraph;
end.
Promagnum вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
блок "cont" с права не принимает значение "margin: 10px;" которое описано в body tabikA HTML и CSS 5 24.02.2009 21:50
Разработка игры "Самолет 2009" совместно с KrinGames RUmon Фриланс 5 10.02.2009 21:07
Под прикрытием "кризиса" наши доблестные "управители" хотят утопить нас в радиоактивных отходах mihali4 Свободное общение 1 17.01.2009 01:43
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51