flait
Сообщение
#6572 15.10.2007, 21:12
если кто знает, помогите или знает где найти:
Изобразить кривую R = a*cos(φ) + L.
Построение выполнить для a>L. Обеспечить вращение изображения в плоскости экрана вокруг центра по часовой стрелке с одновременным перемещением по средней вертикали сверху вниз. По достижении нижнего края экрана, появляются аналогичные изображения в левом и правом нижних углах и перемещаются вверх до исчезновения с экрана.
Просто я реально не знаю как это сделать
flait
Сообщение
#6918 27.10.2007, 12:15
Ребяты, помогите пожалуйста, очень нада
creer
Сообщение
#6986 28.10.2007, 18:39
Вот основа:
Код
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
Сообщение
#7008 29.10.2007, 2:47
2creer: мы всегда рады новым помощникам, но не всегда стоит полностью выкладывать готовое решение.
creer
Сообщение
#7011 29.10.2007, 7:38
Julia, если я правильно понял задание, решение далеко не полное, необходимо еще обеспечить перемещение (с учетом двойной прорисовки данной фигуры при частичном выходе за края графической области) и вращение фигуры по экрану в динамике. Для этого придется слегка изменить процедуру рисования и добавить реакцию на клавиши или сдвигать фигуру по таймеру.
Если бы проект "Решебник.Ру" занимался решением задач по информатике, я бы не стал приводить этот код.
flait
Сообщение
#7012 29.10.2007, 10:29
Ребяты, а вы это в дельфях писали???
creer
Сообщение
#7032 29.10.2007, 17:55
Нет, это обычный паскаль.
flait
Сообщение
#7043 30.10.2007, 7:48
SmallInt - пишет как неизвестный индитификатор
creer
Сообщение
#7045 30.10.2007, 9:45
Замени на "integer". Fpc не откомпилировал с integer'ом.
Посмотри как работать с графикой в Паскале, думаю пригодится :-).
RisingForceOnline
Сообщение
#7253 5.11.2007, 15:08
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
Сообщение
#7260 5.11.2007, 15:57
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
Сообщение
#7264 5.11.2007, 16:11
ладно,давай по-русски))
я и пишу uses GRAPH;
эт я там опечатался,переиграл сегодня в рф)))
Мне паскаль пишет, что не найден GRAPH.TPU!,но он есть у мну в папке юнитс, и че он работает???
и откуда взять этот турбо?
creer
Сообщение
#7276 5.11.2007, 17:15
Я и на русском умею :-)
turbo.tpl у меня лежит в \BP\BIN :-)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.