Специалист
Регистрация: 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.
|