Показать сообщение отдельно
Старый 12.10.2014, 12:27   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Зюня,0 Посмотреть сообщение
Нарисовать равнобедренный прямоугольный треугольник, если радиус описанной окружности равен 45, треугольник поворачивается вокруг вершины на угол 15 градусов, делая полный оборот. (при необходимости координаты вершин рассчитываются).
Прежде всего, задание параметров инициализации графического режима Вам необходимо сделать самостоятельно. Просто потому, что для каждого компьютера это индивидуально (драйверы, их расположение и т.д.). Подробно этот вопрос рассмотрен, например, в теме Турбо Паскаль. Задание на анимацию.
Далее, замечаем, что радиус описанной окружности в данном случае равен высоте треугольника, или половине основания (оно же - гипотенуза).
Вроде всё.
Код:
Uses CRT,Graph;

Const
 RC=45;

Var
 R,XA,XB,YA,YB,FClr,BClr,i,Xc,Yc:Word;
 Angle:Real;

Procedure Triang(Color:Word);
begin
 SetColor(Color);
 XA:=Xc+Round(R*Cos(Pi/4+Angle));
 YA:=Yc-Round(R*Sin(Pi/4+Angle));
 XB:=Xc+Round(R*Cos(-Pi/4+Angle));
 YB:=Yc-Round(R*Sin(-Pi/4+Angle));
 Line(Xc,Yc,XA,YA);
 Line(Xc,Yc,XB,YB);
 Line(XA,YA,XB,YB);
end;

Begin
 InitGraph(..., ..., ...); {Тут - самостоятельно!}
 SetLineStyle(SolidLn,0,ThickWidth);
 R:=Round(RC*Sqrt(2));
 Xc:=GetMaxX div 2;
 Yc:=GetMaxY div 2;
 FClr:=GetColor;
 BClr:=GetBkColor;
 for i:=0 to 24 do
  begin
   Angle:=Pi/12*i;
   Triang(FClr);
   if i<24 then
    begin
     Delay(1000);
     Triang(BClr);
    end;
  end;
 SetColor(FClr);
 SetTextJustify(CenterText,BottomText);
 OutTextXY(Xc,2*Yc-10,'Press any key to quit...');
 Readkey;
 CloseGraph;
End.
Изображения
    
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070