Решения (задачи 198-216)
Задача 213
{ Выводит на экран паровоз } uses Graph; grDriver: Integer; grMode: Integer; ErrCode: Integer; res: integer; ,уО: integer; { координаты базовой точки паровоза } dx,dy: integer; { шаг координатной сетки } tr: array[1..15] of PointType; { координаты точек контура паровоза } begin grDriver: = detect; InitGraph(grDriver, grMode,'e:\tp\bgi'); ErrCode: = GraphResult; if ErrCode = grOk then begin x0: = 100; y0: = 100; dx: = 5; dy: = 5; { корпус } tr[l].y: = yO+7*dy; tr[2].y: = yO+6*dy; tr[3].y: = yO+6*dy; tr[4].y: = yO+3*dy; tr[5].y: = yO+3*dy; tr[6].y: = yO+O*dy; tr[7]".y: = y0+0*dy; fcr[8].y: = yO+3*dy; tr[9].y: = yO+3*dy; tr[10].y: = yO+l*dy;.y: = yO+l*dy; tr[1].x: = xO+O*dx; tr[2].x: = xO+O*dx; tr[3].x: = xO+l*dx; tr[4J.x: = xO+l*dx; tr[5].x: = xO+2*dx; tr[6].x: = xO+2*dx; tr[7].x: = xO+3*dx; tr[8].x: = xO+3*dx; tr[9].x: = xO+7*dx; tr[10].x: = xO+7*dx; tr[ll].x: = xO+13*dx; tr[12].x: = xO+13*dx; tr[12].y: = yO+2*dy; tr[13].x: = xO+12*dx; tr[13].y: = yO+2*dy; tr[14].x: = xO+12*dx; tr[14].y: = yO+7*dy; tr[15].x: = xO+O*dx; tr[15].y: = yO+7*dy; DrawPoly(15,tr); { окно) Rectangle(xO+8*dx,yO+2*dy,x0+10*dx,yO+4*dy), { колеса) SetFillStyle(SolidFill,Red); SetColor(Red); PieSlice(xO+3*dx,yO+7*dy, 0.360,l*dx); PieSlice(xO+6*dx, yO+7*dy,0.360,l*dx); PieSlice(xO+9*dx,yO+7*dy,0.360,l*dx); { окантовка колес } SetColor(White); Circle(xO+3*dx,yO+7*dy,l*dx), Circle(xO+6*dx,yO+7*dy,l*dx), Circle(xO+9*dx,yO+7*dy,l*dx), readln; end; CloseGraph; end.
Задача 215
{ Координатные оси и оцифрованная сетка } program grid; uses Graph; var xO,yO:integer; { координаты начала координатных осей } dx,dy:integer; { шаг координатной сетки (в пикселах)) h,w:integer; { высота и ширина области вывода координатной сетки > х,у:integer; lx,ly:real; (метки (оцифровка) линий сетки по X Y } dlx, dly:real; { шаг меток (оцифровки) линий сетки по X и Y } st:string; { изображение метки линии сетки } grDriver: Integer; grMode: Integer; ErrCode: Integer; begin grDriver: = VGA; grMode: = VGAHi; InitGraph(grDriver, grMode,'e:\tp\bgi'); ErrCode: = GraphResult; if ErrCode <> grOk then HALT(1);x0: = 50; yO: = 45O; (оси начинаются в точке (40.450) } dx: = 40; dy: = 40; (шаг координатной сетки 40 пикселей } dlx: = 0.5; { шаг меток оси X, метками будут: = l; шаг меток оси Y, метками будут: 1, 2, и т.д. } h: =300; w: =400; lx: = 0; iy: = 0; { начало координат помечается метками 0)Line(x0,y0,x0,y0-h); { ось X } Line(x0,y0,x0+w,y0); { ось Y } { засечки, сетка и оцифровка по оси X } х: = х0;