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

Впрочем, ладно - так уж и быть. Можно и с аксонометрией. Только вот не знаю, будет ли в том толк - подобные программы надо писать самому. Это куда легче, чем в чужих разбираться.
Код:
Uses Graph, CRT;
VAR
 ZD,ZC:Real;

Function Tan(x:Real):Real;
begin
 Tan:=Sin(x)/Cos(x);
end;

BEGIN
 InitGraph(..);{ПАРАМЕТРЫ ФУНКЦИИ ПОДСТАВЬТЕ САМИ}    

 SetLineStyle(SolidLn,0,ThickWidth);
 Line(100,150,70,100);
 Line(70,100,240,50);
 Line(240,50,200,150);
 Line(200,150,100,150);
 SetLineStyle(SolidLn,0,NormWidth);
 Line(50,150,100,150);
 Line(200,150,260,150);
 SetLineStyle(DottedLn,0,NormWidth);
 Line(70,100,70,150);
 Line(240,50,240,150);
 SetTextJustify(CenterText,TopText);
 OutTextXY(70,155,'E');
 OutTextXY(100,155,'A');
 OutTextXY(200,155,'B');
 OutTextXY(240,155,'F');
 SetTextJustify(RightText,CenterText);
 OutTextXY(65,100,'D');
 SetTextJustify(LeftText,CenterText);
 OutTextXY(245,50,'C');

 ZC:=100*tan(Pi/6);
 ZD:=50*tan(Pi/6);
 SetLineStyle(SolidLn,0,ThickWidth);
 Line(100,400,70,400-Round(SQRT(SQR(50)+SQR(ZD))));
 Line(70,400-Round(SQRT(SQR(50)+SQR(ZD))),240,
                 400-Round(SQRT(SQR(100)+SQR(ZC))));
 Line(240,400-Round(SQRT(SQR(100)+SQR(ZC))),200,400);
 Line(200,400,100,400);
 SetTextJustify(CenterText,TopText);
 OutTextXY(100,405,'A');
 OutTextXY(200,405,'B');
 SetTextJustify(RightText,CenterText);
 OutTextXY(65,400-Round(SQRT(SQR(50)+SQR(ZD))),'D1');
 SetTextJustify(LeftText,CenterText);
 OutTextXY(245,400-Round(SQRT(SQR(100)+SQR(ZC))),'C1');
 SetFillStyle(3,white);
 FloodFill(150,350,white);

 MoveTo(350,400);
 LineTo(450,400);
 LineTo(490+Round(100*Cos(Pi/6)),400-Round(100*Sin(Pi/6)+ZC));
 LineTo(320+Round(50*Cos(Pi/6)),400-Round(50*Sin(Pi/6)+ZD));
 LineTo(350,400);
 SetFillStyle(3,white);
 FloodFill(400,390,white);
 MoveTo(450,400);
 LineTo(490+Round(100*Cos(Pi/6)),400-Round(100*Sin(Pi/6)));
 LineTo(320+Round(50*Cos(Pi/6)),400-Round(50*Sin(Pi/6)));
 LineTo(350,400);
 LineTo(350,150);
 Line(450,400,450,150);
 Line(490+Round(100*Cos(Pi/6)),400-Round(100*Sin(Pi/6)),
      490+Round(100*Cos(Pi/6)),150-Round(100*Sin(Pi/6)));
 Line(320+Round(50*Cos(Pi/6)),400-Round(50*Sin(Pi/6)),
      320+Round(50*Cos(Pi/6)),150-Round(50*Sin(Pi/6)));
 MoveTo(350,150);
 LineTo(450,150);
 LineTo(490+Round(100*Cos(Pi/6)),150-Round(100*Sin(Pi/6)));
 LineTo(320+Round(50*Cos(Pi/6)),150-Round(50*Sin(Pi/6)));
 LineTo(350,150);
 SetTextJustify(CenterText,TopText);
 OutTextXY(350,405,'A');
 OutTextXY(450,405,'B');
 SetTextJustify(LeftText,CenterText);
 OutTextXY(495+Round(100*Cos(Pi/6)),400-Round(100*Sin(Pi/6)),'C');
 OutTextXY(495+Round(100*Cos(Pi/6)),400-Round(100*Sin(Pi/6)+ZC),'C1');
 SetTextJustify(LeftText,BottomText);
 OutTextXY(325+Round(50*Cos(Pi/6)),395-Round(50*Sin(Pi/6)),'D');
 OutTextXY(325+Round(50*Cos(Pi/6)),394-Round(50*Sin(Pi/6)+ZD),'D1');
 ReadKey;
 CloseGraph;
END.
Изображения
 
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

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