Журнал LinuxFormat - перейти на главную

LXF78:MetaPost

Материал из Linuxformat
Перейти к: навигация, поиск

Часть 3. Компьютер не умеет читать ваши мысли, зато неукоснительно следует инструкциям. Евгений Балдин научит вас отдавать правильные команды и извлекать из этого выгоду.

До сего момента мы концентрировались на том, как объяснить компьютеру, чтобы он сделал то или иное движение. Теперь воспользуемся способностью компьютера помнить предыдущие действия и извлекать их из памяти по мере необходимости. Автоматизация рутинных процедур это то, для чего компьютеры и предназначены. Практиковаться в автоматизации следует постоянно. Несмотря на затраченное на обучение время, в результате время же и экономится.

Объекты picture

В процесс повествования объект picture или картинка уже упоминался. Картинка представляет из себя совокупность путей и точек, которую можно подвергать трансформации. В уже существующие картинки можно добавлять пути, замкнутые области и другие картинки.

Для начала опять же воспользуемся миллиметровкой для отрисовки какого-либо рисунка, например, ракеты:
Img 78 104 1.jpg

Ракета может быть без выхлопа (rocket) и c выхлопом (firerocket). В процессе создания firerocket был использован рисунок самого выхлопа (fire).

Указан неподдерживаемый язык.

Вы должны указать язык следующим образом: <source lang="html4strict">...</source>

Поддерживаемые языки:

 [развернуть


 %Файл picture.1.mp
 %Ракета без выхлопа 10x12 Центр у стабилизаторов
  picture rocket;rocket:=nullpicture;
  addto rocket contour (-2,-1)--(-2,6)--(0,10)--(2,6)--(2,-1)--cycle
  withpen pencircle scaled 0.4 withcolor white;
  addto rocket  doublepath (-2,-1)--(-2,6)--(0,10)--(2,6)--(2,-1)--cycle
  withpen pencircle scaled 0.5;%Корпус
  addto rocket contour (-2,2.5)--(-4,1)--(-4.5,-3)--(-2,-3)--cycle
  withpen pencircle scaled 0.4 withcolor white;
  addto rocket  doublepath (-2,2.5)--(-4,1)--(-4.5,-3)--(-2,-3)--cycle
  withpen pencircle scaled 0.5;%левая дюза
  addto rocket contour (2,2.5)--(4,1)--(4.5,-3)--(2,-3)--cycle
  withpen pencircle scaled 0.4 withcolor white;
  addto rocket  doublepath (2,2.5)--(4,1)--(4.5,-3)--(2,-3)--cycle
  withpen pencircle scaled 0.5;%правая дюза
  addto rocket  doublepath (0,2.5)--(0,-3)
  withpen pencircle scaled 0.8;%центральная дюза

  %выхлоп
  picture fire;fire:=nullpicture;
  addto fire  doublepath (0,-4)--(0,-6)
  withpen pencircle scaled 0.3;%выхлоп 1
  addto fire  doublepath (-1.5,-4)--(-1.5,-6)
  withpen pencircle scaled 0.3;%выхлоп 2
  addto fire  doublepath (1.5,-4)--(1.5,-6)
  withpen pencircle scaled 0.3;%выхлоп 3
  addto fire  contour (-2.5,-6.5){dir 135}..(-4,-8)..
  {dir 50}(-1.2,-8.2){dir -110}..(0,-10)
  ..{dir 110}(1.2,-8.2){dir -50}..(4,-8)..{dir -135}(2.5,-6.5)--cycle
  withpen pencircle scaled 0.4 withcolor white;
  addto fire  doublepath (-2.5,-6.5){dir 135}..(-4,-8)..
  {dir 50}(-1.2,-8.2){dir -110}..(0,-10)
  ..{dir 110}(1.2,-8.2){dir -50}..(4,-8)..{dir -135}(2.5,-6.5)
  withpen pencircle scaled 0.3;%облако

  %ракета и выхлоп
  picture firerocket;firerocket:=rocket;
  addto firerocket also fire;
Персональные инструменты
купить
подписаться
Яндекс.Метрика