Помощь - Поиск - Пользователи - Календарь
Полная версия: Фигуры Лиссажу
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
vzhik
Вечер добрый=)

Прошу помощи, потому как сам залез в тупик...
Это кусочек моей курсовой, где на экран мне надо вывести три фигуры Лиссажу, задаваемые с разными частотами(w). Привожу код, где рисуется первая фигура(остальные выкладывать нет смысла, потому как они отличаются только частотой и координатами центра). Так вот суть проблемы: преподаватель просит переделать програму так, чтобы фигура плавно из исходной точки вырисовывалась одним пикселем, а у меня рисует как-то отрывисто. Подскажите, если не трудно, как это сделать.


Program KURS;

uses Graph,crt;

const
A=50;w1=1;w2=2;

var
driver,mode,x,y,t:integer;

procedure FFigure(w1,w2:integer);
begin
driver:=detect;
mode:=detect;
initgraph(driver,mode,'c:\bp\bgi');
for t:=1 to 1000 do
begin
OutTextXY(5, 10, 'first graph');
putpixel(x,y,white);
x:=((GetMaxx div 2)+round(a*cos(w1*t)));
y:=((round(GetMaxy/8))+round(a*sin(w2*t)));
delay(500);
end;
end;

begin
FFigure(w1,w2);
end.
volvo
Sin/Cos считают, что им передаются радианы... А ты по-моему хочешь работать в градусах. Я прав? smile.gif

   x:=((GetMaxx div 2)+round(a*cos(w1*t / (180/Pi)))); { <--- Переводим T в градусы }
y:=((round(GetMaxy/8))+round(a*sin(w2*t / (180/Pi)))); { <--- Здесь тоже }

и получаем отрисовку "за один проход" ... Так?
vzhik
как же обидно, что сам не додумался, знал бы ты сколько я над этим корпел=)
вроде проверял, везде правильно...а тут такой очевидный ляпсус=)
спасибо огромное)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.