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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2010, 22:28   #1
radon228
Пользователь
 
Регистрация: 13.05.2010
Сообщений: 27
По умолчанию паскаль.графика.

Задать цвета фона - синий. цвет фигуры - жёлтый.(фигура в виде буквы<<H>>)Клавишами управления курсором поворачивать фигуру вокруг своей оси.


вот код:
Код:
 Program sfsdf;
Uses graph;
Var Device,mode:Integer;
Begin
     Device:=0;
     InitGraph(Device,Mode,'c:\Turbo');
     Setcolor(Yellow);
Setbkcolor(1);
     SetFillStyle(SolidFill,Yellow);
     Bar(150,400,190,100);
     Bar(190,250,300,210);
     Bar(350,100,300,400);
Readln;
CloseGraph;
END.

Как сделать,чтобы клавишами управления курсором поворачивать фигуру вокруг своей оси?надеюсь на вашу помощь.

Последний раз редактировалось radon228; 01.06.2010 в 22:30.
radon228 вне форума Ответить с цитированием
Старый 01.06.2010, 22:50   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

radon228, а зачем Вы так делаете подобные глупости?!!! (я уже не говорю о том, что Вы нарушаете правила форума о дублировании темы!)

Вам дали рабочую программу!
Графики.Паскаль пост #11
Stilet написал Вам рабочий код.
И заметьте — ПРАВИЛЬНУЮ программу написал!

Мало того, что у Вас не хватило желания немножко подумать и доработать её...
Так Вы ещё создаёте новую тему и публикуете какой-то убогий огрызок...
А вращаться рисунок, наверное, начнёт сам по себе, да?!!! И никакие углы при этом не нужны, это же лишнее, так?!

ну-ну...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.06.2010, 22:59   #3
radon228
Пользователь
 
Регистрация: 13.05.2010
Сообщений: 27
По умолчанию

приношу свои извинения,можете удалять сказанные по вашим словам глупости...
radon228 вне форума Ответить с цитированием
Старый 02.06.2010, 22:40   #4
radon228
Пользователь
 
Регистрация: 13.05.2010
Сообщений: 27
По умолчанию

сейчас программа работает так,буква Н вращается вокруг точки центра,а мне нужно чтобы она вращалась вокруг своей оси,как это сделать?
Код:
uses crt,graph;
{вращение точки вокруг центра}
procedure Vrash(a:real;var x,y:integer;x0,y0,d:integer);
begin
a:=a*pi/180;
x:=x0+round(d*cos(a));
y:=y0-round(d*sin(a));
end;
 
var gd,gm:integer;
    ch:char;
    x0,y0,h,d,a1x,a1y,a2x,a2y,a3x,a3y,a4x,a4y,a5x,a5y,a6x,a6y,k:integer;
    a1,a2,a3,a4:real;
begin
clrscr;
repeat
writeln('Vysota H (20-230) h=');
readln(h);
until h in [20..230];
d:=round(h*sin(pi/4));
writeln('Press Enter...');
readln;
gd:=0;
initgraph(gd,gm,'');
outtextXY(150,30,'Vrashenie strelki <--  -->, vyhod - Esc');
x0:=getmaxX div 2;y0:=getmaxY div 2;{центр экрана}
a1:=45;a2:=135;a3:=225;a4:=315;{начальные углы вершин буквы}
{координаты вершин}
a1x:=x0+round(d*cos(pi*a1/180));a1y:=y0-round(d*sin(pi*a1/180));
a2x:=x0+round(d*cos(pi*a2/180));a2y:=y0-round(d*sin(pi*a2/180));
a3x:=x0+round(d*cos(pi*a3/180));a3y:=y0-round(d*sin(pi*a3/180));
a4x:=x0+round(d*cos(pi*a4/180));a4y:=y0-round(d*sin(pi*a4/180));
{координаты перекладины}
a5x:=(a2x+a3x)div 2;a5y:=(a2y+a3y) div 2;
a6x:=(a1x+a4x)div 2;a6y:=(a1y+a4y) div 2;
{рисуем стартовое изображение}
Setcolor(12);
setlinestyle(0,0,3);
line(a1x,a1y,a4x,a4y);
line(a2x,a2y,a3x,a3y);
line(a5x,a5y,a6x,a6y);
repeat
if keypressed then
 begin
  ch:=readkey;{ожидаем нажатия клавиши}
  case ch of
  #75:k:=2;{стелка лево, угол растет}
  #77:k:=-2;{право, угол уменьшается}
  #27:exit;{выход}
  end;
 end;
delay(50); {задержка 50 млс}
setcolor(0); {цвет фона, стираем изображение}
a5x:=(a2x+a3x)div 2;a5y:=(a2y+a3y) div 2;
a6x:=(a1x+a4x)div 2;a6y:=(a1y+a4y) div 2;
setlinestyle(0,0,3);
line(a1x,a1y,a4x,a4y);
line(a2x,a2y,a3x,a3y);
line(a5x,a5y,a6x,a6y);
Vrash(a1,a1x,a1y,x0,y0,d);
Vrash(a2,a2x,a2y,x0,y0,d);
Vrash(a3,a3x,a3y,x0,y0,d);
Vrash(a4,a4x,a4y,x0,y0,d);
Setcolor(12); {выбранный цвет - рисуем}
a5x:=(a2x+a3x)div 2;a5y:=(a2y+a3y) div 2;
a6x:=(a1x+a4x)div 2;a6y:=(a1y+a4y) div 2;
setlinestyle(0,0,3);
line(a1x,a1y,a4x,a4y);
line(a2x,a2y,a3x,a3y);
line(a5x,a5y,a6x,a6y);
a1:=a1+k;a2:=a2+k;a3:=a3+k;a4:=a4+k;{меняем угол +2 -2}
until ch=#27;
readln
end.
Вложения
Тип файла: rar HHH.rar (944 байт, 4 просмотров)

Последний раз редактировалось radon228; 02.06.2010 в 22:47.
radon228 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Графика. Паскаль Zond235 Паскаль, Turbo Pascal, PascalABC.NET 15 11.06.2010 18:17
ПАСКАЛЬ ГРАФИКА glasian Помощь студентам 19 17.06.2008 04:26