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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2009, 20:01   #1
ohucheni
 
Аватар для ohucheni
 
Регистрация: 07.12.2008
Сообщений: 7
Стрелка Графика в паскале. движущийся рисунок

помогите пожалуйста ДОделать программу, которая должна осуществить движение графика-кардиоиды заданной параметрически
X = a*cos(t)*(1+cos(t)),
Y = a*sin(t)*(1+cos(t)), a>0, tЄ[0,2пи).
движение должно осуществляться от начала координат (0) до точек A,B,C,D, расположенных на осях равноудаленно от начала координат . причем движение надо сделать с поворотом этого графика на 90 градусов и с уменьшением масштаба в 1,5 раза по оси Х
т.е. его надо двигать от начала координат по осям на расстояние дельта вверх/вниз/влево/вправо при этом одновременно вращая его и изменяя масштаб!!
для иллюстрации выложил рисунок.
вот эта программа но без движения графика
Код:
Uses CRT, Graph;
 Var d,m:integer;
          a, x, y, t:real;
 Begin
 InitGraph(d,m,'C:\TP7\BGI');  {tut pomenyat' na vash adres papki "BGI" v pascal'e  dlya inicializacii grafiki}
SetColor (5);
Line(0, 240, 640, 240);
Line(320, 0, 320, 480);
t:=0; a:=3;
While t<= 6.28 do
begin
x:=a*cos(t)*(1+cos(t));
y:= a * sin(t)*(1+cos(t));
{centr} PutPixel(round(x*15) + 320, round(y*15) +240, 15);
x:=a*cos(t+0.785)*(1+cos(t-0.785));
y:=a*sin(t+0.785)*(1+cos(t-0.785));
{sleva} putpixel(round(x*10)+170,round(y*15)+240,15);
x:=a*cos(t-0.785)*(1+cos(t+0.785));
y:= a * sin(t-0.785)*(1+cos(t+0.785));
{sprava} PutPixel(round(x*10) + 470, round(y*15) +240, 15);
x:=-a*cos(t)*(1+cos(t));
y:= -a * sin(t)*(1+cos(t));
{sverhu} PutPixel(round(x*10) + 320, round(y*15) +90, 15);
x:=a*cos(t)*(1+cos(t));
y:= a * sin(t)*(1+cos(t));
{snizu} PutPixel(round(x*10) + 320, round(y*15) +390, 15);
{x:= x+ 0.01; }
t := t + 0.005;
end;
readln;
CloseGraph;
 End.
Изображения
Тип файла: jpg Изображение 004.jpg (495.5 Кб, 182 просмотров)
ohucheni вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
рисунок на паскале с помощью массива darika Паскаль, Turbo Pascal, PascalABC.NET 22 10.10.2009 19:47
графика в паскале Kravec Паскаль, Turbo Pascal, PascalABC.NET 5 16.04.2009 17:27
Движущийся червячек! zzss Общие вопросы C/C++ 3 08.12.2007 13:55