Помощь - Поиск - Пользователи - Календарь
Полная версия: Паскаль > Информатика / Программирование
Образовательный студенческий форум > Другие дисциплины > Информатика / Программирование
flait
если кто знает, помогите или знает где найти:
Изобразить кривую R = a*cos(φ) + L.
Построение выполнить для a>L. Обеспечить вращение изображения в плоскости экрана вокруг центра по часовой стрелке с одновременным перемещением по средней вертикали сверху вниз. По достижении нижнего края экрана, появляются аналогичные изображения в левом и правом нижних углах и перемещаются вверх до исчезновения с экрана.

Просто я реально не знаю как это сделать
flait
Ребяты, помогите пожалуйста, очень нада
creer
Вот основа:
Код
Program Project1;
Uses Graph;

procedure InitGr;
var
  gd, gm: SmallInt;
begin
  gd:=0;
  gm:=0;
  InitGraph(gd, gm, '');
end;

function f(a,phi,L:real):real;
begin
  Result:=a*cos(phi)+L;
end;

procedure Draw(x,y:integer;ang:real); //Угол в градусах
const
  countpixels = 360;
  expand = 100;
var
  a,phi,L:real;
  i:integer;
begin
//x=r*cos(phi);
//y=r*sin(phi);
a:=2;
L:=1;

SetColor(15);

phi:=0;
MoveTo(round(f(a,phi,L)*cos(phi+2*pi/360*ang)*expand)+x,round(f(a,phi,L)*sin(phi+2*pi/360*ang)*expand+y));

for i:=1 to countpixels do
begin
  phi:=2*pi/countpixels*i;
  LineTo(round(f(a,phi,L)*cos(phi+2*pi/360*ang)*expand)+x,round(f(a,phi,L)*sin(phi+2*pi/360*ang)*expand+y));
end;

end;
begin
  InitGr;
  Draw(100,200,50);
  CloseGraph;
end.


Draw(100,200,50); - рисует кривую с началом координат в точке (100;200) и поворотом на 50 градусов по часовой стрелке.
Julia
2creer: мы всегда рады новым помощникам, но не всегда стоит полностью выкладывать готовое решение.
creer
Julia, если я правильно понял задание, решение далеко не полное, необходимо еще обеспечить перемещение (с учетом двойной прорисовки данной фигуры при частичном выходе за края графической области) и вращение фигуры по экрану в динамике. Для этого придется слегка изменить процедуру рисования и добавить реакцию на клавиши или сдвигать фигуру по таймеру.
Если бы проект "Решебник.Ру" занимался решением задач по информатике, я бы не стал приводить этот код.
flait
Ребяты, а вы это в дельфях писали???
creer
Нет, это обычный паскаль.
flait
SmallInt - пишет как неизвестный индитификатор
creer
Замени на "integer". Fpc не откомпилировал с integer'ом.
Посмотри как работать с графикой в Паскале, думаю пригодится :-).
RisingForceOnline
Sirs!, what it is necessary to make that GRAPH to start? Then i write "var graph;"pascal say to me "file not found: GRAPH.TPU"
I have this file in folder "units".What happened?Help me,please=))

not "var", sorry I Write "units GRAPH;",)xD
creer
You must write "uses graph;" :-)
In Borland Pascal help wrote "To compile a program that uses the Graph unit, you don't need any external files. (Of course, you'll need your program's source code, the compiler, and access to the standard units in TURBO.TPL)."
May be, you need "turbo.tpl" file.
RisingForceOnline
ладно,давай по-русски))
я и пишу uses GRAPH;
эт я там опечатался,переиграл сегодня в рф)))

Мне паскаль пишет, что не найден GRAPH.TPU!,но он есть у мну в папке юнитс, и че он работает???
и откуда взять этот турбо?
creer
Я и на русском умею :-)
turbo.tpl у меня лежит в \BP\BIN :-)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2025 Invision Power Services, Inc.