В правильной четырехугольной пирамиде провести сечение, проходящее через диагональ основания и середину бокового ребра — Pascal(Паскаль)

uses graph;
var gd,gm,a,h,x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6,x7,y7,i,b1,b2:integer;
    p1,p2,p3 :array[1..4] of Pointtype;
    k1,k2:real;
begin
{задняя левая}
x1:=200;y1:=250;
{сторона, высота}
a:=300;h:=300;
{остальные точки основания}
x2:=x1+a;y2:=y1;{задняя правая}
x3:=x1-round(a*0.71*0.71)+a;y3:=y1+round(a*0.71*0.71);{передняя правая}
x4:=x1-round(a*0.71*0.71);y4:=y3;{передняя левая}
{центр основания}
x5:=x4+round(a/2*(1+0.71*0.71));y5:=y1+round((y3-y1)/2);
{вершина}
x6:=x5;y6:=y5-h;
x7:=(x2+x6) div 2; y7:=(y2+y6) div 2;{середина ребра}
{рисование}
gd:=detect;
initgraph(gd,gm,'');
{сечение}
p3[1].x:=x1;p3[1].y:=y1;
p3[2].x:=x7;p3[2].y:=y7;
p3[3].x:=x3;p3[3].y:=y3;
p3[4].x:=x1;p3[4].y:=y1;
setcolor(12);
setlinestyle(1,0,1);
setfillstyle(3,12);
fillpoly(4,p3);
{перед}
p1[1].x:=x4;p1[1].y:=y4;
p1[2].x:=x6;p1[2].y:=y6;
p1[3].x:=x3;p1[3].y:=y3;
p1[4].x:=x4;p1[4].y:=y4;
setcolor(15);
setlinestyle(0,0,1);
moveto(p1[1].x,p1[1].y);
for i:=1 to 4 do
lineto(p1[i].x,p1[i].y);
{право}
p2[1].x:=x3;p2[1].y:=y3;
p2[2].x:=x6;p2[2].y:=y6;
p2[3].x:=x2;p2[3].y:=y2;
p2[4].x:=x3;p2[4].y:=y3;
moveto(p2[1].x,p2[1].y);
for i:=1 to 4 do
lineto(p2[i].x,p2[i].y);
{внутри}
setlinestyle(1,0,1);
line(x1,y1,x3,y3);
line(x2,y2,x4,y4);
line(x1,y1,x4,y4);
line(x1,y1,x2,y2);
line(x1,y1,x6,y6);
line(x5,y5,x6,y6);
line(x5,y5,x7,y7);
readln
end.

Leave a Comment

− 5 = 4