LXF78:MetaPost
|
|
|
Часть 3. Компьютер не умеет читать ваши мысли, зато неукоснительно следует инструкциям. Евгений Балдин научит вас отдавать правильные команды и извлекать из этого выгоду.
До сего момента мы концентрировались на том, как объяснить компьютеру, чтобы он сделал то или иное движение. Теперь воспользуемся способностью компьютера помнить предыдущие действия и извлекать их из памяти по мере необходимости. Автоматизация рутинных процедур это то, для чего компьютеры и предназначены. Практиковаться в автоматизации следует постоянно. Несмотря на затраченное на обучение время, в результате время же и экономится.
Объекты picture
В процесс повествования объект picture или картинка уже упоминался. Картинка представляет из себя совокупность путей и точек, которую можно подвергать трансформации. В уже существующие картинки можно добавлять пути, замкнутые области и другие картинки.
Для начала опять же воспользуемся миллиметровкой для отрисовки какого-либо рисунка, например, ракеты:
Ракета может быть без выхлопа (rocket) и c выхлопом (firerocket). В процессе создания firerocket был использован рисунок самого выхлопа (fire).
Указан неподдерживаемый язык.
Вы должны указать язык следующим образом: <source lang="html4strict">...</source>
Поддерживаемые языки:
abap, actionscript, actionscript3, ada, apache, applescript, apt_sources, asm, asp, autoit, avisynth, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_mac, caddcl, cadlisp, cfdg, cfm, cil, cmake, cobol, cpp, cpp-qt, csharp, css, d, dcs, delphi, diff, div, dos, dot, eiffel, email, erlang, fo, fortran, freebasic, genero, gettext, glsl, gml, gnuplot, groovy, haskell, hq9plus, html4strict, idl, ini, inno, intercal, io, java, java5, javascript, kixtart, klonec, klonecpp, latex, lisp, locobasic, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, make, matlab, mirc, modula3, mpasm, mxml, mysql, nsis, oberon2, objc, ocaml, ocaml-brief, oobas, oracle11, oracle8, pascal, per, perl, php, php-brief, pic16, pixelbender, plsql, povray, powershell, progress, prolog, properties, providex, python, qbasic, rails, rebol, reg, robots, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, tcl, teraterm, text, thinbasic, tsql, typoscript, vb, vbnet, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xml, xorg_conf, xpp, z80
%Файл 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;