--- /srv/rebuilderd/tmp/rebuilderdLxnqlv/inputs/sketch-doc_0.3.7-13_all.deb +++ /srv/rebuilderd/tmp/rebuilderdLxnqlv/out/sketch-doc_0.3.7-13_all.deb ├── file list │ @@ -1,3 +1,3 @@ │ -rw-r--r-- 0 0 0 4 2025-10-25 10:55:00.000000 debian-binary │ -rw-r--r-- 0 0 0 4276 2025-10-25 10:55:00.000000 control.tar.xz │ --rw-r--r-- 0 0 0 1160120 2025-10-25 10:55:00.000000 data.tar.xz │ +-rw-r--r-- 0 0 0 1160176 2025-10-25 10:55:00.000000 data.tar.xz ├── control.tar.xz │ ├── control.tar │ │ ├── ./md5sums │ │ │ ├── ./md5sums │ │ │ │┄ Files differ ├── data.tar.xz │ ├── data.tar │ │ ├── file list │ │ │ @@ -128,12 +128,12 @@ │ │ │ -rw-r--r-- 0 root (0) root (0) 2431 2025-10-25 10:55:00.000000 ./usr/share/doc/sketch-doc/sketch/ex220.png │ │ │ -rw-r--r-- 0 root (0) root (0) 2846 2025-10-25 10:55:00.000000 ./usr/share/doc/sketch-doc/sketch/ex230.png │ │ │ -rw-r--r-- 0 root (0) root (0) 3579 2025-10-25 10:55:00.000000 ./usr/share/doc/sketch-doc/sketch/ex240.png │ │ │ -rw-r--r-- 0 root (0) root (0) 2116 2025-10-25 10:55:00.000000 ./usr/share/doc/sketch-doc/sketch/ex250.png │ │ │ -rw-r--r-- 0 root (0) root (0) 2032 2025-10-25 10:55:00.000000 ./usr/share/doc/sketch-doc/sketch/ex260.png │ │ │ -rw-r--r-- 0 root (0) root (0) 66246 2012-02-25 02:28:13.000000 ./usr/share/doc/sketch-doc/sketch/index.html │ │ │ -rw-r--r-- 0 root (0) root (0) 9205 2025-10-25 10:55:00.000000 ./usr/share/doc/sketch-doc/sketch/transparent.png │ │ │ --rw-r--r-- 0 root (0) root (0) 706949 2025-10-25 10:55:00.000000 ./usr/share/doc/sketch-doc/sketch.pdf.gz │ │ │ +-rw-r--r-- 0 root (0) root (0) 706983 2025-10-25 10:55:00.000000 ./usr/share/doc/sketch-doc/sketch.pdf.gz │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-10-25 10:55:00.000000 ./usr/share/doc-base/ │ │ │ -rw-r--r-- 0 root (0) root (0) 398 2025-10-25 09:00:00.000000 ./usr/share/doc-base/sketch-doc.sketch │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-10-25 10:55:00.000000 ./usr/share/info/ │ │ │ --rw-r--r-- 0 root (0) root (0) 40125 2025-10-25 10:55:00.000000 ./usr/share/info/sketch.info.gz │ │ │ +-rw-r--r-- 0 root (0) root (0) 40123 2025-10-25 10:55:00.000000 ./usr/share/info/sketch.info.gz │ │ ├── ./usr/share/doc/sketch-doc/sketch.pdf.gz │ │ │ ├── sketch.pdf │ │ │ │ ├── pdftotext {} - │ │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ Sketch │ │ │ │ │ Simple 3D sketching │ │ │ │ │ -Version 0.3 (build 7), Saturday, October 25, 2025 │ │ │ │ │ +Version 0.3 (build 7), Sunday, March 01, 2026 │ │ │ │ │ │ │ │ │ │ Gene Ressler │ │ │ │ │ │ │ │ │ │ Copyright c 2005 to 2012 Eugene K. Ressler. │ │ │ │ │ -This manual is for sketch, version 0.3 (build 7), Saturday, October 25, 2025, a program that │ │ │ │ │ +This manual is for sketch, version 0.3 (build 7), Sunday, March 01, 2026, a program that │ │ │ │ │ converts descriptions of simple three-dimensional scenes into line drawings. This version │ │ │ │ │ generates PSTricks or PGF/TikZ code suitable for use with the TEX document processing │ │ │ │ │ system. │ │ │ │ │ Sketch is free software. You can redistribute it and/or modify it under the terms of the │ │ │ │ │ GNU General Public License as published by the Free Software Foundation; either version │ │ │ │ │ 3, or (at your option) any later version. │ │ │ │ │ Sketch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; │ │ ├── ./usr/share/info/sketch.info.gz │ │ │ ├── sketch.info │ │ │ │ @@ -5,9794 +5,9793 @@ │ │ │ │ 00000040: 682e 7465 7869 2e0a 0a43 6f70 7972 6967 h.texi...Copyrig │ │ │ │ 00000050: 6874 20c2 a920 3230 3035 2074 6f20 3230 ht .. 2005 to 20 │ │ │ │ 00000060: 3132 2045 7567 656e 6520 4b2e 2052 6573 12 Eugene K. Res │ │ │ │ 00000070: 736c 6572 2e0a 0a20 2020 5468 6973 206d sler... This m │ │ │ │ 00000080: 616e 7561 6c20 6973 2066 6f72 20e2 8098 anual is for ... │ │ │ │ 00000090: 736b 6574 6368 e280 992c 2076 6572 7369 sketch..., versi │ │ │ │ 000000a0: 6f6e 2030 2e33 2028 6275 696c 6420 3729 on 0.3 (build 7) │ │ │ │ -000000b0: 2c20 5361 7475 7264 6179 2c20 4f63 746f , Saturday, Octo │ │ │ │ -000000c0: 6265 720a 3235 2c20 3230 3235 2c20 6120 ber.25, 2025, a │ │ │ │ -000000d0: 7072 6f67 7261 6d20 7468 6174 2063 6f6e program that con │ │ │ │ -000000e0: 7665 7274 7320 6465 7363 7269 7074 696f verts descriptio │ │ │ │ -000000f0: 6e73 206f 6620 7369 6d70 6c65 0a74 6872 ns of simple.thr │ │ │ │ -00000100: 6565 2d64 696d 656e 7369 6f6e 616c 2073 ee-dimensional s │ │ │ │ -00000110: 6365 6e65 7320 696e 746f 206c 696e 6520 cenes into line │ │ │ │ -00000120: 6472 6177 696e 6773 2e20 2054 6869 7320 drawings. This │ │ │ │ -00000130: 7665 7273 696f 6e20 6765 6e65 7261 7465 version generate │ │ │ │ -00000140: 730a e280 9850 5354 7269 636b 73e2 8099 s....PSTricks... │ │ │ │ -00000150: 206f 7220 e280 9850 4746 2f54 696b 5ae2 or ...PGF/TikZ. │ │ │ │ -00000160: 8099 2063 6f64 6520 7375 6974 6162 6c65 .. code suitable │ │ │ │ -00000170: 2066 6f72 2075 7365 2077 6974 6820 7468 for use with th │ │ │ │ -00000180: 6520 5465 5820 646f 6375 6d65 6e74 0a70 e TeX document.p │ │ │ │ -00000190: 726f 6365 7373 696e 6720 7379 7374 656d rocessing system │ │ │ │ -000001a0: 2e0a 0a20 2020 e280 9853 6b65 7463 68e2 ... ...Sketch. │ │ │ │ -000001b0: 8099 2069 7320 6672 6565 2073 6f66 7477 .. is free softw │ │ │ │ -000001c0: 6172 652e 2020 596f 7520 6361 6e20 7265 are. You can re │ │ │ │ -000001d0: 6469 7374 7269 6275 7465 2069 7420 616e distribute it an │ │ │ │ -000001e0: 642f 6f72 206d 6f64 6966 7920 6974 0a75 d/or modify it.u │ │ │ │ -000001f0: 6e64 6572 2074 6865 2074 6572 6d73 206f nder the terms o │ │ │ │ -00000200: 6620 7468 6520 474e 5520 4765 6e65 7261 f the GNU Genera │ │ │ │ -00000210: 6c20 5075 626c 6963 204c 6963 656e 7365 l Public License │ │ │ │ -00000220: 2061 7320 7075 626c 6973 6865 6420 6279 as published by │ │ │ │ -00000230: 2074 6865 0a46 7265 6520 536f 6674 7761 the.Free Softwa │ │ │ │ -00000240: 7265 2046 6f75 6e64 6174 696f 6e3b 2065 re Foundation; e │ │ │ │ -00000250: 6974 6865 7220 7665 7273 696f 6e20 332c ither version 3, │ │ │ │ -00000260: 206f 7220 2861 7420 796f 7572 206f 7074 or (at your opt │ │ │ │ -00000270: 696f 6e29 2061 6e79 0a6c 6174 6572 2076 ion) any.later v │ │ │ │ -00000280: 6572 7369 6f6e 2e0a 0a20 2020 536b 6574 ersion... Sket │ │ │ │ -00000290: 6368 2069 7320 6469 7374 7269 6275 7465 ch is distribute │ │ │ │ -000002a0: 6420 696e 2074 6865 2068 6f70 6520 7468 d in the hope th │ │ │ │ -000002b0: 6174 2069 7420 7769 6c6c 2062 6520 7573 at it will be us │ │ │ │ -000002c0: 6566 756c 2c20 6275 7420 5749 5448 4f55 eful, but WITHOU │ │ │ │ -000002d0: 540a 414e 5920 5741 5252 414e 5459 3b20 T.ANY WARRANTY; │ │ │ │ -000002e0: 7769 7468 6f75 7420 6576 656e 2074 6865 without even the │ │ │ │ -000002f0: 2069 6d70 6c69 6564 2077 6172 7261 6e74 implied warrant │ │ │ │ -00000300: 7920 6f66 204d 4552 4348 414e 5441 4249 y of MERCHANTABI │ │ │ │ -00000310: 4c49 5459 206f 720a 4649 544e 4553 5320 LITY or.FITNESS │ │ │ │ -00000320: 464f 5220 4120 5041 5254 4943 554c 4152 FOR A PARTICULAR │ │ │ │ -00000330: 2050 5552 504f 5345 2e20 5365 6520 7468 PURPOSE. See th │ │ │ │ -00000340: 6520 474e 5520 4765 6e65 7261 6c20 5075 e GNU General Pu │ │ │ │ -00000350: 626c 6963 204c 6963 656e 7365 2066 6f72 blic License for │ │ │ │ -00000360: 0a6d 6f72 6520 6465 7461 696c 732e 0a0a .more details... │ │ │ │ -00000370: 2020 2059 6f75 2073 686f 756c 6420 6861 You should ha │ │ │ │ -00000380: 7665 2072 6563 6569 7665 6420 6120 636f ve received a co │ │ │ │ -00000390: 7079 206f 6620 7468 6520 474e 5520 4765 py of the GNU Ge │ │ │ │ -000003a0: 6e65 7261 6c20 5075 626c 6963 204c 6963 neral Public Lic │ │ │ │ -000003b0: 656e 7365 0a61 6c6f 6e67 2077 6974 6820 ense.along with │ │ │ │ -000003c0: e280 9873 6b65 7463 68e2 8099 3b20 7365 ...sketch...; se │ │ │ │ -000003d0: 6520 7468 6520 6669 6c65 2043 4f50 5949 e the file COPYI │ │ │ │ -000003e0: 4e47 2e74 7874 2e20 2049 6620 6e6f 742c NG.txt. If not, │ │ │ │ -000003f0: 2073 6565 0a68 7474 703a 2f2f 7777 772e see.http://www. │ │ │ │ -00000400: 676e 752e 6f72 672f 636f 7079 6c65 6674 gnu.org/copyleft │ │ │ │ -00000410: 2e0a 0a49 4e46 4f2d 4449 522d 5345 4354 ...INFO-DIR-SECT │ │ │ │ -00000420: 494f 4e20 5465 580a 5354 4152 542d 494e ION TeX.START-IN │ │ │ │ -00000430: 464f 2d44 4952 2d45 4e54 5259 0a2a 2053 FO-DIR-ENTRY.* S │ │ │ │ -00000440: 6b65 7463 683a 2028 736b 6574 6368 292e ketch: (sketch). │ │ │ │ -00000450: 2020 2020 2020 2020 2020 2020 2053 696d Sim │ │ │ │ -00000460: 706c 6520 3344 2073 6b65 7463 6869 6e67 ple 3D sketching │ │ │ │ -00000470: 2066 6f72 2054 6558 0a45 4e44 2d49 4e46 for TeX.END-INF │ │ │ │ -00000480: 4f2d 4449 522d 454e 5452 590a 0a1f 0a46 O-DIR-ENTRY....F │ │ │ │ -00000490: 696c 653a 2073 6b65 7463 682e 696e 666f ile: sketch.info │ │ │ │ -000004a0: 2c20 204e 6f64 653a 2054 6f70 2c20 204e , Node: Top, N │ │ │ │ -000004b0: 6578 743a 2041 626f 7574 2073 6b65 7463 ext: About sketc │ │ │ │ -000004c0: 682c 2020 5072 6576 3a20 2864 6972 292c h, Prev: (dir), │ │ │ │ -000004d0: 2020 5570 3a20 2864 6972 290a 0a53 6b65 Up: (dir)..Ske │ │ │ │ -000004e0: 7463 680a 2a2a 2a2a 2a2a 0a0a 436f 7079 tch.******..Copy │ │ │ │ -000004f0: 7269 6768 7420 c2a9 2032 3030 3520 746f right .. 2005 to │ │ │ │ -00000500: 2032 3031 3220 4575 6765 6e65 204b 2e20 2012 Eugene K. │ │ │ │ -00000510: 5265 7373 6c65 722e 0a0a 2020 2054 6869 Ressler... Thi │ │ │ │ -00000520: 7320 6d61 6e75 616c 2069 7320 666f 7220 s manual is for │ │ │ │ -00000530: e280 9873 6b65 7463 68e2 8099 2c20 7665 ...sketch..., ve │ │ │ │ -00000540: 7273 696f 6e20 302e 3320 2862 7569 6c64 rsion 0.3 (build │ │ │ │ -00000550: 2037 292c 2053 6174 7572 6461 792c 204f 7), Saturday, O │ │ │ │ -00000560: 6374 6f62 6572 0a32 352c 2032 3032 352c ctober.25, 2025, │ │ │ │ -00000570: 2061 2070 726f 6772 616d 2074 6861 7420 a program that │ │ │ │ -00000580: 636f 6e76 6572 7473 2064 6573 6372 6970 converts descrip │ │ │ │ -00000590: 7469 6f6e 7320 6f66 2073 696d 706c 650a tions of simple. │ │ │ │ -000005a0: 7468 7265 652d 6469 6d65 6e73 696f 6e61 three-dimensiona │ │ │ │ -000005b0: 6c20 7363 656e 6573 2069 6e74 6f20 6c69 l scenes into li │ │ │ │ -000005c0: 6e65 2064 7261 7769 6e67 732e 2020 5468 ne drawings. Th │ │ │ │ -000005d0: 6973 2076 6572 7369 6f6e 2067 656e 6572 is version gener │ │ │ │ -000005e0: 6174 6573 0ae2 8098 5053 5472 6963 6b73 ates....PSTricks │ │ │ │ -000005f0: e280 9920 6f72 20e2 8098 5047 462f 5469 ... or ...PGF/Ti │ │ │ │ -00000600: 6b5a e280 9920 636f 6465 2073 7569 7461 kZ... code suita │ │ │ │ -00000610: 626c 6520 666f 7220 7573 6520 7769 7468 ble for use with │ │ │ │ -00000620: 2074 6865 2054 6558 2064 6f63 756d 656e the TeX documen │ │ │ │ -00000630: 740a 7072 6f63 6573 7369 6e67 2073 7973 t.processing sys │ │ │ │ -00000640: 7465 6d2e 0a0a 2020 20e2 8098 536b 6574 tem... ...Sket │ │ │ │ -00000650: 6368 e280 9920 6973 2066 7265 6520 736f ch... is free so │ │ │ │ -00000660: 6674 7761 7265 2e20 2059 6f75 2063 616e ftware. You can │ │ │ │ -00000670: 2072 6564 6973 7472 6962 7574 6520 6974 redistribute it │ │ │ │ -00000680: 2061 6e64 2f6f 7220 6d6f 6469 6679 2069 and/or modify i │ │ │ │ -00000690: 740a 756e 6465 7220 7468 6520 7465 726d t.under the term │ │ │ │ -000006a0: 7320 6f66 2074 6865 2047 4e55 2047 656e s of the GNU Gen │ │ │ │ -000006b0: 6572 616c 2050 7562 6c69 6320 4c69 6365 eral Public Lice │ │ │ │ -000006c0: 6e73 6520 6173 2070 7562 6c69 7368 6564 nse as published │ │ │ │ -000006d0: 2062 7920 7468 650a 4672 6565 2053 6f66 by the.Free Sof │ │ │ │ -000006e0: 7477 6172 6520 466f 756e 6461 7469 6f6e tware Foundation │ │ │ │ -000006f0: 3b20 6569 7468 6572 2076 6572 7369 6f6e ; either version │ │ │ │ -00000700: 2033 2c20 6f72 2028 6174 2079 6f75 7220 3, or (at your │ │ │ │ -00000710: 6f70 7469 6f6e 2920 616e 790a 6c61 7465 option) any.late │ │ │ │ -00000720: 7220 7665 7273 696f 6e2e 0a0a 2020 2053 r version... S │ │ │ │ -00000730: 6b65 7463 6820 6973 2064 6973 7472 6962 ketch is distrib │ │ │ │ -00000740: 7574 6564 2069 6e20 7468 6520 686f 7065 uted in the hope │ │ │ │ -00000750: 2074 6861 7420 6974 2077 696c 6c20 6265 that it will be │ │ │ │ -00000760: 2075 7365 6675 6c2c 2062 7574 2057 4954 useful, but WIT │ │ │ │ -00000770: 484f 5554 0a41 4e59 2057 4152 5241 4e54 HOUT.ANY WARRANT │ │ │ │ -00000780: 593b 2077 6974 686f 7574 2065 7665 6e20 Y; without even │ │ │ │ -00000790: 7468 6520 696d 706c 6965 6420 7761 7272 the implied warr │ │ │ │ -000007a0: 616e 7479 206f 6620 4d45 5243 4841 4e54 anty of MERCHANT │ │ │ │ -000007b0: 4142 494c 4954 5920 6f72 0a46 4954 4e45 ABILITY or.FITNE │ │ │ │ -000007c0: 5353 2046 4f52 2041 2050 4152 5449 4355 SS FOR A PARTICU │ │ │ │ -000007d0: 4c41 5220 5055 5250 4f53 452e 2053 6565 LAR PURPOSE. See │ │ │ │ -000007e0: 2074 6865 2047 4e55 2047 656e 6572 616c the GNU General │ │ │ │ -000007f0: 2050 7562 6c69 6320 4c69 6365 6e73 6520 Public License │ │ │ │ -00000800: 666f 720a 6d6f 7265 2064 6574 6169 6c73 for.more details │ │ │ │ -00000810: 2e0a 0a20 2020 596f 7520 7368 6f75 6c64 ... You should │ │ │ │ -00000820: 2068 6176 6520 7265 6365 6976 6564 2061 have received a │ │ │ │ -00000830: 2063 6f70 7920 6f66 2074 6865 2047 4e55 copy of the GNU │ │ │ │ -00000840: 2047 656e 6572 616c 2050 7562 6c69 6320 General Public │ │ │ │ -00000850: 4c69 6365 6e73 650a 616c 6f6e 6720 7769 License.along wi │ │ │ │ -00000860: 7468 20e2 8098 736b 6574 6368 e280 993b th ...sketch...; │ │ │ │ -00000870: 2073 6565 2074 6865 2066 696c 6520 434f see the file CO │ │ │ │ -00000880: 5059 494e 472e 7478 742e 2020 4966 206e PYING.txt. If n │ │ │ │ -00000890: 6f74 2c20 7365 650a 6874 7470 3a2f 2f77 ot, see.http://w │ │ │ │ -000008a0: 7777 2e67 6e75 2e6f 7267 2f63 6f70 796c ww.gnu.org/copyl │ │ │ │ -000008b0: 6566 742e 0a0a 2a20 4d65 6e75 3a0a 0a2a eft...* Menu:..* │ │ │ │ -000008c0: 2041 626f 7574 2073 6b65 7463 683a 3a20 About sketch:: │ │ │ │ -000008d0: 2020 2020 2020 2020 2020 2020 2020 2057 W │ │ │ │ -000008e0: 6879 2073 6b65 7463 6820 6578 6973 7473 hy sketch exists │ │ │ │ -000008f0: 2061 6e64 2077 6861 7420 6974 2064 6f65 and what it doe │ │ │ │ -00000900: 732e 0a2a 2049 6e74 726f 6475 6374 696f s..* Introductio │ │ │ │ -00000910: 6e20 6279 2065 7861 6d70 6c65 3a3a 2020 n by example:: │ │ │ │ -00000920: 2020 204d 6f73 7420 6665 6174 7572 6573 Most features │ │ │ │ -00000930: 2073 686f 776e 2061 7320 776f 726b 696e shown as workin │ │ │ │ -00000940: 6720 636f 6465 2e0a 2a20 496e 7075 7420 g code..* Input │ │ │ │ -00000950: 6c61 6e67 7561 6765 3a3a 2020 2020 2020 language:: │ │ │ │ -00000960: 2020 2020 2020 2020 5379 6e74 6178 2061 Syntax a │ │ │ │ -00000970: 6e64 2073 656d 616e 7469 6373 206f 6620 nd semantics of │ │ │ │ -00000980: e280 9873 6b65 7463 68e2 8099 2063 6f6d ...sketch... com │ │ │ │ -00000990: 6d61 6e64 732e 0a2a 2042 7569 6c64 696e mands..* Buildin │ │ │ │ -000009a0: 6720 6120 6472 6177 696e 673a 3a20 2020 g a drawing:: │ │ │ │ -000009b0: 2020 2020 2020 2048 6f77 2074 6f20 7573 How to us │ │ │ │ -000009c0: 6520 e280 9873 6b65 7463 68e2 8099 2070 e ...sketch... p │ │ │ │ -000009d0: 726f 6475 6374 6976 656c 792e 0a2a 2043 roductively..* C │ │ │ │ -000009e0: 6f6d 6d61 6e64 206c 696e 653a 3a20 2020 ommand line:: │ │ │ │ -000009f0: 2020 2020 2020 2020 2020 2020 204f 7074 Opt │ │ │ │ -00000a00: 696f 6e73 2061 6e64 2074 6865 6972 2075 ions and their u │ │ │ │ -00000a10: 7361 6765 2e0a 2a20 496e 7374 616c 6c69 sage..* Installi │ │ │ │ -00000a20: 6e67 2073 6b65 7463 683a 3a20 2020 2020 ng sketch:: │ │ │ │ -00000a30: 2020 2020 2020 4275 696c 6469 6e67 2061 Building a │ │ │ │ -00000a40: 6e64 2069 6e73 7461 6c6c 696e 6720 6672 nd installing fr │ │ │ │ -00000a50: 6f6d 2073 6f75 7263 6573 2e0a 2a20 496e om sources..* In │ │ │ │ -00000a60: 6465 7820 6f66 2073 796e 7461 783a 3a0a dex of syntax::. │ │ │ │ -00000a70: 2a20 496e 6465 783a 3a0a 0a20 2d2d 2054 * Index::.. -- T │ │ │ │ -00000a80: 6865 2044 6574 6169 6c65 6420 4e6f 6465 he Detailed Node │ │ │ │ -00000a90: 204c 6973 7469 6e67 202d 2d0a 0a41 626f Listing --..Abo │ │ │ │ -00000aa0: 7574 2073 6b65 7463 680a 0a2a 2052 6570 ut sketch..* Rep │ │ │ │ -00000ab0: 6f72 7469 6e67 2062 7567 733a 3a20 2020 orting bugs:: │ │ │ │ -00000ac0: 2020 2020 2020 2020 2020 204c 6574 2075 Let u │ │ │ │ -00000ad0: 7365 206b 6e6f 7720 7768 6174 2773 2077 se know what's w │ │ │ │ -00000ae0: 726f 6e67 210a 2a20 436f 6e74 7269 6275 rong!.* Contribu │ │ │ │ -00000af0: 7469 6f6e 733a 3a20 2020 2020 2020 2020 tions:: │ │ │ │ -00000b00: 2020 2020 2020 486f 7720 796f 7520 6361 How you ca │ │ │ │ -00000b10: 6e20 6865 6c70 2e2e 2e2e 0a0a 496e 7472 n help......Intr │ │ │ │ -00000b20: 6f64 7563 7469 6f6e 2062 7920 6578 616d oduction by exam │ │ │ │ -00000b30: 706c 650a 0a2a 2048 656c 6c6f 2077 6f72 ple..* Hello wor │ │ │ │ -00000b40: 6c64 3a3a 2020 2020 2020 2020 2020 2020 ld:: │ │ │ │ -00000b50: 2020 2020 2053 696d 706c 6573 7420 706f Simplest po │ │ │ │ -00000b60: 7373 6962 6c65 20e2 8098 736b 6574 6368 ssible ...sketch │ │ │ │ -00000b70: e280 9920 7072 6f67 7261 6d2e 0a2a 2044 ... program..* D │ │ │ │ -00000b80: 7261 7769 6e67 206f 7074 696f 6e73 3a3a rawing options:: │ │ │ │ -00000b90: 2020 2020 2020 2020 2020 2020 2043 6f6e Con │ │ │ │ -00000ba0: 7472 6f6c 6c69 6e67 206f 626a 6563 7420 trolling object │ │ │ │ -00000bb0: 6170 7065 6172 616e 6365 2e0a 2a20 4472 appearance..* Dr │ │ │ │ -00000bc0: 6177 696e 6720 6120 736f 6c69 643a 3a20 awing a solid:: │ │ │ │ -00000bd0: 2020 2020 2020 2020 2020 2020 4472 6177 Draw │ │ │ │ -00000be0: 696e 6720 616e 206f 626a 6563 7420 7769 ing an object wi │ │ │ │ -00000bf0: 7468 2033 6420 6170 7065 6172 616e 6365 th 3d appearance │ │ │ │ -00000c00: 2e0a 2a20 5370 6563 6961 6c20 6f62 6a65 ..* Special obje │ │ │ │ -00000c10: 6374 733a 3a20 2020 2020 2020 2020 2020 cts:: │ │ │ │ -00000c20: 2020 4c61 7969 6e67 2054 6558 206f 7665 Laying TeX ove │ │ │ │ -00000c30: 722c 2069 6e2c 206f 7220 756e 6465 7220 r, in, or under │ │ │ │ -00000c40: 6472 6177 696e 6773 2e0a 2a20 4f62 6a65 drawings..* Obje │ │ │ │ -00000c50: 6374 2074 7261 6e73 666f 726d 733a 3a20 ct transforms:: │ │ │ │ -00000c60: 2020 2020 2020 2020 2020 526f 7461 7465 Rotate │ │ │ │ -00000c70: 2c20 7472 616e 736c 6174 652c 2073 6361 , translate, sca │ │ │ │ -00000c80: 6c65 2c20 616e 6420 6f74 6865 7273 2e0a le, and others.. │ │ │ │ -00000c90: 2a20 5265 7065 6174 6564 206f 626a 6563 * Repeated objec │ │ │ │ -00000ca0: 7473 3a3a 2020 2020 2020 2020 2020 2020 ts:: │ │ │ │ -00000cb0: 4d61 6b69 6e67 2074 7261 6e73 666f 726d Making transform │ │ │ │ -00000cc0: 6564 2063 6f70 6965 732e 0a2a 2053 7765 ed copies..* Swe │ │ │ │ -00000cd0: 7074 206f 626a 6563 7473 3a3a 2020 2020 pt objects:: │ │ │ │ -00000ce0: 2020 2020 2020 2020 2020 2053 7765 6570 Sweep │ │ │ │ -00000cf0: 696e 6720 6f62 6a65 6374 7320 696e 2073 ing objects in s │ │ │ │ -00000d00: 7061 6365 2074 6f20 6d61 6b65 206e 6577 pace to make new │ │ │ │ -00000d10: 2073 6861 7065 732e 0a0a 5377 6570 7420 shapes...Swept │ │ │ │ -00000d20: 6f62 6a65 6374 730a 0a2a 2050 6f69 6e74 objects..* Point │ │ │ │ -00000d30: 2073 7765 6570 733a 3a20 2020 2020 2020 sweeps:: │ │ │ │ -00000d40: 2020 2020 2020 2020 2053 7765 7074 2070 Swept p │ │ │ │ -00000d50: 6f69 6e74 7320 6d61 6b65 206c 696e 6573 oints make lines │ │ │ │ -00000d60: 2061 6e64 2070 6f6c 7967 6f6e 732e 0a2a and polygons..* │ │ │ │ -00000d70: 2050 6f6c 796c 696e 6520 7377 6565 7073 Polyline sweeps │ │ │ │ -00000d80: 3a3a 2020 2020 2020 2020 2020 2020 2053 :: S │ │ │ │ -00000d90: 7765 7074 206c 696e 6573 206d 616b 6520 wept lines make │ │ │ │ -00000da0: 7375 7266 6163 6573 2e0a 2a20 4e65 7374 surfaces..* Nest │ │ │ │ -00000db0: 6564 2073 7765 6570 733a 3a20 2020 2020 ed sweeps:: │ │ │ │ -00000dc0: 2020 2020 2020 2020 2020 5377 6570 7420 Swept │ │ │ │ -00000dd0: 7377 6565 7073 2061 7265 2075 7365 6675 sweeps are usefu │ │ │ │ -00000de0: 6c21 0a2a 2050 6f6c 7967 6f6e 2073 7765 l!.* Polygon swe │ │ │ │ -00000df0: 6570 733a 3a20 2020 2020 2020 2020 2020 eps:: │ │ │ │ -00000e00: 2020 2053 7765 7074 2070 6f6c 7967 6f6e Swept polygon │ │ │ │ -00000e10: 7320 6d61 6b65 2073 6f6c 6964 732e 2e2e s make solids... │ │ │ │ -00000e20: 0a2a 2050 6f6c 796c 696e 6520 7377 6565 .* Polyline swee │ │ │ │ -00000e30: 7073 2077 6974 6820 636c 6f73 7572 653a ps with closure: │ │ │ │ -00000e40: 3a20 2061 6e64 2073 6f20 646f 2063 6c6f : and so do clo │ │ │ │ -00000e50: 7365 6420 706f 6c79 6c69 6e65 2073 7765 sed polyline swe │ │ │ │ -00000e60: 6570 732e 0a2a 2041 6666 696e 6520 6172 eps..* Affine ar │ │ │ │ -00000e70: 6974 686d 6574 6963 3a3a 2020 2020 2020 ithmetic:: │ │ │ │ -00000e80: 2020 2020 2053 6b65 7463 6820 7573 6566 Sketch usef │ │ │ │ -00000e90: 756c 206d 6174 6820 6578 7072 6573 7369 ul math expressi │ │ │ │ -00000ea0: 6f6e 2e0a 2a20 4d6f 7265 2074 6f20 6c65 on..* More to le │ │ │ │ -00000eb0: 6172 6e3a 3a20 2020 2020 2020 2020 2020 arn:: │ │ │ │ -00000ec0: 2020 2020 4368 6563 6b20 6f75 7420 7468 Check out th │ │ │ │ -00000ed0: 6520 4d6f 6269 7573 2073 7472 6970 210a e Mobius strip!. │ │ │ │ -00000ee0: 0a49 6e70 7574 206c 616e 6775 6167 650a .Input language. │ │ │ │ -00000ef0: 0a2a 204c 616e 6775 6167 6520 6261 7369 .* Language basi │ │ │ │ -00000f00: 6373 3a3a 2020 2020 2020 2020 2020 2020 cs:: │ │ │ │ -00000f10: 2043 6173 652c 2073 7061 6365 2c20 636f Case, space, co │ │ │ │ -00000f20: 6d6d 656e 7473 2c20 696e 636c 7564 6520 mments, include │ │ │ │ -00000f30: 6669 6c65 732e 0a2a 2044 7261 7761 626c files..* Drawabl │ │ │ │ -00000f40: 6573 3a3a 2020 2020 2020 2020 2020 2020 es:: │ │ │ │ -00000f50: 2020 2020 2020 2054 6869 6e67 7320 7468 Things th │ │ │ │ -00000f60: 6174 2063 616e 2062 6520 6472 6177 6e2e at can be drawn. │ │ │ │ -00000f70: 0a2a 2044 6566 696e 6974 696f 6e73 3a3a .* Definitions:: │ │ │ │ -00000f80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00000f90: 2047 6976 696e 6720 7468 696e 6773 206e Giving things n │ │ │ │ -00000fa0: 616d 6573 2e0a 2a20 476c 6f62 616c 2065 ames..* Global e │ │ │ │ -00000fb0: 6e76 6972 6f6e 6d65 6e74 3a3a 2020 2020 nvironment:: │ │ │ │ -00000fc0: 2020 2020 2020 4166 6665 6374 2074 6865 Affect the │ │ │ │ -00000fd0: 2065 6e74 6972 6520 6472 6177 696e 672e entire drawing. │ │ │ │ -00000fe0: 0a0a 4261 7369 6373 0a0a 2a20 4964 656e ..Basics..* Iden │ │ │ │ -00000ff0: 7469 6669 6572 733a 3a20 2020 2020 2020 tifiers:: │ │ │ │ -00001000: 2020 2020 2020 2020 2020 4e61 6d65 7320 Names │ │ │ │ -00001010: 666f 7220 7468 696e 6773 2e0a 2a20 4b65 for things..* Ke │ │ │ │ -00001020: 7920 616e 6420 7265 7365 7276 6564 2077 y and reserved w │ │ │ │ -00001030: 6f72 6473 3a3a 2020 2020 2020 4e61 6d65 ords:: Name │ │ │ │ -00001040: 7320 796f 7520 7368 6f75 6c64 6e27 7420 s you shouldn't │ │ │ │ -00001050: 7573 652e 0a2a 204c 6974 6572 616c 733a use..* Literals: │ │ │ │ -00001060: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ -00001070: 2020 2020 2043 6f6e 7374 616e 7473 2061 Constants a │ │ │ │ -00001080: 6e64 2063 6f6e 7374 7275 6374 6f72 732e nd constructors. │ │ │ │ -00001090: 0a2a 2041 7269 7468 6d65 7469 633a 3a20 .* Arithmetic:: │ │ │ │ -000010a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000010b0: 2052 756c 6573 2066 6f72 2065 7870 7265 Rules for expre │ │ │ │ -000010c0: 7373 696f 6e73 2e0a 2a20 4f70 7469 6f6e ssions..* Option │ │ │ │ -000010d0: 733a 3a20 2020 2020 2020 2020 2020 2020 s:: │ │ │ │ -000010e0: 2020 2020 2020 2020 4d6f 6469 6679 696e Modifyin │ │ │ │ -000010f0: 6720 6f62 6a65 6374 2061 7070 6561 7261 g object appeara │ │ │ │ -00001100: 6e63 652e 0a0a 4c69 7465 7261 6c73 0a0a nce...Literals.. │ │ │ │ -00001110: 2a20 5363 616c 6172 206c 6974 6572 616c * Scalar literal │ │ │ │ -00001120: 733a 3a20 2020 2020 2020 2020 2020 2020 s:: │ │ │ │ -00001130: 4a75 7374 2074 6865 206e 756d 6265 7273 Just the numbers │ │ │ │ -00001140: 2e0a 2a20 506f 696e 7420 616e 6420 7665 ..* Point and ve │ │ │ │ -00001150: 6374 6f72 206c 6974 6572 616c 733a 3a20 ctor literals:: │ │ │ │ -00001160: 2020 3364 2071 7561 6e74 6974 6965 732e 3d quantities. │ │ │ │ -00001170: 0a2a 2054 7261 6e73 666f 726d 206c 6974 .* Transform lit │ │ │ │ -00001180: 6572 616c 733a 3a20 2020 2020 2020 2020 erals:: │ │ │ │ -00001190: 204d 6174 7269 7820 666f 726d 2e0a 0a41 Matrix form...A │ │ │ │ -000011a0: 7269 7468 6d65 7469 6320 6578 7072 6573 rithmetic expres │ │ │ │ -000011b0: 7369 6f6e 730a 0a2a 2054 776f 2d6f 7065 sions..* Two-ope │ │ │ │ -000011c0: 7261 6e64 2028 6269 6e61 7279 2920 666f rand (binary) fo │ │ │ │ -000011d0: 726d 733a 3a20 2041 206f 7020 420a 2a20 rms:: A op B.* │ │ │ │ -000011e0: 556e 6172 7920 666f 726d 733a 3a20 2020 Unary forms:: │ │ │ │ -000011f0: 2020 2020 2020 2020 2020 2020 2020 6f70 op │ │ │ │ -00001200: 2041 2028 616e 6420 6f74 6865 7273 290a A (and others). │ │ │ │ -00001210: 0a4f 7074 696f 6e73 0a0a 2a20 5053 5472 .Options..* PSTr │ │ │ │ -00001220: 6963 6b73 206f 7074 696f 6e73 3a3a 2020 icks options:: │ │ │ │ -00001230: 2020 2020 2020 2020 2020 4f70 7469 6f6e Option │ │ │ │ -00001240: 7320 696e 6865 7269 7465 6420 6672 6f6d s inherited from │ │ │ │ -00001250: 20e2 8098 5053 5472 6963 6b73 e280 992e ...PSTricks.... │ │ │ │ -00001260: 0a2a 2054 696b 5a2f 5047 4620 6f70 7469 .* TikZ/PGF opti │ │ │ │ -00001270: 6f6e 733a 3a20 2020 2020 2020 2020 2020 ons:: │ │ │ │ -00001280: 204f 7074 696f 6e73 2069 6e68 6572 6974 Options inherit │ │ │ │ -00001290: 6564 2066 726f 6d20 e280 9854 696b 5a2f ed from ...TikZ/ │ │ │ │ -000012a0: 5047 46e2 8099 2e0a 2a20 446f 7473 2069 PGF.....* Dots i │ │ │ │ -000012b0: 6e20 5469 6b5a 2f50 4746 3a3a 2020 2020 n TikZ/PGF:: │ │ │ │ -000012c0: 2020 2020 2020 2020 536b 6574 6368 2075 Sketch u │ │ │ │ -000012d0: 7365 7320 e280 9854 696b 5a2f 5047 46e2 ses ...TikZ/PGF. │ │ │ │ -000012e0: 8099 2063 6972 636c 6573 2066 6f72 2064 .. circles for d │ │ │ │ -000012f0: 6f74 732e 0a2a 2054 696b 5a2f 5047 4620 ots..* TikZ/PGF │ │ │ │ -00001300: 7573 6572 2d64 6566 696e 6564 2073 7479 user-defined sty │ │ │ │ -00001310: 6c65 733a 3a20 2053 7570 706f 7274 2066 les:: Support f │ │ │ │ -00001320: 6f72 20e2 8098 5469 6b5a 2f50 4746 e280 or ...TikZ/PGF.. │ │ │ │ -00001330: 9920 6e61 6d65 642c 2075 7365 722d 6465 . named, user-de │ │ │ │ -00001340: 6669 6e65 6420 7374 796c 6573 2e0a 2a20 fined styles..* │ │ │ │ -00001350: 5472 616e 7370 6172 656e 6379 3a3a 2020 Transparency:: │ │ │ │ -00001360: 2020 2020 2020 2020 2020 2020 2020 5365 Se │ │ │ │ -00001370: 652d 7468 726f 7567 6820 706f 6c79 676f e-through polygo │ │ │ │ -00001380: 6e73 2e0a 2a20 496e 7465 726e 616c 206f ns..* Internal o │ │ │ │ -00001390: 7074 696f 6e73 3a3a 2020 2020 2020 2020 ptions:: │ │ │ │ -000013a0: 2020 2020 4f70 7469 6f6e 7320 7573 6564 Options used │ │ │ │ -000013b0: 2062 7920 e280 9873 6b65 7463 68e2 8099 by ...sketch... │ │ │ │ -000013c0: 2e0a 0a50 6f69 6e74 206c 6973 7473 0a0a ...Point lists.. │ │ │ │ -000013d0: 2a20 4472 6177 6162 6c65 733a 3a20 2020 * Drawables:: │ │ │ │ -000013e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000013f0: 5468 696e 6773 2074 6861 7420 6172 6520 Things that are │ │ │ │ -00001400: 6472 6177 6e2e 0a2a 2044 6566 696e 6974 drawn..* Definit │ │ │ │ -00001410: 696f 6e73 3a3a 2020 2020 2020 2020 2020 ions:: │ │ │ │ -00001420: 2020 2020 2020 2054 6869 6e67 7320 7769 Things wi │ │ │ │ -00001430: 7468 206e 616d 6573 2e0a 0a44 7261 7761 th names...Drawa │ │ │ │ -00001440: 626c 6573 0a0a 2a20 446f 7473 3a3a 2020 bles..* Dots:: │ │ │ │ -00001450: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00001460: 2020 2020 2020 4472 6177 2064 6f74 732e Draw dots. │ │ │ │ -00001470: 0a2a 204c 696e 6573 3a3a 2020 2020 2020 .* Lines:: │ │ │ │ -00001480: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00001490: 2044 7261 7720 706f 6c79 6c69 6e65 732e Draw polylines. │ │ │ │ -000014a0: 0a2a 2043 7572 7665 733a 3a20 2020 2020 .* Curves:: │ │ │ │ -000014b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000014c0: 2044 7261 7720 6375 7276 6573 2e0a 2a20 Draw curves..* │ │ │ │ -000014d0: 506f 6c79 676f 6e73 3a3a 2020 2020 2020 Polygons:: │ │ │ │ -000014e0: 2020 2020 2020 2020 2020 2020 2020 4472 Dr │ │ │ │ -000014f0: 6177 2070 6f6c 7967 6f6e 732e 0a2a 2053 aw polygons..* S │ │ │ │ -00001500: 7065 6369 616c 733a 3a20 2020 2020 2020 pecials:: │ │ │ │ -00001510: 2020 2020 2020 2020 2020 2020 2045 6d62 Emb │ │ │ │ -00001520: 6564 2072 6177 204c 6154 6558 2061 6e64 ed raw LaTeX and │ │ │ │ -00001530: 20e2 8098 5053 5472 6963 6b73 e280 992e ...PSTricks.... │ │ │ │ -00001540: 0a2a 2053 7765 6570 733a 3a20 2020 2020 .* Sweeps:: │ │ │ │ -00001550: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00001560: 2044 7261 7720 7377 6565 7073 206f 6620 Draw sweeps of │ │ │ │ -00001570: 646f 7473 2061 6e64 2070 6f6c 796c 696e dots and polylin │ │ │ │ -00001580: 6573 2e0a 2a20 426c 6f63 6b73 3a3a 2020 es..* Blocks:: │ │ │ │ -00001590: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000015a0: 2020 2020 4772 6f75 7020 6f74 6865 7220 Group other │ │ │ │ -000015b0: 6472 6177 6162 6c65 732e 0a2a 2052 6570 drawables..* Rep │ │ │ │ -000015c0: 6561 7473 3a3a 2020 2020 2020 2020 2020 eats:: │ │ │ │ -000015d0: 2020 2020 2020 2020 2020 2044 7261 7720 Draw │ │ │ │ -000015e0: 7472 616e 7366 6f72 6d65 6420 636f 7069 transformed copi │ │ │ │ -000015f0: 6573 206f 6620 6f62 6a65 6374 732e 0a2a es of objects..* │ │ │ │ -00001600: 2050 7574 733a 3a20 2020 2020 2020 2020 Puts:: │ │ │ │ -00001610: 2020 2020 2020 2020 2020 2020 2020 2044 D │ │ │ │ -00001620: 7261 7720 6f6e 6520 6f62 6a65 6374 2074 raw one object t │ │ │ │ -00001630: 7261 6e73 666f 726d 6564 2e0a 0a53 7765 ransformed...Swe │ │ │ │ -00001640: 6570 730a 0a2a 2053 7765 7074 2070 6f69 eps..* Swept poi │ │ │ │ -00001650: 6e74 733a 3a20 2020 2020 2020 2020 2020 nts:: │ │ │ │ -00001660: 2020 2020 2053 7765 7074 2070 6f69 6e74 Swept point │ │ │ │ -00001670: 7320 6d61 6b65 206c 696e 6573 206f 7220 s make lines or │ │ │ │ -00001680: 706f 6c79 676f 6e73 2e0a 2a20 5377 6570 polygons..* Swep │ │ │ │ -00001690: 7420 6c69 6e65 733a 3a20 2020 2020 2020 t lines:: │ │ │ │ -000016a0: 2020 2020 2020 2020 2020 5377 6570 7420 Swept │ │ │ │ -000016b0: 6c69 6e65 7320 6d61 6b65 206f 7065 6e20 lines make open │ │ │ │ -000016c0: 6f72 2063 6c6f 7365 6420 7375 7266 6163 or closed surfac │ │ │ │ -000016d0: 6573 2e0a 2a20 5377 6570 7420 706f 6c79 es..* Swept poly │ │ │ │ -000016e0: 676f 6e73 3a3a 2020 2020 2020 2020 2020 gons:: │ │ │ │ -000016f0: 2020 2020 5377 6570 7420 706f 6c79 676f Swept polygo │ │ │ │ -00001700: 6e73 206d 616b 6520 636c 6f73 6564 2073 ns make closed s │ │ │ │ -00001710: 7572 6661 6365 732e 0a2a 2053 7765 7074 urfaces..* Swept │ │ │ │ -00001720: 2062 6c6f 636b 733a 3a20 2020 2020 2020 blocks:: │ │ │ │ -00001730: 2020 2020 2020 2020 2053 7765 7074 2062 Swept b │ │ │ │ -00001740: 6c6f 636b 20e2 89a1 2062 6c6f 636b 206f lock ... block o │ │ │ │ -00001750: 6620 7377 6565 7073 2e0a 2a20 5377 6565 f sweeps..* Swee │ │ │ │ -00001760: 7020 6661 6365 2073 706c 6974 7469 6e67 p face splitting │ │ │ │ -00001770: 3a3a 2020 2020 2020 2020 4669 7869 6e67 :: Fixing │ │ │ │ -00001780: 2077 6172 7065 6420 6661 6365 7320 7769 warped faces wi │ │ │ │ -00001790: 7468 2074 7269 616e 676c 6573 2e0a 0a44 th triangles...D │ │ │ │ -000017a0: 6566 696e 6974 696f 6e73 0a0a 2a20 466f efinitions..* Fo │ │ │ │ -000017b0: 726d 7320 6f66 2064 6566 696e 6974 696f rms of definitio │ │ │ │ -000017c0: 6e73 3a3a 2020 2020 2020 2020 4469 6666 ns:: Diff │ │ │ │ -000017d0: 6572 656e 7420 6465 6673 2066 6f72 2064 erent defs for d │ │ │ │ -000017e0: 6966 6665 7265 6e74 2070 7572 706f 7365 ifferent purpose │ │ │ │ -000017f0: 732e 0a2a 2046 6f72 6d73 206f 6620 7265 s..* Forms of re │ │ │ │ -00001800: 6665 7265 6e63 6573 3a3a 2020 2020 2020 ferences:: │ │ │ │ -00001810: 2020 2048 6f77 2072 6566 6572 656e 6365 How reference │ │ │ │ -00001820: 7320 6465 6e6f 7465 2074 7970 6573 2e0a s denote types.. │ │ │ │ -00001830: 0a47 6c6f 6261 6c20 656e 7669 726f 6e6d .Global environm │ │ │ │ -00001840: 656e 740a 0a2a 2047 6c6f 6261 6c20 6f70 ent..* Global op │ │ │ │ -00001850: 7469 6f6e 733a 3a20 2020 2020 2020 2020 tions:: │ │ │ │ -00001860: 2020 2020 2041 7474 7269 6275 7465 7320 Attributes │ │ │ │ -00001870: 6f66 2074 6865 2065 6e74 6972 6520 6472 of the entire dr │ │ │ │ -00001880: 6177 696e 672e 0a2a 2043 616d 6572 613a awing..* Camera: │ │ │ │ -00001890: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ -000018a0: 2020 2020 2020 2041 2066 696e 616c 2063 A final c │ │ │ │ -000018b0: 616d 6572 6120 7472 616e 7366 6f72 6d61 amera transforma │ │ │ │ -000018c0: 7469 6f6e 206f 6620 7468 6520 7363 656e tion of the scen │ │ │ │ -000018d0: 652e 0a2a 2050 6963 7475 7265 2062 6f78 e..* Picture box │ │ │ │ -000018e0: 3a3a 2020 2020 2020 2020 2020 2020 2020 :: │ │ │ │ -000018f0: 2020 2053 6574 7469 6e67 2074 6865 2062 Setting the b │ │ │ │ -00001900: 6f75 6e64 696e 6720 626f 7820 616e 6420 ounding box and │ │ │ │ -00001910: 3264 2063 6c69 7070 696e 672e 0a2a 2046 2d clipping..* F │ │ │ │ -00001920: 7261 6d65 3a3a 2020 2020 2020 2020 2020 rame:: │ │ │ │ -00001930: 2020 2020 2020 2020 2020 2020 2041 6464 Add │ │ │ │ -00001940: 696e 6720 6120 626f 7820 6172 6f75 6e64 ing a box around │ │ │ │ -00001950: 2074 6865 2064 7261 7769 6e67 2e0a 2a20 the drawing..* │ │ │ │ -00001960: 4c61 6e67 7561 6765 3a3a 2020 2020 2020 Language:: │ │ │ │ -00001970: 2020 2020 2020 2020 2020 2020 2020 5365 Se │ │ │ │ -00001980: 7474 696e 6720 7468 6520 6f75 7470 7574 tting the output │ │ │ │ -00001990: 206c 616e 6775 6167 652e 0a0a 4275 696c language...Buil │ │ │ │ -000019a0: 6469 6e67 2061 2064 7261 7769 6e67 0a0a ding a drawing.. │ │ │ │ -000019b0: 2a20 4f76 6572 7669 6577 3a3a 2020 2020 * Overview:: │ │ │ │ -000019c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000019d0: 4275 696c 6469 6e67 2061 2073 7562 7374 Building a subst │ │ │ │ -000019e0: 616e 7469 616c 2064 7261 7769 6e67 2e0a antial drawing.. │ │ │ │ -000019f0: 2a20 4120 7465 6368 6e69 6361 6c20 6472 * A technical dr │ │ │ │ -00001a00: 6177 696e 673a 3a20 2020 2020 2020 2020 awing:: │ │ │ │ -00001a10: 416e 2065 7861 6d70 6c65 2077 6974 6820 An example with │ │ │ │ -00001a20: 6669 6e65 2070 6c61 6365 6d65 6e74 2e0a fine placement.. │ │ │ │ -00001a30: 2a20 4120 6869 6572 6172 6368 6963 616c * A hierarchical │ │ │ │ -00001a40: 206d 6f64 656c 3a3a 2020 2020 2020 2020 model:: │ │ │ │ -00001a50: 416e 2065 7861 6d70 6c65 2077 6974 6820 An example with │ │ │ │ -00001a60: 7377 6565 7073 2061 6e64 2070 7574 732e sweeps and puts. │ │ │ │ -00001a70: 0a2a 2043 6176 6561 7473 3a3a 2020 2020 .* Caveats:: │ │ │ │ -00001a80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00001a90: 2057 6865 7265 2074 726f 7562 6c65 2063 Where trouble c │ │ │ │ -00001aa0: 616e 206f 6363 7572 2e0a 0a43 6176 6561 an occur...Cavea │ │ │ │ -00001ab0: 7473 0a0a 2a20 4c69 6d69 7473 206f 6e20 ts..* Limits on │ │ │ │ -00001ac0: 6572 726f 7220 6465 7465 6374 696f 6e3a error detection: │ │ │ │ -00001ad0: 3a20 2020 5768 6174 2073 6b65 7463 6820 : What sketch │ │ │ │ -00001ae0: 646f 6573 6e27 7420 646f 2e0a 2a20 436c doesn't do..* Cl │ │ │ │ -00001af0: 6970 7069 6e67 3a3a 2020 2020 2020 2020 ipping:: │ │ │ │ -00001b00: 2020 2020 2020 2020 2020 2020 4e6f 2063 No c │ │ │ │ -00001b10: 6c69 7070 696e 6720 6174 2070 7265 7365 lipping at prese │ │ │ │ -00001b20: 6e74 2e0a 2a20 4869 6464 656e 2073 7572 nt..* Hidden sur │ │ │ │ -00001b30: 6661 6365 2072 656d 6f76 616c 3a3a 2020 face removal:: │ │ │ │ -00001b40: 2020 2020 496d 7065 7266 6563 7469 6f6e Imperfection │ │ │ │ -00001b50: 7320 746f 2066 6978 2e0a 0a48 6964 6465 s to fix...Hidde │ │ │ │ -00001b60: 6e20 7375 7266 6163 6520 7265 6d6f 7661 n surface remova │ │ │ │ -00001b70: 6c20 616e 6420 706f 6c79 676f 6e20 7370 l and polygon sp │ │ │ │ -00001b80: 6c69 7474 696e 670a 0a2a 2053 7461 7469 litting..* Stati │ │ │ │ -00001b90: 7374 6963 733a 3a20 2020 2020 2020 2020 stics:: │ │ │ │ -00001ba0: 2020 2020 2020 2020 2050 6572 666f 726d Perform │ │ │ │ -00001bb0: 616e 6365 206e 756d 6265 7273 206f 6e20 ance numbers on │ │ │ │ -00001bc0: 6465 7074 6820 736f 7274 2e0a 2a20 4275 depth sort..* Bu │ │ │ │ -00001bd0: 6773 2061 6e64 2061 6e6f 6d61 6c69 6573 gs and anomalies │ │ │ │ -00001be0: 3a3a 2020 2020 2020 2020 2020 496d 7065 :: Impe │ │ │ │ -00001bf0: 7266 6563 7469 6f6e 7320 696e 2074 6869 rfections in thi │ │ │ │ -00001c00: 7320 696d 706c 656d 656e 7461 7469 6f6e s implementation │ │ │ │ -00001c10: 2e0a 0a1f 0a46 696c 653a 2073 6b65 7463 .....File: sketc │ │ │ │ -00001c20: 682e 696e 666f 2c20 204e 6f64 653a 2041 h.info, Node: A │ │ │ │ -00001c30: 626f 7574 2073 6b65 7463 682c 2020 4e65 bout sketch, Ne │ │ │ │ -00001c40: 7874 3a20 496e 7472 6f64 7563 7469 6f6e xt: Introduction │ │ │ │ -00001c50: 2062 7920 6578 616d 706c 652c 2020 5072 by example, Pr │ │ │ │ -00001c60: 6576 3a20 546f 702c 2020 5570 3a20 546f ev: Top, Up: To │ │ │ │ -00001c70: 700a 0a31 2041 626f 7574 2073 6b65 7463 p..1 About sketc │ │ │ │ -00001c80: 680a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a h.************** │ │ │ │ -00001c90: 0a0a 2a20 4d65 6e75 3a0a 0a2a 2052 6570 ..* Menu:..* Rep │ │ │ │ -00001ca0: 6f72 7469 6e67 2062 7567 733a 3a20 2020 orting bugs:: │ │ │ │ -00001cb0: 2020 2020 2020 2020 2020 204c 6574 2075 Let u │ │ │ │ -00001cc0: 7365 206b 6e6f 7720 7768 6174 2773 2077 se know what's w │ │ │ │ -00001cd0: 726f 6e67 210a 2a20 436f 6e74 7269 6275 rong!.* Contribu │ │ │ │ -00001ce0: 7469 6f6e 733a 3a20 2020 2020 2020 2020 tions:: │ │ │ │ -00001cf0: 2020 2020 2020 486f 7720 796f 7520 6361 How you ca │ │ │ │ -00001d00: 6e20 6865 6c70 2e2e 2e2e 0a0a e280 9853 n help.........S │ │ │ │ -00001d10: 6b65 7463 68e2 8099 2069 7320 6120 736d ketch... is a sm │ │ │ │ -00001d20: 616c 6c2c 2073 696d 706c 6520 7379 7374 all, simple syst │ │ │ │ -00001d30: 656d 2066 6f72 2070 726f 6475 6369 6e67 em for producing │ │ │ │ -00001d40: 206c 696e 6520 6472 6177 696e 6773 206f line drawings o │ │ │ │ -00001d50: 6620 7477 6f2d 0a6f 7220 7468 7265 652d f two-.or three- │ │ │ │ -00001d60: 6469 6d65 6e73 696f 6e61 6c20 6f62 6a65 dimensional obje │ │ │ │ -00001d70: 6374 7320 616e 6420 7363 656e 6573 2e20 cts and scenes. │ │ │ │ -00001d80: 2049 7420 6265 6761 6e20 6173 2061 2077 It began as a w │ │ │ │ -00001d90: 6179 2074 6f20 6d61 6b65 0a69 6c6c 7573 ay to make.illus │ │ │ │ -00001da0: 7472 6174 696f 6e73 2066 6f72 2061 2074 trations for a t │ │ │ │ -00001db0: 6578 7462 6f6f 6b20 6166 7465 7220 7765 extbook after we │ │ │ │ -00001dc0: 2063 6f75 6c64 2066 696e 6420 6e6f 2073 could find no s │ │ │ │ -00001dd0: 7569 7461 626c 6520 746f 6f6c 2066 6f72 uitable tool for │ │ │ │ -00001de0: 0a74 6869 7320 7075 7270 6f73 652e 2020 .this purpose. │ │ │ │ -00001df0: 4578 6973 7469 6e67 2073 6365 6e65 2070 Existing scene p │ │ │ │ -00001e00: 726f 6365 7373 6f72 7320 656d 7068 6173 rocessors emphas │ │ │ │ -00001e10: 697a 6564 2047 5549 7320 616e 642f 6f72 ized GUIs and/or │ │ │ │ -00001e20: 0a70 686f 746f 2d72 6561 6c69 736d 2c20 .photo-realism, │ │ │ │ -00001e30: 626f 7468 2075 6e2d 7573 6566 756c 2074 both un-useful t │ │ │ │ -00001e40: 6f20 7573 2e20 2057 6520 7761 6e74 6564 o us. We wanted │ │ │ │ -00001e50: 2074 6f20 7072 6f64 7563 6520 6669 6e65 to produce fine │ │ │ │ -00001e60: 6c79 0a77 726f 7567 6874 2c20 6d61 7468 ly.wrought, math │ │ │ │ -00001e70: 656d 6174 6963 616c 6c79 2d62 6173 6564 ematically-based │ │ │ │ -00001e80: 2069 6c6c 7573 7472 6174 696f 6e73 2077 illustrations w │ │ │ │ -00001e90: 6974 6820 6e6f 2065 7874 7261 6e65 6f75 ith no extraneou │ │ │ │ -00001ea0: 7320 6465 7461 696c 2e0a 0a20 2020 e280 s detail... .. │ │ │ │ -00001eb0: 9853 6b65 7463 68e2 8099 2061 6363 6570 .Sketch... accep │ │ │ │ -00001ec0: 7473 2061 2074 696e 7920 7363 656e 6520 ts a tiny scene │ │ │ │ -00001ed0: 6465 7363 7269 7074 696f 6e20 6c61 6e67 description lang │ │ │ │ -00001ee0: 7561 6765 2061 6e64 2067 656e 6572 6174 uage and generat │ │ │ │ -00001ef0: 6573 0ae2 8098 5053 5472 6963 6b73 e280 es....PSTricks.. │ │ │ │ -00001f00: 9920 6f72 20e2 8098 5469 6b5a 2f50 4746 . or ...TikZ/PGF │ │ │ │ -00001f10: e280 9920 636f 6465 2066 6f72 204c 6154 ... code for LaT │ │ │ │ -00001f20: 6558 2e20 2054 6865 20e2 8098 736b 6574 eX. The ...sket │ │ │ │ -00001f30: 6368 e280 9920 6c61 6e67 7561 6765 2069 ch... language i │ │ │ │ -00001f40: 730a 7369 6d69 6c61 7220 746f 20e2 8098 s.similar to ... │ │ │ │ -00001f50: 5053 5472 6963 6b73 e280 992c 206d 616b PSTricks..., mak │ │ │ │ -00001f60: 696e 6720 6974 2065 6173 7920 746f 206c ing it easy to l │ │ │ │ -00001f70: 6561 726e 2066 6f72 2063 7572 7265 6e74 earn for current │ │ │ │ -00001f80: 20e2 8098 5053 5472 6963 6b73 e280 990a ...PSTricks.... │ │ │ │ -00001f90: 7573 6572 732e 2020 5365 6520 7777 772e users. See www. │ │ │ │ -00001fa0: 7073 7472 6963 6b73 2e64 6520 666f 7220 pstricks.de for │ │ │ │ -00001fb0: 696e 666f 726d 6174 696f 6e20 6f6e 20e2 information on . │ │ │ │ -00001fc0: 8098 5053 5472 6963 6b73 e280 992e 2020 ..PSTricks.... │ │ │ │ -00001fd0: e280 9854 696b 5a2f 5047 46e2 8099 0a69 ...TikZ/PGF....i │ │ │ │ -00001fe0: 7320 7369 6d69 6c61 722e 2020 5365 6520 s similar. See │ │ │ │ -00001ff0: 6874 7470 3a2f 2f73 6f75 7263 6566 6f72 http://sourcefor │ │ │ │ -00002000: 6765 2e6e 6574 2f70 726f 6a65 6374 732f ge.net/projects/ │ │ │ │ -00002010: 7067 662e 2020 4f6e 6520 6361 6e20 6561 pgf. One can ea │ │ │ │ -00002020: 7369 6c79 0a69 6e63 6c75 6465 2061 7262 sily.include arb │ │ │ │ -00002030: 6974 7261 7279 20e2 8098 5053 5472 6963 itrary ...PSTric │ │ │ │ -00002040: 6b73 e280 9920 6f72 20e2 8098 5469 6b5a ks... or ...TikZ │ │ │ │ -00002050: 2f50 4746 e280 9920 6472 6177 696e 6773 /PGF... drawings │ │ │ │ -00002060: 2061 6e64 2074 6578 7420 6f76 6572 2c20 and text over, │ │ │ │ -00002070: 696e 2c0a 6f72 2075 6e64 6572 20e2 8098 in,.or under ... │ │ │ │ -00002080: 736b 6574 6368 e280 9920 6472 6177 696e sketch... drawin │ │ │ │ -00002090: 6773 2c20 7072 6f76 6964 696e 6720 6163 gs, providing ac │ │ │ │ -000020a0: 6365 7373 2074 6f20 7468 6520 6675 6c6c cess to the full │ │ │ │ -000020b0: 2070 6f77 6572 206f 6620 4c61 5465 580a power of LaTeX. │ │ │ │ -000020c0: 7465 7874 2061 6e64 206d 6174 6865 6d61 text and mathema │ │ │ │ -000020d0: 7469 6373 2066 6f72 6d61 7474 696e 6720 tics formatting │ │ │ │ -000020e0: 696e 2061 2074 6872 6565 2d64 696d 656e in a three-dimen │ │ │ │ -000020f0: 7369 6f6e 616c 2073 6574 7469 6e67 2e0a sional setting.. │ │ │ │ -00002100: 0a1f 0a46 696c 653a 2073 6b65 7463 682e ...File: sketch. │ │ │ │ -00002110: 696e 666f 2c20 204e 6f64 653a 2052 6570 info, Node: Rep │ │ │ │ -00002120: 6f72 7469 6e67 2062 7567 732c 2020 4e65 orting bugs, Ne │ │ │ │ -00002130: 7874 3a20 436f 6e74 7269 6275 7469 6f6e xt: Contribution │ │ │ │ -00002140: 732c 2020 5072 6576 3a20 4162 6f75 7420 s, Prev: About │ │ │ │ -00002150: 736b 6574 6368 2c20 2055 703a 2041 626f sketch, Up: Abo │ │ │ │ -00002160: 7574 2073 6b65 7463 680a 0a31 2e31 2052 ut sketch..1.1 R │ │ │ │ -00002170: 6570 6f72 7469 6e67 2062 7567 7320 616e eporting bugs an │ │ │ │ -00002180: 6420 7265 636f 6d6d 656e 6469 6e67 2069 d recommending i │ │ │ │ -00002190: 6d70 726f 7665 6d65 6e74 732e 0a3d 3d3d mprovements..=== │ │ │ │ +000000b0: 2c20 5375 6e64 6179 2c20 4d61 7263 6820 , Sunday, March │ │ │ │ +000000c0: 3031 2c0a 3230 3236 2c20 6120 7072 6f67 01,.2026, a prog │ │ │ │ +000000d0: 7261 6d20 7468 6174 2063 6f6e 7665 7274 ram that convert │ │ │ │ +000000e0: 7320 6465 7363 7269 7074 696f 6e73 206f s descriptions o │ │ │ │ +000000f0: 6620 7369 6d70 6c65 2074 6872 6565 2d64 f simple three-d │ │ │ │ +00000100: 696d 656e 7369 6f6e 616c 0a73 6365 6e65 imensional.scene │ │ │ │ +00000110: 7320 696e 746f 206c 696e 6520 6472 6177 s into line draw │ │ │ │ +00000120: 696e 6773 2e20 2054 6869 7320 7665 7273 ings. This vers │ │ │ │ +00000130: 696f 6e20 6765 6e65 7261 7465 7320 e280 ion generates .. │ │ │ │ +00000140: 9850 5354 7269 636b 73e2 8099 206f 720a .PSTricks... or. │ │ │ │ +00000150: e280 9850 4746 2f54 696b 5ae2 8099 2063 ...PGF/TikZ... c │ │ │ │ +00000160: 6f64 6520 7375 6974 6162 6c65 2066 6f72 ode suitable for │ │ │ │ +00000170: 2075 7365 2077 6974 6820 7468 6520 5465 use with the Te │ │ │ │ +00000180: 5820 646f 6375 6d65 6e74 2070 726f 6365 X document proce │ │ │ │ +00000190: 7373 696e 670a 7379 7374 656d 2e0a 0a20 ssing.system... │ │ │ │ +000001a0: 2020 e280 9853 6b65 7463 68e2 8099 2069 ...Sketch... i │ │ │ │ +000001b0: 7320 6672 6565 2073 6f66 7477 6172 652e s free software. │ │ │ │ +000001c0: 2020 596f 7520 6361 6e20 7265 6469 7374 You can redist │ │ │ │ +000001d0: 7269 6275 7465 2069 7420 616e 642f 6f72 ribute it and/or │ │ │ │ +000001e0: 206d 6f64 6966 7920 6974 0a75 6e64 6572 modify it.under │ │ │ │ +000001f0: 2074 6865 2074 6572 6d73 206f 6620 7468 the terms of th │ │ │ │ +00000200: 6520 474e 5520 4765 6e65 7261 6c20 5075 e GNU General Pu │ │ │ │ +00000210: 626c 6963 204c 6963 656e 7365 2061 7320 blic License as │ │ │ │ +00000220: 7075 626c 6973 6865 6420 6279 2074 6865 published by the │ │ │ │ +00000230: 0a46 7265 6520 536f 6674 7761 7265 2046 .Free Software F │ │ │ │ +00000240: 6f75 6e64 6174 696f 6e3b 2065 6974 6865 oundation; eithe │ │ │ │ +00000250: 7220 7665 7273 696f 6e20 332c 206f 7220 r version 3, or │ │ │ │ +00000260: 2861 7420 796f 7572 206f 7074 696f 6e29 (at your option) │ │ │ │ +00000270: 2061 6e79 0a6c 6174 6572 2076 6572 7369 any.later versi │ │ │ │ +00000280: 6f6e 2e0a 0a20 2020 536b 6574 6368 2069 on... Sketch i │ │ │ │ +00000290: 7320 6469 7374 7269 6275 7465 6420 696e s distributed in │ │ │ │ +000002a0: 2074 6865 2068 6f70 6520 7468 6174 2069 the hope that i │ │ │ │ +000002b0: 7420 7769 6c6c 2062 6520 7573 6566 756c t will be useful │ │ │ │ +000002c0: 2c20 6275 7420 5749 5448 4f55 540a 414e , but WITHOUT.AN │ │ │ │ +000002d0: 5920 5741 5252 414e 5459 3b20 7769 7468 Y WARRANTY; with │ │ │ │ +000002e0: 6f75 7420 6576 656e 2074 6865 2069 6d70 out even the imp │ │ │ │ +000002f0: 6c69 6564 2077 6172 7261 6e74 7920 6f66 lied warranty of │ │ │ │ +00000300: 204d 4552 4348 414e 5441 4249 4c49 5459 MERCHANTABILITY │ │ │ │ +00000310: 206f 720a 4649 544e 4553 5320 464f 5220 or.FITNESS FOR │ │ │ │ +00000320: 4120 5041 5254 4943 554c 4152 2050 5552 A PARTICULAR PUR │ │ │ │ +00000330: 504f 5345 2e20 5365 6520 7468 6520 474e POSE. See the GN │ │ │ │ +00000340: 5520 4765 6e65 7261 6c20 5075 626c 6963 U General Public │ │ │ │ +00000350: 204c 6963 656e 7365 2066 6f72 0a6d 6f72 License for.mor │ │ │ │ +00000360: 6520 6465 7461 696c 732e 0a0a 2020 2059 e details... Y │ │ │ │ +00000370: 6f75 2073 686f 756c 6420 6861 7665 2072 ou should have r │ │ │ │ +00000380: 6563 6569 7665 6420 6120 636f 7079 206f eceived a copy o │ │ │ │ +00000390: 6620 7468 6520 474e 5520 4765 6e65 7261 f the GNU Genera │ │ │ │ +000003a0: 6c20 5075 626c 6963 204c 6963 656e 7365 l Public License │ │ │ │ +000003b0: 0a61 6c6f 6e67 2077 6974 6820 e280 9873 .along with ...s │ │ │ │ +000003c0: 6b65 7463 68e2 8099 3b20 7365 6520 7468 ketch...; see th │ │ │ │ +000003d0: 6520 6669 6c65 2043 4f50 5949 4e47 2e74 e file COPYING.t │ │ │ │ +000003e0: 7874 2e20 2049 6620 6e6f 742c 2073 6565 xt. If not, see │ │ │ │ +000003f0: 0a68 7474 703a 2f2f 7777 772e 676e 752e .http://www.gnu. │ │ │ │ +00000400: 6f72 672f 636f 7079 6c65 6674 2e0a 0a49 org/copyleft...I │ │ │ │ +00000410: 4e46 4f2d 4449 522d 5345 4354 494f 4e20 NFO-DIR-SECTION │ │ │ │ +00000420: 5465 580a 5354 4152 542d 494e 464f 2d44 TeX.START-INFO-D │ │ │ │ +00000430: 4952 2d45 4e54 5259 0a2a 2053 6b65 7463 IR-ENTRY.* Sketc │ │ │ │ +00000440: 683a 2028 736b 6574 6368 292e 2020 2020 h: (sketch). │ │ │ │ +00000450: 2020 2020 2020 2020 2053 696d 706c 6520 Simple │ │ │ │ +00000460: 3344 2073 6b65 7463 6869 6e67 2066 6f72 3D sketching for │ │ │ │ +00000470: 2054 6558 0a45 4e44 2d49 4e46 4f2d 4449 TeX.END-INFO-DI │ │ │ │ +00000480: 522d 454e 5452 590a 0a1f 0a46 696c 653a R-ENTRY....File: │ │ │ │ +00000490: 2073 6b65 7463 682e 696e 666f 2c20 204e sketch.info, N │ │ │ │ +000004a0: 6f64 653a 2054 6f70 2c20 204e 6578 743a ode: Top, Next: │ │ │ │ +000004b0: 2041 626f 7574 2073 6b65 7463 682c 2020 About sketch, │ │ │ │ +000004c0: 5072 6576 3a20 2864 6972 292c 2020 5570 Prev: (dir), Up │ │ │ │ +000004d0: 3a20 2864 6972 290a 0a53 6b65 7463 680a : (dir)..Sketch. │ │ │ │ +000004e0: 2a2a 2a2a 2a2a 0a0a 436f 7079 7269 6768 ******..Copyrigh │ │ │ │ +000004f0: 7420 c2a9 2032 3030 3520 746f 2032 3031 t .. 2005 to 201 │ │ │ │ +00000500: 3220 4575 6765 6e65 204b 2e20 5265 7373 2 Eugene K. Ress │ │ │ │ +00000510: 6c65 722e 0a0a 2020 2054 6869 7320 6d61 ler... This ma │ │ │ │ +00000520: 6e75 616c 2069 7320 666f 7220 e280 9873 nual is for ...s │ │ │ │ +00000530: 6b65 7463 68e2 8099 2c20 7665 7273 696f ketch..., versio │ │ │ │ +00000540: 6e20 302e 3320 2862 7569 6c64 2037 292c n 0.3 (build 7), │ │ │ │ +00000550: 2053 756e 6461 792c 204d 6172 6368 2030 Sunday, March 0 │ │ │ │ +00000560: 312c 0a32 3032 362c 2061 2070 726f 6772 1,.2026, a progr │ │ │ │ +00000570: 616d 2074 6861 7420 636f 6e76 6572 7473 am that converts │ │ │ │ +00000580: 2064 6573 6372 6970 7469 6f6e 7320 6f66 descriptions of │ │ │ │ +00000590: 2073 696d 706c 6520 7468 7265 652d 6469 simple three-di │ │ │ │ +000005a0: 6d65 6e73 696f 6e61 6c0a 7363 656e 6573 mensional.scenes │ │ │ │ +000005b0: 2069 6e74 6f20 6c69 6e65 2064 7261 7769 into line drawi │ │ │ │ +000005c0: 6e67 732e 2020 5468 6973 2076 6572 7369 ngs. This versi │ │ │ │ +000005d0: 6f6e 2067 656e 6572 6174 6573 20e2 8098 on generates ... │ │ │ │ +000005e0: 5053 5472 6963 6b73 e280 9920 6f72 0ae2 PSTricks... or.. │ │ │ │ +000005f0: 8098 5047 462f 5469 6b5a e280 9920 636f ..PGF/TikZ... co │ │ │ │ +00000600: 6465 2073 7569 7461 626c 6520 666f 7220 de suitable for │ │ │ │ +00000610: 7573 6520 7769 7468 2074 6865 2054 6558 use with the TeX │ │ │ │ +00000620: 2064 6f63 756d 656e 7420 7072 6f63 6573 document proces │ │ │ │ +00000630: 7369 6e67 0a73 7973 7465 6d2e 0a0a 2020 sing.system... │ │ │ │ +00000640: 20e2 8098 536b 6574 6368 e280 9920 6973 ...Sketch... is │ │ │ │ +00000650: 2066 7265 6520 736f 6674 7761 7265 2e20 free software. │ │ │ │ +00000660: 2059 6f75 2063 616e 2072 6564 6973 7472 You can redistr │ │ │ │ +00000670: 6962 7574 6520 6974 2061 6e64 2f6f 7220 ibute it and/or │ │ │ │ +00000680: 6d6f 6469 6679 2069 740a 756e 6465 7220 modify it.under │ │ │ │ +00000690: 7468 6520 7465 726d 7320 6f66 2074 6865 the terms of the │ │ │ │ +000006a0: 2047 4e55 2047 656e 6572 616c 2050 7562 GNU General Pub │ │ │ │ +000006b0: 6c69 6320 4c69 6365 6e73 6520 6173 2070 lic License as p │ │ │ │ +000006c0: 7562 6c69 7368 6564 2062 7920 7468 650a ublished by the. │ │ │ │ +000006d0: 4672 6565 2053 6f66 7477 6172 6520 466f Free Software Fo │ │ │ │ +000006e0: 756e 6461 7469 6f6e 3b20 6569 7468 6572 undation; either │ │ │ │ +000006f0: 2076 6572 7369 6f6e 2033 2c20 6f72 2028 version 3, or ( │ │ │ │ +00000700: 6174 2079 6f75 7220 6f70 7469 6f6e 2920 at your option) │ │ │ │ +00000710: 616e 790a 6c61 7465 7220 7665 7273 696f any.later versio │ │ │ │ +00000720: 6e2e 0a0a 2020 2053 6b65 7463 6820 6973 n... Sketch is │ │ │ │ +00000730: 2064 6973 7472 6962 7574 6564 2069 6e20 distributed in │ │ │ │ +00000740: 7468 6520 686f 7065 2074 6861 7420 6974 the hope that it │ │ │ │ +00000750: 2077 696c 6c20 6265 2075 7365 6675 6c2c will be useful, │ │ │ │ +00000760: 2062 7574 2057 4954 484f 5554 0a41 4e59 but WITHOUT.ANY │ │ │ │ +00000770: 2057 4152 5241 4e54 593b 2077 6974 686f WARRANTY; witho │ │ │ │ +00000780: 7574 2065 7665 6e20 7468 6520 696d 706c ut even the impl │ │ │ │ +00000790: 6965 6420 7761 7272 616e 7479 206f 6620 ied warranty of │ │ │ │ +000007a0: 4d45 5243 4841 4e54 4142 494c 4954 5920 MERCHANTABILITY │ │ │ │ +000007b0: 6f72 0a46 4954 4e45 5353 2046 4f52 2041 or.FITNESS FOR A │ │ │ │ +000007c0: 2050 4152 5449 4355 4c41 5220 5055 5250 PARTICULAR PURP │ │ │ │ +000007d0: 4f53 452e 2053 6565 2074 6865 2047 4e55 OSE. See the GNU │ │ │ │ +000007e0: 2047 656e 6572 616c 2050 7562 6c69 6320 General Public │ │ │ │ +000007f0: 4c69 6365 6e73 6520 666f 720a 6d6f 7265 License for.more │ │ │ │ +00000800: 2064 6574 6169 6c73 2e0a 0a20 2020 596f details... Yo │ │ │ │ +00000810: 7520 7368 6f75 6c64 2068 6176 6520 7265 u should have re │ │ │ │ +00000820: 6365 6976 6564 2061 2063 6f70 7920 6f66 ceived a copy of │ │ │ │ +00000830: 2074 6865 2047 4e55 2047 656e 6572 616c the GNU General │ │ │ │ +00000840: 2050 7562 6c69 6320 4c69 6365 6e73 650a Public License. │ │ │ │ +00000850: 616c 6f6e 6720 7769 7468 20e2 8098 736b along with ...sk │ │ │ │ +00000860: 6574 6368 e280 993b 2073 6565 2074 6865 etch...; see the │ │ │ │ +00000870: 2066 696c 6520 434f 5059 494e 472e 7478 file COPYING.tx │ │ │ │ +00000880: 742e 2020 4966 206e 6f74 2c20 7365 650a t. If not, see. │ │ │ │ +00000890: 6874 7470 3a2f 2f77 7777 2e67 6e75 2e6f http://www.gnu.o │ │ │ │ +000008a0: 7267 2f63 6f70 796c 6566 742e 0a0a 2a20 rg/copyleft...* │ │ │ │ +000008b0: 4d65 6e75 3a0a 0a2a 2041 626f 7574 2073 Menu:..* About s │ │ │ │ +000008c0: 6b65 7463 683a 3a20 2020 2020 2020 2020 ketch:: │ │ │ │ +000008d0: 2020 2020 2020 2057 6879 2073 6b65 7463 Why sketc │ │ │ │ +000008e0: 6820 6578 6973 7473 2061 6e64 2077 6861 h exists and wha │ │ │ │ +000008f0: 7420 6974 2064 6f65 732e 0a2a 2049 6e74 t it does..* Int │ │ │ │ +00000900: 726f 6475 6374 696f 6e20 6279 2065 7861 roduction by exa │ │ │ │ +00000910: 6d70 6c65 3a3a 2020 2020 204d 6f73 7420 mple:: Most │ │ │ │ +00000920: 6665 6174 7572 6573 2073 686f 776e 2061 features shown a │ │ │ │ +00000930: 7320 776f 726b 696e 6720 636f 6465 2e0a s working code.. │ │ │ │ +00000940: 2a20 496e 7075 7420 6c61 6e67 7561 6765 * Input language │ │ │ │ +00000950: 3a3a 2020 2020 2020 2020 2020 2020 2020 :: │ │ │ │ +00000960: 5379 6e74 6178 2061 6e64 2073 656d 616e Syntax and seman │ │ │ │ +00000970: 7469 6373 206f 6620 e280 9873 6b65 7463 tics of ...sketc │ │ │ │ +00000980: 68e2 8099 2063 6f6d 6d61 6e64 732e 0a2a h... commands..* │ │ │ │ +00000990: 2042 7569 6c64 696e 6720 6120 6472 6177 Building a draw │ │ │ │ +000009a0: 696e 673a 3a20 2020 2020 2020 2020 2048 ing:: H │ │ │ │ +000009b0: 6f77 2074 6f20 7573 6520 e280 9873 6b65 ow to use ...ske │ │ │ │ +000009c0: 7463 68e2 8099 2070 726f 6475 6374 6976 tch... productiv │ │ │ │ +000009d0: 656c 792e 0a2a 2043 6f6d 6d61 6e64 206c ely..* Command l │ │ │ │ +000009e0: 696e 653a 3a20 2020 2020 2020 2020 2020 ine:: │ │ │ │ +000009f0: 2020 2020 204f 7074 696f 6e73 2061 6e64 Options and │ │ │ │ +00000a00: 2074 6865 6972 2075 7361 6765 2e0a 2a20 their usage..* │ │ │ │ +00000a10: 496e 7374 616c 6c69 6e67 2073 6b65 7463 Installing sketc │ │ │ │ +00000a20: 683a 3a20 2020 2020 2020 2020 2020 4275 h:: Bu │ │ │ │ +00000a30: 696c 6469 6e67 2061 6e64 2069 6e73 7461 ilding and insta │ │ │ │ +00000a40: 6c6c 696e 6720 6672 6f6d 2073 6f75 7263 lling from sourc │ │ │ │ +00000a50: 6573 2e0a 2a20 496e 6465 7820 6f66 2073 es..* Index of s │ │ │ │ +00000a60: 796e 7461 783a 3a0a 2a20 496e 6465 783a yntax::.* Index: │ │ │ │ +00000a70: 3a0a 0a20 2d2d 2054 6865 2044 6574 6169 :.. -- The Detai │ │ │ │ +00000a80: 6c65 6420 4e6f 6465 204c 6973 7469 6e67 led Node Listing │ │ │ │ +00000a90: 202d 2d0a 0a41 626f 7574 2073 6b65 7463 --..About sketc │ │ │ │ +00000aa0: 680a 0a2a 2052 6570 6f72 7469 6e67 2062 h..* Reporting b │ │ │ │ +00000ab0: 7567 733a 3a20 2020 2020 2020 2020 2020 ugs:: │ │ │ │ +00000ac0: 2020 204c 6574 2075 7365 206b 6e6f 7720 Let use know │ │ │ │ +00000ad0: 7768 6174 2773 2077 726f 6e67 210a 2a20 what's wrong!.* │ │ │ │ +00000ae0: 436f 6e74 7269 6275 7469 6f6e 733a 3a20 Contributions:: │ │ │ │ +00000af0: 2020 2020 2020 2020 2020 2020 2020 486f Ho │ │ │ │ +00000b00: 7720 796f 7520 6361 6e20 6865 6c70 2e2e w you can help.. │ │ │ │ +00000b10: 2e2e 0a0a 496e 7472 6f64 7563 7469 6f6e ....Introduction │ │ │ │ +00000b20: 2062 7920 6578 616d 706c 650a 0a2a 2048 by example..* H │ │ │ │ +00000b30: 656c 6c6f 2077 6f72 6c64 3a3a 2020 2020 ello world:: │ │ │ │ +00000b40: 2020 2020 2020 2020 2020 2020 2053 696d Sim │ │ │ │ +00000b50: 706c 6573 7420 706f 7373 6962 6c65 20e2 plest possible . │ │ │ │ +00000b60: 8098 736b 6574 6368 e280 9920 7072 6f67 ..sketch... prog │ │ │ │ +00000b70: 7261 6d2e 0a2a 2044 7261 7769 6e67 206f ram..* Drawing o │ │ │ │ +00000b80: 7074 696f 6e73 3a3a 2020 2020 2020 2020 ptions:: │ │ │ │ +00000b90: 2020 2020 2043 6f6e 7472 6f6c 6c69 6e67 Controlling │ │ │ │ +00000ba0: 206f 626a 6563 7420 6170 7065 6172 616e object appearan │ │ │ │ +00000bb0: 6365 2e0a 2a20 4472 6177 696e 6720 6120 ce..* Drawing a │ │ │ │ +00000bc0: 736f 6c69 643a 3a20 2020 2020 2020 2020 solid:: │ │ │ │ +00000bd0: 2020 2020 4472 6177 696e 6720 616e 206f Drawing an o │ │ │ │ +00000be0: 626a 6563 7420 7769 7468 2033 6420 6170 bject with 3d ap │ │ │ │ +00000bf0: 7065 6172 616e 6365 2e0a 2a20 5370 6563 pearance..* Spec │ │ │ │ +00000c00: 6961 6c20 6f62 6a65 6374 733a 3a20 2020 ial objects:: │ │ │ │ +00000c10: 2020 2020 2020 2020 2020 4c61 7969 6e67 Laying │ │ │ │ +00000c20: 2054 6558 206f 7665 722c 2069 6e2c 206f TeX over, in, o │ │ │ │ +00000c30: 7220 756e 6465 7220 6472 6177 696e 6773 r under drawings │ │ │ │ +00000c40: 2e0a 2a20 4f62 6a65 6374 2074 7261 6e73 ..* Object trans │ │ │ │ +00000c50: 666f 726d 733a 3a20 2020 2020 2020 2020 forms:: │ │ │ │ +00000c60: 2020 526f 7461 7465 2c20 7472 616e 736c Rotate, transl │ │ │ │ +00000c70: 6174 652c 2073 6361 6c65 2c20 616e 6420 ate, scale, and │ │ │ │ +00000c80: 6f74 6865 7273 2e0a 2a20 5265 7065 6174 others..* Repeat │ │ │ │ +00000c90: 6564 206f 626a 6563 7473 3a3a 2020 2020 ed objects:: │ │ │ │ +00000ca0: 2020 2020 2020 2020 4d61 6b69 6e67 2074 Making t │ │ │ │ +00000cb0: 7261 6e73 666f 726d 6564 2063 6f70 6965 ransformed copie │ │ │ │ +00000cc0: 732e 0a2a 2053 7765 7074 206f 626a 6563 s..* Swept objec │ │ │ │ +00000cd0: 7473 3a3a 2020 2020 2020 2020 2020 2020 ts:: │ │ │ │ +00000ce0: 2020 2053 7765 6570 696e 6720 6f62 6a65 Sweeping obje │ │ │ │ +00000cf0: 6374 7320 696e 2073 7061 6365 2074 6f20 cts in space to │ │ │ │ +00000d00: 6d61 6b65 206e 6577 2073 6861 7065 732e make new shapes. │ │ │ │ +00000d10: 0a0a 5377 6570 7420 6f62 6a65 6374 730a ..Swept objects. │ │ │ │ +00000d20: 0a2a 2050 6f69 6e74 2073 7765 6570 733a .* Point sweeps: │ │ │ │ +00000d30: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +00000d40: 2053 7765 7074 2070 6f69 6e74 7320 6d61 Swept points ma │ │ │ │ +00000d50: 6b65 206c 696e 6573 2061 6e64 2070 6f6c ke lines and pol │ │ │ │ +00000d60: 7967 6f6e 732e 0a2a 2050 6f6c 796c 696e ygons..* Polylin │ │ │ │ +00000d70: 6520 7377 6565 7073 3a3a 2020 2020 2020 e sweeps:: │ │ │ │ +00000d80: 2020 2020 2020 2053 7765 7074 206c 696e Swept lin │ │ │ │ +00000d90: 6573 206d 616b 6520 7375 7266 6163 6573 es make surfaces │ │ │ │ +00000da0: 2e0a 2a20 4e65 7374 6564 2073 7765 6570 ..* Nested sweep │ │ │ │ +00000db0: 733a 3a20 2020 2020 2020 2020 2020 2020 s:: │ │ │ │ +00000dc0: 2020 5377 6570 7420 7377 6565 7073 2061 Swept sweeps a │ │ │ │ +00000dd0: 7265 2075 7365 6675 6c21 0a2a 2050 6f6c re useful!.* Pol │ │ │ │ +00000de0: 7967 6f6e 2073 7765 6570 733a 3a20 2020 ygon sweeps:: │ │ │ │ +00000df0: 2020 2020 2020 2020 2020 2053 7765 7074 Swept │ │ │ │ +00000e00: 2070 6f6c 7967 6f6e 7320 6d61 6b65 2073 polygons make s │ │ │ │ +00000e10: 6f6c 6964 732e 2e2e 0a2a 2050 6f6c 796c olids....* Polyl │ │ │ │ +00000e20: 696e 6520 7377 6565 7073 2077 6974 6820 ine sweeps with │ │ │ │ +00000e30: 636c 6f73 7572 653a 3a20 2061 6e64 2073 closure:: and s │ │ │ │ +00000e40: 6f20 646f 2063 6c6f 7365 6420 706f 6c79 o do closed poly │ │ │ │ +00000e50: 6c69 6e65 2073 7765 6570 732e 0a2a 2041 line sweeps..* A │ │ │ │ +00000e60: 6666 696e 6520 6172 6974 686d 6574 6963 ffine arithmetic │ │ │ │ +00000e70: 3a3a 2020 2020 2020 2020 2020 2053 6b65 :: Ske │ │ │ │ +00000e80: 7463 6820 7573 6566 756c 206d 6174 6820 tch useful math │ │ │ │ +00000e90: 6578 7072 6573 7369 6f6e 2e0a 2a20 4d6f expression..* Mo │ │ │ │ +00000ea0: 7265 2074 6f20 6c65 6172 6e3a 3a20 2020 re to learn:: │ │ │ │ +00000eb0: 2020 2020 2020 2020 2020 2020 4368 6563 Chec │ │ │ │ +00000ec0: 6b20 6f75 7420 7468 6520 4d6f 6269 7573 k out the Mobius │ │ │ │ +00000ed0: 2073 7472 6970 210a 0a49 6e70 7574 206c strip!..Input l │ │ │ │ +00000ee0: 616e 6775 6167 650a 0a2a 204c 616e 6775 anguage..* Langu │ │ │ │ +00000ef0: 6167 6520 6261 7369 6373 3a3a 2020 2020 age basics:: │ │ │ │ +00000f00: 2020 2020 2020 2020 2043 6173 652c 2073 Case, s │ │ │ │ +00000f10: 7061 6365 2c20 636f 6d6d 656e 7473 2c20 pace, comments, │ │ │ │ +00000f20: 696e 636c 7564 6520 6669 6c65 732e 0a2a include files..* │ │ │ │ +00000f30: 2044 7261 7761 626c 6573 3a3a 2020 2020 Drawables:: │ │ │ │ +00000f40: 2020 2020 2020 2020 2020 2020 2020 2054 T │ │ │ │ +00000f50: 6869 6e67 7320 7468 6174 2063 616e 2062 hings that can b │ │ │ │ +00000f60: 6520 6472 6177 6e2e 0a2a 2044 6566 696e e drawn..* Defin │ │ │ │ +00000f70: 6974 696f 6e73 3a3a 2020 2020 2020 2020 itions:: │ │ │ │ +00000f80: 2020 2020 2020 2020 2047 6976 696e 6720 Giving │ │ │ │ +00000f90: 7468 696e 6773 206e 616d 6573 2e0a 2a20 things names..* │ │ │ │ +00000fa0: 476c 6f62 616c 2065 6e76 6972 6f6e 6d65 Global environme │ │ │ │ +00000fb0: 6e74 3a3a 2020 2020 2020 2020 2020 4166 nt:: Af │ │ │ │ +00000fc0: 6665 6374 2074 6865 2065 6e74 6972 6520 fect the entire │ │ │ │ +00000fd0: 6472 6177 696e 672e 0a0a 4261 7369 6373 drawing...Basics │ │ │ │ +00000fe0: 0a0a 2a20 4964 656e 7469 6669 6572 733a ..* Identifiers: │ │ │ │ +00000ff0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +00001000: 2020 4e61 6d65 7320 666f 7220 7468 696e Names for thin │ │ │ │ +00001010: 6773 2e0a 2a20 4b65 7920 616e 6420 7265 gs..* Key and re │ │ │ │ +00001020: 7365 7276 6564 2077 6f72 6473 3a3a 2020 served words:: │ │ │ │ +00001030: 2020 2020 4e61 6d65 7320 796f 7520 7368 Names you sh │ │ │ │ +00001040: 6f75 6c64 6e27 7420 7573 652e 0a2a 204c ouldn't use..* L │ │ │ │ +00001050: 6974 6572 616c 733a 3a20 2020 2020 2020 iterals:: │ │ │ │ +00001060: 2020 2020 2020 2020 2020 2020 2043 6f6e Con │ │ │ │ +00001070: 7374 616e 7473 2061 6e64 2063 6f6e 7374 stants and const │ │ │ │ +00001080: 7275 6374 6f72 732e 0a2a 2041 7269 7468 ructors..* Arith │ │ │ │ +00001090: 6d65 7469 633a 3a20 2020 2020 2020 2020 metic:: │ │ │ │ +000010a0: 2020 2020 2020 2020 2052 756c 6573 2066 Rules f │ │ │ │ +000010b0: 6f72 2065 7870 7265 7373 696f 6e73 2e0a or expressions.. │ │ │ │ +000010c0: 2a20 4f70 7469 6f6e 733a 3a20 2020 2020 * Options:: │ │ │ │ +000010d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +000010e0: 4d6f 6469 6679 696e 6720 6f62 6a65 6374 Modifying object │ │ │ │ +000010f0: 2061 7070 6561 7261 6e63 652e 0a0a 4c69 appearance...Li │ │ │ │ +00001100: 7465 7261 6c73 0a0a 2a20 5363 616c 6172 terals..* Scalar │ │ │ │ +00001110: 206c 6974 6572 616c 733a 3a20 2020 2020 literals:: │ │ │ │ +00001120: 2020 2020 2020 2020 4a75 7374 2074 6865 Just the │ │ │ │ +00001130: 206e 756d 6265 7273 2e0a 2a20 506f 696e numbers..* Poin │ │ │ │ +00001140: 7420 616e 6420 7665 6374 6f72 206c 6974 t and vector lit │ │ │ │ +00001150: 6572 616c 733a 3a20 2020 3364 2071 7561 erals:: 3d qua │ │ │ │ +00001160: 6e74 6974 6965 732e 0a2a 2054 7261 6e73 ntities..* Trans │ │ │ │ +00001170: 666f 726d 206c 6974 6572 616c 733a 3a20 form literals:: │ │ │ │ +00001180: 2020 2020 2020 2020 204d 6174 7269 7820 Matrix │ │ │ │ +00001190: 666f 726d 2e0a 0a41 7269 7468 6d65 7469 form...Arithmeti │ │ │ │ +000011a0: 6320 6578 7072 6573 7369 6f6e 730a 0a2a c expressions..* │ │ │ │ +000011b0: 2054 776f 2d6f 7065 7261 6e64 2028 6269 Two-operand (bi │ │ │ │ +000011c0: 6e61 7279 2920 666f 726d 733a 3a20 2041 nary) forms:: A │ │ │ │ +000011d0: 206f 7020 420a 2a20 556e 6172 7920 666f op B.* Unary fo │ │ │ │ +000011e0: 726d 733a 3a20 2020 2020 2020 2020 2020 rms:: │ │ │ │ +000011f0: 2020 2020 2020 6f70 2041 2028 616e 6420 op A (and │ │ │ │ +00001200: 6f74 6865 7273 290a 0a4f 7074 696f 6e73 others)..Options │ │ │ │ +00001210: 0a0a 2a20 5053 5472 6963 6b73 206f 7074 ..* PSTricks opt │ │ │ │ +00001220: 696f 6e73 3a3a 2020 2020 2020 2020 2020 ions:: │ │ │ │ +00001230: 2020 4f70 7469 6f6e 7320 696e 6865 7269 Options inheri │ │ │ │ +00001240: 7465 6420 6672 6f6d 20e2 8098 5053 5472 ted from ...PSTr │ │ │ │ +00001250: 6963 6b73 e280 992e 0a2a 2054 696b 5a2f icks.....* TikZ/ │ │ │ │ +00001260: 5047 4620 6f70 7469 6f6e 733a 3a20 2020 PGF options:: │ │ │ │ +00001270: 2020 2020 2020 2020 204f 7074 696f 6e73 Options │ │ │ │ +00001280: 2069 6e68 6572 6974 6564 2066 726f 6d20 inherited from │ │ │ │ +00001290: e280 9854 696b 5a2f 5047 46e2 8099 2e0a ...TikZ/PGF..... │ │ │ │ +000012a0: 2a20 446f 7473 2069 6e20 5469 6b5a 2f50 * Dots in TikZ/P │ │ │ │ +000012b0: 4746 3a3a 2020 2020 2020 2020 2020 2020 GF:: │ │ │ │ +000012c0: 536b 6574 6368 2075 7365 7320 e280 9854 Sketch uses ...T │ │ │ │ +000012d0: 696b 5a2f 5047 46e2 8099 2063 6972 636c ikZ/PGF... circl │ │ │ │ +000012e0: 6573 2066 6f72 2064 6f74 732e 0a2a 2054 es for dots..* T │ │ │ │ +000012f0: 696b 5a2f 5047 4620 7573 6572 2d64 6566 ikZ/PGF user-def │ │ │ │ +00001300: 696e 6564 2073 7479 6c65 733a 3a20 2053 ined styles:: S │ │ │ │ +00001310: 7570 706f 7274 2066 6f72 20e2 8098 5469 upport for ...Ti │ │ │ │ +00001320: 6b5a 2f50 4746 e280 9920 6e61 6d65 642c kZ/PGF... named, │ │ │ │ +00001330: 2075 7365 722d 6465 6669 6e65 6420 7374 user-defined st │ │ │ │ +00001340: 796c 6573 2e0a 2a20 5472 616e 7370 6172 yles..* Transpar │ │ │ │ +00001350: 656e 6379 3a3a 2020 2020 2020 2020 2020 ency:: │ │ │ │ +00001360: 2020 2020 2020 5365 652d 7468 726f 7567 See-throug │ │ │ │ +00001370: 6820 706f 6c79 676f 6e73 2e0a 2a20 496e h polygons..* In │ │ │ │ +00001380: 7465 726e 616c 206f 7074 696f 6e73 3a3a ternal options:: │ │ │ │ +00001390: 2020 2020 2020 2020 2020 2020 4f70 7469 Opti │ │ │ │ +000013a0: 6f6e 7320 7573 6564 2062 7920 e280 9873 ons used by ...s │ │ │ │ +000013b0: 6b65 7463 68e2 8099 2e0a 0a50 6f69 6e74 ketch......Point │ │ │ │ +000013c0: 206c 6973 7473 0a0a 2a20 4472 6177 6162 lists..* Drawab │ │ │ │ +000013d0: 6c65 733a 3a20 2020 2020 2020 2020 2020 les:: │ │ │ │ +000013e0: 2020 2020 2020 2020 5468 696e 6773 2074 Things t │ │ │ │ +000013f0: 6861 7420 6172 6520 6472 6177 6e2e 0a2a hat are drawn..* │ │ │ │ +00001400: 2044 6566 696e 6974 696f 6e73 3a3a 2020 Definitions:: │ │ │ │ +00001410: 2020 2020 2020 2020 2020 2020 2020 2054 T │ │ │ │ +00001420: 6869 6e67 7320 7769 7468 206e 616d 6573 hings with names │ │ │ │ +00001430: 2e0a 0a44 7261 7761 626c 6573 0a0a 2a20 ...Drawables..* │ │ │ │ +00001440: 446f 7473 3a3a 2020 2020 2020 2020 2020 Dots:: │ │ │ │ +00001450: 2020 2020 2020 2020 2020 2020 2020 4472 Dr │ │ │ │ +00001460: 6177 2064 6f74 732e 0a2a 204c 696e 6573 aw dots..* Lines │ │ │ │ +00001470: 3a3a 2020 2020 2020 2020 2020 2020 2020 :: │ │ │ │ +00001480: 2020 2020 2020 2020 2044 7261 7720 706f Draw po │ │ │ │ +00001490: 6c79 6c69 6e65 732e 0a2a 2043 7572 7665 lylines..* Curve │ │ │ │ +000014a0: 733a 3a20 2020 2020 2020 2020 2020 2020 s:: │ │ │ │ +000014b0: 2020 2020 2020 2020 2044 7261 7720 6375 Draw cu │ │ │ │ +000014c0: 7276 6573 2e0a 2a20 506f 6c79 676f 6e73 rves..* Polygons │ │ │ │ +000014d0: 3a3a 2020 2020 2020 2020 2020 2020 2020 :: │ │ │ │ +000014e0: 2020 2020 2020 4472 6177 2070 6f6c 7967 Draw polyg │ │ │ │ +000014f0: 6f6e 732e 0a2a 2053 7065 6369 616c 733a ons..* Specials: │ │ │ │ +00001500: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +00001510: 2020 2020 2045 6d62 6564 2072 6177 204c Embed raw L │ │ │ │ +00001520: 6154 6558 2061 6e64 20e2 8098 5053 5472 aTeX and ...PSTr │ │ │ │ +00001530: 6963 6b73 e280 992e 0a2a 2053 7765 6570 icks.....* Sweep │ │ │ │ +00001540: 733a 3a20 2020 2020 2020 2020 2020 2020 s:: │ │ │ │ +00001550: 2020 2020 2020 2020 2044 7261 7720 7377 Draw sw │ │ │ │ +00001560: 6565 7073 206f 6620 646f 7473 2061 6e64 eeps of dots and │ │ │ │ +00001570: 2070 6f6c 796c 696e 6573 2e0a 2a20 426c polylines..* Bl │ │ │ │ +00001580: 6f63 6b73 3a3a 2020 2020 2020 2020 2020 ocks:: │ │ │ │ +00001590: 2020 2020 2020 2020 2020 2020 4772 6f75 Grou │ │ │ │ +000015a0: 7020 6f74 6865 7220 6472 6177 6162 6c65 p other drawable │ │ │ │ +000015b0: 732e 0a2a 2052 6570 6561 7473 3a3a 2020 s..* Repeats:: │ │ │ │ +000015c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +000015d0: 2020 2044 7261 7720 7472 616e 7366 6f72 Draw transfor │ │ │ │ +000015e0: 6d65 6420 636f 7069 6573 206f 6620 6f62 med copies of ob │ │ │ │ +000015f0: 6a65 6374 732e 0a2a 2050 7574 733a 3a20 jects..* Puts:: │ │ │ │ +00001600: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00001610: 2020 2020 2020 2044 7261 7720 6f6e 6520 Draw one │ │ │ │ +00001620: 6f62 6a65 6374 2074 7261 6e73 666f 726d object transform │ │ │ │ +00001630: 6564 2e0a 0a53 7765 6570 730a 0a2a 2053 ed...Sweeps..* S │ │ │ │ +00001640: 7765 7074 2070 6f69 6e74 733a 3a20 2020 wept points:: │ │ │ │ +00001650: 2020 2020 2020 2020 2020 2020 2053 7765 Swe │ │ │ │ +00001660: 7074 2070 6f69 6e74 7320 6d61 6b65 206c pt points make l │ │ │ │ +00001670: 696e 6573 206f 7220 706f 6c79 676f 6e73 ines or polygons │ │ │ │ +00001680: 2e0a 2a20 5377 6570 7420 6c69 6e65 733a ..* Swept lines: │ │ │ │ +00001690: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +000016a0: 2020 5377 6570 7420 6c69 6e65 7320 6d61 Swept lines ma │ │ │ │ +000016b0: 6b65 206f 7065 6e20 6f72 2063 6c6f 7365 ke open or close │ │ │ │ +000016c0: 6420 7375 7266 6163 6573 2e0a 2a20 5377 d surfaces..* Sw │ │ │ │ +000016d0: 6570 7420 706f 6c79 676f 6e73 3a3a 2020 ept polygons:: │ │ │ │ +000016e0: 2020 2020 2020 2020 2020 2020 5377 6570 Swep │ │ │ │ +000016f0: 7420 706f 6c79 676f 6e73 206d 616b 6520 t polygons make │ │ │ │ +00001700: 636c 6f73 6564 2073 7572 6661 6365 732e closed surfaces. │ │ │ │ +00001710: 0a2a 2053 7765 7074 2062 6c6f 636b 733a .* Swept blocks: │ │ │ │ +00001720: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +00001730: 2053 7765 7074 2062 6c6f 636b 20e2 89a1 Swept block ... │ │ │ │ +00001740: 2062 6c6f 636b 206f 6620 7377 6565 7073 block of sweeps │ │ │ │ +00001750: 2e0a 2a20 5377 6565 7020 6661 6365 2073 ..* Sweep face s │ │ │ │ +00001760: 706c 6974 7469 6e67 3a3a 2020 2020 2020 plitting:: │ │ │ │ +00001770: 2020 4669 7869 6e67 2077 6172 7065 6420 Fixing warped │ │ │ │ +00001780: 6661 6365 7320 7769 7468 2074 7269 616e faces with trian │ │ │ │ +00001790: 676c 6573 2e0a 0a44 6566 696e 6974 696f gles...Definitio │ │ │ │ +000017a0: 6e73 0a0a 2a20 466f 726d 7320 6f66 2064 ns..* Forms of d │ │ │ │ +000017b0: 6566 696e 6974 696f 6e73 3a3a 2020 2020 efinitions:: │ │ │ │ +000017c0: 2020 2020 4469 6666 6572 656e 7420 6465 Different de │ │ │ │ +000017d0: 6673 2066 6f72 2064 6966 6665 7265 6e74 fs for different │ │ │ │ +000017e0: 2070 7572 706f 7365 732e 0a2a 2046 6f72 purposes..* For │ │ │ │ +000017f0: 6d73 206f 6620 7265 6665 7265 6e63 6573 ms of references │ │ │ │ +00001800: 3a3a 2020 2020 2020 2020 2048 6f77 2072 :: How r │ │ │ │ +00001810: 6566 6572 656e 6365 7320 6465 6e6f 7465 eferences denote │ │ │ │ +00001820: 2074 7970 6573 2e0a 0a47 6c6f 6261 6c20 types...Global │ │ │ │ +00001830: 656e 7669 726f 6e6d 656e 740a 0a2a 2047 environment..* G │ │ │ │ +00001840: 6c6f 6261 6c20 6f70 7469 6f6e 733a 3a20 lobal options:: │ │ │ │ +00001850: 2020 2020 2020 2020 2020 2020 2041 7474 Att │ │ │ │ +00001860: 7269 6275 7465 7320 6f66 2074 6865 2065 ributes of the e │ │ │ │ +00001870: 6e74 6972 6520 6472 6177 696e 672e 0a2a ntire drawing..* │ │ │ │ +00001880: 2043 616d 6572 613a 3a20 2020 2020 2020 Camera:: │ │ │ │ +00001890: 2020 2020 2020 2020 2020 2020 2020 2041 A │ │ │ │ +000018a0: 2066 696e 616c 2063 616d 6572 6120 7472 final camera tr │ │ │ │ +000018b0: 616e 7366 6f72 6d61 7469 6f6e 206f 6620 ansformation of │ │ │ │ +000018c0: 7468 6520 7363 656e 652e 0a2a 2050 6963 the scene..* Pic │ │ │ │ +000018d0: 7475 7265 2062 6f78 3a3a 2020 2020 2020 ture box:: │ │ │ │ +000018e0: 2020 2020 2020 2020 2020 2053 6574 7469 Setti │ │ │ │ +000018f0: 6e67 2074 6865 2062 6f75 6e64 696e 6720 ng the bounding │ │ │ │ +00001900: 626f 7820 616e 6420 3264 2063 6c69 7070 box and 2d clipp │ │ │ │ +00001910: 696e 672e 0a2a 2046 7261 6d65 3a3a 2020 ing..* Frame:: │ │ │ │ +00001920: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00001930: 2020 2020 2041 6464 696e 6720 6120 626f Adding a bo │ │ │ │ +00001940: 7820 6172 6f75 6e64 2074 6865 2064 7261 x around the dra │ │ │ │ +00001950: 7769 6e67 2e0a 2a20 4c61 6e67 7561 6765 wing..* Language │ │ │ │ +00001960: 3a3a 2020 2020 2020 2020 2020 2020 2020 :: │ │ │ │ +00001970: 2020 2020 2020 5365 7474 696e 6720 7468 Setting th │ │ │ │ +00001980: 6520 6f75 7470 7574 206c 616e 6775 6167 e output languag │ │ │ │ +00001990: 652e 0a0a 4275 696c 6469 6e67 2061 2064 e...Building a d │ │ │ │ +000019a0: 7261 7769 6e67 0a0a 2a20 4f76 6572 7669 rawing..* Overvi │ │ │ │ +000019b0: 6577 3a3a 2020 2020 2020 2020 2020 2020 ew:: │ │ │ │ +000019c0: 2020 2020 2020 2020 4275 696c 6469 6e67 Building │ │ │ │ +000019d0: 2061 2073 7562 7374 616e 7469 616c 2064 a substantial d │ │ │ │ +000019e0: 7261 7769 6e67 2e0a 2a20 4120 7465 6368 rawing..* A tech │ │ │ │ +000019f0: 6e69 6361 6c20 6472 6177 696e 673a 3a20 nical drawing:: │ │ │ │ +00001a00: 2020 2020 2020 2020 416e 2065 7861 6d70 An examp │ │ │ │ +00001a10: 6c65 2077 6974 6820 6669 6e65 2070 6c61 le with fine pla │ │ │ │ +00001a20: 6365 6d65 6e74 2e0a 2a20 4120 6869 6572 cement..* A hier │ │ │ │ +00001a30: 6172 6368 6963 616c 206d 6f64 656c 3a3a archical model:: │ │ │ │ +00001a40: 2020 2020 2020 2020 416e 2065 7861 6d70 An examp │ │ │ │ +00001a50: 6c65 2077 6974 6820 7377 6565 7073 2061 le with sweeps a │ │ │ │ +00001a60: 6e64 2070 7574 732e 0a2a 2043 6176 6561 nd puts..* Cavea │ │ │ │ +00001a70: 7473 3a3a 2020 2020 2020 2020 2020 2020 ts:: │ │ │ │ +00001a80: 2020 2020 2020 2020 2057 6865 7265 2074 Where t │ │ │ │ +00001a90: 726f 7562 6c65 2063 616e 206f 6363 7572 rouble can occur │ │ │ │ +00001aa0: 2e0a 0a43 6176 6561 7473 0a0a 2a20 4c69 ...Caveats..* Li │ │ │ │ +00001ab0: 6d69 7473 206f 6e20 6572 726f 7220 6465 mits on error de │ │ │ │ +00001ac0: 7465 6374 696f 6e3a 3a20 2020 5768 6174 tection:: What │ │ │ │ +00001ad0: 2073 6b65 7463 6820 646f 6573 6e27 7420 sketch doesn't │ │ │ │ +00001ae0: 646f 2e0a 2a20 436c 6970 7069 6e67 3a3a do..* Clipping:: │ │ │ │ +00001af0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00001b00: 2020 2020 4e6f 2063 6c69 7070 696e 6720 No clipping │ │ │ │ +00001b10: 6174 2070 7265 7365 6e74 2e0a 2a20 4869 at present..* Hi │ │ │ │ +00001b20: 6464 656e 2073 7572 6661 6365 2072 656d dden surface rem │ │ │ │ +00001b30: 6f76 616c 3a3a 2020 2020 2020 496d 7065 oval:: Impe │ │ │ │ +00001b40: 7266 6563 7469 6f6e 7320 746f 2066 6978 rfections to fix │ │ │ │ +00001b50: 2e0a 0a48 6964 6465 6e20 7375 7266 6163 ...Hidden surfac │ │ │ │ +00001b60: 6520 7265 6d6f 7661 6c20 616e 6420 706f e removal and po │ │ │ │ +00001b70: 6c79 676f 6e20 7370 6c69 7474 696e 670a lygon splitting. │ │ │ │ +00001b80: 0a2a 2053 7461 7469 7374 6963 733a 3a20 .* Statistics:: │ │ │ │ +00001b90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00001ba0: 2050 6572 666f 726d 616e 6365 206e 756d Performance num │ │ │ │ +00001bb0: 6265 7273 206f 6e20 6465 7074 6820 736f bers on depth so │ │ │ │ +00001bc0: 7274 2e0a 2a20 4275 6773 2061 6e64 2061 rt..* Bugs and a │ │ │ │ +00001bd0: 6e6f 6d61 6c69 6573 3a3a 2020 2020 2020 nomalies:: │ │ │ │ +00001be0: 2020 2020 496d 7065 7266 6563 7469 6f6e Imperfection │ │ │ │ +00001bf0: 7320 696e 2074 6869 7320 696d 706c 656d s in this implem │ │ │ │ +00001c00: 656e 7461 7469 6f6e 2e0a 0a1f 0a46 696c entation.....Fil │ │ │ │ +00001c10: 653a 2073 6b65 7463 682e 696e 666f 2c20 e: sketch.info, │ │ │ │ +00001c20: 204e 6f64 653a 2041 626f 7574 2073 6b65 Node: About ske │ │ │ │ +00001c30: 7463 682c 2020 4e65 7874 3a20 496e 7472 tch, Next: Intr │ │ │ │ +00001c40: 6f64 7563 7469 6f6e 2062 7920 6578 616d oduction by exam │ │ │ │ +00001c50: 706c 652c 2020 5072 6576 3a20 546f 702c ple, Prev: Top, │ │ │ │ +00001c60: 2020 5570 3a20 546f 700a 0a31 2041 626f Up: Top..1 Abo │ │ │ │ +00001c70: 7574 2073 6b65 7463 680a 2a2a 2a2a 2a2a ut sketch.****** │ │ │ │ +00001c80: 2a2a 2a2a 2a2a 2a2a 0a0a 2a20 4d65 6e75 ********..* Menu │ │ │ │ +00001c90: 3a0a 0a2a 2052 6570 6f72 7469 6e67 2062 :..* Reporting b │ │ │ │ +00001ca0: 7567 733a 3a20 2020 2020 2020 2020 2020 ugs:: │ │ │ │ +00001cb0: 2020 204c 6574 2075 7365 206b 6e6f 7720 Let use know │ │ │ │ +00001cc0: 7768 6174 2773 2077 726f 6e67 210a 2a20 what's wrong!.* │ │ │ │ +00001cd0: 436f 6e74 7269 6275 7469 6f6e 733a 3a20 Contributions:: │ │ │ │ +00001ce0: 2020 2020 2020 2020 2020 2020 2020 486f Ho │ │ │ │ +00001cf0: 7720 796f 7520 6361 6e20 6865 6c70 2e2e w you can help.. │ │ │ │ +00001d00: 2e2e 0a0a e280 9853 6b65 7463 68e2 8099 .......Sketch... │ │ │ │ +00001d10: 2069 7320 6120 736d 616c 6c2c 2073 696d is a small, sim │ │ │ │ +00001d20: 706c 6520 7379 7374 656d 2066 6f72 2070 ple system for p │ │ │ │ +00001d30: 726f 6475 6369 6e67 206c 696e 6520 6472 roducing line dr │ │ │ │ +00001d40: 6177 696e 6773 206f 6620 7477 6f2d 0a6f awings of two-.o │ │ │ │ +00001d50: 7220 7468 7265 652d 6469 6d65 6e73 696f r three-dimensio │ │ │ │ +00001d60: 6e61 6c20 6f62 6a65 6374 7320 616e 6420 nal objects and │ │ │ │ +00001d70: 7363 656e 6573 2e20 2049 7420 6265 6761 scenes. It bega │ │ │ │ +00001d80: 6e20 6173 2061 2077 6179 2074 6f20 6d61 n as a way to ma │ │ │ │ +00001d90: 6b65 0a69 6c6c 7573 7472 6174 696f 6e73 ke.illustrations │ │ │ │ +00001da0: 2066 6f72 2061 2074 6578 7462 6f6f 6b20 for a textbook │ │ │ │ +00001db0: 6166 7465 7220 7765 2063 6f75 6c64 2066 after we could f │ │ │ │ +00001dc0: 696e 6420 6e6f 2073 7569 7461 626c 6520 ind no suitable │ │ │ │ +00001dd0: 746f 6f6c 2066 6f72 0a74 6869 7320 7075 tool for.this pu │ │ │ │ +00001de0: 7270 6f73 652e 2020 4578 6973 7469 6e67 rpose. Existing │ │ │ │ +00001df0: 2073 6365 6e65 2070 726f 6365 7373 6f72 scene processor │ │ │ │ +00001e00: 7320 656d 7068 6173 697a 6564 2047 5549 s emphasized GUI │ │ │ │ +00001e10: 7320 616e 642f 6f72 0a70 686f 746f 2d72 s and/or.photo-r │ │ │ │ +00001e20: 6561 6c69 736d 2c20 626f 7468 2075 6e2d ealism, both un- │ │ │ │ +00001e30: 7573 6566 756c 2074 6f20 7573 2e20 2057 useful to us. W │ │ │ │ +00001e40: 6520 7761 6e74 6564 2074 6f20 7072 6f64 e wanted to prod │ │ │ │ +00001e50: 7563 6520 6669 6e65 6c79 0a77 726f 7567 uce finely.wroug │ │ │ │ +00001e60: 6874 2c20 6d61 7468 656d 6174 6963 616c ht, mathematical │ │ │ │ +00001e70: 6c79 2d62 6173 6564 2069 6c6c 7573 7472 ly-based illustr │ │ │ │ +00001e80: 6174 696f 6e73 2077 6974 6820 6e6f 2065 ations with no e │ │ │ │ +00001e90: 7874 7261 6e65 6f75 7320 6465 7461 696c xtraneous detail │ │ │ │ +00001ea0: 2e0a 0a20 2020 e280 9853 6b65 7463 68e2 ... ...Sketch. │ │ │ │ +00001eb0: 8099 2061 6363 6570 7473 2061 2074 696e .. accepts a tin │ │ │ │ +00001ec0: 7920 7363 656e 6520 6465 7363 7269 7074 y scene descript │ │ │ │ +00001ed0: 696f 6e20 6c61 6e67 7561 6765 2061 6e64 ion language and │ │ │ │ +00001ee0: 2067 656e 6572 6174 6573 0ae2 8098 5053 generates....PS │ │ │ │ +00001ef0: 5472 6963 6b73 e280 9920 6f72 20e2 8098 Tricks... or ... │ │ │ │ +00001f00: 5469 6b5a 2f50 4746 e280 9920 636f 6465 TikZ/PGF... code │ │ │ │ +00001f10: 2066 6f72 204c 6154 6558 2e20 2054 6865 for LaTeX. The │ │ │ │ +00001f20: 20e2 8098 736b 6574 6368 e280 9920 6c61 ...sketch... la │ │ │ │ +00001f30: 6e67 7561 6765 2069 730a 7369 6d69 6c61 nguage is.simila │ │ │ │ +00001f40: 7220 746f 20e2 8098 5053 5472 6963 6b73 r to ...PSTricks │ │ │ │ +00001f50: e280 992c 206d 616b 696e 6720 6974 2065 ..., making it e │ │ │ │ +00001f60: 6173 7920 746f 206c 6561 726e 2066 6f72 asy to learn for │ │ │ │ +00001f70: 2063 7572 7265 6e74 20e2 8098 5053 5472 current ...PSTr │ │ │ │ +00001f80: 6963 6b73 e280 990a 7573 6572 732e 2020 icks....users. │ │ │ │ +00001f90: 5365 6520 7777 772e 7073 7472 6963 6b73 See www.pstricks │ │ │ │ +00001fa0: 2e64 6520 666f 7220 696e 666f 726d 6174 .de for informat │ │ │ │ +00001fb0: 696f 6e20 6f6e 20e2 8098 5053 5472 6963 ion on ...PSTric │ │ │ │ +00001fc0: 6b73 e280 992e 2020 e280 9854 696b 5a2f ks.... ...TikZ/ │ │ │ │ +00001fd0: 5047 46e2 8099 0a69 7320 7369 6d69 6c61 PGF....is simila │ │ │ │ +00001fe0: 722e 2020 5365 6520 6874 7470 3a2f 2f73 r. See http://s │ │ │ │ +00001ff0: 6f75 7263 6566 6f72 6765 2e6e 6574 2f70 ourceforge.net/p │ │ │ │ +00002000: 726f 6a65 6374 732f 7067 662e 2020 4f6e rojects/pgf. On │ │ │ │ +00002010: 6520 6361 6e20 6561 7369 6c79 0a69 6e63 e can easily.inc │ │ │ │ +00002020: 6c75 6465 2061 7262 6974 7261 7279 20e2 lude arbitrary . │ │ │ │ +00002030: 8098 5053 5472 6963 6b73 e280 9920 6f72 ..PSTricks... or │ │ │ │ +00002040: 20e2 8098 5469 6b5a 2f50 4746 e280 9920 ...TikZ/PGF... │ │ │ │ +00002050: 6472 6177 696e 6773 2061 6e64 2074 6578 drawings and tex │ │ │ │ +00002060: 7420 6f76 6572 2c20 696e 2c0a 6f72 2075 t over, in,.or u │ │ │ │ +00002070: 6e64 6572 20e2 8098 736b 6574 6368 e280 nder ...sketch.. │ │ │ │ +00002080: 9920 6472 6177 696e 6773 2c20 7072 6f76 . drawings, prov │ │ │ │ +00002090: 6964 696e 6720 6163 6365 7373 2074 6f20 iding access to │ │ │ │ +000020a0: 7468 6520 6675 6c6c 2070 6f77 6572 206f the full power o │ │ │ │ +000020b0: 6620 4c61 5465 580a 7465 7874 2061 6e64 f LaTeX.text and │ │ │ │ +000020c0: 206d 6174 6865 6d61 7469 6373 2066 6f72 mathematics for │ │ │ │ +000020d0: 6d61 7474 696e 6720 696e 2061 2074 6872 matting in a thr │ │ │ │ +000020e0: 6565 2d64 696d 656e 7369 6f6e 616c 2073 ee-dimensional s │ │ │ │ +000020f0: 6574 7469 6e67 2e0a 0a1f 0a46 696c 653a etting.....File: │ │ │ │ +00002100: 2073 6b65 7463 682e 696e 666f 2c20 204e sketch.info, N │ │ │ │ +00002110: 6f64 653a 2052 6570 6f72 7469 6e67 2062 ode: Reporting b │ │ │ │ +00002120: 7567 732c 2020 4e65 7874 3a20 436f 6e74 ugs, Next: Cont │ │ │ │ +00002130: 7269 6275 7469 6f6e 732c 2020 5072 6576 ributions, Prev │ │ │ │ +00002140: 3a20 4162 6f75 7420 736b 6574 6368 2c20 : About sketch, │ │ │ │ +00002150: 2055 703a 2041 626f 7574 2073 6b65 7463 Up: About sketc │ │ │ │ +00002160: 680a 0a31 2e31 2052 6570 6f72 7469 6e67 h..1.1 Reporting │ │ │ │ +00002170: 2062 7567 7320 616e 6420 7265 636f 6d6d bugs and recomm │ │ │ │ +00002180: 656e 6469 6e67 2069 6d70 726f 7665 6d65 ending improveme │ │ │ │ +00002190: 6e74 732e 0a3d 3d3d 3d3d 3d3d 3d3d 3d3d nts..=========== │ │ │ │ 000021a0: 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d ================ │ │ │ │ 000021b0: 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d ================ │ │ │ │ -000021c0: 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 0a0a ==============.. │ │ │ │ -000021d0: 5468 6520 6772 6f75 7020 6874 7470 3a2f The group http:/ │ │ │ │ -000021e0: 2f67 726f 7570 732e 676f 6f67 6c65 2e63 /groups.google.c │ │ │ │ -000021f0: 6f6d 2f67 726f 7570 2f73 6b65 7463 682d om/group/sketch- │ │ │ │ -00002200: 7573 6572 7320 6973 2074 6865 2062 6573 users is the bes │ │ │ │ -00002210: 7420 706c 6163 650a 746f 2072 6570 6f72 t place.to repor │ │ │ │ -00002220: 7420 6275 6773 2061 6e64 206d 616b 6520 t bugs and make │ │ │ │ -00002230: 696d 7072 6f76 656d 656e 7473 2e20 2041 improvements. A │ │ │ │ -00002240: 2073 6563 6f6e 6420 6d65 7468 6f64 2074 second method t │ │ │ │ -00002250: 6861 7420 7769 6c6c 0a70 726f 6261 626c hat will.probabl │ │ │ │ -00002260: 7920 7072 6f64 7563 6520 6120 736c 6f77 y produce a slow │ │ │ │ -00002270: 6572 2072 6573 706f 6e73 6520 6973 2065 er response is e │ │ │ │ -00002280: 6d61 696c 2074 6f20 736b 6574 6368 4066 mail to sketch@f │ │ │ │ -00002290: 726f 6e74 6965 726e 6574 2e6e 6574 2e0a rontiernet.net.. │ │ │ │ -000022a0: 5765 2077 696c 6c20 7472 7920 746f 2072 We will try to r │ │ │ │ -000022b0: 6573 706f 6e64 2c20 6275 7420 6361 6e27 espond, but can' │ │ │ │ -000022c0: 7420 7072 6f6d 6973 652e 2020 496e 2061 t promise. In a │ │ │ │ -000022d0: 6e79 2065 7665 6e74 2c20 646f 6e27 7420 ny event, don't │ │ │ │ -000022e0: 6265 0a6f 6666 656e 6465 6420 6966 2061 be.offended if a │ │ │ │ -000022f0: 2072 6570 6c79 2069 7320 6e6f 7420 666f reply is not fo │ │ │ │ -00002300: 7274 6863 6f6d 696e 672e 2020 5765 2772 rthcoming. We'r │ │ │ │ -00002310: 6520 6a75 7374 2062 7573 7920 616e 6420 e just busy and │ │ │ │ -00002320: 7769 6c6c 2067 6574 2074 6f0a 796f 7572 will get to.your │ │ │ │ -00002330: 2073 7567 6765 7374 696f 6e20 6576 656e suggestion even │ │ │ │ -00002340: 7475 616c 6c79 2e0a 0a20 2020 466f 7220 tually... For │ │ │ │ -00002350: 6275 6773 2c20 6174 7461 6368 2061 20e2 bugs, attach a . │ │ │ │ -00002360: 8098 736b 6574 6368 e280 9920 696e 7075 ..sketch... inpu │ │ │ │ -00002370: 7420 6669 6c65 2074 6861 7420 6361 7573 t file that caus │ │ │ │ -00002380: 6573 2074 6865 2062 6164 2062 6568 6176 es the bad behav │ │ │ │ -00002390: 696f 722e 0a45 6d62 6564 2063 6f6d 6d65 ior..Embed comme │ │ │ │ -000023a0: 6e74 7320 7468 6174 2065 7870 6c61 696e nts that explain │ │ │ │ -000023b0: 2077 6861 7420 746f 206c 6f6f 6b20 666f what to look fo │ │ │ │ -000023c0: 7220 696e 2074 6865 2062 6568 6176 696f r in the behavio │ │ │ │ -000023d0: 7220 6f66 20e2 8098 736b 6574 6368 e280 r of ...sketch.. │ │ │ │ -000023e0: 990a 6f72 2069 7473 206f 7574 7075 742e ..or its output. │ │ │ │ -000023f0: 0a0a 2020 2041 2072 6563 6f6d 6d65 6e64 .. A recommend │ │ │ │ -00002400: 6174 696f 6e20 666f 7220 696d 7072 6f76 ation for improv │ │ │ │ -00002410: 656d 656e 7420 6672 6f6d 206f 6e65 2075 ement from one u │ │ │ │ -00002420: 6e6b 6e6f 776e 2070 6572 736f 6e20 636f nknown person co │ │ │ │ -00002430: 756e 7473 2061 730a 6f6e 6520 766f 7465 unts as.one vote │ │ │ │ -00002440: 2e20 2057 6520 7573 6520 6f76 6572 616c . We use overal │ │ │ │ -00002450: 6c20 766f 7465 2074 616c 6c69 6573 2074 l vote tallies t │ │ │ │ -00002460: 6f20 6465 6369 6465 2077 6861 7420 746f o decide what to │ │ │ │ -00002470: 2064 6f20 6e65 7874 2061 730a 7265 736f do next as.reso │ │ │ │ -00002480: 7572 6365 7320 7065 726d 6974 2e20 2057 urces permit. W │ │ │ │ -00002490: 6520 7265 7365 7276 6520 7468 6520 7269 e reserve the ri │ │ │ │ -000024a0: 6768 7420 746f 2061 7373 6967 6e20 616e ght to assign an │ │ │ │ -000024b0: 7920 6e75 6d62 6572 206f 6620 766f 7465 y number of vote │ │ │ │ -000024c0: 7320 746f 0a73 7567 6765 7374 696f 6e73 s to.suggestions │ │ │ │ -000024d0: 2066 726f 6d20 7065 6f70 6c65 2077 686f from people who │ │ │ │ -000024e0: 2068 6176 6520 6265 656e 2068 656c 7066 have been helpf │ │ │ │ -000024f0: 756c 2061 6e64 2073 7570 706f 7274 6976 ul and supportiv │ │ │ │ -00002500: 6520 696e 2074 6865 0a70 6173 742e 0a0a e in the.past... │ │ │ │ -00002510: 1f0a 4669 6c65 3a20 736b 6574 6368 2e69 ..File: sketch.i │ │ │ │ -00002520: 6e66 6f2c 2020 4e6f 6465 3a20 436f 6e74 nfo, Node: Cont │ │ │ │ -00002530: 7269 6275 7469 6f6e 732c 2020 5072 6576 ributions, Prev │ │ │ │ -00002540: 3a20 5265 706f 7274 696e 6720 6275 6773 : Reporting bugs │ │ │ │ -00002550: 2c20 2055 703a 2041 626f 7574 2073 6b65 , Up: About ske │ │ │ │ -00002560: 7463 680a 0a31 2e32 2043 6f6e 7472 6962 tch..1.2 Contrib │ │ │ │ -00002570: 7574 696f 6e73 0a3d 3d3d 3d3d 3d3d 3d3d utions.========= │ │ │ │ -00002580: 3d3d 3d3d 3d3d 3d3d 0a0a 4966 2079 6f75 ========..If you │ │ │ │ -00002590: 2069 6e74 656e 6420 746f 2069 6d70 6c65 intend to imple │ │ │ │ -000025a0: 6d65 6e74 2061 6e20 656e 6861 6e63 656d ment an enhancem │ │ │ │ -000025b0: 656e 7420 6f66 2079 6f75 7220 6f77 6e2c ent of your own, │ │ │ │ -000025c0: 2074 6861 7427 7320 7465 7272 6966 6963 that's terrific │ │ │ │ -000025d0: 210a 436f 6e73 6964 6572 2063 6f6c 6c61 !.Consider colla │ │ │ │ -000025e0: 626f 7261 7469 6e67 2077 6974 6820 7573 borating with us │ │ │ │ -000025f0: 2066 6972 7374 2074 6f20 7365 6520 6966 first to see if │ │ │ │ -00002600: 2077 6527 7265 2061 6c72 6561 6479 2077 we're already w │ │ │ │ -00002610: 6f72 6b69 6e67 206f 6e0a 796f 7572 2069 orking on.your i │ │ │ │ -00002620: 6465 6120 6f72 2069 6620 7765 2063 616e dea or if we can │ │ │ │ -00002630: 2075 7365 2079 6f75 7220 776f 726b 2069 use your work i │ │ │ │ -00002640: 6e20 7468 6520 6f66 6669 6369 616c 2072 n the official r │ │ │ │ -00002650: 656c 6561 7365 2e0a 0a00 085b 696d 6167 elease.....[imag │ │ │ │ -00002660: 6520 7372 633d 2265 7830 3030 2e70 6e67 e src="ex000.png │ │ │ │ -00002670: 2220 7465 7874 3d22 496d 6167 6520 6578 " text="Image ex │ │ │ │ -00002680: 3030 3020 6f6d 6974 7465 6420 696e 2074 000 omitted in t │ │ │ │ -00002690: 6578 7420 7665 7273 696f 6e20 6f66 2074 ext version of t │ │ │ │ -000026a0: 6869 7320 646f 6375 6d65 6e74 2e22 0008 his document.".. │ │ │ │ -000026b0: 5d0a 0a1f 0a46 696c 653a 2073 6b65 7463 ]....File: sketc │ │ │ │ -000026c0: 682e 696e 666f 2c20 204e 6f64 653a 2049 h.info, Node: I │ │ │ │ -000026d0: 6e74 726f 6475 6374 696f 6e20 6279 2065 ntroduction by e │ │ │ │ -000026e0: 7861 6d70 6c65 2c20 204e 6578 743a 2049 xample, Next: I │ │ │ │ -000026f0: 6e70 7574 206c 616e 6775 6167 652c 2020 nput language, │ │ │ │ -00002700: 5072 6576 3a20 4162 6f75 7420 736b 6574 Prev: About sket │ │ │ │ -00002710: 6368 2c20 2055 703a 2054 6f70 0a0a 3220 ch, Up: Top..2 │ │ │ │ -00002720: 496e 7472 6f64 7563 7469 6f6e 2062 7920 Introduction by │ │ │ │ -00002730: 6578 616d 706c 650a 2a2a 2a2a 2a2a 2a2a example.******** │ │ │ │ -00002740: 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a **************** │ │ │ │ -00002750: 2a0a 0a54 6865 20e2 8098 736b 6574 6368 *..The ...sketch │ │ │ │ -00002760: e280 9920 696e 7075 7420 6c61 6e67 7561 ... input langua │ │ │ │ -00002770: 6765 2077 696c 6c20 7365 656d 2066 616d ge will seem fam │ │ │ │ -00002780: 696c 6961 7220 746f 2075 7365 7273 206f iliar to users o │ │ │ │ -00002790: 6620 7468 650a e280 9850 5354 7269 636b f the....PSTrick │ │ │ │ -000027a0: 73e2 8099 2070 6163 6b61 6765 2066 6f72 s... package for │ │ │ │ -000027b0: 204c 6154 6558 2e20 2054 6865 2066 6f6c LaTeX. The fol │ │ │ │ -000027c0: 6c6f 7769 6e67 2070 726f 6772 616d 2064 lowing program d │ │ │ │ -000027d0: 7261 7773 2061 2074 7269 616e 6775 6c61 raws a triangula │ │ │ │ -000027e0: 720a 706f 6c79 676f 6e20 7069 6572 6365 r.polygon pierce │ │ │ │ -000027f0: 6420 6279 2061 206c 696e 652e 0a20 2070 d by a line.. p │ │ │ │ -00002800: 6f6c 7967 6f6e 2830 2c30 2c31 2928 312c olygon(0,0,1)(1, │ │ │ │ -00002810: 302c 3029 2830 2c31 2c30 290a 2020 6c69 0,0)(0,1,0). li │ │ │ │ -00002820: 6e65 282d 312c 2d31 2c2d 3129 2832 2c32 ne(-1,-1,-1)(2,2 │ │ │ │ -00002830: 2c32 290a 5468 6520 636f 6f72 6469 6e61 ,2).The coordina │ │ │ │ -00002840: 7465 2073 7973 7465 6d20 6973 2061 2073 te system is a s │ │ │ │ -00002850: 7461 6e64 6172 6420 7269 6768 742d 6861 tandard right-ha │ │ │ │ -00002860: 6e64 6564 2043 6172 7465 7369 616e 206f nded Cartesian o │ │ │ │ -00002870: 6e65 2e0a 0a00 085b 696d 6167 6520 7372 ne.....[image sr │ │ │ │ -00002880: 633d 2265 7830 3130 2e70 6e67 2220 7465 c="ex010.png" te │ │ │ │ -00002890: 7874 3d22 496d 6167 6520 6578 3031 3020 xt="Image ex010 │ │ │ │ -000028a0: 6f6d 6974 7465 6420 696e 2074 6578 7420 omitted in text │ │ │ │ -000028b0: 7665 7273 696f 6e20 6f66 2074 6869 7320 version of this │ │ │ │ -000028c0: 646f 6375 6d65 6e74 2e22 0008 5d0a 0a2a document."..]..* │ │ │ │ -000028d0: 204d 656e 753a 0a0a 2a20 4865 6c6c 6f20 Menu:..* Hello │ │ │ │ -000028e0: 776f 726c 643a 3a20 2020 2020 2020 2020 world:: │ │ │ │ -000028f0: 2020 2020 2020 2020 5369 6d70 6c65 7374 Simplest │ │ │ │ -00002900: 2070 6f73 7369 626c 6520 e280 9873 6b65 possible ...ske │ │ │ │ -00002910: 7463 68e2 8099 2070 726f 6772 616d 2e0a tch... program.. │ │ │ │ -00002920: 2a20 4472 6177 696e 6720 6f70 7469 6f6e * Drawing option │ │ │ │ -00002930: 733a 3a20 2020 2020 2020 2020 2020 2020 s:: │ │ │ │ -00002940: 436f 6e74 726f 6c6c 696e 6720 6f62 6a65 Controlling obje │ │ │ │ -00002950: 6374 2061 7070 6561 7261 6e63 652e 0a2a ct appearance..* │ │ │ │ -00002960: 2044 7261 7769 6e67 2061 2073 6f6c 6964 Drawing a solid │ │ │ │ -00002970: 3a3a 2020 2020 2020 2020 2020 2020 2044 :: D │ │ │ │ -00002980: 7261 7769 6e67 2061 6e20 6f62 6a65 6374 rawing an object │ │ │ │ -00002990: 2077 6974 6820 3364 2061 7070 6561 7261 with 3d appeara │ │ │ │ -000029a0: 6e63 652e 0a2a 2053 7065 6369 616c 206f nce..* Special o │ │ │ │ -000029b0: 626a 6563 7473 3a3a 2020 2020 2020 2020 bjects:: │ │ │ │ -000029c0: 2020 2020 204c 6179 696e 6720 5465 5820 Laying TeX │ │ │ │ -000029d0: 6f76 6572 2c20 696e 2c20 6f72 2075 6e64 over, in, or und │ │ │ │ -000029e0: 6572 2064 7261 7769 6e67 732e 0a2a 204f er drawings..* O │ │ │ │ -000029f0: 626a 6563 7420 7472 616e 7366 6f72 6d73 bject transforms │ │ │ │ -00002a00: 3a3a 2020 2020 2020 2020 2020 2052 6f74 :: Rot │ │ │ │ -00002a10: 6174 652c 2074 7261 6e73 6c61 7465 2c20 ate, translate, │ │ │ │ -00002a20: 7363 616c 652c 2061 6e64 206f 7468 6572 scale, and other │ │ │ │ -00002a30: 732e 0a2a 2052 6570 6561 7465 6420 6f62 s..* Repeated ob │ │ │ │ -00002a40: 6a65 6374 733a 3a20 2020 2020 2020 2020 jects:: │ │ │ │ -00002a50: 2020 204d 616b 696e 6720 7472 616e 7366 Making transf │ │ │ │ -00002a60: 6f72 6d65 6420 636f 7069 6573 2e0a 2a20 ormed copies..* │ │ │ │ -00002a70: 5377 6570 7420 6f62 6a65 6374 733a 3a20 Swept objects:: │ │ │ │ -00002a80: 2020 2020 2020 2020 2020 2020 2020 5377 Sw │ │ │ │ -00002a90: 6565 7069 6e67 206f 626a 6563 7473 2069 eeping objects i │ │ │ │ -00002aa0: 6e20 7370 6163 6520 746f 206d 616b 6520 n space to make │ │ │ │ -00002ab0: 6e65 7720 7368 6170 6573 2e0a 0a1f 0a46 new shapes.....F │ │ │ │ -00002ac0: 696c 653a 2073 6b65 7463 682e 696e 666f ile: sketch.info │ │ │ │ -00002ad0: 2c20 204e 6f64 653a 2048 656c 6c6f 2077 , Node: Hello w │ │ │ │ -00002ae0: 6f72 6c64 2c20 204e 6578 743a 2044 7261 orld, Next: Dra │ │ │ │ -00002af0: 7769 6e67 206f 7074 696f 6e73 2c20 2050 wing options, P │ │ │ │ -00002b00: 7265 763a 2049 6e74 726f 6475 6374 696f rev: Introductio │ │ │ │ -00002b10: 6e20 6279 2065 7861 6d70 6c65 2c20 2055 n by example, U │ │ │ │ -00002b20: 703a 2049 6e74 726f 6475 6374 696f 6e20 p: Introduction │ │ │ │ -00002b30: 6279 2065 7861 6d70 6c65 0a0a 322e 3120 by example..2.1 │ │ │ │ -00002b40: 4865 6c6c 6f20 776f 726c 640a 3d3d 3d3d Hello world.==== │ │ │ │ -00002b50: 3d3d 3d3d 3d3d 3d3d 3d3d 3d0a 0a54 6865 ===========..The │ │ │ │ -00002b60: 20e2 8098 736b 6574 6368 e280 9920 7072 ...sketch... pr │ │ │ │ -00002b70: 6f67 7261 6d20 6162 6f76 6520 6973 206e ogram above is n │ │ │ │ -00002b80: 6561 726c 7920 7468 6520 7369 6d70 6c65 early the simple │ │ │ │ -00002b90: 7374 206f 6e65 2070 6f73 7369 626c 652c st one possible, │ │ │ │ -00002ba0: 2074 6865 0a65 7175 6976 616c 656e 7420 the.equivalent │ │ │ │ -00002bb0: 6f66 2061 2022 6865 6c6c 6f20 776f 726c of a "hello worl │ │ │ │ -00002bc0: 6422 2070 726f 6772 616d 2079 6f75 206d d" program you m │ │ │ │ -00002bd0: 6967 6874 2066 696e 6420 6174 2074 6865 ight find at the │ │ │ │ -00002be0: 2073 7461 7274 206f 6620 610a 7072 6f67 start of a.prog │ │ │ │ -00002bf0: 7261 6d6d 696e 6720 6c61 6e67 7561 6765 ramming language │ │ │ │ -00002c00: 2074 6578 742e 2020 4966 2069 7420 6973 text. If it is │ │ │ │ -00002c10: 2073 6176 6564 2069 6e20 7468 6520 6669 saved in the fi │ │ │ │ -00002c20: 6c65 20e2 8098 7369 6d70 6c65 2e73 6be2 le ...simple.sk. │ │ │ │ -00002c30: 8099 2c20 7468 656e 0a74 6865 2063 6f6d .., then.the com │ │ │ │ -00002c40: 6d61 6e64 0a20 2073 6b65 7463 6820 7369 mand. sketch si │ │ │ │ -00002c50: 6d70 6c65 2e73 6b20 2d6f 2073 696d 706c mple.sk -o simpl │ │ │ │ -00002c60: 652e 7465 780a 6372 6561 7465 7320 6120 e.tex.creates a │ │ │ │ -00002c70: 6669 6c65 20e2 8098 7369 6d70 6c65 2e74 file ...simple.t │ │ │ │ -00002c80: 6578 e280 9920 636f 6e74 6169 6e69 6e67 ex... containing │ │ │ │ -00002c90: 20e2 8098 5053 5472 6963 6b73 e280 9920 ...PSTricks... │ │ │ │ -00002ca0: 636f 6d6d 616e 6473 2074 6f20 6472 6177 commands to draw │ │ │ │ -00002cb0: 2074 6865 7365 0a6f 626a 6563 7473 206f these.objects o │ │ │ │ -00002cc0: 6e20 7061 7065 722e 2020 5468 6520 636f n paper. The co │ │ │ │ -00002cd0: 6e74 656e 7473 206f 6620 e280 9873 696d ntents of ...sim │ │ │ │ -00002ce0: 706c 652e 7465 78e2 8099 206c 6f6f 6b20 ple.tex... look │ │ │ │ -00002cf0: 6c69 6b65 2074 6869 732e 0a20 205c 6265 like this.. \be │ │ │ │ -00002d00: 6769 6e7b 7073 7069 6374 7572 657d 282d gin{pspicture}(- │ │ │ │ -00002d10: 312c 2d31 2928 322c 3229 0a20 205c 7073 1,-1)(2,2). \ps │ │ │ │ -00002d20: 7456 6572 627b 3120 7365 746c 696e 656a tVerb{1 setlinej │ │ │ │ -00002d30: 6f69 6e7d 0a20 205c 7073 6c69 6e65 282d oin}. \psline(- │ │ │ │ -00002d40: 312c 2d31 2928 2e33 3333 2c2e 3333 3329 1,-1)(.333,.333) │ │ │ │ -00002d50: 0a20 205c 7073 706f 6c79 676f 6e5b 6669 . \pspolygon[fi │ │ │ │ -00002d60: 6c6c 7374 796c 653d 736f 6c69 642c 6669 llstyle=solid,fi │ │ │ │ -00002d70: 6c6c 636f 6c6f 723d 7768 6974 655d 2830 llcolor=white](0 │ │ │ │ -00002d80: 2c30 2928 312c 3029 2830 2c31 290a 2020 ,0)(1,0)(0,1). │ │ │ │ -00002d90: 5c70 736c 696e 6528 2e33 3333 2c2e 3333 \psline(.333,.33 │ │ │ │ -00002da0: 3329 2832 2c32 290a 2020 5c65 6e64 7b70 3)(2,2). \end{p │ │ │ │ -00002db0: 7370 6963 7475 7265 7d0a 5468 6520 6869 spicture}.The hi │ │ │ │ -00002dc0: 6464 656e 2073 7572 6661 6365 2061 6c67 dden surface alg │ │ │ │ -00002dd0: 6f72 6974 686d 206f 6620 e280 9873 6b65 orithm of ...ske │ │ │ │ -00002de0: 7463 68e2 8099 2068 6173 2073 706c 6974 tch... has split │ │ │ │ -00002df0: 2074 6865 206c 696e 6520 696e 746f 2074 the line into t │ │ │ │ -00002e00: 776f 0a70 6965 6365 7320 616e 6420 6f72 wo.pieces and or │ │ │ │ -00002e10: 6465 7265 6420 7468 6520 7468 7265 6520 dered the three │ │ │ │ -00002e20: 7265 7375 6c74 696e 6720 6f62 6a65 6374 resulting object │ │ │ │ -00002e30: 7320 736f 2074 6861 7420 7468 6520 636f s so that the co │ │ │ │ -00002e40: 7272 6563 740a 706f 7274 696f 6e20 6f66 rrect.portion of │ │ │ │ -00002e50: 2074 6865 206c 696e 6520 6973 2068 6964 the line is hid │ │ │ │ -00002e60: 6465 6e2e 0a0a 2020 2049 6620 796f 7527 den... If you' │ │ │ │ -00002e70: 7665 206e 6f74 6963 6564 2074 6861 7420 ve noticed that │ │ │ │ -00002e80: 7468 6520 7072 6f6a 6563 7469 6f6e 2077 the projection w │ │ │ │ -00002e90: 6520 6172 6520 7573 696e 6720 7365 656d e are using seem │ │ │ │ -00002ea0: 7320 6571 7569 7661 6c65 6e74 0a74 6f20 s equivalent.to │ │ │ │ -00002eb0: 6572 6173 696e 6720 7468 6520 7a2d 636f erasing the z-co │ │ │ │ -00002ec0: 6f72 6469 6e61 7465 206f 6620 7468 6520 ordinate of the │ │ │ │ -00002ed0: 7468 7265 652d 6469 6d65 6e73 696f 6e61 three-dimensiona │ │ │ │ -00002ee0: 6c20 696e 7075 7420 706f 696e 7473 2c20 l input points, │ │ │ │ -00002ef0: 7061 740a 796f 7572 7365 6c66 206f 6e20 pat.yourself on │ │ │ │ -00002f00: 7468 6520 6261 636b 2e20 2059 6f75 2061 the back. You a │ │ │ │ -00002f10: 7265 2063 6f72 7265 6374 2e20 2054 6869 re correct. Thi │ │ │ │ -00002f20: 7320 6973 2063 616c 6c65 6420 6120 e280 s is called a .. │ │ │ │ -00002f30: 9c70 6172 616c 6c65 6c0a 7072 6f6a 6563 .parallel.projec │ │ │ │ -00002f40: 7469 6f6e e280 9d2e 2020 5468 6520 7a2d tion.... The z- │ │ │ │ -00002f50: 636f 6f72 6469 6e61 7465 2061 7869 7320 coordinate axis │ │ │ │ -00002f60: 6973 2070 6f69 6e74 696e 6720 7374 7261 is pointing stra │ │ │ │ -00002f70: 6967 6874 206f 7574 206f 6620 7468 650a ight out of the. │ │ │ │ -00002f80: 7061 7065 7220 6174 2075 732c 2077 6869 paper at us, whi │ │ │ │ -00002f90: 6c65 2074 6865 2078 2d20 616e 6420 792d le the x- and y- │ │ │ │ -00002fa0: 6178 6573 2070 6f69 6e74 2074 6f20 7468 axes point to th │ │ │ │ -00002fb0: 6520 7269 6768 7420 616e 6420 7570 2061 e right and up a │ │ │ │ -00002fc0: 7320 7573 7561 6c2e 0a0a 2020 2054 6865 s usual... The │ │ │ │ -00002fd0: 2072 6573 756c 7469 6e67 2070 6963 7475 resulting pictu │ │ │ │ -00002fe0: 7265 2066 696c 6520 6361 6e20 6265 2069 re file can be i │ │ │ │ -00002ff0: 6e63 6c75 6465 6420 696e 2061 204c 6154 ncluded in a LaT │ │ │ │ -00003000: 6558 2064 6f63 756d 656e 7420 7769 7468 eX document with │ │ │ │ -00003010: 0a5c 696e 7075 747b 7369 6d70 6c65 7d2e .\input{simple}. │ │ │ │ -00003020: 2020 416c 7465 726e 6174 656c 792c 2061 Alternately, a │ │ │ │ -00003030: 6464 696e 6720 7468 6520 636f 6d6d 616e dding the comman │ │ │ │ -00003040: 6420 6c69 6e65 206f 7074 696f 6e20 e280 d line option .. │ │ │ │ -00003050: 982d 54e2 8099 2831 290a 6361 7573 6573 .-T...(1).causes │ │ │ │ -00003060: 2074 6865 20e2 8098 7073 7069 6374 7572 the ...pspictur │ │ │ │ -00003070: 65e2 8099 2074 6f20 6265 2077 7261 7070 e... to be wrapp │ │ │ │ -00003080: 6564 2069 6e20 6120 7368 6f72 7420 6275 ed in a short bu │ │ │ │ -00003090: 7420 636f 6d70 6c65 7465 2064 6f63 756d t complete docum │ │ │ │ -000030a0: 656e 742c 0a72 6561 6479 2074 6f20 7275 ent,.ready to ru │ │ │ │ -000030b0: 6e20 7468 6f75 6768 204c 6154 6558 2e20 n though LaTeX. │ │ │ │ -000030c0: 2049 6e20 6120 6669 6e69 7368 6564 2c20 In a finished, │ │ │ │ -000030d0: 7479 7065 7365 7420 646f 6375 6d65 6e74 typeset document │ │ │ │ -000030e0: 2c20 7468 6520 7069 6374 7572 650a 6c6f , the picture.lo │ │ │ │ -000030f0: 6f6b 7320 6c69 6b65 2074 6869 732e 2020 oks like this. │ │ │ │ -00003100: 2854 6865 2061 7865 7320 6861 7665 2062 (The axes have b │ │ │ │ -00003110: 6565 6e20 6164 6465 6420 696e 206c 6967 een added in lig │ │ │ │ -00003120: 6874 2067 7261 792e 290a 0a00 085b 696d ht gray.)....[im │ │ │ │ -00003130: 6167 6520 7372 633d 2265 7830 3230 2e70 age src="ex020.p │ │ │ │ -00003140: 6e67 2220 7465 7874 3d22 496d 6167 6520 ng" text="Image │ │ │ │ -00003150: 6578 3032 3020 6f6d 6974 7465 6420 696e ex020 omitted in │ │ │ │ -00003160: 2074 6578 7420 7665 7273 696f 6e20 6f66 text version of │ │ │ │ -00003170: 2074 6869 7320 646f 6375 6d65 6e74 2e22 this document." │ │ │ │ -00003180: 0008 5d0a 0a49 7420 6973 2069 6d70 6f72 ..]..It is impor │ │ │ │ -00003190: 7461 6e74 2074 6f20 6b6e 6f77 2074 6861 tant to know tha │ │ │ │ -000031a0: 7420 6f6e 6c79 2074 6865 2022 6f75 7473 t only the "outs │ │ │ │ -000031b0: 6964 6522 206f 6620 6120 706f 6c79 676f ide" of a polygo │ │ │ │ -000031c0: 6e20 6973 206e 6f72 6d61 6c6c 790a 6472 n is normally.dr │ │ │ │ -000031d0: 6177 6e2e 2020 5468 6520 e280 9c6f 7574 awn. The ...out │ │ │ │ -000031e0: 7369 6465 e280 9d20 6973 2077 6865 7265 side... is where │ │ │ │ -000031f0: 2074 6865 2076 6572 7469 6365 7320 6769 the vertices gi │ │ │ │ -00003200: 7665 6e20 696e 2074 6865 20e2 8098 706f ven in the ...po │ │ │ │ -00003210: 6c79 676f 6ee2 8099 0a63 6f6d 6d61 6e64 lygon....command │ │ │ │ -00003220: 2061 7070 6561 7220 696e 205f 636f 756e appear in _coun │ │ │ │ -00003230: 7465 722d 636c 6f63 6b77 6973 655f 206f ter-clockwise_ o │ │ │ │ -00003240: 7264 6572 2e20 2054 6875 732c 2069 6620 rder. Thus, if │ │ │ │ -00003250: 7468 6520 636f 6d6d 616e 6420 6162 6f76 the command abov │ │ │ │ -00003260: 650a 6861 6420 6265 656e 0a20 2070 6f6c e.had been. pol │ │ │ │ -00003270: 7967 6f6e 2830 2c31 2c30 2928 312c 302c ygon(0,1,0)(1,0, │ │ │ │ -00003280: 3029 2830 2c30 2c31 290a 7468 6520 706f 0)(0,0,1).the po │ │ │ │ -00003290: 6c79 676f 6e20 776f 756c 6420 6e6f 7420 lygon would not │ │ │ │ -000032a0: 6170 7065 6172 2069 6e20 7468 6520 7069 appear in the pi │ │ │ │ -000032b0: 6374 7572 6520 6174 2061 6c6c 2e20 2049 cture at all. I │ │ │ │ -000032c0: 7420 776f 756c 6420 6861 7665 2062 6565 t would have bee │ │ │ │ -000032d0: 6e0a e280 9c63 756c 6c65 64e2 809d 2066 n....culled... f │ │ │ │ -000032e0: 726f 6d20 7468 6520 7363 656e 652e 2020 rom the scene. │ │ │ │ -000032f0: 5468 6973 2063 756c 6c69 6e67 2062 6568 This culling beh │ │ │ │ -00003300: 6176 696f 7220 6d61 7920 7365 656d 2073 avior may seem s │ │ │ │ -00003310: 7472 616e 6765 2c20 6275 740a 7374 6179 trange, but.stay │ │ │ │ -00003320: 2074 756e 6564 2e0a 0a20 2020 2d2d 2d2d tuned... ---- │ │ │ │ -00003330: 2d2d 2d2d 2d2d 2046 6f6f 746e 6f74 6573 ------ Footnotes │ │ │ │ -00003340: 202d 2d2d 2d2d 2d2d 2d2d 2d0a 0a20 2020 ----------.. │ │ │ │ -00003350: 2831 2920 4f72 2066 6f72 2045 7572 6f70 (1) Or for Europ │ │ │ │ -00003360: 6561 6e20 7573 6572 7320 6f66 2041 3420 ean users of A4 │ │ │ │ -00003370: 7369 7a65 2070 6170 6572 2c20 e280 982d size paper, ...- │ │ │ │ -00003380: 5465 e280 992e 0a0a 1f0a 4669 6c65 3a20 Te........File: │ │ │ │ -00003390: 736b 6574 6368 2e69 6e66 6f2c 2020 4e6f sketch.info, No │ │ │ │ -000033a0: 6465 3a20 4472 6177 696e 6720 6f70 7469 de: Drawing opti │ │ │ │ -000033b0: 6f6e 732c 2020 4e65 7874 3a20 4472 6177 ons, Next: Draw │ │ │ │ -000033c0: 696e 6720 6120 736f 6c69 642c 2020 5072 ing a solid, Pr │ │ │ │ -000033d0: 6576 3a20 4865 6c6c 6f20 776f 726c 642c ev: Hello world, │ │ │ │ -000033e0: 2020 5570 3a20 496e 7472 6f64 7563 7469 Up: Introducti │ │ │ │ -000033f0: 6f6e 2062 7920 6578 616d 706c 650a 0a32 on by example..2 │ │ │ │ -00003400: 2e32 204f 7074 696f 6e73 0a3d 3d3d 3d3d .2 Options.===== │ │ │ │ -00003410: 3d3d 3d3d 3d3d 0a0a 4d61 6e79 20e2 8098 ======..Many ... │ │ │ │ -00003420: 5053 5472 6963 6b73 e280 9920 616e 6420 PSTricks... and │ │ │ │ -00003430: e280 9854 696b 5a2f 5047 46e2 8099 206f ...TikZ/PGF... o │ │ │ │ -00003440: 7074 696f 6e73 2077 6f72 6b20 6a75 7374 ptions work just │ │ │ │ -00003450: 2066 696e 6520 696e 20e2 8098 736b 6574 fine in ...sket │ │ │ │ -00003460: 6368 e280 992e 2020 4966 0a67 656e 6572 ch.... If.gener │ │ │ │ -00003470: 6174 696e 6720 e280 9850 5354 7269 636b ating ...PSTrick │ │ │ │ -00003480: 73e2 8099 2c20 7468 6520 636f 6465 0a20 s..., the code. │ │ │ │ -00003490: 2070 6f6c 7967 6f6e 5b66 696c 6c63 6f6c polygon[fillcol │ │ │ │ -000034a0: 6f72 3d6c 6967 6874 6772 6179 2c6c 696e or=lightgray,lin │ │ │ │ -000034b0: 6577 6964 7468 3d33 7074 5d28 302c 302c ewidth=3pt](0,0, │ │ │ │ -000034c0: 3129 2831 2c30 2c30 2928 302c 312c 3029 1)(1,0,0)(0,1,0) │ │ │ │ -000034d0: 0a20 206c 696e 655b 6c69 6e65 7374 796c . line[linestyl │ │ │ │ -000034e0: 653d 646f 7474 6564 5d28 2d31 2c2d 312c e=dotted](-1,-1, │ │ │ │ -000034f0: 2d31 2928 322c 322c 3229 0a70 726f 6475 -1)(2,2,2).produ │ │ │ │ -00003500: 6365 730a 0a00 085b 696d 6167 6520 7372 ces....[image sr │ │ │ │ -00003510: 633d 2265 7830 3330 2e70 6e67 2220 7465 c="ex030.png" te │ │ │ │ -00003520: 7874 3d22 496d 6167 6520 6578 3033 3020 xt="Image ex030 │ │ │ │ -00003530: 6f6d 6974 7465 6420 696e 2074 6578 7420 omitted in text │ │ │ │ -00003540: 7665 7273 696f 6e20 6f66 2074 6869 7320 version of this │ │ │ │ -00003550: 646f 6375 6d65 6e74 2e22 0008 5d0a 0a20 document."..].. │ │ │ │ -00003560: 2020 546f 2070 726f 6475 6365 20e2 8098 To produce ... │ │ │ │ -00003570: 5469 6b5a 2f50 4746 e280 992c 2074 6865 TikZ/PGF..., the │ │ │ │ -00003580: 2063 6f72 7265 7370 6f6e 6469 6e67 2063 corresponding c │ │ │ │ -00003590: 6f64 6520 6973 0a20 2070 6f6c 7967 6f6e ode is. polygon │ │ │ │ -000035a0: 5b66 696c 6c3d 6c69 6768 7467 7261 792c [fill=lightgray, │ │ │ │ -000035b0: 6c69 6e65 2077 6964 7468 3d33 7074 5d28 line width=3pt]( │ │ │ │ -000035c0: 302c 302c 3129 2831 2c30 2c30 2928 302c 0,0,1)(1,0,0)(0, │ │ │ │ -000035d0: 312c 3029 0a20 206c 696e 655b 7374 796c 1,0). line[styl │ │ │ │ -000035e0: 653d 646f 7474 6564 5d28 2d31 2c2d 312c e=dotted](-1,-1, │ │ │ │ -000035f0: 2d31 2928 322c 322c 3229 0a20 2067 6c6f -1)(2,2,2). glo │ │ │ │ -00003600: 6261 6c20 7b20 6c61 6e67 7561 6765 2074 bal { language t │ │ │ │ -00003610: 696b 7a20 7d0a 5468 6520 6669 6e61 6c20 ikz }.The final │ │ │ │ -00003620: e280 9867 6c6f 6261 6ce2 8099 2069 6e73 ...global... ins │ │ │ │ -00003630: 7472 7563 7473 20e2 8098 736b 6574 6368 tructs ...sketch │ │ │ │ -00003640: e280 9920 746f 2070 726f 6475 6365 20e2 ... to produce . │ │ │ │ -00003650: 8098 5469 6b5a 2f50 4746 e280 9920 636f ..TikZ/PGF... co │ │ │ │ -00003660: 6465 2061 730a 6f75 7470 7574 2072 6174 de as.output rat │ │ │ │ -00003670: 6865 7220 7468 616e 2074 6865 2064 6566 her than the def │ │ │ │ -00003680: 6175 6c74 2c20 e280 9850 5354 7269 636b ault, ...PSTrick │ │ │ │ -00003690: 73e2 8099 2e20 204e 6f74 6520 7468 6174 s.... Note that │ │ │ │ -000036a0: 20e2 8098 706f 6c79 676f 6ee2 8099 2066 ...polygon... f │ │ │ │ -000036b0: 696c 6c0a 636f 6c6f 7220 616e 6420 e280 ill.color and .. │ │ │ │ -000036c0: 986c 696e 65e2 8099 2073 7479 6c65 206f .line... style o │ │ │ │ -000036d0: 7074 696f 6e73 2062 6f74 6820 636f 6e66 ptions both conf │ │ │ │ -000036e0: 6f72 6d20 746f 20e2 8098 5469 6b5a e280 orm to ...TikZ.. │ │ │ │ -000036f0: 9920 7379 6e74 6178 2072 756c 6573 2e20 . syntax rules. │ │ │ │ -00003700: 2054 6865 0a72 6573 756c 7469 6e67 20e2 The.resulting . │ │ │ │ -00003710: 8098 5469 6b5a 2f50 4746 e280 9920 6f75 ..TikZ/PGF... ou │ │ │ │ -00003720: 7470 7574 2069 730a 2020 5c62 6567 696e tput is. \begin │ │ │ │ -00003730: 7b74 696b 7a70 6963 7475 7265 7d5b 6a6f {tikzpicture}[jo │ │ │ │ -00003740: 696e 3d72 6f75 6e64 5d0a 2020 5c64 7261 in=round]. \dra │ │ │ │ -00003750: 775b 646f 7474 6564 5d28 2d31 2c2d 3129 w[dotted](-1,-1) │ │ │ │ -00003760: 2d2d 282e 3333 332c 2e33 3333 293b 0a20 --(.333,.333);. │ │ │ │ -00003770: 205c 6669 6c6c 6472 6177 5b66 696c 6c3d \filldraw[fill= │ │ │ │ -00003780: 6c69 6768 7467 7261 792c 6c69 6e65 2077 lightgray,line w │ │ │ │ -00003790: 6964 7468 3d33 7074 5d28 302c 3029 2d2d idth=3pt](0,0)-- │ │ │ │ -000037a0: 2831 2c30 292d 2d28 302c 3129 2d2d 6379 (1,0)--(0,1)--cy │ │ │ │ -000037b0: 636c 653b 0a20 205c 6472 6177 5b64 6f74 cle;. \draw[dot │ │ │ │ -000037c0: 7465 645d 282e 3333 332c 2e33 3333 292d ted](.333,.333)- │ │ │ │ -000037d0: 2d28 322c 3229 3b0a 2020 5c65 6e64 7b74 -(2,2);. \end{t │ │ │ │ -000037e0: 696b 7a70 6963 7475 7265 7d0a 5468 6520 ikzpicture}.The │ │ │ │ -000037f0: 7265 6d61 696e 696e 6720 6578 616d 706c remaining exampl │ │ │ │ -00003800: 6573 206f 6620 7468 6973 206d 616e 7561 es of this manua │ │ │ │ -00003810: 6c20 6172 6520 696e 2050 5354 7269 636b l are in PSTrick │ │ │ │ -00003820: 7320 7374 796c 652e 0a0a 1f0a 4669 6c65 s style.....File │ │ │ │ -00003830: 3a20 736b 6574 6368 2e69 6e66 6f2c 2020 : sketch.info, │ │ │ │ -00003840: 4e6f 6465 3a20 4472 6177 696e 6720 6120 Node: Drawing a │ │ │ │ -00003850: 736f 6c69 642c 2020 4e65 7874 3a20 5370 solid, Next: Sp │ │ │ │ -00003860: 6563 6961 6c20 6f62 6a65 6374 732c 2020 ecial objects, │ │ │ │ -00003870: 5072 6576 3a20 4472 6177 696e 6720 6f70 Prev: Drawing op │ │ │ │ -00003880: 7469 6f6e 732c 2020 5570 3a20 496e 7472 tions, Up: Intr │ │ │ │ -00003890: 6f64 7563 7469 6f6e 2062 7920 6578 616d oduction by exam │ │ │ │ -000038a0: 706c 650a 0a32 2e33 2044 7261 7769 6e67 ple..2.3 Drawing │ │ │ │ -000038b0: 2061 2073 6f6c 6964 0a3d 3d3d 3d3d 3d3d a solid.======= │ │ │ │ -000038c0: 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 0a0a 4c65 ============..Le │ │ │ │ -000038d0: 7427 7320 7472 7920 736f 6d65 7468 696e t's try somethin │ │ │ │ -000038e0: 6720 6d6f 7265 2065 7863 6974 696e 672e g more exciting. │ │ │ │ -000038f0: 2020 e280 9853 6b65 7463 68e2 8099 2068 ...Sketch... h │ │ │ │ -00003900: 6173 206e 6f20 6e6f 7469 6f6e 206f 6620 as no notion of │ │ │ │ -00003910: 6120 736f 6c69 642c 0a62 7574 2070 6f6c a solid,.but pol │ │ │ │ -00003920: 7967 6f6e 616c 20e2 809c 6661 6365 73e2 ygonal ...faces. │ │ │ │ -00003930: 809d 2063 616e 2062 6520 7573 6564 2074 .. can be used t │ │ │ │ -00003940: 6f20 7265 7072 6573 656e 7420 7468 6520 o represent the │ │ │ │ -00003950: 626f 756e 6461 7279 206f 6620 6120 736f boundary of a so │ │ │ │ -00003960: 6c69 642e 0a54 6f20 7468 6520 7072 6576 lid..To the prev │ │ │ │ -00003970: 696f 7573 2065 7861 6d70 6c65 2c20 6c65 ious example, le │ │ │ │ -00003980: 7427 7320 6164 6420 7468 7265 6520 6d6f t's add three mo │ │ │ │ -00003990: 7265 2074 7269 616e 6775 6c61 7220 706f re triangular po │ │ │ │ -000039a0: 6c79 676f 6e73 2074 6f0a 6d61 6b65 2074 lygons to.make t │ │ │ │ -000039b0: 6865 2066 6163 6573 206f 6620 616e 2069 he faces of an i │ │ │ │ -000039c0: 7272 6567 756c 6172 2074 6574 7261 6865 rregular tetrahe │ │ │ │ -000039d0: 6472 6f6e 2e0a 2020 2520 7665 7274 6963 dron.. % vertic │ │ │ │ -000039e0: 6573 206f 6620 7468 6520 7465 7472 6168 es of the tetrah │ │ │ │ -000039f0: 6564 726f 6e0a 2020 6465 6620 7031 2028 edron. def p1 ( │ │ │ │ -00003a00: 302c 302c 3129 2064 6566 2070 3220 2831 0,0,1) def p2 (1 │ │ │ │ -00003a10: 2c30 2c30 290a 2020 6465 6620 7033 2028 ,0,0). def p3 ( │ │ │ │ -00003a20: 302c 312c 3029 2064 6566 2070 3420 282d 0,1,0) def p4 (- │ │ │ │ -00003a30: 2e33 2c2d 2e35 2c2d 2e38 290a 0a20 2025 .3,-.5,-.8).. % │ │ │ │ -00003a40: 2066 6163 6573 206f 6620 7468 6520 7465 faces of the te │ │ │ │ -00003a50: 7472 6168 6564 726f 6e2e 0a20 2070 6f6c trahedron.. pol │ │ │ │ -00003a60: 7967 6f6e 2870 3129 2870 3229 2870 3329 ygon(p1)(p2)(p3) │ │ │ │ -00003a70: 2025 206f 7269 6769 6e61 6c20 6672 6f6e % original fron │ │ │ │ -00003a80: 7420 706f 6c79 676f 6e0a 2020 706f 6c79 t polygon. poly │ │ │ │ -00003a90: 676f 6e28 7031 2928 7034 2928 7032 2920 gon(p1)(p4)(p2) │ │ │ │ -00003aa0: 2520 626f 7474 6f6d 0a20 2070 6f6c 7967 % bottom. polyg │ │ │ │ -00003ab0: 6f6e 2870 3129 2870 3329 2870 3429 2025 on(p1)(p3)(p4) % │ │ │ │ -00003ac0: 206c 6566 740a 2020 706f 6c79 676f 6e28 left. polygon( │ │ │ │ -00003ad0: 7033 2928 7032 2928 7034 2920 2520 7265 p3)(p2)(p4) % re │ │ │ │ -00003ae0: 6172 0a0a 2020 2520 6c69 6e65 2074 6f20 ar.. % line to │ │ │ │ -00003af0: 7069 6572 6365 2074 6865 2074 6574 7261 pierce the tetra │ │ │ │ -00003b00: 6865 6472 6f6e 0a20 206c 696e 655b 6c69 hedron. line[li │ │ │ │ -00003b10: 6e65 636f 6c6f 723d 7265 645d 282d 312c necolor=red](-1, │ │ │ │ -00003b20: 2d31 2c2d 3129 2832 2c32 2c32 290a 5468 -1,-1)(2,2,2).Th │ │ │ │ -00003b30: 6973 2065 7861 6d70 6c65 2075 7365 7320 is example uses │ │ │ │ -00003b40: e280 9c64 6566 696e 6974 696f 6e73 e280 ...definitions.. │ │ │ │ -00003b50: 9d2c 2077 6869 6368 2062 6567 696e 2077 ., which begin w │ │ │ │ -00003b60: 6974 6820 e280 9864 6566 e280 992e 2020 ith ...def.... │ │ │ │ -00003b70: 5468 6573 6520 e280 9c64 6566 696e 65e2 These ...define. │ │ │ │ -00003b80: 809d 0a6f 7220 6769 7665 206e 616d 6573 ...or give names │ │ │ │ -00003b90: 2074 6f20 706f 696e 7473 2c20 7768 6963 to points, whic │ │ │ │ -00003ba0: 6820 6172 6520 7468 656e 2061 7661 696c h are then avail │ │ │ │ -00003bb0: 6162 6c65 2061 7320 e280 9c72 6566 6572 able as ...refer │ │ │ │ -00003bc0: 656e 6365 73e2 809d 2062 790a 656e 636c ences... by.encl │ │ │ │ -00003bd0: 6f73 696e 6720 7468 6520 6e61 6d65 7320 osing the names │ │ │ │ -00003be0: 696e 2070 6172 656e 7468 6573 6573 2c20 in parentheses, │ │ │ │ -00003bf0: 652e 672e 2028 666f 6f29 2e20 2054 6865 e.g. (foo). The │ │ │ │ -00003c00: 2070 6172 656e 7468 6573 6573 2064 656e parentheses den │ │ │ │ -00003c10: 6f74 650a 7468 6174 2074 6865 206e 616d ote.that the nam │ │ │ │ -00003c20: 6573 2072 6566 6572 2074 6f20 706f 696e es refer to poin │ │ │ │ -00003c30: 7473 3b20 7468 6579 2061 7265 2072 6571 ts; they are req │ │ │ │ -00003c40: 7569 7265 642e 2020 5468 6572 6520 6361 uired. There ca │ │ │ │ -00003c50: 6e20 6265 206e 6f0a 7768 6974 6520 7370 n be no.white sp │ │ │ │ -00003c60: 6163 6520 6265 7477 6565 6e20 7468 656d ace between them │ │ │ │ -00003c70: 2061 6e64 2074 6865 206e 616d 652e 0a0a and the name... │ │ │ │ -00003c80: 2020 2041 7320 796f 7520 6361 6e20 7365 As you can se │ │ │ │ -00003c90: 652c 2063 6f6d 6d65 6e74 7320 7374 6172 e, comments star │ │ │ │ -00003ca0: 7420 7769 7468 2025 2061 7320 696e 2054 t with % as in T │ │ │ │ -00003cb0: 6558 2061 6e64 2065 7874 656e 6420 746f eX and extend to │ │ │ │ -00003cc0: 2074 6865 2065 6e64 0a6f 6620 7468 6520 the end.of the │ │ │ │ -00003cd0: 6c69 6e65 2028 7468 6f75 6768 2023 2077 line (though # w │ │ │ │ -00003ce0: 696c 6c20 776f 726b 2061 7320 7765 6c6c ill work as well │ │ │ │ -00003cf0: 292e 2020 5768 6974 6520 7370 6163 652c ). White space, │ │ │ │ -00003d00: 2069 6e63 6c75 6469 6e67 0a73 7061 6365 including.space │ │ │ │ -00003d10: 732c 2074 6162 7320 616e 6420 626c 616e s, tabs and blan │ │ │ │ -00003d20: 6b20 6c69 6e65 732c 2068 6173 206e 6f20 k lines, has no │ │ │ │ -00003d30: 6566 6665 6374 2069 6e20 7468 6520 e280 effect in the .. │ │ │ │ -00003d40: 9873 6b65 7463 68e2 8099 206c 616e 6775 .sketch... langu │ │ │ │ -00003d50: 6167 652e 0a0a 0008 5b69 6d61 6765 2073 age.....[image s │ │ │ │ -00003d60: 7263 3d22 6578 3034 302e 706e 6722 2074 rc="ex040.png" t │ │ │ │ -00003d70: 6578 743d 2249 6d61 6765 2065 7830 3430 ext="Image ex040 │ │ │ │ -00003d80: 206f 6d69 7474 6564 2069 6e20 7465 7874 omitted in text │ │ │ │ -00003d90: 2076 6572 7369 6f6e 206f 6620 7468 6973 version of this │ │ │ │ -00003da0: 2064 6f63 756d 656e 742e 2200 085d 0a0a document."..].. │ │ │ │ -00003db0: 4966 2077 6520 6c6f 6f6b 2069 6e73 6964 If we look insid │ │ │ │ -00003dc0: 6520 7468 6520 5465 5820 6669 6c65 2070 e the TeX file p │ │ │ │ -00003dd0: 726f 6475 6365 6420 6279 20e2 8098 736b roduced by ...sk │ │ │ │ -00003de0: 6574 6368 e280 992c 2074 6865 7265 2077 etch..., there w │ │ │ │ -00003df0: 696c 6c20 6265 206f 6e6c 790a 7468 7265 ill be only.thre │ │ │ │ -00003e00: 6520 706f 6c79 676f 6e73 2e20 2054 6865 e polygons. The │ │ │ │ -00003e10: 2066 6f75 7274 6820 6861 7320 6265 656e fourth has been │ │ │ │ -00003e20: 2063 756c 6c65 6420 6265 6361 7573 6520 culled because │ │ │ │ -00003e30: 6974 2069 7320 6120 2262 6163 6b20 6661 it is a "back fa │ │ │ │ -00003e40: 6365 220a 6f66 2074 6865 2074 6574 7261 ce".of the tetra │ │ │ │ -00003e50: 6865 6472 6f6e 2c20 696e 7669 7369 626c hedron, invisibl │ │ │ │ -00003e60: 6520 746f 206f 7572 2076 6965 772e 2020 e to our view. │ │ │ │ -00003e70: 4974 2069 7320 756e 6e65 6365 7373 6172 It is unnecessar │ │ │ │ -00003e80: 792c 2061 6e64 2073 6f20 6974 0a69 7320 y, and so it.is │ │ │ │ -00003e90: 7265 6d6f 7665 642e 0a0a 2020 2049 6e20 removed... In │ │ │ │ -00003ea0: 736f 6d65 2064 7261 7769 6e67 732c 2070 some drawings, p │ │ │ │ -00003eb0: 6f6c 7967 6f6e 7320 6163 7420 6173 207a olygons act as z │ │ │ │ -00003ec0: 6572 6f2d 7468 6963 6b6e 6573 7320 736f ero-thickness so │ │ │ │ -00003ed0: 6c69 6420 7375 7266 6163 6573 2077 6974 lid surfaces wit │ │ │ │ -00003ee0: 680a 626f 7468 2073 6964 6573 2076 6973 h.both sides vis │ │ │ │ -00003ef0: 6962 6c65 2072 6174 6865 7220 7468 616e ible rather than │ │ │ │ -00003f00: 2061 7320 7468 6520 6661 6365 7320 6f66 as the faces of │ │ │ │ -00003f10: 2073 6f6c 6964 206f 626a 6563 7473 2c20 solid objects, │ │ │ │ -00003f20: 7768 6572 6520 6261 636b 0a66 6163 6573 where back.faces │ │ │ │ -00003f30: 2063 616e 2062 6520 6375 6c6c 6564 2e20 can be culled. │ │ │ │ -00003f40: 2046 6f72 207a 6572 6f2d 7468 6963 6b6e For zero-thickn │ │ │ │ -00003f50: 6573 7320 736f 6c69 6473 2c20 6375 6c6c ess solids, cull │ │ │ │ -00003f60: 696e 6720 6973 2061 2070 726f 626c 656d ing is a problem │ │ │ │ -00003f70: 2e0a 4f6e 6520 736f 6c75 7469 6f6e 2069 ..One solution i │ │ │ │ -00003f80: 7320 746f 2075 7365 2061 2070 6169 7220 s to use a pair │ │ │ │ -00003f90: 6f66 20e2 8098 736b 6574 6368 e280 9920 of ...sketch... │ │ │ │ -00003fa0: 706f 6c79 676f 6e73 2066 6f72 2065 6163 polygons for eac │ │ │ │ -00003fb0: 680a 7a65 726f 2d74 6869 636b 6e65 7373 h.zero-thickness │ │ │ │ -00003fc0: 2066 6163 652c 2069 6465 6e74 6963 616c face, identical │ │ │ │ -00003fd0: 2065 7863 6570 7420 7769 7468 206f 7070 except with opp │ │ │ │ -00003fe0: 6f73 6974 6520 7665 7274 6578 206f 7264 osite vertex ord │ │ │ │ -00003ff0: 6572 732e 2020 5468 6973 0a69 7320 756e ers. This.is un │ │ │ │ -00004000: 7769 656c 6479 2061 6e64 2065 7870 656e wieldy and expen │ │ │ │ -00004010: 7369 7665 2e20 2041 2062 6574 7465 7220 sive. A better │ │ │ │ -00004020: 7761 7920 6973 2074 6f20 7365 7420 7468 way is to set th │ │ │ │ -00004030: 6520 e280 9873 6b65 7463 68e2 8099 2069 e ...sketch... i │ │ │ │ -00004040: 6e74 6572 6e61 6c0a 6f70 7469 6f6e 20e2 nternal.option . │ │ │ │ -00004050: 8098 6375 6c6c e280 9920 746f 20e2 8098 ..cull... to ... │ │ │ │ -00004060: 6661 6c73 65e2 8099 2069 6e20 7468 6520 false... in the │ │ │ │ -00004070: 7573 7561 6c20 e280 9850 5354 7269 636b usual ...PSTrick │ │ │ │ -00004080: 73e2 8099 206d 616e 6e65 722e 0a20 2070 s... manner.. p │ │ │ │ -00004090: 6f6c 7967 6f6e 5b63 756c 6c3d 6661 6c73 olygon[cull=fals │ │ │ │ -000040a0: 655d 2870 3129 2870 3229 2870 3329 0a54 e](p1)(p2)(p3).T │ │ │ │ -000040b0: 6865 2066 6f6c 6c6f 7769 6e67 2073 686f he following sho │ │ │ │ -000040c0: 7773 2074 6865 2073 616d 6520 6865 6c69 ws the same heli │ │ │ │ -000040d0: 7820 7368 6170 6520 6472 6177 6e20 6669 x shape drawn fi │ │ │ │ -000040e0: 7273 7420 7769 7468 2063 756c 6c3d 7472 rst with cull=tr │ │ │ │ -000040f0: 7565 2028 7468 650a 6465 6661 756c 7429 ue (the.default) │ │ │ │ -00004100: 2061 6e64 2074 6865 6e20 6375 6c6c 3d66 and then cull=f │ │ │ │ -00004110: 616c 7365 2e0a 0a00 085b 696d 6167 6520 alse.....[image │ │ │ │ -00004120: 7372 633d 2265 7830 3435 2e70 6e67 2220 src="ex045.png" │ │ │ │ -00004130: 7465 7874 3d22 496d 6167 6520 6578 3034 text="Image ex04 │ │ │ │ -00004140: 3520 6f6d 6974 7465 6420 696e 2074 6578 5 omitted in tex │ │ │ │ -00004150: 7420 7665 7273 696f 6e20 6f66 2074 6869 t version of thi │ │ │ │ -00004160: 7320 646f 6375 6d65 6e74 2e22 0008 5d0a s document."..]. │ │ │ │ -00004170: 0a57 6527 6c6c 2073 6f6f 6e20 7365 6520 .We'll soon see │ │ │ │ -00004180: 686f 7720 746f 2070 726f 6475 6365 2074 how to produce t │ │ │ │ -00004190: 6865 7365 2068 656c 6978 6573 2077 6974 hese helixes wit │ │ │ │ -000041a0: 6820 6120 6665 7720 6c69 6e65 7320 6f66 h a few lines of │ │ │ │ -000041b0: 20e2 8098 736b 6574 6368 e280 990a 6c61 ...sketch....la │ │ │ │ -000041c0: 6e67 7561 6765 2063 6f64 652e 0a0a 2020 nguage code... │ │ │ │ -000041d0: 2049 7420 6d61 7920 6265 2074 656d 7074 It may be tempt │ │ │ │ -000041e0: 696e 6720 746f 2074 7572 6e20 6375 6c6c ing to turn cull │ │ │ │ -000041f0: 696e 6720 6f66 6620 6772 6174 7569 746f ing off gratuito │ │ │ │ -00004200: 7573 6c79 2073 6f20 7468 6174 2076 6572 usly so that ver │ │ │ │ -00004210: 7465 780a 6f72 6465 7220 6361 6e20 6265 tex.order can be │ │ │ │ -00004220: 2069 676e 6f72 6564 2e20 2054 6869 7320 ignored. This │ │ │ │ -00004230: 6973 206e 6f74 2061 2067 6f6f 6420 6964 is not a good id │ │ │ │ -00004240: 6561 2062 6563 6175 7365 206f 7574 7075 ea because outpu │ │ │ │ -00004250: 7420 6669 6c65 2073 697a 650a 616e 6420 t file size.and │ │ │ │ -00004260: 5465 5820 616e 6420 506f 7374 7363 7269 TeX and Postscri │ │ │ │ -00004270: 7074 2070 726f 6365 7373 696e 6720 7469 pt processing ti │ │ │ │ -00004280: 6d65 2062 6f74 6820 6465 7065 6e64 206f me both depend o │ │ │ │ -00004290: 6e20 7468 6520 6e75 6d62 6572 206f 660a n the number of. │ │ │ │ -000042a0: 6f75 7470 7574 2070 6f6c 7967 6f6e 732e output polygons. │ │ │ │ -000042b0: 2020 4375 6c6c 696e 6720 7573 7561 6c6c Culling usuall │ │ │ │ -000042c0: 7920 696d 7072 6f76 6573 2070 6572 666f y improves perfo │ │ │ │ -000042d0: 726d 616e 6365 2062 7920 6120 6661 6374 rmance by a fact │ │ │ │ -000042e0: 6f72 206f 660a 7477 6f2e 2020 4f6e 2074 or of.two. On t │ │ │ │ -000042f0: 6865 206f 7468 6572 2068 616e 642c 2067 he other hand, g │ │ │ │ -00004300: 6c6f 6261 6c6c 7920 7365 7474 696e 6720 lobally setting │ │ │ │ -00004310: e280 9863 756c 6c3d 6661 6c73 65e2 8099 ...cull=false... │ │ │ │ -00004320: 2069 7320 7265 6173 6f6e 6162 6c65 0a77 is reasonable.w │ │ │ │ -00004330: 6869 6c65 2064 6562 7567 6769 6e67 2e20 hile debugging. │ │ │ │ -00004340: 2053 6565 202a 6e6f 7465 2047 6c6f 6261 See *note Globa │ │ │ │ -00004350: 6c20 6f70 7469 6f6e 733a 3a20 616e 6420 l options:: and │ │ │ │ -00004360: 2a6e 6f74 6520 4c69 6d69 7473 206f 6e20 *note Limits on │ │ │ │ -00004370: 6572 726f 720a 6465 7465 6374 696f 6e3a error.detection: │ │ │ │ -00004380: 3a2e 0a0a 1f0a 4669 6c65 3a20 736b 6574 :.....File: sket │ │ │ │ -00004390: 6368 2e69 6e66 6f2c 2020 4e6f 6465 3a20 ch.info, Node: │ │ │ │ -000043a0: 5370 6563 6961 6c20 6f62 6a65 6374 732c Special objects, │ │ │ │ -000043b0: 2020 4e65 7874 3a20 4f62 6a65 6374 2074 Next: Object t │ │ │ │ -000043c0: 7261 6e73 666f 726d 732c 2020 5072 6576 ransforms, Prev │ │ │ │ -000043d0: 3a20 4472 6177 696e 6720 6120 736f 6c69 : Drawing a soli │ │ │ │ -000043e0: 642c 2020 5570 3a20 496e 7472 6f64 7563 d, Up: Introduc │ │ │ │ -000043f0: 7469 6f6e 2062 7920 6578 616d 706c 650a tion by example. │ │ │ │ -00004400: 0a32 2e34 2053 7065 6369 616c 206f 626a .2.4 Special obj │ │ │ │ -00004410: 6563 7473 0a3d 3d3d 3d3d 3d3d 3d3d 3d3d ects.=========== │ │ │ │ -00004420: 3d3d 3d3d 3d3d 3d3d 0a0a 5765 2063 616e ========..We can │ │ │ │ -00004430: 2061 6464 206c 6162 656c 7320 746f 2061 add labels to a │ │ │ │ -00004440: 2064 7261 7769 6e67 2062 7920 7573 696e drawing by usin │ │ │ │ -00004450: 6720 7370 6563 6961 6c20 6f62 6a65 6374 g special object │ │ │ │ -00004460: 732c 2077 6869 6368 2070 726f 7669 6465 s, which provide │ │ │ │ -00004470: 2061 0a77 6179 2074 6f20 656d 6265 6420 a.way to embed │ │ │ │ -00004480: 7261 7720 4c61 5465 5820 616e 6420 e280 raw LaTeX and .. │ │ │ │ -00004490: 9850 5354 7269 636b 73e2 8099 2063 6f64 .PSTricks... cod │ │ │ │ -000044a0: 652e 2020 4164 6469 6e67 2074 6869 7320 e. Adding this │ │ │ │ -000044b0: 746f 2074 6865 0a74 6574 7261 6865 6472 to the.tetrahedr │ │ │ │ -000044c0: 6f6e 2064 6f65 7320 7468 6520 7472 6963 on does the tric │ │ │ │ -000044d0: 6b2e 0a20 2073 7065 6369 616c 207c 5c66 k.. special |\f │ │ │ │ -000044e0: 6f6f 746e 6f74 6573 697a 650a 2020 2020 ootnotesize. │ │ │ │ -000044f0: 2020 2020 2020 205c 7570 7574 7b32 7074 \uput{2pt │ │ │ │ -00004500: 7d5b 7572 5d23 317b 2450 3124 7d0a 2020 }[ur]#1{$P1$}. │ │ │ │ -00004510: 2020 2020 2020 2020 205c 7570 7574 5b72 \uput[r │ │ │ │ -00004520: 5d23 327b 2450 3224 7d0a 2020 2020 2020 ]#2{$P2$}. │ │ │ │ -00004530: 2020 2020 205c 7570 7574 5b75 5d23 337b \uput[u]#3{ │ │ │ │ -00004540: 2450 3324 7d0a 2020 2020 2020 2020 2020 $P3$}. │ │ │ │ -00004550: 205c 7570 7574 5b64 5d23 347b 2450 3424 \uput[d]#4{$P4$ │ │ │ │ -00004560: 7d7c 0a20 2020 2028 7031 2928 7032 2928 }|. (p1)(p2)( │ │ │ │ -00004570: 7033 2928 7034 290a 4865 7265 2069 7320 p3)(p4).Here is │ │ │ │ -00004580: 7468 6520 7265 7375 6c74 2e0a 0a00 085b the result.....[ │ │ │ │ -00004590: 696d 6167 6520 7372 633d 2265 7830 3432 image src="ex042 │ │ │ │ -000045a0: 2e70 6e67 2220 7465 7874 3d22 496d 6167 .png" text="Imag │ │ │ │ -000045b0: 6520 6578 3034 3220 6f6d 6974 7465 6420 e ex042 omitted │ │ │ │ -000045c0: 696e 2074 6578 7420 7665 7273 696f 6e20 in text version │ │ │ │ -000045d0: 6f66 2074 6869 7320 646f 6375 6d65 6e74 of this document │ │ │ │ -000045e0: 2e22 0008 5d0a 0a20 2020 5468 6572 6520 ."..].. There │ │ │ │ -000045f0: 6172 6520 7365 7665 7261 6c20 6465 7461 are several deta │ │ │ │ -00004600: 696c 7320 746f 206e 6f74 6520 6865 7265 ils to note here │ │ │ │ -00004610: 2e20 2046 6972 7374 2c20 7468 6520 7175 . First, the qu │ │ │ │ -00004620: 6f74 696e 670a 636f 6e76 656e 7469 6f6e oting.convention │ │ │ │ -00004630: 2066 6f72 2074 6865 2072 6177 2063 6f64 for the raw cod │ │ │ │ -00004640: 6520 6973 2073 696d 696c 6172 2074 6f20 e is similar to │ │ │ │ -00004650: 7468 6520 4c61 5465 5820 5c76 6572 6220 the LaTeX \verb │ │ │ │ -00004660: 636f 6d6d 616e 642e 2020 5468 650a 6669 command. The.fi │ │ │ │ -00004670: 7273 7420 6e6f 6e2d 7768 6974 6520 7370 rst non-white sp │ │ │ │ -00004680: 6163 6520 6368 6172 6163 7465 7220 666f ace character fo │ │ │ │ -00004690: 6c6c 6f77 696e 6720 7370 6563 6961 6c20 llowing special │ │ │ │ -000046a0: 6973 2075 6e64 6572 7374 6f6f 6420 746f is understood to │ │ │ │ -000046b0: 2062 650a 7468 6520 7175 6f74 6520 6368 be.the quote ch │ │ │ │ -000046c0: 6172 6163 7465 722c 2069 6e20 7468 6973 aracter, in this │ │ │ │ -000046d0: 2063 6173 6520 e280 987c e280 992e 2020 case ...|.... │ │ │ │ -000046e0: 5468 6520 7261 7720 7465 7874 2063 6f6e The raw text con │ │ │ │ -000046f0: 7469 6e75 6573 2075 6e74 696c 0a74 6869 tinues until.thi │ │ │ │ -00004700: 7320 6368 6172 6163 7465 7220 7265 6375 s character recu │ │ │ │ -00004710: 7273 2e0a 0a20 2020 5365 636f 6e64 2c20 rs... Second, │ │ │ │ -00004720: 7468 6520 6172 6775 6d65 6e74 2072 6566 the argument ref │ │ │ │ -00004730: 6572 656e 6365 7320 2331 2c20 2332 2c20 erences #1, #2, │ │ │ │ -00004740: 2333 2c20 616e 6420 2334 2072 6566 6572 #3, and #4 refer │ │ │ │ -00004750: 2074 6f20 706f 696e 742c 0a76 6563 746f to point,.vecto │ │ │ │ -00004760: 722c 206f 7220 7363 616c 6172 2076 616c r, or scalar val │ │ │ │ -00004770: 7565 7320 696e 2074 6865 206c 6973 7420 ues in the list │ │ │ │ -00004780: 7468 6174 2066 6f6c 6c6f 772e 2020 5468 that follow. Th │ │ │ │ -00004790: 6973 2069 7320 7369 6d69 6c61 7220 746f is is similar to │ │ │ │ -000047a0: 0a54 6558 206d 6163 726f 2073 796e 7461 .TeX macro synta │ │ │ │ -000047b0: 782e 2020 5468 6520 7472 616e 7366 6f72 x. The transfor │ │ │ │ -000047c0: 6d65 6420 616e 6420 7477 6f2d 6469 6d65 med and two-dime │ │ │ │ -000047d0: 6e73 696f 6e61 6c20 7072 6f6a 6563 7469 nsional projecti │ │ │ │ -000047e0: 6f6e 7320 6f66 0a74 6865 7365 2074 6872 ons of.these thr │ │ │ │ -000047f0: 6565 2d64 696d 656e 7369 6f6e 616c 2070 ee-dimensional p │ │ │ │ -00004800: 6f69 6e74 7320 6172 6520 7375 6273 7469 oints are substi │ │ │ │ -00004810: 7475 7465 6420 696e 2074 6865 2066 696e tuted in the fin │ │ │ │ -00004820: 616c 206f 7574 7075 742e 2020 416e 0a61 al output. An.a │ │ │ │ -00004830: 7267 756d 656e 7420 7265 6665 7265 6e63 rgument referenc │ │ │ │ -00004840: 6520 6f66 2074 6865 2066 6f72 6d20 2331 e of the form #1 │ │ │ │ -00004850: 2d32 2069 7320 7265 706c 6163 6564 2077 -2 is replaced w │ │ │ │ -00004860: 6974 6820 7468 6520 616e 676c 6520 696e ith the angle in │ │ │ │ -00004870: 0a64 6567 7265 6573 206f 6620 7468 6520 .degrees of the │ │ │ │ -00004880: 7477 6f2d 6469 6d65 6e73 696f 6e61 6c20 two-dimensional │ │ │ │ -00004890: 7665 6374 6f72 2074 6861 7420 636f 6e6e vector that conn │ │ │ │ -000048a0: 6563 7473 2074 6865 2070 726f 6a65 6374 ects the project │ │ │ │ -000048b0: 696f 6e73 206f 660a 7468 6520 7477 6f20 ions of.the two │ │ │ │ -000048c0: 7265 7370 6563 7469 7665 2061 7267 756d respective argum │ │ │ │ -000048d0: 656e 7420 706f 696e 7473 2c20 6865 7265 ent points, here │ │ │ │ -000048e0: 2023 3120 616e 6420 2332 2e20 2054 6865 #1 and #2. The │ │ │ │ -000048f0: 2073 7562 7374 6974 7574 6564 0a61 6e67 substituted.ang │ │ │ │ -00004900: 6c65 2069 7320 656e 636c 6f73 6564 2069 le is enclosed i │ │ │ │ -00004910: 6e20 6375 726c 7920 6272 6163 6573 20e2 n curly braces . │ │ │ │ -00004920: 8098 7b20 7de2 8099 2e20 2057 6865 6e20 ..{ }.... When │ │ │ │ -00004930: e280 9854 696b 5a2f 5047 46e2 8099 206f ...TikZ/PGF... o │ │ │ │ -00004940: 7574 7075 7420 6973 0a62 6569 6e67 2067 utput is.being g │ │ │ │ -00004950: 656e 6572 6174 6564 2c20 7468 6520 616e enerated, the an │ │ │ │ -00004960: 676c 6520 6973 2072 6f75 6e64 6564 2074 gle is rounded t │ │ │ │ -00004970: 6f20 7468 6520 6e65 6172 6573 7420 6465 o the nearest de │ │ │ │ -00004980: 6772 6565 2062 6563 6175 7365 0a6e 6f6e gree because.non │ │ │ │ -00004990: 2d69 6e74 6567 6572 2061 6e67 6c65 7320 -integer angles │ │ │ │ -000049a0: 6172 6520 6e6f 7420 616c 6c6f 7765 6420 are not allowed │ │ │ │ -000049b0: 6279 20e2 8098 5469 6b5a 2f50 4746 e280 by ...TikZ/PGF.. │ │ │ │ -000049c0: 9920 7072 696d 6974 6976 6573 2e0a 0a20 . primitives... │ │ │ │ -000049d0: 2020 4173 206f 6620 5665 7273 696f 6e20 As of Version │ │ │ │ -000049e0: 302e 3320 6f66 20e2 8098 736b 6574 6368 0.3 of ...sketch │ │ │ │ -000049f0: e280 992c 2073 7065 6369 616c 2061 7267 ..., special arg │ │ │ │ -00004a00: 756d 656e 7473 206d 6179 2062 6520 7363 uments may be sc │ │ │ │ -00004a10: 616c 6172 7320 6f72 0a76 6563 746f 7273 alars or.vectors │ │ │ │ -00004a20: 2069 6e20 6164 6469 7469 6f6e 2074 6f20 in addition to │ │ │ │ -00004a30: 706f 696e 7473 2e20 2052 6566 6572 656e points. Referen │ │ │ │ -00004a40: 6365 7320 746f 2073 6361 6c61 7220 6172 ces to scalar ar │ │ │ │ -00004a50: 6775 6d65 6e74 7320 6172 650a 6d65 7265 guments are.mere │ │ │ │ -00004a60: 6c79 2072 6570 6c61 6365 6420 7769 7468 ly replaced with │ │ │ │ -00004a70: 2061 206e 756d 6265 7220 666f 726d 6174 a number format │ │ │ │ -00004a80: 7465 6420 6a75 7374 2061 7320 616e 7920 ted just as any │ │ │ │ -00004a90: 706f 696e 7420 636f 6f72 6469 6e61 7465 point coordinate │ │ │ │ -00004aa0: 2e0a 5265 6665 7265 6e63 6573 2074 6f20 ..References to │ │ │ │ -00004ab0: 7665 6374 6f72 7320 6265 636f 6d65 2074 vectors become t │ │ │ │ -00004ac0: 776f 2d64 696d 656e 7369 6f6e 616c 2070 wo-dimensional p │ │ │ │ -00004ad0: 6f69 6e74 732e 2020 5468 6520 7469 636b oints. The tick │ │ │ │ -00004ae0: 206f 7065 7261 746f 720a 7468 6174 2073 operator.that s │ │ │ │ -00004af0: 656c 6563 7473 2069 6e64 6976 6964 7561 elects individua │ │ │ │ -00004b00: 6c20 636f 6d70 6f6e 656e 7473 206f 6620 l components of │ │ │ │ -00004b10: 706f 696e 7473 2061 6e64 2076 6563 746f points and vecto │ │ │ │ -00004b20: 7273 2065 6c73 6577 6865 7265 2069 6e0a rs elsewhere in. │ │ │ │ -00004b30: e280 9873 6b65 7463 68e2 8099 2028 7365 ...sketch... (se │ │ │ │ -00004b40: 6520 666f 7220 6578 616d 706c 6520 2a6e e for example *n │ │ │ │ -00004b50: 6f74 6520 4166 6669 6e65 2061 7269 7468 ote Affine arith │ │ │ │ -00004b60: 6d65 7469 633a 3a29 2063 616e 2061 6c73 metic::) can als │ │ │ │ -00004b70: 6f20 6265 2061 7070 6c69 6564 0a74 6f20 o be applied.to │ │ │ │ -00004b80: 706f 696e 7420 616e 6420 7665 6374 6f72 point and vector │ │ │ │ -00004b90: 2061 7267 756d 656e 7420 7265 6665 7265 argument refere │ │ │ │ -00004ba0: 6e63 6573 2e20 2041 6c6c 2074 6872 6565 nces. All three │ │ │ │ -00004bb0: 2064 696d 656e 7369 6f6e 7320 6f66 2061 dimensions of a │ │ │ │ -00004bc0: 0a74 7261 6e73 666f 726d 6564 2070 6f69 .transformed poi │ │ │ │ -00004bd0: 6e74 206f 7220 7665 6374 6f72 2063 616e nt or vector can │ │ │ │ -00004be0: 2061 6c73 6f20 6265 2073 7562 7374 6974 also be substit │ │ │ │ -00004bf0: 7565 6420 7769 7468 20e2 8098 2733 e280 ued with ...'3.. │ │ │ │ -00004c00: 992e 2020 5365 6520 2a6e 6f74 650a 5370 .. See *note.Sp │ │ │ │ -00004c10: 6563 6961 6c73 3a3a 2066 6f72 2064 6574 ecials:: for det │ │ │ │ -00004c20: 6169 6c73 2e0a 0a20 2020 4279 2064 6566 ails... By def │ │ │ │ -00004c30: 6175 6c74 2c20 e280 9873 7065 6369 616c ault, ...special │ │ │ │ -00004c40: e280 9920 6f62 6a65 6374 7320 6172 6520 ... objects are │ │ │ │ -00004c50: 7072 696e 7465 6420 6c61 7374 2c20 6f76 printed last, ov │ │ │ │ -00004c60: 6572 6c61 7969 6e67 2061 6c6c 206f 7468 erlaying all oth │ │ │ │ -00004c70: 6572 0a6f 626a 6563 7473 2069 6e20 7468 er.objects in th │ │ │ │ -00004c80: 6520 7363 656e 652e 2020 4966 2079 6f75 e scene. If you │ │ │ │ -00004c90: 2073 7065 6369 6679 2074 6865 2069 6e74 specify the int │ │ │ │ -00004ca0: 6572 6e61 6c20 6f70 7469 6f6e 20e2 8098 ernal option ... │ │ │ │ -00004cb0: 6c61 793d 696e e280 992c 2074 6865 0a68 lay=in..., the.h │ │ │ │ -00004cc0: 6964 6465 6e20 7375 7266 6163 6520 616c idden surface al │ │ │ │ -00004cd0: 676f 7269 7468 6d20 636f 6e73 6964 6572 gorithm consider │ │ │ │ -00004ce0: 7320 7468 6520 656e 7469 7265 2073 7065 s the entire spe │ │ │ │ -00004cf0: 6369 616c 206f 626a 6563 7420 746f 2062 cial object to b │ │ │ │ -00004d00: 6520 7468 650a 6669 7273 7420 706f 696e e the.first poin │ │ │ │ -00004d10: 7420 2823 3129 2069 6e20 7468 6520 6172 t (#1) in the ar │ │ │ │ -00004d20: 6775 6d65 6e74 206c 6973 742e 2020 4966 gument list. If │ │ │ │ -00004d30: 2074 6861 7420 706f 696e 7420 6973 2062 that point is b │ │ │ │ -00004d40: 6568 696e 6420 286f 660a 736d 616c 6c65 ehind (of.smalle │ │ │ │ -00004d50: 7220 7a2d 636f 6d70 6f6e 656e 7420 7468 r z-component th │ │ │ │ -00004d60: 616e 2920 616e 7920 6472 6177 6162 6c65 an) any drawable │ │ │ │ -00004d70: 2c20 7468 656e 2074 6865 2065 6e74 6972 , then the entir │ │ │ │ -00004d80: 6520 7370 6563 6961 6c20 6f62 6a65 6374 e special object │ │ │ │ -00004d90: 0a69 7320 6472 6177 6e20 6265 666f 7265 .is drawn before │ │ │ │ -00004da0: 2074 6861 7420 6472 6177 6162 6c65 2c20 that drawable, │ │ │ │ -00004db0: 736f 2074 6865 2064 7261 7761 626c 6520 so the drawable │ │ │ │ -00004dc0: 6f62 7363 7572 6573 2070 6172 7473 206f obscures parts o │ │ │ │ -00004dd0: 6620 7468 650a 7370 6563 6961 6c20 6f62 f the.special ob │ │ │ │ -00004de0: 6a65 6374 2074 6861 7420 6f76 6572 6c61 ject that overla │ │ │ │ -00004df0: 7073 2069 742e 2020 496e 206f 7572 2065 ps it. In our e │ │ │ │ -00004e00: 7861 6d70 6c65 2c20 7031 2069 7320 7468 xample, p1 is th │ │ │ │ -00004e10: 6520 6672 6f6e 742d 6d6f 7374 0a70 6f69 e front-most.poi │ │ │ │ -00004e20: 6e74 2069 6e20 7468 6520 7363 656e 6520 nt in the scene │ │ │ │ -00004e30: 2868 6173 2074 6865 206c 6172 6765 7374 (has the largest │ │ │ │ -00004e40: 207a 2d63 6f6d 706f 6e65 6e74 292c 2073 z-component), s │ │ │ │ -00004e50: 6f20 6164 6469 6e67 20e2 8098 6c61 793d o adding ...lay= │ │ │ │ -00004e60: 696e e280 9920 6861 730a 6e6f 2065 6666 in... has.no eff │ │ │ │ -00004e70: 6563 742e 0a0a 2020 2057 6974 6820 6f70 ect... With op │ │ │ │ -00004e80: 7469 6f6e 20e2 8098 6c61 793d 756e 6465 tion ...lay=unde │ │ │ │ -00004e90: 72e2 8099 2c20 6120 7370 6563 6961 6c20 r..., a special │ │ │ │ -00004ea0: 6973 2064 7261 776e 205f 6265 666f 7265 is drawn _before │ │ │ │ -00004eb0: 5f2c 2068 656e 6365 2061 7070 6561 7273 _, hence appears │ │ │ │ -00004ec0: 0a5f 756e 6465 725f 2061 6e79 206f 6620 ._under_ any of │ │ │ │ -00004ed0: 7468 6520 6f62 6a65 6374 7320 6861 6e64 the objects hand │ │ │ │ -00004ee0: 6c65 6420 6279 2074 6865 2068 6964 6465 led by the hidde │ │ │ │ -00004ef0: 6e20 7375 7266 6163 6520 616c 676f 7269 n surface algori │ │ │ │ -00004f00: 7468 6d2e 0a54 6869 7320 6973 2068 6f77 thm..This is how │ │ │ │ -00004f10: 2074 6865 206c 6967 6874 2067 7261 7920 the light gray │ │ │ │ -00004f20: 6178 6573 2077 6572 6520 6164 6465 6420 axes were added │ │ │ │ -00004f30: 746f 2074 6865 2022 6865 6c6c 6f20 776f to the "hello wo │ │ │ │ -00004f40: 726c 6422 2065 7861 6d70 6c65 0a2a 6e6f rld" example.*no │ │ │ │ -00004f50: 7465 2048 656c 6c6f 2077 6f72 6c64 3a3a te Hello world:: │ │ │ │ -00004f60: 2e0a 0a20 2020 5370 6563 6961 6c20 6f62 ... Special ob │ │ │ │ -00004f70: 6a65 6374 7320 6172 6520 706f 7765 7266 jects are powerf │ │ │ │ -00004f80: 756c 2c20 7769 7468 206d 616e 7920 706f ul, with many po │ │ │ │ -00004f90: 7373 6962 6c65 2075 7365 732e 0a0a 1f0a ssible uses..... │ │ │ │ -00004fa0: 4669 6c65 3a20 736b 6574 6368 2e69 6e66 File: sketch.inf │ │ │ │ -00004fb0: 6f2c 2020 4e6f 6465 3a20 4f62 6a65 6374 o, Node: Object │ │ │ │ -00004fc0: 2074 7261 6e73 666f 726d 732c 2020 4e65 transforms, Ne │ │ │ │ -00004fd0: 7874 3a20 5265 7065 6174 6564 206f 626a xt: Repeated obj │ │ │ │ -00004fe0: 6563 7473 2c20 2050 7265 763a 2053 7065 ects, Prev: Spe │ │ │ │ -00004ff0: 6369 616c 206f 626a 6563 7473 2c20 2055 cial objects, U │ │ │ │ -00005000: 703a 2049 6e74 726f 6475 6374 696f 6e20 p: Introduction │ │ │ │ -00005010: 6279 2065 7861 6d70 6c65 0a0a 322e 3520 by example..2.5 │ │ │ │ -00005020: 5472 616e 7366 6f72 6d73 0a3d 3d3d 3d3d Transforms.===== │ │ │ │ -00005030: 3d3d 3d3d 3d3d 3d3d 3d0a 0a4e 6f77 206c =========..Now l │ │ │ │ -00005040: 6574 2773 2061 6464 2061 2073 6563 6f6e et's add a secon │ │ │ │ -00005050: 6420 636f 7079 206f 6620 7468 6520 7069 d copy of the pi │ │ │ │ -00005060: 6572 6365 6420 7465 7472 6168 6564 726f erced tetrahedro │ │ │ │ -00005070: 6e2e 2020 5765 276c 6c20 726f 7461 7465 n. We'll rotate │ │ │ │ -00005080: 0a74 6865 2063 6f70 7920 3930 2064 6567 .the copy 90 deg │ │ │ │ -00005090: 7265 6573 2061 626f 7574 2074 6865 2078 rees about the x │ │ │ │ -000050a0: 2d61 7869 7320 7769 7468 2074 6865 206f -axis with the o │ │ │ │ -000050b0: 7269 6769 6e20 6173 20e2 809c 6365 6e74 rigin as ...cent │ │ │ │ -000050c0: 6572 206f 660a 726f 7461 7469 6f6e e280 er of.rotation.. │ │ │ │ -000050d0: 9d20 736f 2077 6520 6361 6e20 7365 6520 . so we can see │ │ │ │ -000050e0: 7468 6520 6261 636b 2c20 7468 656e 2074 the back, then t │ │ │ │ -000050f0: 7261 6e73 6c61 7465 2069 7420 746f 2074 ranslate it to t │ │ │ │ -00005100: 6865 2072 6967 6874 2d2d 696e 2074 6865 he right--in the │ │ │ │ -00005110: 0a70 6f73 6974 6976 6520 782d 6469 7265 .positive x-dire │ │ │ │ -00005120: 6374 696f 6e2d 2d73 6f20 6974 2064 6f65 ction--so it doe │ │ │ │ -00005130: 736e 2774 2063 6f6c 6c69 6465 2077 6974 sn't collide wit │ │ │ │ -00005140: 6820 7468 6520 6f72 6967 696e 616c 2e20 h the original. │ │ │ │ -00005150: 2054 6f20 6865 6c70 0a75 7320 7365 6520 To help.us see │ │ │ │ -00005160: 7768 6174 2773 2067 6f69 6e67 206f 6e2c what's going on, │ │ │ │ -00005170: 206d 616b 6520 7468 6520 6261 636b 2073 make the back s │ │ │ │ -00005180: 6964 6520 6772 6179 2e0a 2020 6465 6620 ide gray.. def │ │ │ │ -00005190: 7069 6572 6365 645f 7465 7472 6168 6564 pierced_tetrahed │ │ │ │ -000051a0: 726f 6e20 7b0a 2020 2020 6465 6620 7031 ron {. def p1 │ │ │ │ -000051b0: 2028 302c 302c 3129 2064 6566 2070 3220 (0,0,1) def p2 │ │ │ │ -000051c0: 2831 2c30 2c30 290a 2020 2020 6465 6620 (1,0,0). def │ │ │ │ -000051d0: 7033 2028 302c 312c 3029 2064 6566 2070 p3 (0,1,0) def p │ │ │ │ -000051e0: 3420 282d 2e33 2c2d 2e35 2c2d 2e38 290a 4 (-.3,-.5,-.8). │ │ │ │ -000051f0: 2020 2020 706f 6c79 676f 6e28 7031 2928 polygon(p1)( │ │ │ │ -00005200: 7032 2928 7033 2920 2020 2020 2020 2020 p2)(p3) │ │ │ │ -00005210: 2020 2020 2020 2020 2020 2020 2025 206f % o │ │ │ │ -00005220: 7269 6769 6e61 6c0a 2020 2020 706f 6c79 riginal. poly │ │ │ │ -00005230: 676f 6e28 7031 2928 7034 2928 7032 2920 gon(p1)(p4)(p2) │ │ │ │ -00005240: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00005250: 2020 2020 2025 2062 6f74 746f 6d0a 2020 % bottom. │ │ │ │ -00005260: 2020 706f 6c79 676f 6e28 7031 2928 7033 polygon(p1)(p3 │ │ │ │ -00005270: 2928 7034 2920 2020 2020 2020 2020 2020 )(p4) │ │ │ │ -00005280: 2020 2020 2020 2020 2020 2025 206c 6566 % lef │ │ │ │ -00005290: 740a 2020 2020 706f 6c79 676f 6e5b 6669 t. polygon[fi │ │ │ │ -000052a0: 6c6c 636f 6c6f 723d 6c69 6768 7467 7261 llcolor=lightgra │ │ │ │ -000052b0: 795d 2870 3329 2870 3229 2870 3429 2025 y](p3)(p2)(p4) % │ │ │ │ -000052c0: 2072 6561 720a 2020 2020 6c69 6e65 5b6c rear. line[l │ │ │ │ -000052d0: 696e 6563 6f6c 6f72 3d72 6564 5d28 2d31 inecolor=red](-1 │ │ │ │ -000052e0: 2c2d 312c 2d31 2928 322c 322c 3229 0a20 ,-1,-1)(2,2,2). │ │ │ │ -000052f0: 207d 0a20 207b 7069 6572 6365 645f 7465 }. {pierced_te │ │ │ │ -00005300: 7472 6168 6564 726f 6e7d 2020 2520 7465 trahedron} % te │ │ │ │ -00005310: 7472 6168 6564 726f 6e20 696e 206f 7269 trahedron in ori │ │ │ │ -00005320: 6769 6e61 6c20 706f 7369 7469 6f6e 0a20 ginal position. │ │ │ │ -00005330: 2070 7574 207b 2072 6f74 6174 6528 3930 put { rotate(90 │ │ │ │ -00005340: 2c20 2830 2c30 2c30 292c 205b 312c 302c , (0,0,0), [1,0, │ │ │ │ -00005350: 305d 2920 2520 636f 7079 2069 6e20 6e65 0]) % copy in ne │ │ │ │ -00005360: 7720 706f 7369 7469 6f6e 0a20 2020 2020 w position. │ │ │ │ -00005370: 2020 2074 6865 6e20 7472 616e 736c 6174 then translat │ │ │ │ -00005380: 6528 5b32 2e35 2c30 2c30 5d29 207d 207b e([2.5,0,0]) } { │ │ │ │ -00005390: 7069 6572 6365 645f 7465 7472 6168 6564 pierced_tetrahed │ │ │ │ -000053a0: 726f 6e7d 0a48 6572 6520 7468 6520 656e ron}.Here the en │ │ │ │ -000053b0: 7469 7265 2063 6f64 6520 6f66 2074 6865 tire code of the │ │ │ │ -000053c0: 2070 7265 7669 6f75 7320 6578 616d 706c previous exampl │ │ │ │ -000053d0: 6520 6861 7320 6265 656e 2077 7261 7070 e has been wrapp │ │ │ │ -000053e0: 6564 2069 6e20 610a 6465 6669 6e69 7469 ed in a.definiti │ │ │ │ -000053f0: 6f6e 2062 7920 666f 726d 696e 6720 6120 on by forming a │ │ │ │ -00005400: e280 9c62 6c6f 636b e280 9d20 7769 7468 ...block... with │ │ │ │ -00005410: 2062 7261 6365 7320 2861 2073 696e 676c braces (a singl │ │ │ │ -00005420: 6520 6974 656d 2077 6f75 6c64 206e 6f74 e item would not │ │ │ │ -00005430: 0a6e 6565 6420 7468 656d 292e 2020 5468 .need them). Th │ │ │ │ -00005440: 6520 706f 696e 7420 6465 6669 6e69 7469 e point definiti │ │ │ │ -00005450: 6f6e 7320 6e65 7374 6564 2069 6e73 6964 ons nested insid │ │ │ │ -00005460: 6520 7468 6520 6272 6163 6573 2061 7265 e the braces are │ │ │ │ -00005470: 0ae2 809c 6c65 7869 6361 6c6c 7920 7363 ....lexically sc │ │ │ │ -00005480: 6f70 6564 e280 9d2e 2020 5468 6569 7220 oped.... Their │ │ │ │ -00005490: 6d65 616e 696e 6720 6578 7465 6e64 7320 meaning extends │ │ │ │ -000054a0: 6f6e 6c79 2074 6f20 7468 6520 656e 6420 only to the end │ │ │ │ -000054b0: 6f66 2074 6865 2062 6c6f 636b 2e0a 5468 of the block..Th │ │ │ │ -000054c0: 6520 6f75 7465 7220 6465 6620 6973 2063 e outer def is c │ │ │ │ -000054d0: 616c 6c65 6420 6120 e280 9c64 7261 7761 alled a ...drawa │ │ │ │ -000054e0: 626c 65e2 809d 2064 6566 696e 6974 696f ble... definitio │ │ │ │ -000054f0: 6e20 6265 6361 7573 6520 6974 2064 6573 n because it des │ │ │ │ -00005500: 6372 6962 6573 0a73 6f6d 6574 6869 6e67 cribes.something │ │ │ │ -00005510: 2074 6861 7420 6361 6e20 6265 2064 7261 that can be dra │ │ │ │ -00005520: 776e 2e0a 0a20 2020 4120 6472 6177 6162 wn... A drawab │ │ │ │ -00005530: 6c65 2064 6566 696e 6974 696f 6e20 6279 le definition by │ │ │ │ -00005540: 2069 7473 656c 6620 6361 7573 6573 206e itself causes n │ │ │ │ -00005550: 6f74 6869 6e67 2074 6f20 6861 7070 656e othing to happen │ │ │ │ -00005560: 2075 6e74 696c 2069 7473 0a6e 616d 6520 until its.name │ │ │ │ -00005570: 6973 2072 6566 6572 656e 6365 642e 2020 is referenced. │ │ │ │ -00005580: 4472 6177 6162 6c65 2072 6566 6572 656e Drawable referen │ │ │ │ -00005590: 6365 7320 6d75 7374 2062 6520 656e 636c ces must be encl │ │ │ │ -000055a0: 6f73 6564 2069 6e20 6375 726c 790a 6272 osed in curly.br │ │ │ │ -000055b0: 6163 6573 2c20 652e 672e 207b 666f 6f7d aces, e.g. {foo} │ │ │ │ -000055c0: 2c20 7769 7468 206e 6f20 696e 7465 7276 , with no interv │ │ │ │ -000055d0: 656e 696e 6720 7768 6974 6520 7370 6163 ening white spac │ │ │ │ -000055e0: 652e 2020 496e 2074 6865 2063 6f64 6520 e. In the code │ │ │ │ -000055f0: 6162 6f76 652c 0a74 6865 2066 6972 7374 above,.the first │ │ │ │ -00005600: 2072 6566 6572 656e 6365 207b 7069 6572 reference {pier │ │ │ │ -00005610: 6365 645f 7465 7472 6168 6564 726f 6e7d ced_tetrahedron} │ │ │ │ -00005620: 2069 7320 6120 706c 6169 6e20 6f6e 652e is a plain one. │ │ │ │ -00005630: 2020 4974 7320 6566 6665 6374 2069 730a Its effect is. │ │ │ │ -00005640: 6d65 7265 6c79 2074 6f20 6475 706c 6963 merely to duplic │ │ │ │ -00005650: 6174 6520 7468 6520 6561 726c 6965 7220 ate the earlier │ │ │ │ -00005660: 6472 6177 696e 672e 2020 416c 6d6f 7374 drawing. Almost │ │ │ │ -00005670: 2061 6e79 2073 6572 6965 7320 6f66 20e2 any series of . │ │ │ │ -00005680: 8098 736b 6574 6368 e280 990a 636f 6d6d ..sketch....comm │ │ │ │ -00005690: 616e 6473 2073 7475 6666 206d 6179 2062 ands stuff may b │ │ │ │ -000056a0: 6520 7265 706c 6163 6564 2077 6974 6820 e replaced with │ │ │ │ -000056b0: 6465 6620 666f 6f20 7b20 7374 7566 6620 def foo { stuff │ │ │ │ -000056c0: 7d20 7b66 6f6f 7d20 7769 7468 6f75 740a } {foo} without. │ │ │ │ -000056d0: 6368 616e 6769 6e67 2069 7473 206d 6561 changing its mea │ │ │ │ -000056e0: 6e69 6e67 2e0a 0a20 2020 5468 6520 7075 ning... The pu │ │ │ │ -000056f0: 7420 636f 6d6d 616e 6420 7375 7070 6c69 t command suppli │ │ │ │ -00005700: 6573 2061 2073 6563 6f6e 6420 7265 6665 es a second refe │ │ │ │ -00005710: 7265 6e63 652c 2074 6869 7320 7469 6d65 rence, this time │ │ │ │ -00005720: 2077 6974 6820 610a e280 9c74 7261 6e73 with a....trans │ │ │ │ -00005730: 666f 726d e280 9d20 6170 706c 6965 6420 form... applied │ │ │ │ -00005740: 6669 7273 742e 2020 5468 6520 726f 7461 first. The rota │ │ │ │ -00005750: 7465 2074 7261 6e73 666f 726d 2074 7572 te transform tur │ │ │ │ -00005760: 6e73 2074 6865 2074 6574 7261 6865 6472 ns the tetrahedr │ │ │ │ -00005770: 6f6e 0a39 3020 6465 6772 6565 7320 6162 on.90 degrees ab │ │ │ │ -00005780: 6f75 7420 7468 6520 6f72 6967 696e 2e20 out the origin. │ │ │ │ -00005790: 2054 6865 2061 7869 7320 6f66 2072 6f74 The axis of rot │ │ │ │ -000057a0: 6174 696f 6e20 6973 2074 6865 2076 6563 ation is the vec │ │ │ │ -000057b0: 746f 720a 5b31 2c30 2c30 5d2e 2020 4279 tor.[1,0,0]. By │ │ │ │ -000057c0: 2074 6865 20e2 809c 7269 6768 7420 6861 the ...right ha │ │ │ │ -000057d0: 6e64 2072 756c 65e2 809d 2c20 7468 6973 nd rule..., this │ │ │ │ -000057e0: 2063 6175 7365 7320 7468 6520 746f 7020 causes the top │ │ │ │ -000057f0: 6f66 2074 6865 0a74 6574 7261 6865 6472 of the.tetrahedr │ │ │ │ -00005800: 6f6e 2074 6f20 726f 7461 7465 2074 6f77 on to rotate tow │ │ │ │ -00005810: 6172 6420 7468 6520 7669 6577 6572 2061 ard the viewer a │ │ │ │ -00005820: 6e64 2074 6865 2062 6f74 746f 6d20 6177 nd the bottom aw │ │ │ │ -00005830: 6179 2e20 2054 6865 2072 756c 650a 7265 ay. The rule.re │ │ │ │ -00005840: 6365 6976 6573 2069 7473 206e 616d 6520 ceives its name │ │ │ │ -00005850: 6672 6f6d 2074 6865 2066 6f6c 6c6f 7769 from the followi │ │ │ │ -00005860: 6e67 2064 6566 696e 6974 696f 6e3a 0a20 ng definition:. │ │ │ │ -00005870: 2020 2020 2a52 6967 6874 2068 616e 6420 *Right hand │ │ │ │ -00005880: 7275 6c65 2e2a 2020 4966 2074 6865 2072 rule.* If the r │ │ │ │ -00005890: 6967 6874 2068 616e 6420 6973 2077 7261 ight hand is wra │ │ │ │ -000058a0: 7070 6564 2061 726f 756e 6420 616e 7920 pped around any │ │ │ │ -000058b0: 6178 6973 0a20 2020 2020 7769 7468 2074 axis. with t │ │ │ │ -000058c0: 6865 2074 6875 6d62 2070 6f69 6e74 696e he thumb pointin │ │ │ │ -000058d0: 6720 696e 2074 6865 2061 7869 7320 6469 g in the axis di │ │ │ │ -000058e0: 7265 6374 696f 6e2c 2074 6865 6e20 7468 rection, then th │ │ │ │ -000058f0: 6520 6669 6e67 6572 730a 2020 2020 2063 e fingers. c │ │ │ │ -00005900: 7572 6c20 696e 2074 6865 2064 6972 6563 url in the direc │ │ │ │ -00005910: 7469 6f6e 206f 6620 706f 7369 7469 7665 tion of positive │ │ │ │ -00005920: 2072 6f74 6174 696f 6e20 6162 6f75 7420 rotation about │ │ │ │ -00005930: 7468 6174 2061 7869 732e 0a20 2020 5468 that axis.. Th │ │ │ │ -00005940: 6520 7472 616e 736c 6174 6520 7472 616e e translate tran │ │ │ │ -00005950: 7366 6f72 6d20 6d6f 7665 7320 7468 6520 sform moves the │ │ │ │ -00005960: 7079 7261 6d69 6420 6c61 7465 7261 6c6c pyramid laterall │ │ │ │ -00005970: 7920 746f 2074 6865 2072 6967 6874 2062 y to the right b │ │ │ │ -00005980: 790a 6164 6469 6e67 2074 6865 2076 6563 y.adding the vec │ │ │ │ -00005990: 746f 7220 5b32 2e35 2c30 2c30 5d20 746f tor [2.5,0,0] to │ │ │ │ -000059a0: 2065 6163 6820 7665 7274 6578 2063 6f6f each vertex coo │ │ │ │ -000059b0: 7264 696e 6174 652e 2020 5468 6520 7265 rdinate. The re │ │ │ │ -000059c0: 7375 6c74 2069 730a 7368 6f77 6e20 6865 sult is.shown he │ │ │ │ -000059d0: 7265 2e0a 0a00 085b 696d 6167 6520 7372 re.....[image sr │ │ │ │ -000059e0: 633d 2265 7830 3530 2e70 6e67 2220 7465 c="ex050.png" te │ │ │ │ -000059f0: 7874 3d22 496d 6167 6520 6578 3035 3020 xt="Image ex050 │ │ │ │ -00005a00: 6f6d 6974 7465 6420 696e 2074 6578 7420 omitted in text │ │ │ │ -00005a10: 7665 7273 696f 6e20 6f66 2074 6869 7320 version of this │ │ │ │ -00005a20: 646f 6375 6d65 6e74 2e22 0008 5d0a 0a1f document."..]... │ │ │ │ -00005a30: 0a46 696c 653a 2073 6b65 7463 682e 696e .File: sketch.in │ │ │ │ -00005a40: 666f 2c20 204e 6f64 653a 2052 6570 6561 fo, Node: Repea │ │ │ │ -00005a50: 7465 6420 6f62 6a65 6374 732c 2020 4e65 ted objects, Ne │ │ │ │ -00005a60: 7874 3a20 5377 6570 7420 6f62 6a65 6374 xt: Swept object │ │ │ │ -00005a70: 732c 2020 5072 6576 3a20 4f62 6a65 6374 s, Prev: Object │ │ │ │ -00005a80: 2074 7261 6e73 666f 726d 732c 2020 5570 transforms, Up │ │ │ │ -00005a90: 3a20 496e 7472 6f64 7563 7469 6f6e 2062 : Introduction b │ │ │ │ -00005aa0: 7920 6578 616d 706c 650a 0a32 2e36 2052 y example..2.6 R │ │ │ │ -00005ab0: 6570 6561 7465 6420 6f62 6a65 6374 730a epeated objects. │ │ │ │ -00005ac0: 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d ================ │ │ │ │ -00005ad0: 3d3d 3d3d 0a0a 546f 2064 7261 7720 7365 ====..To draw se │ │ │ │ -00005ae0: 7665 6e20 696e 7374 616e 6365 7320 6f66 ven instances of │ │ │ │ -00005af0: 2074 6865 2074 6574 7261 6865 6472 6f6e the tetrahedron │ │ │ │ -00005b00: 2c20 6561 6368 2064 6966 6665 7269 6e67 , each differing │ │ │ │ -00005b10: 2066 726f 6d20 7468 6520 6c61 7374 0a62 from the last.b │ │ │ │ -00005b20: 7920 7468 6520 7361 6d65 2074 7261 6e73 y the same trans │ │ │ │ -00005b30: 666f 726d 2c20 7265 706c 6163 6520 7468 form, replace th │ │ │ │ -00005b40: 6520 6c61 7374 2074 776f 2063 6f6d 6d61 e last two comma │ │ │ │ -00005b50: 6e64 7320 6f66 2074 6865 2070 7265 7669 nds of the previ │ │ │ │ -00005b60: 6f75 730a 6578 616d 706c 6520 7769 7468 ous.example with │ │ │ │ -00005b70: 0a20 2072 6570 6561 7420 7b20 372c 2072 . repeat { 7, r │ │ │ │ -00005b80: 6f74 6174 6528 3135 2c20 2830 2c30 2c30 otate(15, (0,0,0 │ │ │ │ -00005b90: 292c 205b 312c 302c 305d 2920 2520 636f ), [1,0,0]) % co │ │ │ │ -00005ba0: 7079 2069 6e20 6e65 7720 706f 7369 7469 py in new positi │ │ │ │ -00005bb0: 6f6e 0a20 2020 2020 2020 2020 2020 2020 on. │ │ │ │ -00005bc0: 2074 6865 6e20 7472 616e 736c 6174 6528 then translate( │ │ │ │ -00005bd0: 5b32 2c30 2c30 5d29 207d 207b 7069 6572 [2,0,0]) } {pier │ │ │ │ -00005be0: 6365 645f 7465 7472 6168 6564 726f 6e7d ced_tetrahedron} │ │ │ │ -00005bf0: 0a41 6e64 2074 6865 2072 6573 756c 742e .And the result. │ │ │ │ -00005c00: 2e2e 0a0a 0008 5b69 6d61 6765 2073 7263 ......[image src │ │ │ │ -00005c10: 3d22 6578 3036 302e 706e 6722 2074 6578 ="ex060.png" tex │ │ │ │ -00005c20: 743d 2249 6d61 6765 2065 7830 3630 206f t="Image ex060 o │ │ │ │ -00005c30: 6d69 7474 6564 2069 6e20 7465 7874 2076 mitted in text v │ │ │ │ -00005c40: 6572 7369 6f6e 206f 6620 7468 6973 2064 ersion of this d │ │ │ │ -00005c50: 6f63 756d 656e 742e 2200 085d 0a0a 1f0a ocument."..].... │ │ │ │ -00005c60: 4669 6c65 3a20 736b 6574 6368 2e69 6e66 File: sketch.inf │ │ │ │ -00005c70: 6f2c 2020 4e6f 6465 3a20 5377 6570 7420 o, Node: Swept │ │ │ │ -00005c80: 6f62 6a65 6374 732c 2020 5072 6576 3a20 objects, Prev: │ │ │ │ -00005c90: 5265 7065 6174 6564 206f 626a 6563 7473 Repeated objects │ │ │ │ -00005ca0: 2c20 2055 703a 2049 6e74 726f 6475 6374 , Up: Introduct │ │ │ │ -00005cb0: 696f 6e20 6279 2065 7861 6d70 6c65 0a0a ion by example.. │ │ │ │ -00005cc0: 322e 3720 5377 6570 7420 6f62 6a65 6374 2.7 Swept object │ │ │ │ -00005cd0: 730a 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d s.============== │ │ │ │ -00005ce0: 3d3d 3d0a 0a4d 616e 7920 6661 6d69 6c69 ===..Many famili │ │ │ │ -00005cf0: 6172 2073 6861 7065 7320 6361 6e20 6265 ar shapes can be │ │ │ │ -00005d00: 2067 656e 6572 6174 6564 2062 7920 7377 generated by sw │ │ │ │ -00005d10: 6565 7069 6e67 2073 696d 706c 6572 206f eeping simpler o │ │ │ │ -00005d20: 6e65 7320 7468 726f 7567 680a 7370 6163 nes through.spac │ │ │ │ -00005d30: 6520 616e 6420 636f 6e73 6964 6572 696e e and considerin │ │ │ │ -00005d40: 6720 7468 6520 7265 7375 6c74 696e 6720 g the resulting │ │ │ │ -00005d50: 7061 7468 2c20 7375 7266 6163 652c 206f path, surface, o │ │ │ │ -00005d60: 7220 766f 6c75 6d65 2e20 20e2 8098 536b r volume. ...Sk │ │ │ │ -00005d70: 6574 6368 e280 990a 696d 706c 656d 656e etch....implemen │ │ │ │ -00005d80: 7473 2074 6869 7320 6964 6561 2069 6e20 ts this idea in │ │ │ │ -00005d90: 7468 6520 7377 6565 7020 636f 6d6d 616e the sweep comman │ │ │ │ -00005da0: 642e 0a20 2064 6566 206e 5f73 6567 7320 d.. def n_segs │ │ │ │ -00005db0: 380a 2020 7377 6565 7020 7b20 6e5f 7365 8. sweep { n_se │ │ │ │ -00005dc0: 6773 2c20 726f 7461 7465 2831 3830 202f gs, rotate(180 / │ │ │ │ -00005dd0: 206e 5f73 6567 732c 2028 302c 302c 3029 n_segs, (0,0,0) │ │ │ │ -00005de0: 2c20 5b30 2c30 2c31 5d29 207d 2028 312c , [0,0,1]) } (1, │ │ │ │ -00005df0: 302c 3029 0a54 6869 7320 636f 6465 2073 0,0).This code s │ │ │ │ -00005e00: 7765 6570 7320 7468 6520 706f 696e 7420 weeps the point │ │ │ │ -00005e10: 2831 2c30 2c30 2920 6569 6768 7420 7469 (1,0,0) eight ti │ │ │ │ -00005e20: 6d65 7320 6279 2072 6f74 6174 696e 6720 mes by rotating │ │ │ │ -00005e30: 6974 2031 3830 2f38 203d 0a32 322e 3520 it 180/8 =.22.5 │ │ │ │ -00005e40: 6465 6772 6565 7320 6561 6368 2074 696d degrees each tim │ │ │ │ -00005e50: 6520 616e 6420 636f 6e6e 6563 7469 6e67 e and connecting │ │ │ │ -00005e60: 2074 6865 2072 6573 756c 7469 6e67 2070 the resulting p │ │ │ │ -00005e70: 6f69 6e74 7320 7769 7468 206c 696e 650a oints with line. │ │ │ │ -00005e80: 7365 676d 656e 7473 2e20 2054 6865 2064 segments. The d │ │ │ │ -00005e90: 6566 2075 7365 6420 6865 7265 2069 7320 ef used here is │ │ │ │ -00005ea0: 6120 e280 9c73 6361 6c61 72e2 809d 2064 a ...scalar... d │ │ │ │ -00005eb0: 6566 696e 6974 696f 6e2e 2020 5265 6665 efinition. Refe │ │ │ │ -00005ec0: 7265 6e63 6573 2074 6f0a 7363 616c 6172 rences to.scalar │ │ │ │ -00005ed0: 7320 6861 7665 206e 6f20 656e 636c 6f73 s have no enclos │ │ │ │ -00005ee0: 696e 6720 6272 6163 6b65 7473 2061 7420 ing brackets at │ │ │ │ -00005ef0: 616c 6c2e 0a0a 2a20 4d65 6e75 3a0a 0a2a all...* Menu:..* │ │ │ │ -00005f00: 2050 6f69 6e74 2073 7765 6570 733a 3a20 Point sweeps:: │ │ │ │ -00005f10: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ -00005f20: 7765 7074 2070 6f69 6e74 7320 6d61 6b65 wept points make │ │ │ │ -00005f30: 206c 696e 6573 2061 6e64 2070 6f6c 7967 lines and polyg │ │ │ │ -00005f40: 6f6e 732e 0a2a 2050 6f6c 796c 696e 6520 ons..* Polyline │ │ │ │ -00005f50: 7377 6565 7073 3a3a 2020 2020 2020 2020 sweeps:: │ │ │ │ -00005f60: 2020 2020 2053 7765 7074 206c 696e 6573 Swept lines │ │ │ │ -00005f70: 206d 616b 6520 7375 7266 6163 6573 2e0a make surfaces.. │ │ │ │ -00005f80: 2a20 4e65 7374 6564 2073 7765 6570 733a * Nested sweeps: │ │ │ │ -00005f90: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ -00005fa0: 5377 6570 7420 7377 6565 7073 2061 7265 Swept sweeps are │ │ │ │ -00005fb0: 2075 7365 6675 6c21 0a2a 2050 6f6c 7967 useful!.* Polyg │ │ │ │ -00005fc0: 6f6e 2073 7765 6570 733a 3a20 2020 2020 on sweeps:: │ │ │ │ -00005fd0: 2020 2020 2020 2020 2053 7765 7074 2070 Swept p │ │ │ │ -00005fe0: 6f6c 7967 6f6e 7320 6d61 6b65 2073 6f6c olygons make sol │ │ │ │ -00005ff0: 6964 732e 2e2e 0a2a 2050 6f6c 796c 696e ids....* Polylin │ │ │ │ -00006000: 6520 7377 6565 7073 2077 6974 6820 636c e sweeps with cl │ │ │ │ -00006010: 6f73 7572 653a 3a20 2061 6e64 2073 6f20 osure:: and so │ │ │ │ -00006020: 646f 2063 6c6f 7365 6420 706f 6c79 6c69 do closed polyli │ │ │ │ -00006030: 6e65 2073 7765 6570 732e 0a2a 2041 6666 ne sweeps..* Aff │ │ │ │ -00006040: 696e 6520 6172 6974 686d 6574 6963 3a3a ine arithmetic:: │ │ │ │ -00006050: 2020 2020 2020 2020 2020 2053 6b65 7463 Sketc │ │ │ │ -00006060: 6820 7573 6566 756c 206d 6174 6820 6578 h useful math ex │ │ │ │ -00006070: 7072 6573 7369 6f6e 2e0a 2a20 4d6f 7265 pression..* More │ │ │ │ -00006080: 2074 6f20 6c65 6172 6e3a 3a20 2020 2020 to learn:: │ │ │ │ -00006090: 2020 2020 2020 2020 2020 4368 6563 6b20 Check │ │ │ │ -000060a0: 6f75 7420 7468 6520 4d6f 6269 7573 2073 out the Mobius s │ │ │ │ -000060b0: 7472 6970 210a 0a1f 0a46 696c 653a 2073 trip!....File: s │ │ │ │ -000060c0: 6b65 7463 682e 696e 666f 2c20 204e 6f64 ketch.info, Nod │ │ │ │ -000060d0: 653a 2050 6f69 6e74 2073 7765 6570 732c e: Point sweeps, │ │ │ │ -000060e0: 2020 4e65 7874 3a20 506f 6c79 6c69 6e65 Next: Polyline │ │ │ │ -000060f0: 2073 7765 6570 732c 2020 5072 6576 3a20 sweeps, Prev: │ │ │ │ -00006100: 5377 6570 7420 6f62 6a65 6374 732c 2020 Swept objects, │ │ │ │ -00006110: 5570 3a20 5377 6570 7420 6f62 6a65 6374 Up: Swept object │ │ │ │ -00006120: 730a 0a32 2e37 2e31 2050 6f69 6e74 2073 s..2.7.1 Point s │ │ │ │ -00006130: 7765 6570 730a 2d2d 2d2d 2d2d 2d2d 2d2d weeps.---------- │ │ │ │ -00006140: 2d2d 2d2d 2d2d 2d2d 0a0a 5377 6565 7069 --------..Sweepi │ │ │ │ -00006150: 6e67 2061 2070 6f69 6e74 206d 616b 6573 ng a point makes │ │ │ │ -00006160: 2061 206f 6e65 2d64 696d 656e 7369 6f6e a one-dimension │ │ │ │ -00006170: 616c 2070 6174 682c 2077 6869 6368 2069 al path, which i │ │ │ │ -00006180: 7320 6120 706f 6c79 6c69 6e65 2e0a 5369 s a polyline..Si │ │ │ │ -00006190: 6e63 6520 7765 2068 6176 6520 7377 6570 nce we have swep │ │ │ │ -000061a0: 7420 7769 7468 2061 2072 6f74 6174 696f t with a rotatio │ │ │ │ -000061b0: 6e2c 2074 6865 2072 6573 756c 7420 6973 n, the result is │ │ │ │ -000061c0: 2061 2063 6972 6375 6c61 7220 6172 632e a circular arc. │ │ │ │ -000061d0: 2020 4865 7265 0a69 7320 7768 6174 2069 Here.is what i │ │ │ │ -000061e0: 7420 6c6f 6f6b 7320 6c69 6b65 2e0a 0a00 t looks like.... │ │ │ │ -000061f0: 085b 696d 6167 6520 7372 633d 2265 7830 .[image src="ex0 │ │ │ │ -00006200: 3730 2e70 6e67 2220 7465 7874 3d22 496d 70.png" text="Im │ │ │ │ -00006210: 6167 6520 6578 3037 3020 6f6d 6974 7465 age ex070 omitte │ │ │ │ -00006220: 6420 696e 2074 6578 7420 7665 7273 696f d in text versio │ │ │ │ -00006230: 6e20 6f66 2074 6869 7320 646f 6375 6d65 n of this docume │ │ │ │ -00006240: 6e74 2e22 0008 5d0a 0a20 2020 5468 6973 nt."..].. This │ │ │ │ -00006250: 2069 7320 7468 6520 6669 7273 7420 6578 is the first ex │ │ │ │ -00006260: 616d 706c 6520 7765 2068 6176 6520 7365 ample we have se │ │ │ │ -00006270: 656e 206f 6620 e280 9873 6b65 7463 68e2 en of ...sketch. │ │ │ │ -00006280: 8099 2061 7269 7468 6d65 7469 632e 2020 .. arithmetic. │ │ │ │ -00006290: 5468 650a 6578 7072 6573 7369 6f6e 2031 The.expression 1 │ │ │ │ -000062a0: 3830 202f 206e 5f73 6567 7320 6361 7573 80 / n_segs caus │ │ │ │ -000062b0: 6573 2074 6865 2065 6967 6874 2072 6f74 es the eight rot │ │ │ │ -000062c0: 6174 696f 6e73 2074 6f20 6164 6420 746f ations to add to │ │ │ │ -000062d0: 2031 3830 2e20 2049 660a 796f 7527 7265 180. If.you're │ │ │ │ -000062e0: 2070 6179 696e 6720 6174 7465 6e74 696f paying attentio │ │ │ │ -000062f0: 6e2c 2079 6f75 276c 6c20 6861 7665 2061 n, you'll have a │ │ │ │ -00006300: 6c72 6561 6479 206e 6f74 6564 2074 6861 lready noted tha │ │ │ │ -00006310: 7420 7468 6572 6520 6172 6520 5f6e 696e t there are _nin │ │ │ │ -00006320: 655f 0a70 6f69 6e74 732c 2070 726f 6475 e_.points, produ │ │ │ │ -00006330: 6369 6e67 2065 6967 6874 206c 696e 6520 cing eight line │ │ │ │ -00006340: 7365 676d 656e 7473 2e0a 0a20 2020 596f segments... Yo │ │ │ │ -00006350: 7520 6361 6e20 6361 7573 6520 7468 6520 u can cause the │ │ │ │ -00006360: 7377 6570 7420 706f 696e 7420 746f 2067 swept point to g │ │ │ │ -00006370: 656e 6572 6174 6520 6120 7369 6e67 6c65 enerate a single │ │ │ │ -00006380: 2070 6f6c 7967 6f6e 2072 6174 6865 720a polygon rather. │ │ │ │ -00006390: 7468 616e 2061 2070 6f6c 796c 696e 6520 than a polyline │ │ │ │ -000063a0: 6279 2075 7369 6e67 2074 6865 20e2 809c by using the ... │ │ │ │ -000063b0: 636c 6f73 7572 6520 7461 67e2 809d 203c closure tag... < │ │ │ │ -000063c0: 3e20 6166 7465 7220 7468 6520 6e75 6d62 > after the numb │ │ │ │ -000063d0: 6572 206f 6620 7377 6570 740a 6f62 6a65 er of swept.obje │ │ │ │ -000063e0: 6374 732e 2020 436f 6465 2061 6e64 2072 cts. Code and r │ │ │ │ -000063f0: 6573 756c 7420 666f 6c6c 6f77 0a20 2064 esult follow. d │ │ │ │ -00006400: 6566 206e 5f73 6567 7320 380a 2020 7377 ef n_segs 8. sw │ │ │ │ -00006410: 6565 7020 7b20 6e5f 7365 6773 3c3e 2c20 eep { n_segs<>, │ │ │ │ -00006420: 726f 7461 7465 2831 3830 202f 206e 5f73 rotate(180 / n_s │ │ │ │ -00006430: 6567 732c 2028 302c 302c 3029 2c20 5b30 egs, (0,0,0), [0 │ │ │ │ -00006440: 2c30 2c31 5d29 207d 2028 312c 302c 3029 ,0,1]) } (1,0,0) │ │ │ │ -00006450: 0a00 085b 696d 6167 6520 7372 633d 2265 ...[image src="e │ │ │ │ -00006460: 7830 3830 2e70 6e67 2220 7465 7874 3d22 x080.png" text=" │ │ │ │ -00006470: 496d 6167 6520 6578 3038 3020 6f6d 6974 Image ex080 omit │ │ │ │ -00006480: 7465 6420 696e 2074 6578 7420 7665 7273 ted in text vers │ │ │ │ -00006490: 696f 6e20 6f66 2074 6869 7320 646f 6375 ion of this docu │ │ │ │ -000064a0: 6d65 6e74 2e22 0008 5d0a 0a1f 0a46 696c ment."..]....Fil │ │ │ │ -000064b0: 653a 2073 6b65 7463 682e 696e 666f 2c20 e: sketch.info, │ │ │ │ -000064c0: 204e 6f64 653a 2050 6f6c 796c 696e 6520 Node: Polyline │ │ │ │ -000064d0: 7377 6565 7073 2c20 204e 6578 743a 204e sweeps, Next: N │ │ │ │ -000064e0: 6573 7465 6420 7377 6565 7073 2c20 2050 ested sweeps, P │ │ │ │ -000064f0: 7265 763a 2050 6f69 6e74 2073 7765 6570 rev: Point sweep │ │ │ │ -00006500: 732c 2020 5570 3a20 5377 6570 7420 6f62 s, Up: Swept ob │ │ │ │ -00006510: 6a65 6374 730a 0a32 2e37 2e32 2050 6f6c jects..2.7.2 Pol │ │ │ │ -00006520: 796c 696e 6520 7377 6565 7073 0a2d 2d2d yline sweeps.--- │ │ │ │ -00006530: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ -00006540: 2d2d 0a0a 5377 6565 7069 6e67 2061 2070 --..Sweeping a p │ │ │ │ -00006550: 6f6c 796c 696e 6520 7072 6f64 7563 6573 olyline produces │ │ │ │ -00006560: 2061 2073 7572 6661 6365 2063 6f6d 706f a surface compo │ │ │ │ -00006570: 7365 6420 6f66 206d 616e 7920 6661 6365 sed of many face │ │ │ │ -00006580: 732e 2020 5468 650a 756e 6272 6f6b 656e s. The.unbroken │ │ │ │ -00006590: 2068 656c 6978 2069 6e20 7468 6520 6578 helix in the ex │ │ │ │ -000065a0: 616d 706c 6520 2a6e 6f74 6520 4865 6c69 ample *note Heli │ │ │ │ -000065b0: 7820 7769 7468 2063 756c 6c20 7365 7420 x with cull set │ │ │ │ -000065c0: 6661 6c73 6520 7468 656e 0a74 7275 653a false then.true: │ │ │ │ -000065d0: 3a20 6973 2070 726f 6475 6365 6420 6279 : is produced by │ │ │ │ -000065e0: 2074 6869 7320 636f 6465 2028 706c 7573 this code (plus │ │ │ │ -000065f0: 2061 2073 7572 726f 756e 6469 6e67 2070 a surrounding p │ │ │ │ -00006600: 7574 2072 6f74 6174 696f 6e20 746f 206d ut rotation to m │ │ │ │ -00006610: 616b 650a 616e 2069 6e74 6572 6573 7469 ake.an interesti │ │ │ │ -00006620: 6e67 2076 6965 773b 2074 6869 7320 6861 ng view; this ha │ │ │ │ -00006630: 7320 6265 656e 206f 6d69 7474 6564 292e s been omitted). │ │ │ │ -00006640: 0a20 2064 6566 204b 205b 302c 302c 315d . def K [0,0,1] │ │ │ │ -00006650: 0a20 2073 7765 6570 5b63 756c 6c3d 6661 . sweep[cull=fa │ │ │ │ -00006660: 6c73 655d 207b 0a20 2020 2036 302c 200a lse] {. 60, . │ │ │ │ -00006670: 2020 2020 726f 7461 7465 2831 302c 2028 rotate(10, ( │ │ │ │ -00006680: 302c 302c 3029 2c20 5b4b 5d29 2074 6865 0,0,0), [K]) the │ │ │ │ -00006690: 6e20 7472 616e 736c 6174 6528 312f 3620 n translate(1/6 │ │ │ │ -000066a0: 2a20 5b4b 5d29 200a 2020 7d20 6c69 6e65 * [K]) . } line │ │ │ │ -000066b0: 5b6c 696e 6577 6964 7468 3d32 7074 5d28 [linewidth=2pt]( │ │ │ │ -000066c0: 2d31 2c30 2928 312c 3029 0a41 6761 696e -1,0)(1,0).Again │ │ │ │ -000066d0: 2c20 3630 2073 6567 6d65 6e74 7320 6f66 , 60 segments of │ │ │ │ -000066e0: 2074 6865 2068 656c 6978 2061 7265 2070 the helix are p │ │ │ │ -000066f0: 726f 6475 6365 6420 6279 2063 6f6e 6e65 roduced by conne │ │ │ │ -00006700: 6374 696e 6720 3631 2069 6e73 7461 6e63 cting 61 instanc │ │ │ │ -00006710: 6573 0a6f 6620 7468 6520 7377 6570 7420 es.of the swept │ │ │ │ -00006720: 6c69 6e65 2e20 204f 7074 696f 6e73 2061 line. Options a │ │ │ │ -00006730: 7070 6c69 6564 2074 6f20 7468 6520 7377 pplied to the sw │ │ │ │ -00006740: 6565 702c 2068 6572 6520 6375 6c6c 3d66 eep, here cull=f │ │ │ │ -00006750: 616c 7365 2c20 6172 650a 7472 6561 7465 alse, are.treate │ │ │ │ -00006760: 6420 6173 206f 7074 696f 6e73 2066 6f72 d as options for │ │ │ │ -00006770: 2074 6865 2067 656e 6572 6174 6564 2070 the generated p │ │ │ │ -00006780: 6f6c 7967 6f6e 206f 7220 706f 6c79 6c69 olygon or polyli │ │ │ │ -00006790: 6e65 2e20 204f 7074 696f 6e73 206f 660a ne. Options of. │ │ │ │ -000067a0: 7468 6520 7377 6570 7420 6c69 6e65 2069 the swept line i │ │ │ │ -000067b0: 7473 656c 662c 2068 6572 6520 6c69 6e65 tself, here line │ │ │ │ -000067c0: 7769 6474 683d 3270 742c 2061 7265 2069 width=2pt, are i │ │ │ │ -000067d0: 676e 6f72 6564 2c20 7468 6f75 6768 2077 gnored, though w │ │ │ │ -000067e0: 6974 6820 610a 7761 726e 696e 672e 2020 ith a.warning. │ │ │ │ -000067f0: 5468 6973 2064 6566 2069 7320 6120 e280 This def is a .. │ │ │ │ -00006800: 9c76 6563 746f 72e2 809d 2064 6566 696e .vector... defin │ │ │ │ -00006810: 6974 696f 6e2c 2077 6869 6368 206d 7573 ition, which mus │ │ │ │ -00006820: 7420 6265 2072 6566 6572 656e 6365 640a t be referenced. │ │ │ │ -00006830: 7769 7468 2073 7175 6172 6520 6272 6163 with square brac │ │ │ │ -00006840: 6b65 7473 2c20 652e 672e 205b 666f 6f5d kets, e.g. [foo] │ │ │ │ -00006850: 2e0a 0a1f 0a46 696c 653a 2073 6b65 7463 .....File: sketc │ │ │ │ -00006860: 682e 696e 666f 2c20 204e 6f64 653a 204e h.info, Node: N │ │ │ │ -00006870: 6573 7465 6420 7377 6565 7073 2c20 204e ested sweeps, N │ │ │ │ -00006880: 6578 743a 2050 6f6c 7967 6f6e 2073 7765 ext: Polygon swe │ │ │ │ -00006890: 6570 732c 2020 5072 6576 3a20 506f 6c79 eps, Prev: Poly │ │ │ │ -000068a0: 6c69 6e65 2073 7765 6570 732c 2020 5570 line sweeps, Up │ │ │ │ -000068b0: 3a20 5377 6570 7420 6f62 6a65 6374 730a : Swept objects. │ │ │ │ -000068c0: 0a32 2e37 2e33 204e 6573 7465 6420 7377 .2.7.3 Nested sw │ │ │ │ -000068d0: 6565 7073 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d eeps.----------- │ │ │ │ -000068e0: 2d2d 2d2d 2d2d 2d2d 0a0a 5768 656e 2074 --------..When t │ │ │ │ -000068f0: 6865 2063 656e 7465 7220 706f 696e 7420 he center point │ │ │ │ -00006900: 6f66 2072 6f74 6174 696f 6e20 6973 206f of rotation is o │ │ │ │ -00006910: 6d69 7474 6564 2c20 7468 6520 6f72 6967 mitted, the orig │ │ │ │ -00006920: 696e 2069 7320 6173 7375 6d65 642e 0a57 in is assumed..W │ │ │ │ -00006930: 6865 6e20 6120 706f 696e 7420 6861 7320 hen a point has │ │ │ │ -00006940: 6f6e 6c79 2074 776f 2063 6f6f 7264 696e only two coordin │ │ │ │ -00006950: 6174 6573 2c20 7468 6579 2061 7265 2074 ates, they are t │ │ │ │ -00006960: 616b 656e 2061 7320 7820 616e 6420 792c aken as x and y, │ │ │ │ -00006970: 2077 6974 680a 7a3d 3020 6173 7375 6d65 with.z=0 assume │ │ │ │ -00006980: 642e 2020 4120 746f 726f 6964 2069 7320 d. A toroid is │ │ │ │ -00006990: 7468 6572 6566 6f72 6520 6f62 7461 696e therefore obtain │ │ │ │ -000069a0: 6564 2077 6974 6820 7468 6973 2063 6f64 ed with this cod │ │ │ │ -000069b0: 652e 0a20 2064 6566 206e 5f74 6f72 6f69 e.. def n_toroi │ │ │ │ -000069c0: 645f 7365 6773 2032 3020 2020 6465 6620 d_segs 20 def │ │ │ │ -000069d0: 6e5f 6369 7263 6c65 5f73 6567 7320 3136 n_circle_segs 16 │ │ │ │ -000069e0: 0a20 2064 6566 2072 5f6d 696e 6f72 2031 . def r_minor 1 │ │ │ │ -000069f0: 2020 2020 2020 2020 2020 6465 6620 725f def r_ │ │ │ │ -00006a00: 6d61 6a6f 7220 312e 350a 2020 7377 6565 major 1.5. swee │ │ │ │ -00006a10: 7020 7b20 6e5f 746f 726f 6964 5f73 6567 p { n_toroid_seg │ │ │ │ -00006a20: 732c 2072 6f74 6174 6528 3336 3020 2f20 s, rotate(360 / │ │ │ │ -00006a30: 6e5f 746f 726f 6964 5f73 6567 732c 205b n_toroid_segs, [ │ │ │ │ -00006a40: 302c 312c 305d 2920 7d0a 2020 2020 7377 0,1,0]) }. sw │ │ │ │ -00006a50: 6565 7020 7b20 6e5f 6369 7263 6c65 5f73 eep { n_circle_s │ │ │ │ -00006a60: 6567 732c 2072 6f74 6174 6528 3336 3020 egs, rotate(360 │ │ │ │ -00006a70: 2f20 6e5f 6369 7263 6c65 5f73 6567 732c / n_circle_segs, │ │ │ │ -00006a80: 2028 725f 6d61 6a6f 722c 302c 3029 2920 (r_major,0,0)) │ │ │ │ -00006a90: 7d20 0a20 2020 2020 2028 725f 6d61 6a6f } . (r_majo │ │ │ │ -00006aa0: 7220 2b20 725f 6d69 6e6f 722c 2030 290a r + r_minor, 0). │ │ │ │ -00006ab0: 2020 2046 6f72 2069 6e74 7569 7469 6f6e For intuition │ │ │ │ -00006ac0: 2c20 7468 6520 6964 6561 206f 6620 7468 , the idea of th │ │ │ │ -00006ad0: 6520 636f 6465 2069 7320 746f 2073 6b65 e code is to ske │ │ │ │ -00006ae0: 7463 6820 6120 6369 7263 6c65 2074 6f20 tch a circle to │ │ │ │ -00006af0: 7468 650a 7269 6768 7420 6f66 2074 6865 the.right of the │ │ │ │ -00006b00: 206f 7269 6769 6e20 696e 2074 6865 2078 origin in the x │ │ │ │ -00006b10: 792d 706c 616e 652c 2074 6865 6e20 726f y-plane, then ro │ │ │ │ -00006b20: 7461 7465 2074 6861 7420 6369 7263 6c65 tate that circle │ │ │ │ -00006b30: 2022 6f75 7420 6f66 2074 6865 0a70 6c61 "out of the.pla │ │ │ │ -00006b40: 6e65 2220 6162 6f75 7420 7468 6520 792d ne" about the y- │ │ │ │ -00006b50: 6178 6973 2074 6f20 6d61 6b65 2074 6865 axis to make the │ │ │ │ -00006b60: 2066 696e 616c 2066 6967 7572 652e 2020 final figure. │ │ │ │ -00006b70: 5468 6973 2070 726f 6475 6365 7320 7468 This produces th │ │ │ │ -00006b80: 650a 666f 6c6c 6f77 696e 672e 2020 2841 e.following. (A │ │ │ │ -00006b90: 2076 6965 7720 726f 7461 7469 6f6e 2061 view rotation a │ │ │ │ -00006ba0: 6e64 2073 6f6d 6520 6178 6573 2068 6176 nd some axes hav │ │ │ │ -00006bb0: 6520 6265 656e 2061 6464 6564 2e29 0a0a e been added.).. │ │ │ │ -00006bc0: 0008 5b69 6d61 6765 2073 7263 3d22 6578 ..[image src="ex │ │ │ │ -00006bd0: 3039 302e 706e 6722 2074 6578 743d 2249 090.png" text="I │ │ │ │ -00006be0: 6d61 6765 2065 7830 3930 206f 6d69 7474 mage ex090 omitt │ │ │ │ -00006bf0: 6564 2069 6e20 7465 7874 2076 6572 7369 ed in text versi │ │ │ │ -00006c00: 6f6e 206f 6620 7468 6973 2064 6f63 756d on of this docum │ │ │ │ -00006c10: 656e 742e 2200 085d 0a0a 2020 2054 6869 ent."..].. Thi │ │ │ │ -00006c20: 7320 6578 616d 706c 6520 616c 736f 2073 s example also s │ │ │ │ -00006c30: 686f 7773 2074 6861 7420 7468 6520 7377 hows that the sw │ │ │ │ -00006c40: 6570 7420 6f62 6a65 6374 206d 6179 2069 ept object may i │ │ │ │ -00006c50: 7473 656c 6620 6265 2061 6e6f 7468 6572 tself be another │ │ │ │ -00006c60: 0ae2 8098 7377 6565 70e2 8099 2e20 2049 ....sweep.... I │ │ │ │ -00006c70: 6e20 6661 6374 2c20 6974 206d 6179 2062 n fact, it may b │ │ │ │ -00006c80: 6520 5f61 6e79 5f20 e280 9873 6b65 7463 e _any_ ...sketc │ │ │ │ -00006c90: 68e2 8099 2065 7870 7265 7373 696f 6e20 h... expression │ │ │ │ -00006ca0: 7468 6174 2072 6573 756c 7473 2069 6e20 that results in │ │ │ │ -00006cb0: 610a 6c69 7374 206f 6620 6f6e 6520 6f72 a.list of one or │ │ │ │ -00006cc0: 206d 6f72 6520 706f 696e 7473 206f 722c more points or, │ │ │ │ -00006cd0: 2061 6c74 6572 6e61 7465 6c79 2c20 6120 alternately, a │ │ │ │ -00006ce0: 6c69 7374 206f 6620 6f6e 6520 6f72 206d list of one or m │ │ │ │ -00006cf0: 6f72 650a 706f 6c79 6c69 6e65 7320 616e ore.polylines an │ │ │ │ -00006d00: 6420 706f 6c79 676f 6e73 2e20 2054 6865 d polygons. The │ │ │ │ -00006d10: 206c 6174 7465 7220 6b69 6e64 206f 6620 latter kind of │ │ │ │ -00006d20: 6c69 7374 2063 616e 2062 6520 6372 6561 list can be crea │ │ │ │ -00006d30: 7465 6420 7769 7468 2061 0a7b 207d 2d65 ted with a.{ }-e │ │ │ │ -00006d40: 6e63 6c6f 7365 6420 626c 6f63 6b2c 2070 nclosed block, p │ │ │ │ -00006d50: 6572 6861 7073 2066 6f6c 6c6f 7769 6e67 erhaps following │ │ │ │ -00006d60: 2061 2070 7574 206f 7220 7265 7065 6174 a put or repeat │ │ │ │ -00006d70: 2e0a 0a1f 0a46 696c 653a 2073 6b65 7463 .....File: sketc │ │ │ │ -00006d80: 682e 696e 666f 2c20 204e 6f64 653a 2050 h.info, Node: P │ │ │ │ -00006d90: 6f6c 7967 6f6e 2073 7765 6570 732c 2020 olygon sweeps, │ │ │ │ -00006da0: 4e65 7874 3a20 506f 6c79 6c69 6e65 2073 Next: Polyline s │ │ │ │ -00006db0: 7765 6570 7320 7769 7468 2063 6c6f 7375 weeps with closu │ │ │ │ -00006dc0: 7265 2c20 2050 7265 763a 204e 6573 7465 re, Prev: Neste │ │ │ │ -00006dd0: 6420 7377 6565 7073 2c20 2055 703a 2053 d sweeps, Up: S │ │ │ │ -00006de0: 7765 7074 206f 626a 6563 7473 0a0a 322e wept objects..2. │ │ │ │ -00006df0: 372e 3420 506f 6c79 676f 6e20 7377 6565 7.4 Polygon swee │ │ │ │ -00006e00: 7073 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ps.------------- │ │ │ │ -00006e10: 2d2d 2d2d 2d2d 2d0a 0a53 7765 6570 696e -------..Sweepin │ │ │ │ -00006e20: 6720 6120 706f 6c79 676f 6e20 6372 6561 g a polygon crea │ │ │ │ -00006e30: 7465 7320 6120 636c 6f73 6564 2073 7572 tes a closed sur │ │ │ │ -00006e40: 6661 6365 2077 6974 6820 706f 6c79 676f face with polygo │ │ │ │ -00006e50: 6e73 2061 7420 7468 6520 656e 6473 2c0a ns at the ends,. │ │ │ │ -00006e60: 7768 6963 6820 6172 6520 6a75 7374 2063 which are just c │ │ │ │ -00006e70: 6f70 6965 7320 6f66 2074 6865 206f 7269 opies of the ori │ │ │ │ -00006e80: 6769 6e61 6c2c 2061 7070 726f 7072 6961 ginal, appropria │ │ │ │ -00006e90: 7465 6c79 2070 6f73 6974 696f 6e65 642e tely positioned. │ │ │ │ -00006ea0: 2020 2a4e 6f74 650a 536f 6c69 6420 636f *Note.Solid co │ │ │ │ -00006eb0: 696c 2065 7861 6d70 6c65 3a3a 2e20 204f il example::. O │ │ │ │ -00006ec0: 7074 696f 6e73 206f 6e20 7468 6520 7377 ptions on the sw │ │ │ │ -00006ed0: 6570 7420 706f 6c79 676f 6e2c 2069 6620 ept polygon, if │ │ │ │ -00006ee0: 7468 6579 2065 7869 7374 2c20 6172 650a they exist, are. │ │ │ │ -00006ef0: 6170 706c 6965 6420 746f 2074 6865 2065 applied to the e │ │ │ │ -00006f00: 6e64 732e 2020 4f74 6865 7277 6973 6520 nds. Otherwise │ │ │ │ -00006f10: 7468 6520 7377 6565 7020 6f70 7469 6f6e the sweep option │ │ │ │ -00006f20: 7320 6172 6520 7573 6564 2074 6872 6f75 s are used throu │ │ │ │ -00006f30: 6768 6f75 742e 0a0a 1f0a 4669 6c65 3a20 ghout.....File: │ │ │ │ -00006f40: 736b 6574 6368 2e69 6e66 6f2c 2020 4e6f sketch.info, No │ │ │ │ -00006f50: 6465 3a20 506f 6c79 6c69 6e65 2073 7765 de: Polyline swe │ │ │ │ -00006f60: 6570 7320 7769 7468 2063 6c6f 7375 7265 eps with closure │ │ │ │ -00006f70: 2c20 204e 6578 743a 2041 6666 696e 6520 , Next: Affine │ │ │ │ -00006f80: 6172 6974 686d 6574 6963 2c20 2050 7265 arithmetic, Pre │ │ │ │ -00006f90: 763a 2050 6f6c 7967 6f6e 2073 7765 6570 v: Polygon sweep │ │ │ │ -00006fa0: 732c 2020 5570 3a20 5377 6570 7420 6f62 s, Up: Swept ob │ │ │ │ -00006fb0: 6a65 6374 730a 0a32 2e37 2e35 2050 6f6c jects..2.7.5 Pol │ │ │ │ -00006fc0: 796c 696e 6520 7377 6565 7073 2077 6974 yline sweeps wit │ │ │ │ -00006fd0: 6820 636c 6f73 7572 650a 2d2d 2d2d 2d2d h closure.------ │ │ │ │ +000021c0: 3d3d 3d3d 3d3d 0a0a 5468 6520 6772 6f75 ======..The grou │ │ │ │ +000021d0: 7020 6874 7470 3a2f 2f67 726f 7570 732e p http://groups. │ │ │ │ +000021e0: 676f 6f67 6c65 2e63 6f6d 2f67 726f 7570 google.com/group │ │ │ │ +000021f0: 2f73 6b65 7463 682d 7573 6572 7320 6973 /sketch-users is │ │ │ │ +00002200: 2074 6865 2062 6573 7420 706c 6163 650a the best place. │ │ │ │ +00002210: 746f 2072 6570 6f72 7420 6275 6773 2061 to report bugs a │ │ │ │ +00002220: 6e64 206d 616b 6520 696d 7072 6f76 656d nd make improvem │ │ │ │ +00002230: 656e 7473 2e20 2041 2073 6563 6f6e 6420 ents. A second │ │ │ │ +00002240: 6d65 7468 6f64 2074 6861 7420 7769 6c6c method that will │ │ │ │ +00002250: 0a70 726f 6261 626c 7920 7072 6f64 7563 .probably produc │ │ │ │ +00002260: 6520 6120 736c 6f77 6572 2072 6573 706f e a slower respo │ │ │ │ +00002270: 6e73 6520 6973 2065 6d61 696c 2074 6f20 nse is email to │ │ │ │ +00002280: 736b 6574 6368 4066 726f 6e74 6965 726e sketch@frontiern │ │ │ │ +00002290: 6574 2e6e 6574 2e0a 5765 2077 696c 6c20 et.net..We will │ │ │ │ +000022a0: 7472 7920 746f 2072 6573 706f 6e64 2c20 try to respond, │ │ │ │ +000022b0: 6275 7420 6361 6e27 7420 7072 6f6d 6973 but can't promis │ │ │ │ +000022c0: 652e 2020 496e 2061 6e79 2065 7665 6e74 e. In any event │ │ │ │ +000022d0: 2c20 646f 6e27 7420 6265 0a6f 6666 656e , don't be.offen │ │ │ │ +000022e0: 6465 6420 6966 2061 2072 6570 6c79 2069 ded if a reply i │ │ │ │ +000022f0: 7320 6e6f 7420 666f 7274 6863 6f6d 696e s not forthcomin │ │ │ │ +00002300: 672e 2020 5765 2772 6520 6a75 7374 2062 g. We're just b │ │ │ │ +00002310: 7573 7920 616e 6420 7769 6c6c 2067 6574 usy and will get │ │ │ │ +00002320: 2074 6f0a 796f 7572 2073 7567 6765 7374 to.your suggest │ │ │ │ +00002330: 696f 6e20 6576 656e 7475 616c 6c79 2e0a ion eventually.. │ │ │ │ +00002340: 0a20 2020 466f 7220 6275 6773 2c20 6174 . For bugs, at │ │ │ │ +00002350: 7461 6368 2061 20e2 8098 736b 6574 6368 tach a ...sketch │ │ │ │ +00002360: e280 9920 696e 7075 7420 6669 6c65 2074 ... input file t │ │ │ │ +00002370: 6861 7420 6361 7573 6573 2074 6865 2062 hat causes the b │ │ │ │ +00002380: 6164 2062 6568 6176 696f 722e 0a45 6d62 ad behavior..Emb │ │ │ │ +00002390: 6564 2063 6f6d 6d65 6e74 7320 7468 6174 ed comments that │ │ │ │ +000023a0: 2065 7870 6c61 696e 2077 6861 7420 746f explain what to │ │ │ │ +000023b0: 206c 6f6f 6b20 666f 7220 696e 2074 6865 look for in the │ │ │ │ +000023c0: 2062 6568 6176 696f 7220 6f66 20e2 8098 behavior of ... │ │ │ │ +000023d0: 736b 6574 6368 e280 990a 6f72 2069 7473 sketch....or its │ │ │ │ +000023e0: 206f 7574 7075 742e 0a0a 2020 2041 2072 output... A r │ │ │ │ +000023f0: 6563 6f6d 6d65 6e64 6174 696f 6e20 666f ecommendation fo │ │ │ │ +00002400: 7220 696d 7072 6f76 656d 656e 7420 6672 r improvement fr │ │ │ │ +00002410: 6f6d 206f 6e65 2075 6e6b 6e6f 776e 2070 om one unknown p │ │ │ │ +00002420: 6572 736f 6e20 636f 756e 7473 2061 730a erson counts as. │ │ │ │ +00002430: 6f6e 6520 766f 7465 2e20 2057 6520 7573 one vote. We us │ │ │ │ +00002440: 6520 6f76 6572 616c 6c20 766f 7465 2074 e overall vote t │ │ │ │ +00002450: 616c 6c69 6573 2074 6f20 6465 6369 6465 allies to decide │ │ │ │ +00002460: 2077 6861 7420 746f 2064 6f20 6e65 7874 what to do next │ │ │ │ +00002470: 2061 730a 7265 736f 7572 6365 7320 7065 as.resources pe │ │ │ │ +00002480: 726d 6974 2e20 2057 6520 7265 7365 7276 rmit. We reserv │ │ │ │ +00002490: 6520 7468 6520 7269 6768 7420 746f 2061 e the right to a │ │ │ │ +000024a0: 7373 6967 6e20 616e 7920 6e75 6d62 6572 ssign any number │ │ │ │ +000024b0: 206f 6620 766f 7465 7320 746f 0a73 7567 of votes to.sug │ │ │ │ +000024c0: 6765 7374 696f 6e73 2066 726f 6d20 7065 gestions from pe │ │ │ │ +000024d0: 6f70 6c65 2077 686f 2068 6176 6520 6265 ople who have be │ │ │ │ +000024e0: 656e 2068 656c 7066 756c 2061 6e64 2073 en helpful and s │ │ │ │ +000024f0: 7570 706f 7274 6976 6520 696e 2074 6865 upportive in the │ │ │ │ +00002500: 0a70 6173 742e 0a0a 1f0a 4669 6c65 3a20 .past.....File: │ │ │ │ +00002510: 736b 6574 6368 2e69 6e66 6f2c 2020 4e6f sketch.info, No │ │ │ │ +00002520: 6465 3a20 436f 6e74 7269 6275 7469 6f6e de: Contribution │ │ │ │ +00002530: 732c 2020 5072 6576 3a20 5265 706f 7274 s, Prev: Report │ │ │ │ +00002540: 696e 6720 6275 6773 2c20 2055 703a 2041 ing bugs, Up: A │ │ │ │ +00002550: 626f 7574 2073 6b65 7463 680a 0a31 2e32 bout sketch..1.2 │ │ │ │ +00002560: 2043 6f6e 7472 6962 7574 696f 6e73 0a3d Contributions.= │ │ │ │ +00002570: 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d ================ │ │ │ │ +00002580: 0a0a 4966 2079 6f75 2069 6e74 656e 6420 ..If you intend │ │ │ │ +00002590: 746f 2069 6d70 6c65 6d65 6e74 2061 6e20 to implement an │ │ │ │ +000025a0: 656e 6861 6e63 656d 656e 7420 6f66 2079 enhancement of y │ │ │ │ +000025b0: 6f75 7220 6f77 6e2c 2074 6861 7427 7320 our own, that's │ │ │ │ +000025c0: 7465 7272 6966 6963 210a 436f 6e73 6964 terrific!.Consid │ │ │ │ +000025d0: 6572 2063 6f6c 6c61 626f 7261 7469 6e67 er collaborating │ │ │ │ +000025e0: 2077 6974 6820 7573 2066 6972 7374 2074 with us first t │ │ │ │ +000025f0: 6f20 7365 6520 6966 2077 6527 7265 2061 o see if we're a │ │ │ │ +00002600: 6c72 6561 6479 2077 6f72 6b69 6e67 206f lready working o │ │ │ │ +00002610: 6e0a 796f 7572 2069 6465 6120 6f72 2069 n.your idea or i │ │ │ │ +00002620: 6620 7765 2063 616e 2075 7365 2079 6f75 f we can use you │ │ │ │ +00002630: 7220 776f 726b 2069 6e20 7468 6520 6f66 r work in the of │ │ │ │ +00002640: 6669 6369 616c 2072 656c 6561 7365 2e0a ficial release.. │ │ │ │ +00002650: 0a00 085b 696d 6167 6520 7372 633d 2265 ...[image src="e │ │ │ │ +00002660: 7830 3030 2e70 6e67 2220 7465 7874 3d22 x000.png" text=" │ │ │ │ +00002670: 496d 6167 6520 6578 3030 3020 6f6d 6974 Image ex000 omit │ │ │ │ +00002680: 7465 6420 696e 2074 6578 7420 7665 7273 ted in text vers │ │ │ │ +00002690: 696f 6e20 6f66 2074 6869 7320 646f 6375 ion of this docu │ │ │ │ +000026a0: 6d65 6e74 2e22 0008 5d0a 0a1f 0a46 696c ment."..]....Fil │ │ │ │ +000026b0: 653a 2073 6b65 7463 682e 696e 666f 2c20 e: sketch.info, │ │ │ │ +000026c0: 204e 6f64 653a 2049 6e74 726f 6475 6374 Node: Introduct │ │ │ │ +000026d0: 696f 6e20 6279 2065 7861 6d70 6c65 2c20 ion by example, │ │ │ │ +000026e0: 204e 6578 743a 2049 6e70 7574 206c 616e Next: Input lan │ │ │ │ +000026f0: 6775 6167 652c 2020 5072 6576 3a20 4162 guage, Prev: Ab │ │ │ │ +00002700: 6f75 7420 736b 6574 6368 2c20 2055 703a out sketch, Up: │ │ │ │ +00002710: 2054 6f70 0a0a 3220 496e 7472 6f64 7563 Top..2 Introduc │ │ │ │ +00002720: 7469 6f6e 2062 7920 6578 616d 706c 650a tion by example. │ │ │ │ +00002730: 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a **************** │ │ │ │ +00002740: 2a2a 2a2a 2a2a 2a2a 2a0a 0a54 6865 20e2 *********..The . │ │ │ │ +00002750: 8098 736b 6574 6368 e280 9920 696e 7075 ..sketch... inpu │ │ │ │ +00002760: 7420 6c61 6e67 7561 6765 2077 696c 6c20 t language will │ │ │ │ +00002770: 7365 656d 2066 616d 696c 6961 7220 746f seem familiar to │ │ │ │ +00002780: 2075 7365 7273 206f 6620 7468 650a e280 users of the... │ │ │ │ +00002790: 9850 5354 7269 636b 73e2 8099 2070 6163 .PSTricks... pac │ │ │ │ +000027a0: 6b61 6765 2066 6f72 204c 6154 6558 2e20 kage for LaTeX. │ │ │ │ +000027b0: 2054 6865 2066 6f6c 6c6f 7769 6e67 2070 The following p │ │ │ │ +000027c0: 726f 6772 616d 2064 7261 7773 2061 2074 rogram draws a t │ │ │ │ +000027d0: 7269 616e 6775 6c61 720a 706f 6c79 676f riangular.polygo │ │ │ │ +000027e0: 6e20 7069 6572 6365 6420 6279 2061 206c n pierced by a l │ │ │ │ +000027f0: 696e 652e 0a20 2070 6f6c 7967 6f6e 2830 ine.. polygon(0 │ │ │ │ +00002800: 2c30 2c31 2928 312c 302c 3029 2830 2c31 ,0,1)(1,0,0)(0,1 │ │ │ │ +00002810: 2c30 290a 2020 6c69 6e65 282d 312c 2d31 ,0). line(-1,-1 │ │ │ │ +00002820: 2c2d 3129 2832 2c32 2c32 290a 5468 6520 ,-1)(2,2,2).The │ │ │ │ +00002830: 636f 6f72 6469 6e61 7465 2073 7973 7465 coordinate syste │ │ │ │ +00002840: 6d20 6973 2061 2073 7461 6e64 6172 6420 m is a standard │ │ │ │ +00002850: 7269 6768 742d 6861 6e64 6564 2043 6172 right-handed Car │ │ │ │ +00002860: 7465 7369 616e 206f 6e65 2e0a 0a00 085b tesian one.....[ │ │ │ │ +00002870: 696d 6167 6520 7372 633d 2265 7830 3130 image src="ex010 │ │ │ │ +00002880: 2e70 6e67 2220 7465 7874 3d22 496d 6167 .png" text="Imag │ │ │ │ +00002890: 6520 6578 3031 3020 6f6d 6974 7465 6420 e ex010 omitted │ │ │ │ +000028a0: 696e 2074 6578 7420 7665 7273 696f 6e20 in text version │ │ │ │ +000028b0: 6f66 2074 6869 7320 646f 6375 6d65 6e74 of this document │ │ │ │ +000028c0: 2e22 0008 5d0a 0a2a 204d 656e 753a 0a0a ."..]..* Menu:.. │ │ │ │ +000028d0: 2a20 4865 6c6c 6f20 776f 726c 643a 3a20 * Hello world:: │ │ │ │ +000028e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +000028f0: 5369 6d70 6c65 7374 2070 6f73 7369 626c Simplest possibl │ │ │ │ +00002900: 6520 e280 9873 6b65 7463 68e2 8099 2070 e ...sketch... p │ │ │ │ +00002910: 726f 6772 616d 2e0a 2a20 4472 6177 696e rogram..* Drawin │ │ │ │ +00002920: 6720 6f70 7469 6f6e 733a 3a20 2020 2020 g options:: │ │ │ │ +00002930: 2020 2020 2020 2020 436f 6e74 726f 6c6c Controll │ │ │ │ +00002940: 696e 6720 6f62 6a65 6374 2061 7070 6561 ing object appea │ │ │ │ +00002950: 7261 6e63 652e 0a2a 2044 7261 7769 6e67 rance..* Drawing │ │ │ │ +00002960: 2061 2073 6f6c 6964 3a3a 2020 2020 2020 a solid:: │ │ │ │ +00002970: 2020 2020 2020 2044 7261 7769 6e67 2061 Drawing a │ │ │ │ +00002980: 6e20 6f62 6a65 6374 2077 6974 6820 3364 n object with 3d │ │ │ │ +00002990: 2061 7070 6561 7261 6e63 652e 0a2a 2053 appearance..* S │ │ │ │ +000029a0: 7065 6369 616c 206f 626a 6563 7473 3a3a pecial objects:: │ │ │ │ +000029b0: 2020 2020 2020 2020 2020 2020 204c 6179 Lay │ │ │ │ +000029c0: 696e 6720 5465 5820 6f76 6572 2c20 696e ing TeX over, in │ │ │ │ +000029d0: 2c20 6f72 2075 6e64 6572 2064 7261 7769 , or under drawi │ │ │ │ +000029e0: 6e67 732e 0a2a 204f 626a 6563 7420 7472 ngs..* Object tr │ │ │ │ +000029f0: 616e 7366 6f72 6d73 3a3a 2020 2020 2020 ansforms:: │ │ │ │ +00002a00: 2020 2020 2052 6f74 6174 652c 2074 7261 Rotate, tra │ │ │ │ +00002a10: 6e73 6c61 7465 2c20 7363 616c 652c 2061 nslate, scale, a │ │ │ │ +00002a20: 6e64 206f 7468 6572 732e 0a2a 2052 6570 nd others..* Rep │ │ │ │ +00002a30: 6561 7465 6420 6f62 6a65 6374 733a 3a20 eated objects:: │ │ │ │ +00002a40: 2020 2020 2020 2020 2020 204d 616b 696e Makin │ │ │ │ +00002a50: 6720 7472 616e 7366 6f72 6d65 6420 636f g transformed co │ │ │ │ +00002a60: 7069 6573 2e0a 2a20 5377 6570 7420 6f62 pies..* Swept ob │ │ │ │ +00002a70: 6a65 6374 733a 3a20 2020 2020 2020 2020 jects:: │ │ │ │ +00002a80: 2020 2020 2020 5377 6565 7069 6e67 206f Sweeping o │ │ │ │ +00002a90: 626a 6563 7473 2069 6e20 7370 6163 6520 bjects in space │ │ │ │ +00002aa0: 746f 206d 616b 6520 6e65 7720 7368 6170 to make new shap │ │ │ │ +00002ab0: 6573 2e0a 0a1f 0a46 696c 653a 2073 6b65 es.....File: ske │ │ │ │ +00002ac0: 7463 682e 696e 666f 2c20 204e 6f64 653a tch.info, Node: │ │ │ │ +00002ad0: 2048 656c 6c6f 2077 6f72 6c64 2c20 204e Hello world, N │ │ │ │ +00002ae0: 6578 743a 2044 7261 7769 6e67 206f 7074 ext: Drawing opt │ │ │ │ +00002af0: 696f 6e73 2c20 2050 7265 763a 2049 6e74 ions, Prev: Int │ │ │ │ +00002b00: 726f 6475 6374 696f 6e20 6279 2065 7861 roduction by exa │ │ │ │ +00002b10: 6d70 6c65 2c20 2055 703a 2049 6e74 726f mple, Up: Intro │ │ │ │ +00002b20: 6475 6374 696f 6e20 6279 2065 7861 6d70 duction by examp │ │ │ │ +00002b30: 6c65 0a0a 322e 3120 4865 6c6c 6f20 776f le..2.1 Hello wo │ │ │ │ +00002b40: 726c 640a 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d rld.============ │ │ │ │ +00002b50: 3d3d 3d0a 0a54 6865 20e2 8098 736b 6574 ===..The ...sket │ │ │ │ +00002b60: 6368 e280 9920 7072 6f67 7261 6d20 6162 ch... program ab │ │ │ │ +00002b70: 6f76 6520 6973 206e 6561 726c 7920 7468 ove is nearly th │ │ │ │ +00002b80: 6520 7369 6d70 6c65 7374 206f 6e65 2070 e simplest one p │ │ │ │ +00002b90: 6f73 7369 626c 652c 2074 6865 0a65 7175 ossible, the.equ │ │ │ │ +00002ba0: 6976 616c 656e 7420 6f66 2061 2022 6865 ivalent of a "he │ │ │ │ +00002bb0: 6c6c 6f20 776f 726c 6422 2070 726f 6772 llo world" progr │ │ │ │ +00002bc0: 616d 2079 6f75 206d 6967 6874 2066 696e am you might fin │ │ │ │ +00002bd0: 6420 6174 2074 6865 2073 7461 7274 206f d at the start o │ │ │ │ +00002be0: 6620 610a 7072 6f67 7261 6d6d 696e 6720 f a.programming │ │ │ │ +00002bf0: 6c61 6e67 7561 6765 2074 6578 742e 2020 language text. │ │ │ │ +00002c00: 4966 2069 7420 6973 2073 6176 6564 2069 If it is saved i │ │ │ │ +00002c10: 6e20 7468 6520 6669 6c65 20e2 8098 7369 n the file ...si │ │ │ │ +00002c20: 6d70 6c65 2e73 6be2 8099 2c20 7468 656e mple.sk..., then │ │ │ │ +00002c30: 0a74 6865 2063 6f6d 6d61 6e64 0a20 2073 .the command. s │ │ │ │ +00002c40: 6b65 7463 6820 7369 6d70 6c65 2e73 6b20 ketch simple.sk │ │ │ │ +00002c50: 2d6f 2073 696d 706c 652e 7465 780a 6372 -o simple.tex.cr │ │ │ │ +00002c60: 6561 7465 7320 6120 6669 6c65 20e2 8098 eates a file ... │ │ │ │ +00002c70: 7369 6d70 6c65 2e74 6578 e280 9920 636f simple.tex... co │ │ │ │ +00002c80: 6e74 6169 6e69 6e67 20e2 8098 5053 5472 ntaining ...PSTr │ │ │ │ +00002c90: 6963 6b73 e280 9920 636f 6d6d 616e 6473 icks... commands │ │ │ │ +00002ca0: 2074 6f20 6472 6177 2074 6865 7365 0a6f to draw these.o │ │ │ │ +00002cb0: 626a 6563 7473 206f 6e20 7061 7065 722e bjects on paper. │ │ │ │ +00002cc0: 2020 5468 6520 636f 6e74 656e 7473 206f The contents o │ │ │ │ +00002cd0: 6620 e280 9873 696d 706c 652e 7465 78e2 f ...simple.tex. │ │ │ │ +00002ce0: 8099 206c 6f6f 6b20 6c69 6b65 2074 6869 .. look like thi │ │ │ │ +00002cf0: 732e 0a20 205c 6265 6769 6e7b 7073 7069 s.. \begin{pspi │ │ │ │ +00002d00: 6374 7572 657d 282d 312c 2d31 2928 322c cture}(-1,-1)(2, │ │ │ │ +00002d10: 3229 0a20 205c 7073 7456 6572 627b 3120 2). \pstVerb{1 │ │ │ │ +00002d20: 7365 746c 696e 656a 6f69 6e7d 0a20 205c setlinejoin}. \ │ │ │ │ +00002d30: 7073 6c69 6e65 282d 312c 2d31 2928 2e33 psline(-1,-1)(.3 │ │ │ │ +00002d40: 3333 2c2e 3333 3329 0a20 205c 7073 706f 33,.333). \pspo │ │ │ │ +00002d50: 6c79 676f 6e5b 6669 6c6c 7374 796c 653d lygon[fillstyle= │ │ │ │ +00002d60: 736f 6c69 642c 6669 6c6c 636f 6c6f 723d solid,fillcolor= │ │ │ │ +00002d70: 7768 6974 655d 2830 2c30 2928 312c 3029 white](0,0)(1,0) │ │ │ │ +00002d80: 2830 2c31 290a 2020 5c70 736c 696e 6528 (0,1). \psline( │ │ │ │ +00002d90: 2e33 3333 2c2e 3333 3329 2832 2c32 290a .333,.333)(2,2). │ │ │ │ +00002da0: 2020 5c65 6e64 7b70 7370 6963 7475 7265 \end{pspicture │ │ │ │ +00002db0: 7d0a 5468 6520 6869 6464 656e 2073 7572 }.The hidden sur │ │ │ │ +00002dc0: 6661 6365 2061 6c67 6f72 6974 686d 206f face algorithm o │ │ │ │ +00002dd0: 6620 e280 9873 6b65 7463 68e2 8099 2068 f ...sketch... h │ │ │ │ +00002de0: 6173 2073 706c 6974 2074 6865 206c 696e as split the lin │ │ │ │ +00002df0: 6520 696e 746f 2074 776f 0a70 6965 6365 e into two.piece │ │ │ │ +00002e00: 7320 616e 6420 6f72 6465 7265 6420 7468 s and ordered th │ │ │ │ +00002e10: 6520 7468 7265 6520 7265 7375 6c74 696e e three resultin │ │ │ │ +00002e20: 6720 6f62 6a65 6374 7320 736f 2074 6861 g objects so tha │ │ │ │ +00002e30: 7420 7468 6520 636f 7272 6563 740a 706f t the correct.po │ │ │ │ +00002e40: 7274 696f 6e20 6f66 2074 6865 206c 696e rtion of the lin │ │ │ │ +00002e50: 6520 6973 2068 6964 6465 6e2e 0a0a 2020 e is hidden... │ │ │ │ +00002e60: 2049 6620 796f 7527 7665 206e 6f74 6963 If you've notic │ │ │ │ +00002e70: 6564 2074 6861 7420 7468 6520 7072 6f6a ed that the proj │ │ │ │ +00002e80: 6563 7469 6f6e 2077 6520 6172 6520 7573 ection we are us │ │ │ │ +00002e90: 696e 6720 7365 656d 7320 6571 7569 7661 ing seems equiva │ │ │ │ +00002ea0: 6c65 6e74 0a74 6f20 6572 6173 696e 6720 lent.to erasing │ │ │ │ +00002eb0: 7468 6520 7a2d 636f 6f72 6469 6e61 7465 the z-coordinate │ │ │ │ +00002ec0: 206f 6620 7468 6520 7468 7265 652d 6469 of the three-di │ │ │ │ +00002ed0: 6d65 6e73 696f 6e61 6c20 696e 7075 7420 mensional input │ │ │ │ +00002ee0: 706f 696e 7473 2c20 7061 740a 796f 7572 points, pat.your │ │ │ │ +00002ef0: 7365 6c66 206f 6e20 7468 6520 6261 636b self on the back │ │ │ │ +00002f00: 2e20 2059 6f75 2061 7265 2063 6f72 7265 . You are corre │ │ │ │ +00002f10: 6374 2e20 2054 6869 7320 6973 2063 616c ct. This is cal │ │ │ │ +00002f20: 6c65 6420 6120 e280 9c70 6172 616c 6c65 led a ...paralle │ │ │ │ +00002f30: 6c0a 7072 6f6a 6563 7469 6f6e e280 9d2e l.projection.... │ │ │ │ +00002f40: 2020 5468 6520 7a2d 636f 6f72 6469 6e61 The z-coordina │ │ │ │ +00002f50: 7465 2061 7869 7320 6973 2070 6f69 6e74 te axis is point │ │ │ │ +00002f60: 696e 6720 7374 7261 6967 6874 206f 7574 ing straight out │ │ │ │ +00002f70: 206f 6620 7468 650a 7061 7065 7220 6174 of the.paper at │ │ │ │ +00002f80: 2075 732c 2077 6869 6c65 2074 6865 2078 us, while the x │ │ │ │ +00002f90: 2d20 616e 6420 792d 6178 6573 2070 6f69 - and y-axes poi │ │ │ │ +00002fa0: 6e74 2074 6f20 7468 6520 7269 6768 7420 nt to the right │ │ │ │ +00002fb0: 616e 6420 7570 2061 7320 7573 7561 6c2e and up as usual. │ │ │ │ +00002fc0: 0a0a 2020 2054 6865 2072 6573 756c 7469 .. The resulti │ │ │ │ +00002fd0: 6e67 2070 6963 7475 7265 2066 696c 6520 ng picture file │ │ │ │ +00002fe0: 6361 6e20 6265 2069 6e63 6c75 6465 6420 can be included │ │ │ │ +00002ff0: 696e 2061 204c 6154 6558 2064 6f63 756d in a LaTeX docum │ │ │ │ +00003000: 656e 7420 7769 7468 0a5c 696e 7075 747b ent with.\input{ │ │ │ │ +00003010: 7369 6d70 6c65 7d2e 2020 416c 7465 726e simple}. Altern │ │ │ │ +00003020: 6174 656c 792c 2061 6464 696e 6720 7468 ately, adding th │ │ │ │ +00003030: 6520 636f 6d6d 616e 6420 6c69 6e65 206f e command line o │ │ │ │ +00003040: 7074 696f 6e20 e280 982d 54e2 8099 2831 ption ...-T...(1 │ │ │ │ +00003050: 290a 6361 7573 6573 2074 6865 20e2 8098 ).causes the ... │ │ │ │ +00003060: 7073 7069 6374 7572 65e2 8099 2074 6f20 pspicture... to │ │ │ │ +00003070: 6265 2077 7261 7070 6564 2069 6e20 6120 be wrapped in a │ │ │ │ +00003080: 7368 6f72 7420 6275 7420 636f 6d70 6c65 short but comple │ │ │ │ +00003090: 7465 2064 6f63 756d 656e 742c 0a72 6561 te document,.rea │ │ │ │ +000030a0: 6479 2074 6f20 7275 6e20 7468 6f75 6768 dy to run though │ │ │ │ +000030b0: 204c 6154 6558 2e20 2049 6e20 6120 6669 LaTeX. In a fi │ │ │ │ +000030c0: 6e69 7368 6564 2c20 7479 7065 7365 7420 nished, typeset │ │ │ │ +000030d0: 646f 6375 6d65 6e74 2c20 7468 6520 7069 document, the pi │ │ │ │ +000030e0: 6374 7572 650a 6c6f 6f6b 7320 6c69 6b65 cture.looks like │ │ │ │ +000030f0: 2074 6869 732e 2020 2854 6865 2061 7865 this. (The axe │ │ │ │ +00003100: 7320 6861 7665 2062 6565 6e20 6164 6465 s have been adde │ │ │ │ +00003110: 6420 696e 206c 6967 6874 2067 7261 792e d in light gray. │ │ │ │ +00003120: 290a 0a00 085b 696d 6167 6520 7372 633d )....[image src= │ │ │ │ +00003130: 2265 7830 3230 2e70 6e67 2220 7465 7874 "ex020.png" text │ │ │ │ +00003140: 3d22 496d 6167 6520 6578 3032 3020 6f6d ="Image ex020 om │ │ │ │ +00003150: 6974 7465 6420 696e 2074 6578 7420 7665 itted in text ve │ │ │ │ +00003160: 7273 696f 6e20 6f66 2074 6869 7320 646f rsion of this do │ │ │ │ +00003170: 6375 6d65 6e74 2e22 0008 5d0a 0a49 7420 cument."..]..It │ │ │ │ +00003180: 6973 2069 6d70 6f72 7461 6e74 2074 6f20 is important to │ │ │ │ +00003190: 6b6e 6f77 2074 6861 7420 6f6e 6c79 2074 know that only t │ │ │ │ +000031a0: 6865 2022 6f75 7473 6964 6522 206f 6620 he "outside" of │ │ │ │ +000031b0: 6120 706f 6c79 676f 6e20 6973 206e 6f72 a polygon is nor │ │ │ │ +000031c0: 6d61 6c6c 790a 6472 6177 6e2e 2020 5468 mally.drawn. Th │ │ │ │ +000031d0: 6520 e280 9c6f 7574 7369 6465 e280 9d20 e ...outside... │ │ │ │ +000031e0: 6973 2077 6865 7265 2074 6865 2076 6572 is where the ver │ │ │ │ +000031f0: 7469 6365 7320 6769 7665 6e20 696e 2074 tices given in t │ │ │ │ +00003200: 6865 20e2 8098 706f 6c79 676f 6ee2 8099 he ...polygon... │ │ │ │ +00003210: 0a63 6f6d 6d61 6e64 2061 7070 6561 7220 .command appear │ │ │ │ +00003220: 696e 205f 636f 756e 7465 722d 636c 6f63 in _counter-cloc │ │ │ │ +00003230: 6b77 6973 655f 206f 7264 6572 2e20 2054 kwise_ order. T │ │ │ │ +00003240: 6875 732c 2069 6620 7468 6520 636f 6d6d hus, if the comm │ │ │ │ +00003250: 616e 6420 6162 6f76 650a 6861 6420 6265 and above.had be │ │ │ │ +00003260: 656e 0a20 2070 6f6c 7967 6f6e 2830 2c31 en. polygon(0,1 │ │ │ │ +00003270: 2c30 2928 312c 302c 3029 2830 2c30 2c31 ,0)(1,0,0)(0,0,1 │ │ │ │ +00003280: 290a 7468 6520 706f 6c79 676f 6e20 776f ).the polygon wo │ │ │ │ +00003290: 756c 6420 6e6f 7420 6170 7065 6172 2069 uld not appear i │ │ │ │ +000032a0: 6e20 7468 6520 7069 6374 7572 6520 6174 n the picture at │ │ │ │ +000032b0: 2061 6c6c 2e20 2049 7420 776f 756c 6420 all. It would │ │ │ │ +000032c0: 6861 7665 2062 6565 6e0a e280 9c63 756c have been....cul │ │ │ │ +000032d0: 6c65 64e2 809d 2066 726f 6d20 7468 6520 led... from the │ │ │ │ +000032e0: 7363 656e 652e 2020 5468 6973 2063 756c scene. This cul │ │ │ │ +000032f0: 6c69 6e67 2062 6568 6176 696f 7220 6d61 ling behavior ma │ │ │ │ +00003300: 7920 7365 656d 2073 7472 616e 6765 2c20 y seem strange, │ │ │ │ +00003310: 6275 740a 7374 6179 2074 756e 6564 2e0a but.stay tuned.. │ │ │ │ +00003320: 0a20 2020 2d2d 2d2d 2d2d 2d2d 2d2d 2046 . ---------- F │ │ │ │ +00003330: 6f6f 746e 6f74 6573 202d 2d2d 2d2d 2d2d ootnotes ------- │ │ │ │ +00003340: 2d2d 2d0a 0a20 2020 2831 2920 4f72 2066 ---.. (1) Or f │ │ │ │ +00003350: 6f72 2045 7572 6f70 6561 6e20 7573 6572 or European user │ │ │ │ +00003360: 7320 6f66 2041 3420 7369 7a65 2070 6170 s of A4 size pap │ │ │ │ +00003370: 6572 2c20 e280 982d 5465 e280 992e 0a0a er, ...-Te...... │ │ │ │ +00003380: 1f0a 4669 6c65 3a20 736b 6574 6368 2e69 ..File: sketch.i │ │ │ │ +00003390: 6e66 6f2c 2020 4e6f 6465 3a20 4472 6177 nfo, Node: Draw │ │ │ │ +000033a0: 696e 6720 6f70 7469 6f6e 732c 2020 4e65 ing options, Ne │ │ │ │ +000033b0: 7874 3a20 4472 6177 696e 6720 6120 736f xt: Drawing a so │ │ │ │ +000033c0: 6c69 642c 2020 5072 6576 3a20 4865 6c6c lid, Prev: Hell │ │ │ │ +000033d0: 6f20 776f 726c 642c 2020 5570 3a20 496e o world, Up: In │ │ │ │ +000033e0: 7472 6f64 7563 7469 6f6e 2062 7920 6578 troduction by ex │ │ │ │ +000033f0: 616d 706c 650a 0a32 2e32 204f 7074 696f ample..2.2 Optio │ │ │ │ +00003400: 6e73 0a3d 3d3d 3d3d 3d3d 3d3d 3d3d 0a0a ns.===========.. │ │ │ │ +00003410: 4d61 6e79 20e2 8098 5053 5472 6963 6b73 Many ...PSTricks │ │ │ │ +00003420: e280 9920 616e 6420 e280 9854 696b 5a2f ... and ...TikZ/ │ │ │ │ +00003430: 5047 46e2 8099 206f 7074 696f 6e73 2077 PGF... options w │ │ │ │ +00003440: 6f72 6b20 6a75 7374 2066 696e 6520 696e ork just fine in │ │ │ │ +00003450: 20e2 8098 736b 6574 6368 e280 992e 2020 ...sketch.... │ │ │ │ +00003460: 4966 0a67 656e 6572 6174 696e 6720 e280 If.generating .. │ │ │ │ +00003470: 9850 5354 7269 636b 73e2 8099 2c20 7468 .PSTricks..., th │ │ │ │ +00003480: 6520 636f 6465 0a20 2070 6f6c 7967 6f6e e code. polygon │ │ │ │ +00003490: 5b66 696c 6c63 6f6c 6f72 3d6c 6967 6874 [fillcolor=light │ │ │ │ +000034a0: 6772 6179 2c6c 696e 6577 6964 7468 3d33 gray,linewidth=3 │ │ │ │ +000034b0: 7074 5d28 302c 302c 3129 2831 2c30 2c30 pt](0,0,1)(1,0,0 │ │ │ │ +000034c0: 2928 302c 312c 3029 0a20 206c 696e 655b )(0,1,0). line[ │ │ │ │ +000034d0: 6c69 6e65 7374 796c 653d 646f 7474 6564 linestyle=dotted │ │ │ │ +000034e0: 5d28 2d31 2c2d 312c 2d31 2928 322c 322c ](-1,-1,-1)(2,2, │ │ │ │ +000034f0: 3229 0a70 726f 6475 6365 730a 0a00 085b 2).produces....[ │ │ │ │ +00003500: 696d 6167 6520 7372 633d 2265 7830 3330 image src="ex030 │ │ │ │ +00003510: 2e70 6e67 2220 7465 7874 3d22 496d 6167 .png" text="Imag │ │ │ │ +00003520: 6520 6578 3033 3020 6f6d 6974 7465 6420 e ex030 omitted │ │ │ │ +00003530: 696e 2074 6578 7420 7665 7273 696f 6e20 in text version │ │ │ │ +00003540: 6f66 2074 6869 7320 646f 6375 6d65 6e74 of this document │ │ │ │ +00003550: 2e22 0008 5d0a 0a20 2020 546f 2070 726f ."..].. To pro │ │ │ │ +00003560: 6475 6365 20e2 8098 5469 6b5a 2f50 4746 duce ...TikZ/PGF │ │ │ │ +00003570: e280 992c 2074 6865 2063 6f72 7265 7370 ..., the corresp │ │ │ │ +00003580: 6f6e 6469 6e67 2063 6f64 6520 6973 0a20 onding code is. │ │ │ │ +00003590: 2070 6f6c 7967 6f6e 5b66 696c 6c3d 6c69 polygon[fill=li │ │ │ │ +000035a0: 6768 7467 7261 792c 6c69 6e65 2077 6964 ghtgray,line wid │ │ │ │ +000035b0: 7468 3d33 7074 5d28 302c 302c 3129 2831 th=3pt](0,0,1)(1 │ │ │ │ +000035c0: 2c30 2c30 2928 302c 312c 3029 0a20 206c ,0,0)(0,1,0). l │ │ │ │ +000035d0: 696e 655b 7374 796c 653d 646f 7474 6564 ine[style=dotted │ │ │ │ +000035e0: 5d28 2d31 2c2d 312c 2d31 2928 322c 322c ](-1,-1,-1)(2,2, │ │ │ │ +000035f0: 3229 0a20 2067 6c6f 6261 6c20 7b20 6c61 2). global { la │ │ │ │ +00003600: 6e67 7561 6765 2074 696b 7a20 7d0a 5468 nguage tikz }.Th │ │ │ │ +00003610: 6520 6669 6e61 6c20 e280 9867 6c6f 6261 e final ...globa │ │ │ │ +00003620: 6ce2 8099 2069 6e73 7472 7563 7473 20e2 l... instructs . │ │ │ │ +00003630: 8098 736b 6574 6368 e280 9920 746f 2070 ..sketch... to p │ │ │ │ +00003640: 726f 6475 6365 20e2 8098 5469 6b5a 2f50 roduce ...TikZ/P │ │ │ │ +00003650: 4746 e280 9920 636f 6465 2061 730a 6f75 GF... code as.ou │ │ │ │ +00003660: 7470 7574 2072 6174 6865 7220 7468 616e tput rather than │ │ │ │ +00003670: 2074 6865 2064 6566 6175 6c74 2c20 e280 the default, .. │ │ │ │ +00003680: 9850 5354 7269 636b 73e2 8099 2e20 204e .PSTricks.... N │ │ │ │ +00003690: 6f74 6520 7468 6174 20e2 8098 706f 6c79 ote that ...poly │ │ │ │ +000036a0: 676f 6ee2 8099 2066 696c 6c0a 636f 6c6f gon... fill.colo │ │ │ │ +000036b0: 7220 616e 6420 e280 986c 696e 65e2 8099 r and ...line... │ │ │ │ +000036c0: 2073 7479 6c65 206f 7074 696f 6e73 2062 style options b │ │ │ │ +000036d0: 6f74 6820 636f 6e66 6f72 6d20 746f 20e2 oth conform to . │ │ │ │ +000036e0: 8098 5469 6b5a e280 9920 7379 6e74 6178 ..TikZ... syntax │ │ │ │ +000036f0: 2072 756c 6573 2e20 2054 6865 0a72 6573 rules. The.res │ │ │ │ +00003700: 756c 7469 6e67 20e2 8098 5469 6b5a 2f50 ulting ...TikZ/P │ │ │ │ +00003710: 4746 e280 9920 6f75 7470 7574 2069 730a GF... output is. │ │ │ │ +00003720: 2020 5c62 6567 696e 7b74 696b 7a70 6963 \begin{tikzpic │ │ │ │ +00003730: 7475 7265 7d5b 6a6f 696e 3d72 6f75 6e64 ture}[join=round │ │ │ │ +00003740: 5d0a 2020 5c64 7261 775b 646f 7474 6564 ]. \draw[dotted │ │ │ │ +00003750: 5d28 2d31 2c2d 3129 2d2d 282e 3333 332c ](-1,-1)--(.333, │ │ │ │ +00003760: 2e33 3333 293b 0a20 205c 6669 6c6c 6472 .333);. \filldr │ │ │ │ +00003770: 6177 5b66 696c 6c3d 6c69 6768 7467 7261 aw[fill=lightgra │ │ │ │ +00003780: 792c 6c69 6e65 2077 6964 7468 3d33 7074 y,line width=3pt │ │ │ │ +00003790: 5d28 302c 3029 2d2d 2831 2c30 292d 2d28 ](0,0)--(1,0)--( │ │ │ │ +000037a0: 302c 3129 2d2d 6379 636c 653b 0a20 205c 0,1)--cycle;. \ │ │ │ │ +000037b0: 6472 6177 5b64 6f74 7465 645d 282e 3333 draw[dotted](.33 │ │ │ │ +000037c0: 332c 2e33 3333 292d 2d28 322c 3229 3b0a 3,.333)--(2,2);. │ │ │ │ +000037d0: 2020 5c65 6e64 7b74 696b 7a70 6963 7475 \end{tikzpictu │ │ │ │ +000037e0: 7265 7d0a 5468 6520 7265 6d61 696e 696e re}.The remainin │ │ │ │ +000037f0: 6720 6578 616d 706c 6573 206f 6620 7468 g examples of th │ │ │ │ +00003800: 6973 206d 616e 7561 6c20 6172 6520 696e is manual are in │ │ │ │ +00003810: 2050 5354 7269 636b 7320 7374 796c 652e PSTricks style. │ │ │ │ +00003820: 0a0a 1f0a 4669 6c65 3a20 736b 6574 6368 ....File: sketch │ │ │ │ +00003830: 2e69 6e66 6f2c 2020 4e6f 6465 3a20 4472 .info, Node: Dr │ │ │ │ +00003840: 6177 696e 6720 6120 736f 6c69 642c 2020 awing a solid, │ │ │ │ +00003850: 4e65 7874 3a20 5370 6563 6961 6c20 6f62 Next: Special ob │ │ │ │ +00003860: 6a65 6374 732c 2020 5072 6576 3a20 4472 jects, Prev: Dr │ │ │ │ +00003870: 6177 696e 6720 6f70 7469 6f6e 732c 2020 awing options, │ │ │ │ +00003880: 5570 3a20 496e 7472 6f64 7563 7469 6f6e Up: Introduction │ │ │ │ +00003890: 2062 7920 6578 616d 706c 650a 0a32 2e33 by example..2.3 │ │ │ │ +000038a0: 2044 7261 7769 6e67 2061 2073 6f6c 6964 Drawing a solid │ │ │ │ +000038b0: 0a3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d .=============== │ │ │ │ +000038c0: 3d3d 3d3d 0a0a 4c65 7427 7320 7472 7920 ====..Let's try │ │ │ │ +000038d0: 736f 6d65 7468 696e 6720 6d6f 7265 2065 something more e │ │ │ │ +000038e0: 7863 6974 696e 672e 2020 e280 9853 6b65 xciting. ...Ske │ │ │ │ +000038f0: 7463 68e2 8099 2068 6173 206e 6f20 6e6f tch... has no no │ │ │ │ +00003900: 7469 6f6e 206f 6620 6120 736f 6c69 642c tion of a solid, │ │ │ │ +00003910: 0a62 7574 2070 6f6c 7967 6f6e 616c 20e2 .but polygonal . │ │ │ │ +00003920: 809c 6661 6365 73e2 809d 2063 616e 2062 ..faces... can b │ │ │ │ +00003930: 6520 7573 6564 2074 6f20 7265 7072 6573 e used to repres │ │ │ │ +00003940: 656e 7420 7468 6520 626f 756e 6461 7279 ent the boundary │ │ │ │ +00003950: 206f 6620 6120 736f 6c69 642e 0a54 6f20 of a solid..To │ │ │ │ +00003960: 7468 6520 7072 6576 696f 7573 2065 7861 the previous exa │ │ │ │ +00003970: 6d70 6c65 2c20 6c65 7427 7320 6164 6420 mple, let's add │ │ │ │ +00003980: 7468 7265 6520 6d6f 7265 2074 7269 616e three more trian │ │ │ │ +00003990: 6775 6c61 7220 706f 6c79 676f 6e73 2074 gular polygons t │ │ │ │ +000039a0: 6f0a 6d61 6b65 2074 6865 2066 6163 6573 o.make the faces │ │ │ │ +000039b0: 206f 6620 616e 2069 7272 6567 756c 6172 of an irregular │ │ │ │ +000039c0: 2074 6574 7261 6865 6472 6f6e 2e0a 2020 tetrahedron.. │ │ │ │ +000039d0: 2520 7665 7274 6963 6573 206f 6620 7468 % vertices of th │ │ │ │ +000039e0: 6520 7465 7472 6168 6564 726f 6e0a 2020 e tetrahedron. │ │ │ │ +000039f0: 6465 6620 7031 2028 302c 302c 3129 2064 def p1 (0,0,1) d │ │ │ │ +00003a00: 6566 2070 3220 2831 2c30 2c30 290a 2020 ef p2 (1,0,0). │ │ │ │ +00003a10: 6465 6620 7033 2028 302c 312c 3029 2064 def p3 (0,1,0) d │ │ │ │ +00003a20: 6566 2070 3420 282d 2e33 2c2d 2e35 2c2d ef p4 (-.3,-.5,- │ │ │ │ +00003a30: 2e38 290a 0a20 2025 2066 6163 6573 206f .8).. % faces o │ │ │ │ +00003a40: 6620 7468 6520 7465 7472 6168 6564 726f f the tetrahedro │ │ │ │ +00003a50: 6e2e 0a20 2070 6f6c 7967 6f6e 2870 3129 n.. polygon(p1) │ │ │ │ +00003a60: 2870 3229 2870 3329 2025 206f 7269 6769 (p2)(p3) % origi │ │ │ │ +00003a70: 6e61 6c20 6672 6f6e 7420 706f 6c79 676f nal front polygo │ │ │ │ +00003a80: 6e0a 2020 706f 6c79 676f 6e28 7031 2928 n. polygon(p1)( │ │ │ │ +00003a90: 7034 2928 7032 2920 2520 626f 7474 6f6d p4)(p2) % bottom │ │ │ │ +00003aa0: 0a20 2070 6f6c 7967 6f6e 2870 3129 2870 . polygon(p1)(p │ │ │ │ +00003ab0: 3329 2870 3429 2025 206c 6566 740a 2020 3)(p4) % left. │ │ │ │ +00003ac0: 706f 6c79 676f 6e28 7033 2928 7032 2928 polygon(p3)(p2)( │ │ │ │ +00003ad0: 7034 2920 2520 7265 6172 0a0a 2020 2520 p4) % rear.. % │ │ │ │ +00003ae0: 6c69 6e65 2074 6f20 7069 6572 6365 2074 line to pierce t │ │ │ │ +00003af0: 6865 2074 6574 7261 6865 6472 6f6e 0a20 he tetrahedron. │ │ │ │ +00003b00: 206c 696e 655b 6c69 6e65 636f 6c6f 723d line[linecolor= │ │ │ │ +00003b10: 7265 645d 282d 312c 2d31 2c2d 3129 2832 red](-1,-1,-1)(2 │ │ │ │ +00003b20: 2c32 2c32 290a 5468 6973 2065 7861 6d70 ,2,2).This examp │ │ │ │ +00003b30: 6c65 2075 7365 7320 e280 9c64 6566 696e le uses ...defin │ │ │ │ +00003b40: 6974 696f 6e73 e280 9d2c 2077 6869 6368 itions..., which │ │ │ │ +00003b50: 2062 6567 696e 2077 6974 6820 e280 9864 begin with ...d │ │ │ │ +00003b60: 6566 e280 992e 2020 5468 6573 6520 e280 ef.... These .. │ │ │ │ +00003b70: 9c64 6566 696e 65e2 809d 0a6f 7220 6769 .define....or gi │ │ │ │ +00003b80: 7665 206e 616d 6573 2074 6f20 706f 696e ve names to poin │ │ │ │ +00003b90: 7473 2c20 7768 6963 6820 6172 6520 7468 ts, which are th │ │ │ │ +00003ba0: 656e 2061 7661 696c 6162 6c65 2061 7320 en available as │ │ │ │ +00003bb0: e280 9c72 6566 6572 656e 6365 73e2 809d ...references... │ │ │ │ +00003bc0: 2062 790a 656e 636c 6f73 696e 6720 7468 by.enclosing th │ │ │ │ +00003bd0: 6520 6e61 6d65 7320 696e 2070 6172 656e e names in paren │ │ │ │ +00003be0: 7468 6573 6573 2c20 652e 672e 2028 666f theses, e.g. (fo │ │ │ │ +00003bf0: 6f29 2e20 2054 6865 2070 6172 656e 7468 o). The parenth │ │ │ │ +00003c00: 6573 6573 2064 656e 6f74 650a 7468 6174 eses denote.that │ │ │ │ +00003c10: 2074 6865 206e 616d 6573 2072 6566 6572 the names refer │ │ │ │ +00003c20: 2074 6f20 706f 696e 7473 3b20 7468 6579 to points; they │ │ │ │ +00003c30: 2061 7265 2072 6571 7569 7265 642e 2020 are required. │ │ │ │ +00003c40: 5468 6572 6520 6361 6e20 6265 206e 6f0a There can be no. │ │ │ │ +00003c50: 7768 6974 6520 7370 6163 6520 6265 7477 white space betw │ │ │ │ +00003c60: 6565 6e20 7468 656d 2061 6e64 2074 6865 een them and the │ │ │ │ +00003c70: 206e 616d 652e 0a0a 2020 2041 7320 796f name... As yo │ │ │ │ +00003c80: 7520 6361 6e20 7365 652c 2063 6f6d 6d65 u can see, comme │ │ │ │ +00003c90: 6e74 7320 7374 6172 7420 7769 7468 2025 nts start with % │ │ │ │ +00003ca0: 2061 7320 696e 2054 6558 2061 6e64 2065 as in TeX and e │ │ │ │ +00003cb0: 7874 656e 6420 746f 2074 6865 2065 6e64 xtend to the end │ │ │ │ +00003cc0: 0a6f 6620 7468 6520 6c69 6e65 2028 7468 .of the line (th │ │ │ │ +00003cd0: 6f75 6768 2023 2077 696c 6c20 776f 726b ough # will work │ │ │ │ +00003ce0: 2061 7320 7765 6c6c 292e 2020 5768 6974 as well). Whit │ │ │ │ +00003cf0: 6520 7370 6163 652c 2069 6e63 6c75 6469 e space, includi │ │ │ │ +00003d00: 6e67 0a73 7061 6365 732c 2074 6162 7320 ng.spaces, tabs │ │ │ │ +00003d10: 616e 6420 626c 616e 6b20 6c69 6e65 732c and blank lines, │ │ │ │ +00003d20: 2068 6173 206e 6f20 6566 6665 6374 2069 has no effect i │ │ │ │ +00003d30: 6e20 7468 6520 e280 9873 6b65 7463 68e2 n the ...sketch. │ │ │ │ +00003d40: 8099 206c 616e 6775 6167 652e 0a0a 0008 .. language..... │ │ │ │ +00003d50: 5b69 6d61 6765 2073 7263 3d22 6578 3034 [image src="ex04 │ │ │ │ +00003d60: 302e 706e 6722 2074 6578 743d 2249 6d61 0.png" text="Ima │ │ │ │ +00003d70: 6765 2065 7830 3430 206f 6d69 7474 6564 ge ex040 omitted │ │ │ │ +00003d80: 2069 6e20 7465 7874 2076 6572 7369 6f6e in text version │ │ │ │ +00003d90: 206f 6620 7468 6973 2064 6f63 756d 656e of this documen │ │ │ │ +00003da0: 742e 2200 085d 0a0a 4966 2077 6520 6c6f t."..]..If we lo │ │ │ │ +00003db0: 6f6b 2069 6e73 6964 6520 7468 6520 5465 ok inside the Te │ │ │ │ +00003dc0: 5820 6669 6c65 2070 726f 6475 6365 6420 X file produced │ │ │ │ +00003dd0: 6279 20e2 8098 736b 6574 6368 e280 992c by ...sketch..., │ │ │ │ +00003de0: 2074 6865 7265 2077 696c 6c20 6265 206f there will be o │ │ │ │ +00003df0: 6e6c 790a 7468 7265 6520 706f 6c79 676f nly.three polygo │ │ │ │ +00003e00: 6e73 2e20 2054 6865 2066 6f75 7274 6820 ns. The fourth │ │ │ │ +00003e10: 6861 7320 6265 656e 2063 756c 6c65 6420 has been culled │ │ │ │ +00003e20: 6265 6361 7573 6520 6974 2069 7320 6120 because it is a │ │ │ │ +00003e30: 2262 6163 6b20 6661 6365 220a 6f66 2074 "back face".of t │ │ │ │ +00003e40: 6865 2074 6574 7261 6865 6472 6f6e 2c20 he tetrahedron, │ │ │ │ +00003e50: 696e 7669 7369 626c 6520 746f 206f 7572 invisible to our │ │ │ │ +00003e60: 2076 6965 772e 2020 4974 2069 7320 756e view. It is un │ │ │ │ +00003e70: 6e65 6365 7373 6172 792c 2061 6e64 2073 necessary, and s │ │ │ │ +00003e80: 6f20 6974 0a69 7320 7265 6d6f 7665 642e o it.is removed. │ │ │ │ +00003e90: 0a0a 2020 2049 6e20 736f 6d65 2064 7261 .. In some dra │ │ │ │ +00003ea0: 7769 6e67 732c 2070 6f6c 7967 6f6e 7320 wings, polygons │ │ │ │ +00003eb0: 6163 7420 6173 207a 6572 6f2d 7468 6963 act as zero-thic │ │ │ │ +00003ec0: 6b6e 6573 7320 736f 6c69 6420 7375 7266 kness solid surf │ │ │ │ +00003ed0: 6163 6573 2077 6974 680a 626f 7468 2073 aces with.both s │ │ │ │ +00003ee0: 6964 6573 2076 6973 6962 6c65 2072 6174 ides visible rat │ │ │ │ +00003ef0: 6865 7220 7468 616e 2061 7320 7468 6520 her than as the │ │ │ │ +00003f00: 6661 6365 7320 6f66 2073 6f6c 6964 206f faces of solid o │ │ │ │ +00003f10: 626a 6563 7473 2c20 7768 6572 6520 6261 bjects, where ba │ │ │ │ +00003f20: 636b 0a66 6163 6573 2063 616e 2062 6520 ck.faces can be │ │ │ │ +00003f30: 6375 6c6c 6564 2e20 2046 6f72 207a 6572 culled. For zer │ │ │ │ +00003f40: 6f2d 7468 6963 6b6e 6573 7320 736f 6c69 o-thickness soli │ │ │ │ +00003f50: 6473 2c20 6375 6c6c 696e 6720 6973 2061 ds, culling is a │ │ │ │ +00003f60: 2070 726f 626c 656d 2e0a 4f6e 6520 736f problem..One so │ │ │ │ +00003f70: 6c75 7469 6f6e 2069 7320 746f 2075 7365 lution is to use │ │ │ │ +00003f80: 2061 2070 6169 7220 6f66 20e2 8098 736b a pair of ...sk │ │ │ │ +00003f90: 6574 6368 e280 9920 706f 6c79 676f 6e73 etch... polygons │ │ │ │ +00003fa0: 2066 6f72 2065 6163 680a 7a65 726f 2d74 for each.zero-t │ │ │ │ +00003fb0: 6869 636b 6e65 7373 2066 6163 652c 2069 hickness face, i │ │ │ │ +00003fc0: 6465 6e74 6963 616c 2065 7863 6570 7420 dentical except │ │ │ │ +00003fd0: 7769 7468 206f 7070 6f73 6974 6520 7665 with opposite ve │ │ │ │ +00003fe0: 7274 6578 206f 7264 6572 732e 2020 5468 rtex orders. Th │ │ │ │ +00003ff0: 6973 0a69 7320 756e 7769 656c 6479 2061 is.is unwieldy a │ │ │ │ +00004000: 6e64 2065 7870 656e 7369 7665 2e20 2041 nd expensive. A │ │ │ │ +00004010: 2062 6574 7465 7220 7761 7920 6973 2074 better way is t │ │ │ │ +00004020: 6f20 7365 7420 7468 6520 e280 9873 6b65 o set the ...ske │ │ │ │ +00004030: 7463 68e2 8099 2069 6e74 6572 6e61 6c0a tch... internal. │ │ │ │ +00004040: 6f70 7469 6f6e 20e2 8098 6375 6c6c e280 option ...cull.. │ │ │ │ +00004050: 9920 746f 20e2 8098 6661 6c73 65e2 8099 . to ...false... │ │ │ │ +00004060: 2069 6e20 7468 6520 7573 7561 6c20 e280 in the usual .. │ │ │ │ +00004070: 9850 5354 7269 636b 73e2 8099 206d 616e .PSTricks... man │ │ │ │ +00004080: 6e65 722e 0a20 2070 6f6c 7967 6f6e 5b63 ner.. polygon[c │ │ │ │ +00004090: 756c 6c3d 6661 6c73 655d 2870 3129 2870 ull=false](p1)(p │ │ │ │ +000040a0: 3229 2870 3329 0a54 6865 2066 6f6c 6c6f 2)(p3).The follo │ │ │ │ +000040b0: 7769 6e67 2073 686f 7773 2074 6865 2073 wing shows the s │ │ │ │ +000040c0: 616d 6520 6865 6c69 7820 7368 6170 6520 ame helix shape │ │ │ │ +000040d0: 6472 6177 6e20 6669 7273 7420 7769 7468 drawn first with │ │ │ │ +000040e0: 2063 756c 6c3d 7472 7565 2028 7468 650a cull=true (the. │ │ │ │ +000040f0: 6465 6661 756c 7429 2061 6e64 2074 6865 default) and the │ │ │ │ +00004100: 6e20 6375 6c6c 3d66 616c 7365 2e0a 0a00 n cull=false.... │ │ │ │ +00004110: 085b 696d 6167 6520 7372 633d 2265 7830 .[image src="ex0 │ │ │ │ +00004120: 3435 2e70 6e67 2220 7465 7874 3d22 496d 45.png" text="Im │ │ │ │ +00004130: 6167 6520 6578 3034 3520 6f6d 6974 7465 age ex045 omitte │ │ │ │ +00004140: 6420 696e 2074 6578 7420 7665 7273 696f d in text versio │ │ │ │ +00004150: 6e20 6f66 2074 6869 7320 646f 6375 6d65 n of this docume │ │ │ │ +00004160: 6e74 2e22 0008 5d0a 0a57 6527 6c6c 2073 nt."..]..We'll s │ │ │ │ +00004170: 6f6f 6e20 7365 6520 686f 7720 746f 2070 oon see how to p │ │ │ │ +00004180: 726f 6475 6365 2074 6865 7365 2068 656c roduce these hel │ │ │ │ +00004190: 6978 6573 2077 6974 6820 6120 6665 7720 ixes with a few │ │ │ │ +000041a0: 6c69 6e65 7320 6f66 20e2 8098 736b 6574 lines of ...sket │ │ │ │ +000041b0: 6368 e280 990a 6c61 6e67 7561 6765 2063 ch....language c │ │ │ │ +000041c0: 6f64 652e 0a0a 2020 2049 7420 6d61 7920 ode... It may │ │ │ │ +000041d0: 6265 2074 656d 7074 696e 6720 746f 2074 be tempting to t │ │ │ │ +000041e0: 7572 6e20 6375 6c6c 696e 6720 6f66 6620 urn culling off │ │ │ │ +000041f0: 6772 6174 7569 746f 7573 6c79 2073 6f20 gratuitously so │ │ │ │ +00004200: 7468 6174 2076 6572 7465 780a 6f72 6465 that vertex.orde │ │ │ │ +00004210: 7220 6361 6e20 6265 2069 676e 6f72 6564 r can be ignored │ │ │ │ +00004220: 2e20 2054 6869 7320 6973 206e 6f74 2061 . This is not a │ │ │ │ +00004230: 2067 6f6f 6420 6964 6561 2062 6563 6175 good idea becau │ │ │ │ +00004240: 7365 206f 7574 7075 7420 6669 6c65 2073 se output file s │ │ │ │ +00004250: 697a 650a 616e 6420 5465 5820 616e 6420 ize.and TeX and │ │ │ │ +00004260: 506f 7374 7363 7269 7074 2070 726f 6365 Postscript proce │ │ │ │ +00004270: 7373 696e 6720 7469 6d65 2062 6f74 6820 ssing time both │ │ │ │ +00004280: 6465 7065 6e64 206f 6e20 7468 6520 6e75 depend on the nu │ │ │ │ +00004290: 6d62 6572 206f 660a 6f75 7470 7574 2070 mber of.output p │ │ │ │ +000042a0: 6f6c 7967 6f6e 732e 2020 4375 6c6c 696e olygons. Cullin │ │ │ │ +000042b0: 6720 7573 7561 6c6c 7920 696d 7072 6f76 g usually improv │ │ │ │ +000042c0: 6573 2070 6572 666f 726d 616e 6365 2062 es performance b │ │ │ │ +000042d0: 7920 6120 6661 6374 6f72 206f 660a 7477 y a factor of.tw │ │ │ │ +000042e0: 6f2e 2020 4f6e 2074 6865 206f 7468 6572 o. On the other │ │ │ │ +000042f0: 2068 616e 642c 2067 6c6f 6261 6c6c 7920 hand, globally │ │ │ │ +00004300: 7365 7474 696e 6720 e280 9863 756c 6c3d setting ...cull= │ │ │ │ +00004310: 6661 6c73 65e2 8099 2069 7320 7265 6173 false... is reas │ │ │ │ +00004320: 6f6e 6162 6c65 0a77 6869 6c65 2064 6562 onable.while deb │ │ │ │ +00004330: 7567 6769 6e67 2e20 2053 6565 202a 6e6f ugging. See *no │ │ │ │ +00004340: 7465 2047 6c6f 6261 6c20 6f70 7469 6f6e te Global option │ │ │ │ +00004350: 733a 3a20 616e 6420 2a6e 6f74 6520 4c69 s:: and *note Li │ │ │ │ +00004360: 6d69 7473 206f 6e20 6572 726f 720a 6465 mits on error.de │ │ │ │ +00004370: 7465 6374 696f 6e3a 3a2e 0a0a 1f0a 4669 tection::.....Fi │ │ │ │ +00004380: 6c65 3a20 736b 6574 6368 2e69 6e66 6f2c le: sketch.info, │ │ │ │ +00004390: 2020 4e6f 6465 3a20 5370 6563 6961 6c20 Node: Special │ │ │ │ +000043a0: 6f62 6a65 6374 732c 2020 4e65 7874 3a20 objects, Next: │ │ │ │ +000043b0: 4f62 6a65 6374 2074 7261 6e73 666f 726d Object transform │ │ │ │ +000043c0: 732c 2020 5072 6576 3a20 4472 6177 696e s, Prev: Drawin │ │ │ │ +000043d0: 6720 6120 736f 6c69 642c 2020 5570 3a20 g a solid, Up: │ │ │ │ +000043e0: 496e 7472 6f64 7563 7469 6f6e 2062 7920 Introduction by │ │ │ │ +000043f0: 6578 616d 706c 650a 0a32 2e34 2053 7065 example..2.4 Spe │ │ │ │ +00004400: 6369 616c 206f 626a 6563 7473 0a3d 3d3d cial objects.=== │ │ │ │ +00004410: 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d ================ │ │ │ │ +00004420: 0a0a 5765 2063 616e 2061 6464 206c 6162 ..We can add lab │ │ │ │ +00004430: 656c 7320 746f 2061 2064 7261 7769 6e67 els to a drawing │ │ │ │ +00004440: 2062 7920 7573 696e 6720 7370 6563 6961 by using specia │ │ │ │ +00004450: 6c20 6f62 6a65 6374 732c 2077 6869 6368 l objects, which │ │ │ │ +00004460: 2070 726f 7669 6465 2061 0a77 6179 2074 provide a.way t │ │ │ │ +00004470: 6f20 656d 6265 6420 7261 7720 4c61 5465 o embed raw LaTe │ │ │ │ +00004480: 5820 616e 6420 e280 9850 5354 7269 636b X and ...PSTrick │ │ │ │ +00004490: 73e2 8099 2063 6f64 652e 2020 4164 6469 s... code. Addi │ │ │ │ +000044a0: 6e67 2074 6869 7320 746f 2074 6865 0a74 ng this to the.t │ │ │ │ +000044b0: 6574 7261 6865 6472 6f6e 2064 6f65 7320 etrahedron does │ │ │ │ +000044c0: 7468 6520 7472 6963 6b2e 0a20 2073 7065 the trick.. spe │ │ │ │ +000044d0: 6369 616c 207c 5c66 6f6f 746e 6f74 6573 cial |\footnotes │ │ │ │ +000044e0: 697a 650a 2020 2020 2020 2020 2020 205c ize. \ │ │ │ │ +000044f0: 7570 7574 7b32 7074 7d5b 7572 5d23 317b uput{2pt}[ur]#1{ │ │ │ │ +00004500: 2450 3124 7d0a 2020 2020 2020 2020 2020 $P1$}. │ │ │ │ +00004510: 205c 7570 7574 5b72 5d23 327b 2450 3224 \uput[r]#2{$P2$ │ │ │ │ +00004520: 7d0a 2020 2020 2020 2020 2020 205c 7570 }. \up │ │ │ │ +00004530: 7574 5b75 5d23 337b 2450 3324 7d0a 2020 ut[u]#3{$P3$}. │ │ │ │ +00004540: 2020 2020 2020 2020 205c 7570 7574 5b64 \uput[d │ │ │ │ +00004550: 5d23 347b 2450 3424 7d7c 0a20 2020 2028 ]#4{$P4$}|. ( │ │ │ │ +00004560: 7031 2928 7032 2928 7033 2928 7034 290a p1)(p2)(p3)(p4). │ │ │ │ +00004570: 4865 7265 2069 7320 7468 6520 7265 7375 Here is the resu │ │ │ │ +00004580: 6c74 2e0a 0a00 085b 696d 6167 6520 7372 lt.....[image sr │ │ │ │ +00004590: 633d 2265 7830 3432 2e70 6e67 2220 7465 c="ex042.png" te │ │ │ │ +000045a0: 7874 3d22 496d 6167 6520 6578 3034 3220 xt="Image ex042 │ │ │ │ +000045b0: 6f6d 6974 7465 6420 696e 2074 6578 7420 omitted in text │ │ │ │ +000045c0: 7665 7273 696f 6e20 6f66 2074 6869 7320 version of this │ │ │ │ +000045d0: 646f 6375 6d65 6e74 2e22 0008 5d0a 0a20 document."..].. │ │ │ │ +000045e0: 2020 5468 6572 6520 6172 6520 7365 7665 There are seve │ │ │ │ +000045f0: 7261 6c20 6465 7461 696c 7320 746f 206e ral details to n │ │ │ │ +00004600: 6f74 6520 6865 7265 2e20 2046 6972 7374 ote here. First │ │ │ │ +00004610: 2c20 7468 6520 7175 6f74 696e 670a 636f , the quoting.co │ │ │ │ +00004620: 6e76 656e 7469 6f6e 2066 6f72 2074 6865 nvention for the │ │ │ │ +00004630: 2072 6177 2063 6f64 6520 6973 2073 696d raw code is sim │ │ │ │ +00004640: 696c 6172 2074 6f20 7468 6520 4c61 5465 ilar to the LaTe │ │ │ │ +00004650: 5820 5c76 6572 6220 636f 6d6d 616e 642e X \verb command. │ │ │ │ +00004660: 2020 5468 650a 6669 7273 7420 6e6f 6e2d The.first non- │ │ │ │ +00004670: 7768 6974 6520 7370 6163 6520 6368 6172 white space char │ │ │ │ +00004680: 6163 7465 7220 666f 6c6c 6f77 696e 6720 acter following │ │ │ │ +00004690: 7370 6563 6961 6c20 6973 2075 6e64 6572 special is under │ │ │ │ +000046a0: 7374 6f6f 6420 746f 2062 650a 7468 6520 stood to be.the │ │ │ │ +000046b0: 7175 6f74 6520 6368 6172 6163 7465 722c quote character, │ │ │ │ +000046c0: 2069 6e20 7468 6973 2063 6173 6520 e280 in this case .. │ │ │ │ +000046d0: 987c e280 992e 2020 5468 6520 7261 7720 .|.... The raw │ │ │ │ +000046e0: 7465 7874 2063 6f6e 7469 6e75 6573 2075 text continues u │ │ │ │ +000046f0: 6e74 696c 0a74 6869 7320 6368 6172 6163 ntil.this charac │ │ │ │ +00004700: 7465 7220 7265 6375 7273 2e0a 0a20 2020 ter recurs... │ │ │ │ +00004710: 5365 636f 6e64 2c20 7468 6520 6172 6775 Second, the argu │ │ │ │ +00004720: 6d65 6e74 2072 6566 6572 656e 6365 7320 ment references │ │ │ │ +00004730: 2331 2c20 2332 2c20 2333 2c20 616e 6420 #1, #2, #3, and │ │ │ │ +00004740: 2334 2072 6566 6572 2074 6f20 706f 696e #4 refer to poin │ │ │ │ +00004750: 742c 0a76 6563 746f 722c 206f 7220 7363 t,.vector, or sc │ │ │ │ +00004760: 616c 6172 2076 616c 7565 7320 696e 2074 alar values in t │ │ │ │ +00004770: 6865 206c 6973 7420 7468 6174 2066 6f6c he list that fol │ │ │ │ +00004780: 6c6f 772e 2020 5468 6973 2069 7320 7369 low. This is si │ │ │ │ +00004790: 6d69 6c61 7220 746f 0a54 6558 206d 6163 milar to.TeX mac │ │ │ │ +000047a0: 726f 2073 796e 7461 782e 2020 5468 6520 ro syntax. The │ │ │ │ +000047b0: 7472 616e 7366 6f72 6d65 6420 616e 6420 transformed and │ │ │ │ +000047c0: 7477 6f2d 6469 6d65 6e73 696f 6e61 6c20 two-dimensional │ │ │ │ +000047d0: 7072 6f6a 6563 7469 6f6e 7320 6f66 0a74 projections of.t │ │ │ │ +000047e0: 6865 7365 2074 6872 6565 2d64 696d 656e hese three-dimen │ │ │ │ +000047f0: 7369 6f6e 616c 2070 6f69 6e74 7320 6172 sional points ar │ │ │ │ +00004800: 6520 7375 6273 7469 7475 7465 6420 696e e substituted in │ │ │ │ +00004810: 2074 6865 2066 696e 616c 206f 7574 7075 the final outpu │ │ │ │ +00004820: 742e 2020 416e 0a61 7267 756d 656e 7420 t. An.argument │ │ │ │ +00004830: 7265 6665 7265 6e63 6520 6f66 2074 6865 reference of the │ │ │ │ +00004840: 2066 6f72 6d20 2331 2d32 2069 7320 7265 form #1-2 is re │ │ │ │ +00004850: 706c 6163 6564 2077 6974 6820 7468 6520 placed with the │ │ │ │ +00004860: 616e 676c 6520 696e 0a64 6567 7265 6573 angle in.degrees │ │ │ │ +00004870: 206f 6620 7468 6520 7477 6f2d 6469 6d65 of the two-dime │ │ │ │ +00004880: 6e73 696f 6e61 6c20 7665 6374 6f72 2074 nsional vector t │ │ │ │ +00004890: 6861 7420 636f 6e6e 6563 7473 2074 6865 hat connects the │ │ │ │ +000048a0: 2070 726f 6a65 6374 696f 6e73 206f 660a projections of. │ │ │ │ +000048b0: 7468 6520 7477 6f20 7265 7370 6563 7469 the two respecti │ │ │ │ +000048c0: 7665 2061 7267 756d 656e 7420 706f 696e ve argument poin │ │ │ │ +000048d0: 7473 2c20 6865 7265 2023 3120 616e 6420 ts, here #1 and │ │ │ │ +000048e0: 2332 2e20 2054 6865 2073 7562 7374 6974 #2. The substit │ │ │ │ +000048f0: 7574 6564 0a61 6e67 6c65 2069 7320 656e uted.angle is en │ │ │ │ +00004900: 636c 6f73 6564 2069 6e20 6375 726c 7920 closed in curly │ │ │ │ +00004910: 6272 6163 6573 20e2 8098 7b20 7de2 8099 braces ...{ }... │ │ │ │ +00004920: 2e20 2057 6865 6e20 e280 9854 696b 5a2f . When ...TikZ/ │ │ │ │ +00004930: 5047 46e2 8099 206f 7574 7075 7420 6973 PGF... output is │ │ │ │ +00004940: 0a62 6569 6e67 2067 656e 6572 6174 6564 .being generated │ │ │ │ +00004950: 2c20 7468 6520 616e 676c 6520 6973 2072 , the angle is r │ │ │ │ +00004960: 6f75 6e64 6564 2074 6f20 7468 6520 6e65 ounded to the ne │ │ │ │ +00004970: 6172 6573 7420 6465 6772 6565 2062 6563 arest degree bec │ │ │ │ +00004980: 6175 7365 0a6e 6f6e 2d69 6e74 6567 6572 ause.non-integer │ │ │ │ +00004990: 2061 6e67 6c65 7320 6172 6520 6e6f 7420 angles are not │ │ │ │ +000049a0: 616c 6c6f 7765 6420 6279 20e2 8098 5469 allowed by ...Ti │ │ │ │ +000049b0: 6b5a 2f50 4746 e280 9920 7072 696d 6974 kZ/PGF... primit │ │ │ │ +000049c0: 6976 6573 2e0a 0a20 2020 4173 206f 6620 ives... As of │ │ │ │ +000049d0: 5665 7273 696f 6e20 302e 3320 6f66 20e2 Version 0.3 of . │ │ │ │ +000049e0: 8098 736b 6574 6368 e280 992c 2073 7065 ..sketch..., spe │ │ │ │ +000049f0: 6369 616c 2061 7267 756d 656e 7473 206d cial arguments m │ │ │ │ +00004a00: 6179 2062 6520 7363 616c 6172 7320 6f72 ay be scalars or │ │ │ │ +00004a10: 0a76 6563 746f 7273 2069 6e20 6164 6469 .vectors in addi │ │ │ │ +00004a20: 7469 6f6e 2074 6f20 706f 696e 7473 2e20 tion to points. │ │ │ │ +00004a30: 2052 6566 6572 656e 6365 7320 746f 2073 References to s │ │ │ │ +00004a40: 6361 6c61 7220 6172 6775 6d65 6e74 7320 calar arguments │ │ │ │ +00004a50: 6172 650a 6d65 7265 6c79 2072 6570 6c61 are.merely repla │ │ │ │ +00004a60: 6365 6420 7769 7468 2061 206e 756d 6265 ced with a numbe │ │ │ │ +00004a70: 7220 666f 726d 6174 7465 6420 6a75 7374 r formatted just │ │ │ │ +00004a80: 2061 7320 616e 7920 706f 696e 7420 636f as any point co │ │ │ │ +00004a90: 6f72 6469 6e61 7465 2e0a 5265 6665 7265 ordinate..Refere │ │ │ │ +00004aa0: 6e63 6573 2074 6f20 7665 6374 6f72 7320 nces to vectors │ │ │ │ +00004ab0: 6265 636f 6d65 2074 776f 2d64 696d 656e become two-dimen │ │ │ │ +00004ac0: 7369 6f6e 616c 2070 6f69 6e74 732e 2020 sional points. │ │ │ │ +00004ad0: 5468 6520 7469 636b 206f 7065 7261 746f The tick operato │ │ │ │ +00004ae0: 720a 7468 6174 2073 656c 6563 7473 2069 r.that selects i │ │ │ │ +00004af0: 6e64 6976 6964 7561 6c20 636f 6d70 6f6e ndividual compon │ │ │ │ +00004b00: 656e 7473 206f 6620 706f 696e 7473 2061 ents of points a │ │ │ │ +00004b10: 6e64 2076 6563 746f 7273 2065 6c73 6577 nd vectors elsew │ │ │ │ +00004b20: 6865 7265 2069 6e0a e280 9873 6b65 7463 here in....sketc │ │ │ │ +00004b30: 68e2 8099 2028 7365 6520 666f 7220 6578 h... (see for ex │ │ │ │ +00004b40: 616d 706c 6520 2a6e 6f74 6520 4166 6669 ample *note Affi │ │ │ │ +00004b50: 6e65 2061 7269 7468 6d65 7469 633a 3a29 ne arithmetic::) │ │ │ │ +00004b60: 2063 616e 2061 6c73 6f20 6265 2061 7070 can also be app │ │ │ │ +00004b70: 6c69 6564 0a74 6f20 706f 696e 7420 616e lied.to point an │ │ │ │ +00004b80: 6420 7665 6374 6f72 2061 7267 756d 656e d vector argumen │ │ │ │ +00004b90: 7420 7265 6665 7265 6e63 6573 2e20 2041 t references. A │ │ │ │ +00004ba0: 6c6c 2074 6872 6565 2064 696d 656e 7369 ll three dimensi │ │ │ │ +00004bb0: 6f6e 7320 6f66 2061 0a74 7261 6e73 666f ons of a.transfo │ │ │ │ +00004bc0: 726d 6564 2070 6f69 6e74 206f 7220 7665 rmed point or ve │ │ │ │ +00004bd0: 6374 6f72 2063 616e 2061 6c73 6f20 6265 ctor can also be │ │ │ │ +00004be0: 2073 7562 7374 6974 7565 6420 7769 7468 substitued with │ │ │ │ +00004bf0: 20e2 8098 2733 e280 992e 2020 5365 6520 ...'3.... See │ │ │ │ +00004c00: 2a6e 6f74 650a 5370 6563 6961 6c73 3a3a *note.Specials:: │ │ │ │ +00004c10: 2066 6f72 2064 6574 6169 6c73 2e0a 0a20 for details... │ │ │ │ +00004c20: 2020 4279 2064 6566 6175 6c74 2c20 e280 By default, .. │ │ │ │ +00004c30: 9873 7065 6369 616c e280 9920 6f62 6a65 .special... obje │ │ │ │ +00004c40: 6374 7320 6172 6520 7072 696e 7465 6420 cts are printed │ │ │ │ +00004c50: 6c61 7374 2c20 6f76 6572 6c61 7969 6e67 last, overlaying │ │ │ │ +00004c60: 2061 6c6c 206f 7468 6572 0a6f 626a 6563 all other.objec │ │ │ │ +00004c70: 7473 2069 6e20 7468 6520 7363 656e 652e ts in the scene. │ │ │ │ +00004c80: 2020 4966 2079 6f75 2073 7065 6369 6679 If you specify │ │ │ │ +00004c90: 2074 6865 2069 6e74 6572 6e61 6c20 6f70 the internal op │ │ │ │ +00004ca0: 7469 6f6e 20e2 8098 6c61 793d 696e e280 tion ...lay=in.. │ │ │ │ +00004cb0: 992c 2074 6865 0a68 6964 6465 6e20 7375 ., the.hidden su │ │ │ │ +00004cc0: 7266 6163 6520 616c 676f 7269 7468 6d20 rface algorithm │ │ │ │ +00004cd0: 636f 6e73 6964 6572 7320 7468 6520 656e considers the en │ │ │ │ +00004ce0: 7469 7265 2073 7065 6369 616c 206f 626a tire special obj │ │ │ │ +00004cf0: 6563 7420 746f 2062 6520 7468 650a 6669 ect to be the.fi │ │ │ │ +00004d00: 7273 7420 706f 696e 7420 2823 3129 2069 rst point (#1) i │ │ │ │ +00004d10: 6e20 7468 6520 6172 6775 6d65 6e74 206c n the argument l │ │ │ │ +00004d20: 6973 742e 2020 4966 2074 6861 7420 706f ist. If that po │ │ │ │ +00004d30: 696e 7420 6973 2062 6568 696e 6420 286f int is behind (o │ │ │ │ +00004d40: 660a 736d 616c 6c65 7220 7a2d 636f 6d70 f.smaller z-comp │ │ │ │ +00004d50: 6f6e 656e 7420 7468 616e 2920 616e 7920 onent than) any │ │ │ │ +00004d60: 6472 6177 6162 6c65 2c20 7468 656e 2074 drawable, then t │ │ │ │ +00004d70: 6865 2065 6e74 6972 6520 7370 6563 6961 he entire specia │ │ │ │ +00004d80: 6c20 6f62 6a65 6374 0a69 7320 6472 6177 l object.is draw │ │ │ │ +00004d90: 6e20 6265 666f 7265 2074 6861 7420 6472 n before that dr │ │ │ │ +00004da0: 6177 6162 6c65 2c20 736f 2074 6865 2064 awable, so the d │ │ │ │ +00004db0: 7261 7761 626c 6520 6f62 7363 7572 6573 rawable obscures │ │ │ │ +00004dc0: 2070 6172 7473 206f 6620 7468 650a 7370 parts of the.sp │ │ │ │ +00004dd0: 6563 6961 6c20 6f62 6a65 6374 2074 6861 ecial object tha │ │ │ │ +00004de0: 7420 6f76 6572 6c61 7073 2069 742e 2020 t overlaps it. │ │ │ │ +00004df0: 496e 206f 7572 2065 7861 6d70 6c65 2c20 In our example, │ │ │ │ +00004e00: 7031 2069 7320 7468 6520 6672 6f6e 742d p1 is the front- │ │ │ │ +00004e10: 6d6f 7374 0a70 6f69 6e74 2069 6e20 7468 most.point in th │ │ │ │ +00004e20: 6520 7363 656e 6520 2868 6173 2074 6865 e scene (has the │ │ │ │ +00004e30: 206c 6172 6765 7374 207a 2d63 6f6d 706f largest z-compo │ │ │ │ +00004e40: 6e65 6e74 292c 2073 6f20 6164 6469 6e67 nent), so adding │ │ │ │ +00004e50: 20e2 8098 6c61 793d 696e e280 9920 6861 ...lay=in... ha │ │ │ │ +00004e60: 730a 6e6f 2065 6666 6563 742e 0a0a 2020 s.no effect... │ │ │ │ +00004e70: 2057 6974 6820 6f70 7469 6f6e 20e2 8098 With option ... │ │ │ │ +00004e80: 6c61 793d 756e 6465 72e2 8099 2c20 6120 lay=under..., a │ │ │ │ +00004e90: 7370 6563 6961 6c20 6973 2064 7261 776e special is drawn │ │ │ │ +00004ea0: 205f 6265 666f 7265 5f2c 2068 656e 6365 _before_, hence │ │ │ │ +00004eb0: 2061 7070 6561 7273 0a5f 756e 6465 725f appears._under_ │ │ │ │ +00004ec0: 2061 6e79 206f 6620 7468 6520 6f62 6a65 any of the obje │ │ │ │ +00004ed0: 6374 7320 6861 6e64 6c65 6420 6279 2074 cts handled by t │ │ │ │ +00004ee0: 6865 2068 6964 6465 6e20 7375 7266 6163 he hidden surfac │ │ │ │ +00004ef0: 6520 616c 676f 7269 7468 6d2e 0a54 6869 e algorithm..Thi │ │ │ │ +00004f00: 7320 6973 2068 6f77 2074 6865 206c 6967 s is how the lig │ │ │ │ +00004f10: 6874 2067 7261 7920 6178 6573 2077 6572 ht gray axes wer │ │ │ │ +00004f20: 6520 6164 6465 6420 746f 2074 6865 2022 e added to the " │ │ │ │ +00004f30: 6865 6c6c 6f20 776f 726c 6422 2065 7861 hello world" exa │ │ │ │ +00004f40: 6d70 6c65 0a2a 6e6f 7465 2048 656c 6c6f mple.*note Hello │ │ │ │ +00004f50: 2077 6f72 6c64 3a3a 2e0a 0a20 2020 5370 world::... Sp │ │ │ │ +00004f60: 6563 6961 6c20 6f62 6a65 6374 7320 6172 ecial objects ar │ │ │ │ +00004f70: 6520 706f 7765 7266 756c 2c20 7769 7468 e powerful, with │ │ │ │ +00004f80: 206d 616e 7920 706f 7373 6962 6c65 2075 many possible u │ │ │ │ +00004f90: 7365 732e 0a0a 1f0a 4669 6c65 3a20 736b ses.....File: sk │ │ │ │ +00004fa0: 6574 6368 2e69 6e66 6f2c 2020 4e6f 6465 etch.info, Node │ │ │ │ +00004fb0: 3a20 4f62 6a65 6374 2074 7261 6e73 666f : Object transfo │ │ │ │ +00004fc0: 726d 732c 2020 4e65 7874 3a20 5265 7065 rms, Next: Repe │ │ │ │ +00004fd0: 6174 6564 206f 626a 6563 7473 2c20 2050 ated objects, P │ │ │ │ +00004fe0: 7265 763a 2053 7065 6369 616c 206f 626a rev: Special obj │ │ │ │ +00004ff0: 6563 7473 2c20 2055 703a 2049 6e74 726f ects, Up: Intro │ │ │ │ +00005000: 6475 6374 696f 6e20 6279 2065 7861 6d70 duction by examp │ │ │ │ +00005010: 6c65 0a0a 322e 3520 5472 616e 7366 6f72 le..2.5 Transfor │ │ │ │ +00005020: 6d73 0a3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d ms.============= │ │ │ │ +00005030: 3d0a 0a4e 6f77 206c 6574 2773 2061 6464 =..Now let's add │ │ │ │ +00005040: 2061 2073 6563 6f6e 6420 636f 7079 206f a second copy o │ │ │ │ +00005050: 6620 7468 6520 7069 6572 6365 6420 7465 f the pierced te │ │ │ │ +00005060: 7472 6168 6564 726f 6e2e 2020 5765 276c trahedron. We'l │ │ │ │ +00005070: 6c20 726f 7461 7465 0a74 6865 2063 6f70 l rotate.the cop │ │ │ │ +00005080: 7920 3930 2064 6567 7265 6573 2061 626f y 90 degrees abo │ │ │ │ +00005090: 7574 2074 6865 2078 2d61 7869 7320 7769 ut the x-axis wi │ │ │ │ +000050a0: 7468 2074 6865 206f 7269 6769 6e20 6173 th the origin as │ │ │ │ +000050b0: 20e2 809c 6365 6e74 6572 206f 660a 726f ...center of.ro │ │ │ │ +000050c0: 7461 7469 6f6e e280 9d20 736f 2077 6520 tation... so we │ │ │ │ +000050d0: 6361 6e20 7365 6520 7468 6520 6261 636b can see the back │ │ │ │ +000050e0: 2c20 7468 656e 2074 7261 6e73 6c61 7465 , then translate │ │ │ │ +000050f0: 2069 7420 746f 2074 6865 2072 6967 6874 it to the right │ │ │ │ +00005100: 2d2d 696e 2074 6865 0a70 6f73 6974 6976 --in the.positiv │ │ │ │ +00005110: 6520 782d 6469 7265 6374 696f 6e2d 2d73 e x-direction--s │ │ │ │ +00005120: 6f20 6974 2064 6f65 736e 2774 2063 6f6c o it doesn't col │ │ │ │ +00005130: 6c69 6465 2077 6974 6820 7468 6520 6f72 lide with the or │ │ │ │ +00005140: 6967 696e 616c 2e20 2054 6f20 6865 6c70 iginal. To help │ │ │ │ +00005150: 0a75 7320 7365 6520 7768 6174 2773 2067 .us see what's g │ │ │ │ +00005160: 6f69 6e67 206f 6e2c 206d 616b 6520 7468 oing on, make th │ │ │ │ +00005170: 6520 6261 636b 2073 6964 6520 6772 6179 e back side gray │ │ │ │ +00005180: 2e0a 2020 6465 6620 7069 6572 6365 645f .. def pierced_ │ │ │ │ +00005190: 7465 7472 6168 6564 726f 6e20 7b0a 2020 tetrahedron {. │ │ │ │ +000051a0: 2020 6465 6620 7031 2028 302c 302c 3129 def p1 (0,0,1) │ │ │ │ +000051b0: 2064 6566 2070 3220 2831 2c30 2c30 290a def p2 (1,0,0). │ │ │ │ +000051c0: 2020 2020 6465 6620 7033 2028 302c 312c def p3 (0,1, │ │ │ │ +000051d0: 3029 2064 6566 2070 3420 282d 2e33 2c2d 0) def p4 (-.3,- │ │ │ │ +000051e0: 2e35 2c2d 2e38 290a 2020 2020 706f 6c79 .5,-.8). poly │ │ │ │ +000051f0: 676f 6e28 7031 2928 7032 2928 7033 2920 gon(p1)(p2)(p3) │ │ │ │ +00005200: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00005210: 2020 2020 2025 206f 7269 6769 6e61 6c0a % original. │ │ │ │ +00005220: 2020 2020 706f 6c79 676f 6e28 7031 2928 polygon(p1)( │ │ │ │ +00005230: 7034 2928 7032 2920 2020 2020 2020 2020 p4)(p2) │ │ │ │ +00005240: 2020 2020 2020 2020 2020 2020 2025 2062 % b │ │ │ │ +00005250: 6f74 746f 6d0a 2020 2020 706f 6c79 676f ottom. polygo │ │ │ │ +00005260: 6e28 7031 2928 7033 2928 7034 2920 2020 n(p1)(p3)(p4) │ │ │ │ +00005270: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00005280: 2020 2025 206c 6566 740a 2020 2020 706f % left. po │ │ │ │ +00005290: 6c79 676f 6e5b 6669 6c6c 636f 6c6f 723d lygon[fillcolor= │ │ │ │ +000052a0: 6c69 6768 7467 7261 795d 2870 3329 2870 lightgray](p3)(p │ │ │ │ +000052b0: 3229 2870 3429 2025 2072 6561 720a 2020 2)(p4) % rear. │ │ │ │ +000052c0: 2020 6c69 6e65 5b6c 696e 6563 6f6c 6f72 line[linecolor │ │ │ │ +000052d0: 3d72 6564 5d28 2d31 2c2d 312c 2d31 2928 =red](-1,-1,-1)( │ │ │ │ +000052e0: 322c 322c 3229 0a20 207d 0a20 207b 7069 2,2,2). }. {pi │ │ │ │ +000052f0: 6572 6365 645f 7465 7472 6168 6564 726f erced_tetrahedro │ │ │ │ +00005300: 6e7d 2020 2520 7465 7472 6168 6564 726f n} % tetrahedro │ │ │ │ +00005310: 6e20 696e 206f 7269 6769 6e61 6c20 706f n in original po │ │ │ │ +00005320: 7369 7469 6f6e 0a20 2070 7574 207b 2072 sition. put { r │ │ │ │ +00005330: 6f74 6174 6528 3930 2c20 2830 2c30 2c30 otate(90, (0,0,0 │ │ │ │ +00005340: 292c 205b 312c 302c 305d 2920 2520 636f ), [1,0,0]) % co │ │ │ │ +00005350: 7079 2069 6e20 6e65 7720 706f 7369 7469 py in new positi │ │ │ │ +00005360: 6f6e 0a20 2020 2020 2020 2074 6865 6e20 on. then │ │ │ │ +00005370: 7472 616e 736c 6174 6528 5b32 2e35 2c30 translate([2.5,0 │ │ │ │ +00005380: 2c30 5d29 207d 207b 7069 6572 6365 645f ,0]) } {pierced_ │ │ │ │ +00005390: 7465 7472 6168 6564 726f 6e7d 0a48 6572 tetrahedron}.Her │ │ │ │ +000053a0: 6520 7468 6520 656e 7469 7265 2063 6f64 e the entire cod │ │ │ │ +000053b0: 6520 6f66 2074 6865 2070 7265 7669 6f75 e of the previou │ │ │ │ +000053c0: 7320 6578 616d 706c 6520 6861 7320 6265 s example has be │ │ │ │ +000053d0: 656e 2077 7261 7070 6564 2069 6e20 610a en wrapped in a. │ │ │ │ +000053e0: 6465 6669 6e69 7469 6f6e 2062 7920 666f definition by fo │ │ │ │ +000053f0: 726d 696e 6720 6120 e280 9c62 6c6f 636b rming a ...block │ │ │ │ +00005400: e280 9d20 7769 7468 2062 7261 6365 7320 ... with braces │ │ │ │ +00005410: 2861 2073 696e 676c 6520 6974 656d 2077 (a single item w │ │ │ │ +00005420: 6f75 6c64 206e 6f74 0a6e 6565 6420 7468 ould not.need th │ │ │ │ +00005430: 656d 292e 2020 5468 6520 706f 696e 7420 em). The point │ │ │ │ +00005440: 6465 6669 6e69 7469 6f6e 7320 6e65 7374 definitions nest │ │ │ │ +00005450: 6564 2069 6e73 6964 6520 7468 6520 6272 ed inside the br │ │ │ │ +00005460: 6163 6573 2061 7265 0ae2 809c 6c65 7869 aces are....lexi │ │ │ │ +00005470: 6361 6c6c 7920 7363 6f70 6564 e280 9d2e cally scoped.... │ │ │ │ +00005480: 2020 5468 6569 7220 6d65 616e 696e 6720 Their meaning │ │ │ │ +00005490: 6578 7465 6e64 7320 6f6e 6c79 2074 6f20 extends only to │ │ │ │ +000054a0: 7468 6520 656e 6420 6f66 2074 6865 2062 the end of the b │ │ │ │ +000054b0: 6c6f 636b 2e0a 5468 6520 6f75 7465 7220 lock..The outer │ │ │ │ +000054c0: 6465 6620 6973 2063 616c 6c65 6420 6120 def is called a │ │ │ │ +000054d0: e280 9c64 7261 7761 626c 65e2 809d 2064 ...drawable... d │ │ │ │ +000054e0: 6566 696e 6974 696f 6e20 6265 6361 7573 efinition becaus │ │ │ │ +000054f0: 6520 6974 2064 6573 6372 6962 6573 0a73 e it describes.s │ │ │ │ +00005500: 6f6d 6574 6869 6e67 2074 6861 7420 6361 omething that ca │ │ │ │ +00005510: 6e20 6265 2064 7261 776e 2e0a 0a20 2020 n be drawn... │ │ │ │ +00005520: 4120 6472 6177 6162 6c65 2064 6566 696e A drawable defin │ │ │ │ +00005530: 6974 696f 6e20 6279 2069 7473 656c 6620 ition by itself │ │ │ │ +00005540: 6361 7573 6573 206e 6f74 6869 6e67 2074 causes nothing t │ │ │ │ +00005550: 6f20 6861 7070 656e 2075 6e74 696c 2069 o happen until i │ │ │ │ +00005560: 7473 0a6e 616d 6520 6973 2072 6566 6572 ts.name is refer │ │ │ │ +00005570: 656e 6365 642e 2020 4472 6177 6162 6c65 enced. Drawable │ │ │ │ +00005580: 2072 6566 6572 656e 6365 7320 6d75 7374 references must │ │ │ │ +00005590: 2062 6520 656e 636c 6f73 6564 2069 6e20 be enclosed in │ │ │ │ +000055a0: 6375 726c 790a 6272 6163 6573 2c20 652e curly.braces, e. │ │ │ │ +000055b0: 672e 207b 666f 6f7d 2c20 7769 7468 206e g. {foo}, with n │ │ │ │ +000055c0: 6f20 696e 7465 7276 656e 696e 6720 7768 o intervening wh │ │ │ │ +000055d0: 6974 6520 7370 6163 652e 2020 496e 2074 ite space. In t │ │ │ │ +000055e0: 6865 2063 6f64 6520 6162 6f76 652c 0a74 he code above,.t │ │ │ │ +000055f0: 6865 2066 6972 7374 2072 6566 6572 656e he first referen │ │ │ │ +00005600: 6365 207b 7069 6572 6365 645f 7465 7472 ce {pierced_tetr │ │ │ │ +00005610: 6168 6564 726f 6e7d 2069 7320 6120 706c ahedron} is a pl │ │ │ │ +00005620: 6169 6e20 6f6e 652e 2020 4974 7320 6566 ain one. Its ef │ │ │ │ +00005630: 6665 6374 2069 730a 6d65 7265 6c79 2074 fect is.merely t │ │ │ │ +00005640: 6f20 6475 706c 6963 6174 6520 7468 6520 o duplicate the │ │ │ │ +00005650: 6561 726c 6965 7220 6472 6177 696e 672e earlier drawing. │ │ │ │ +00005660: 2020 416c 6d6f 7374 2061 6e79 2073 6572 Almost any ser │ │ │ │ +00005670: 6965 7320 6f66 20e2 8098 736b 6574 6368 ies of ...sketch │ │ │ │ +00005680: e280 990a 636f 6d6d 616e 6473 2073 7475 ....commands stu │ │ │ │ +00005690: 6666 206d 6179 2062 6520 7265 706c 6163 ff may be replac │ │ │ │ +000056a0: 6564 2077 6974 6820 6465 6620 666f 6f20 ed with def foo │ │ │ │ +000056b0: 7b20 7374 7566 6620 7d20 7b66 6f6f 7d20 { stuff } {foo} │ │ │ │ +000056c0: 7769 7468 6f75 740a 6368 616e 6769 6e67 without.changing │ │ │ │ +000056d0: 2069 7473 206d 6561 6e69 6e67 2e0a 0a20 its meaning... │ │ │ │ +000056e0: 2020 5468 6520 7075 7420 636f 6d6d 616e The put comman │ │ │ │ +000056f0: 6420 7375 7070 6c69 6573 2061 2073 6563 d supplies a sec │ │ │ │ +00005700: 6f6e 6420 7265 6665 7265 6e63 652c 2074 ond reference, t │ │ │ │ +00005710: 6869 7320 7469 6d65 2077 6974 6820 610a his time with a. │ │ │ │ +00005720: e280 9c74 7261 6e73 666f 726d e280 9d20 ...transform... │ │ │ │ +00005730: 6170 706c 6965 6420 6669 7273 742e 2020 applied first. │ │ │ │ +00005740: 5468 6520 726f 7461 7465 2074 7261 6e73 The rotate trans │ │ │ │ +00005750: 666f 726d 2074 7572 6e73 2074 6865 2074 form turns the t │ │ │ │ +00005760: 6574 7261 6865 6472 6f6e 0a39 3020 6465 etrahedron.90 de │ │ │ │ +00005770: 6772 6565 7320 6162 6f75 7420 7468 6520 grees about the │ │ │ │ +00005780: 6f72 6967 696e 2e20 2054 6865 2061 7869 origin. The axi │ │ │ │ +00005790: 7320 6f66 2072 6f74 6174 696f 6e20 6973 s of rotation is │ │ │ │ +000057a0: 2074 6865 2076 6563 746f 720a 5b31 2c30 the vector.[1,0 │ │ │ │ +000057b0: 2c30 5d2e 2020 4279 2074 6865 20e2 809c ,0]. By the ... │ │ │ │ +000057c0: 7269 6768 7420 6861 6e64 2072 756c 65e2 right hand rule. │ │ │ │ +000057d0: 809d 2c20 7468 6973 2063 6175 7365 7320 .., this causes │ │ │ │ +000057e0: 7468 6520 746f 7020 6f66 2074 6865 0a74 the top of the.t │ │ │ │ +000057f0: 6574 7261 6865 6472 6f6e 2074 6f20 726f etrahedron to ro │ │ │ │ +00005800: 7461 7465 2074 6f77 6172 6420 7468 6520 tate toward the │ │ │ │ +00005810: 7669 6577 6572 2061 6e64 2074 6865 2062 viewer and the b │ │ │ │ +00005820: 6f74 746f 6d20 6177 6179 2e20 2054 6865 ottom away. The │ │ │ │ +00005830: 2072 756c 650a 7265 6365 6976 6573 2069 rule.receives i │ │ │ │ +00005840: 7473 206e 616d 6520 6672 6f6d 2074 6865 ts name from the │ │ │ │ +00005850: 2066 6f6c 6c6f 7769 6e67 2064 6566 696e following defin │ │ │ │ +00005860: 6974 696f 6e3a 0a20 2020 2020 2a52 6967 ition:. *Rig │ │ │ │ +00005870: 6874 2068 616e 6420 7275 6c65 2e2a 2020 ht hand rule.* │ │ │ │ +00005880: 4966 2074 6865 2072 6967 6874 2068 616e If the right han │ │ │ │ +00005890: 6420 6973 2077 7261 7070 6564 2061 726f d is wrapped aro │ │ │ │ +000058a0: 756e 6420 616e 7920 6178 6973 0a20 2020 und any axis. │ │ │ │ +000058b0: 2020 7769 7468 2074 6865 2074 6875 6d62 with the thumb │ │ │ │ +000058c0: 2070 6f69 6e74 696e 6720 696e 2074 6865 pointing in the │ │ │ │ +000058d0: 2061 7869 7320 6469 7265 6374 696f 6e2c axis direction, │ │ │ │ +000058e0: 2074 6865 6e20 7468 6520 6669 6e67 6572 then the finger │ │ │ │ +000058f0: 730a 2020 2020 2063 7572 6c20 696e 2074 s. curl in t │ │ │ │ +00005900: 6865 2064 6972 6563 7469 6f6e 206f 6620 he direction of │ │ │ │ +00005910: 706f 7369 7469 7665 2072 6f74 6174 696f positive rotatio │ │ │ │ +00005920: 6e20 6162 6f75 7420 7468 6174 2061 7869 n about that axi │ │ │ │ +00005930: 732e 0a20 2020 5468 6520 7472 616e 736c s.. The transl │ │ │ │ +00005940: 6174 6520 7472 616e 7366 6f72 6d20 6d6f ate transform mo │ │ │ │ +00005950: 7665 7320 7468 6520 7079 7261 6d69 6420 ves the pyramid │ │ │ │ +00005960: 6c61 7465 7261 6c6c 7920 746f 2074 6865 laterally to the │ │ │ │ +00005970: 2072 6967 6874 2062 790a 6164 6469 6e67 right by.adding │ │ │ │ +00005980: 2074 6865 2076 6563 746f 7220 5b32 2e35 the vector [2.5 │ │ │ │ +00005990: 2c30 2c30 5d20 746f 2065 6163 6820 7665 ,0,0] to each ve │ │ │ │ +000059a0: 7274 6578 2063 6f6f 7264 696e 6174 652e rtex coordinate. │ │ │ │ +000059b0: 2020 5468 6520 7265 7375 6c74 2069 730a The result is. │ │ │ │ +000059c0: 7368 6f77 6e20 6865 7265 2e0a 0a00 085b shown here.....[ │ │ │ │ +000059d0: 696d 6167 6520 7372 633d 2265 7830 3530 image src="ex050 │ │ │ │ +000059e0: 2e70 6e67 2220 7465 7874 3d22 496d 6167 .png" text="Imag │ │ │ │ +000059f0: 6520 6578 3035 3020 6f6d 6974 7465 6420 e ex050 omitted │ │ │ │ +00005a00: 696e 2074 6578 7420 7665 7273 696f 6e20 in text version │ │ │ │ +00005a10: 6f66 2074 6869 7320 646f 6375 6d65 6e74 of this document │ │ │ │ +00005a20: 2e22 0008 5d0a 0a1f 0a46 696c 653a 2073 ."..]....File: s │ │ │ │ +00005a30: 6b65 7463 682e 696e 666f 2c20 204e 6f64 ketch.info, Nod │ │ │ │ +00005a40: 653a 2052 6570 6561 7465 6420 6f62 6a65 e: Repeated obje │ │ │ │ +00005a50: 6374 732c 2020 4e65 7874 3a20 5377 6570 cts, Next: Swep │ │ │ │ +00005a60: 7420 6f62 6a65 6374 732c 2020 5072 6576 t objects, Prev │ │ │ │ +00005a70: 3a20 4f62 6a65 6374 2074 7261 6e73 666f : Object transfo │ │ │ │ +00005a80: 726d 732c 2020 5570 3a20 496e 7472 6f64 rms, Up: Introd │ │ │ │ +00005a90: 7563 7469 6f6e 2062 7920 6578 616d 706c uction by exampl │ │ │ │ +00005aa0: 650a 0a32 2e36 2052 6570 6561 7465 6420 e..2.6 Repeated │ │ │ │ +00005ab0: 6f62 6a65 6374 730a 3d3d 3d3d 3d3d 3d3d objects.======== │ │ │ │ +00005ac0: 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 0a0a 546f ============..To │ │ │ │ +00005ad0: 2064 7261 7720 7365 7665 6e20 696e 7374 draw seven inst │ │ │ │ +00005ae0: 616e 6365 7320 6f66 2074 6865 2074 6574 ances of the tet │ │ │ │ +00005af0: 7261 6865 6472 6f6e 2c20 6561 6368 2064 rahedron, each d │ │ │ │ +00005b00: 6966 6665 7269 6e67 2066 726f 6d20 7468 iffering from th │ │ │ │ +00005b10: 6520 6c61 7374 0a62 7920 7468 6520 7361 e last.by the sa │ │ │ │ +00005b20: 6d65 2074 7261 6e73 666f 726d 2c20 7265 me transform, re │ │ │ │ +00005b30: 706c 6163 6520 7468 6520 6c61 7374 2074 place the last t │ │ │ │ +00005b40: 776f 2063 6f6d 6d61 6e64 7320 6f66 2074 wo commands of t │ │ │ │ +00005b50: 6865 2070 7265 7669 6f75 730a 6578 616d he previous.exam │ │ │ │ +00005b60: 706c 6520 7769 7468 0a20 2072 6570 6561 ple with. repea │ │ │ │ +00005b70: 7420 7b20 372c 2072 6f74 6174 6528 3135 t { 7, rotate(15 │ │ │ │ +00005b80: 2c20 2830 2c30 2c30 292c 205b 312c 302c , (0,0,0), [1,0, │ │ │ │ +00005b90: 305d 2920 2520 636f 7079 2069 6e20 6e65 0]) % copy in ne │ │ │ │ +00005ba0: 7720 706f 7369 7469 6f6e 0a20 2020 2020 w position. │ │ │ │ +00005bb0: 2020 2020 2020 2020 2074 6865 6e20 7472 then tr │ │ │ │ +00005bc0: 616e 736c 6174 6528 5b32 2c30 2c30 5d29 anslate([2,0,0]) │ │ │ │ +00005bd0: 207d 207b 7069 6572 6365 645f 7465 7472 } {pierced_tetr │ │ │ │ +00005be0: 6168 6564 726f 6e7d 0a41 6e64 2074 6865 ahedron}.And the │ │ │ │ +00005bf0: 2072 6573 756c 742e 2e2e 0a0a 0008 5b69 result.......[i │ │ │ │ +00005c00: 6d61 6765 2073 7263 3d22 6578 3036 302e mage src="ex060. │ │ │ │ +00005c10: 706e 6722 2074 6578 743d 2249 6d61 6765 png" text="Image │ │ │ │ +00005c20: 2065 7830 3630 206f 6d69 7474 6564 2069 ex060 omitted i │ │ │ │ +00005c30: 6e20 7465 7874 2076 6572 7369 6f6e 206f n text version o │ │ │ │ +00005c40: 6620 7468 6973 2064 6f63 756d 656e 742e f this document. │ │ │ │ +00005c50: 2200 085d 0a0a 1f0a 4669 6c65 3a20 736b "..]....File: sk │ │ │ │ +00005c60: 6574 6368 2e69 6e66 6f2c 2020 4e6f 6465 etch.info, Node │ │ │ │ +00005c70: 3a20 5377 6570 7420 6f62 6a65 6374 732c : Swept objects, │ │ │ │ +00005c80: 2020 5072 6576 3a20 5265 7065 6174 6564 Prev: Repeated │ │ │ │ +00005c90: 206f 626a 6563 7473 2c20 2055 703a 2049 objects, Up: I │ │ │ │ +00005ca0: 6e74 726f 6475 6374 696f 6e20 6279 2065 ntroduction by e │ │ │ │ +00005cb0: 7861 6d70 6c65 0a0a 322e 3720 5377 6570 xample..2.7 Swep │ │ │ │ +00005cc0: 7420 6f62 6a65 6374 730a 3d3d 3d3d 3d3d t objects.====== │ │ │ │ +00005cd0: 3d3d 3d3d 3d3d 3d3d 3d3d 3d0a 0a4d 616e ===========..Man │ │ │ │ +00005ce0: 7920 6661 6d69 6c69 6172 2073 6861 7065 y familiar shape │ │ │ │ +00005cf0: 7320 6361 6e20 6265 2067 656e 6572 6174 s can be generat │ │ │ │ +00005d00: 6564 2062 7920 7377 6565 7069 6e67 2073 ed by sweeping s │ │ │ │ +00005d10: 696d 706c 6572 206f 6e65 7320 7468 726f impler ones thro │ │ │ │ +00005d20: 7567 680a 7370 6163 6520 616e 6420 636f ugh.space and co │ │ │ │ +00005d30: 6e73 6964 6572 696e 6720 7468 6520 7265 nsidering the re │ │ │ │ +00005d40: 7375 6c74 696e 6720 7061 7468 2c20 7375 sulting path, su │ │ │ │ +00005d50: 7266 6163 652c 206f 7220 766f 6c75 6d65 rface, or volume │ │ │ │ +00005d60: 2e20 20e2 8098 536b 6574 6368 e280 990a . ...Sketch.... │ │ │ │ +00005d70: 696d 706c 656d 656e 7473 2074 6869 7320 implements this │ │ │ │ +00005d80: 6964 6561 2069 6e20 7468 6520 7377 6565 idea in the swee │ │ │ │ +00005d90: 7020 636f 6d6d 616e 642e 0a20 2064 6566 p command.. def │ │ │ │ +00005da0: 206e 5f73 6567 7320 380a 2020 7377 6565 n_segs 8. swee │ │ │ │ +00005db0: 7020 7b20 6e5f 7365 6773 2c20 726f 7461 p { n_segs, rota │ │ │ │ +00005dc0: 7465 2831 3830 202f 206e 5f73 6567 732c te(180 / n_segs, │ │ │ │ +00005dd0: 2028 302c 302c 3029 2c20 5b30 2c30 2c31 (0,0,0), [0,0,1 │ │ │ │ +00005de0: 5d29 207d 2028 312c 302c 3029 0a54 6869 ]) } (1,0,0).Thi │ │ │ │ +00005df0: 7320 636f 6465 2073 7765 6570 7320 7468 s code sweeps th │ │ │ │ +00005e00: 6520 706f 696e 7420 2831 2c30 2c30 2920 e point (1,0,0) │ │ │ │ +00005e10: 6569 6768 7420 7469 6d65 7320 6279 2072 eight times by r │ │ │ │ +00005e20: 6f74 6174 696e 6720 6974 2031 3830 2f38 otating it 180/8 │ │ │ │ +00005e30: 203d 0a32 322e 3520 6465 6772 6565 7320 =.22.5 degrees │ │ │ │ +00005e40: 6561 6368 2074 696d 6520 616e 6420 636f each time and co │ │ │ │ +00005e50: 6e6e 6563 7469 6e67 2074 6865 2072 6573 nnecting the res │ │ │ │ +00005e60: 756c 7469 6e67 2070 6f69 6e74 7320 7769 ulting points wi │ │ │ │ +00005e70: 7468 206c 696e 650a 7365 676d 656e 7473 th line.segments │ │ │ │ +00005e80: 2e20 2054 6865 2064 6566 2075 7365 6420 . The def used │ │ │ │ +00005e90: 6865 7265 2069 7320 6120 e280 9c73 6361 here is a ...sca │ │ │ │ +00005ea0: 6c61 72e2 809d 2064 6566 696e 6974 696f lar... definitio │ │ │ │ +00005eb0: 6e2e 2020 5265 6665 7265 6e63 6573 2074 n. References t │ │ │ │ +00005ec0: 6f0a 7363 616c 6172 7320 6861 7665 206e o.scalars have n │ │ │ │ +00005ed0: 6f20 656e 636c 6f73 696e 6720 6272 6163 o enclosing brac │ │ │ │ +00005ee0: 6b65 7473 2061 7420 616c 6c2e 0a0a 2a20 kets at all...* │ │ │ │ +00005ef0: 4d65 6e75 3a0a 0a2a 2050 6f69 6e74 2073 Menu:..* Point s │ │ │ │ +00005f00: 7765 6570 733a 3a20 2020 2020 2020 2020 weeps:: │ │ │ │ +00005f10: 2020 2020 2020 2053 7765 7074 2070 6f69 Swept poi │ │ │ │ +00005f20: 6e74 7320 6d61 6b65 206c 696e 6573 2061 nts make lines a │ │ │ │ +00005f30: 6e64 2070 6f6c 7967 6f6e 732e 0a2a 2050 nd polygons..* P │ │ │ │ +00005f40: 6f6c 796c 696e 6520 7377 6565 7073 3a3a olyline sweeps:: │ │ │ │ +00005f50: 2020 2020 2020 2020 2020 2020 2053 7765 Swe │ │ │ │ +00005f60: 7074 206c 696e 6573 206d 616b 6520 7375 pt lines make su │ │ │ │ +00005f70: 7266 6163 6573 2e0a 2a20 4e65 7374 6564 rfaces..* Nested │ │ │ │ +00005f80: 2073 7765 6570 733a 3a20 2020 2020 2020 sweeps:: │ │ │ │ +00005f90: 2020 2020 2020 2020 5377 6570 7420 7377 Swept sw │ │ │ │ +00005fa0: 6565 7073 2061 7265 2075 7365 6675 6c21 eeps are useful! │ │ │ │ +00005fb0: 0a2a 2050 6f6c 7967 6f6e 2073 7765 6570 .* Polygon sweep │ │ │ │ +00005fc0: 733a 3a20 2020 2020 2020 2020 2020 2020 s:: │ │ │ │ +00005fd0: 2053 7765 7074 2070 6f6c 7967 6f6e 7320 Swept polygons │ │ │ │ +00005fe0: 6d61 6b65 2073 6f6c 6964 732e 2e2e 0a2a make solids....* │ │ │ │ +00005ff0: 2050 6f6c 796c 696e 6520 7377 6565 7073 Polyline sweeps │ │ │ │ +00006000: 2077 6974 6820 636c 6f73 7572 653a 3a20 with closure:: │ │ │ │ +00006010: 2061 6e64 2073 6f20 646f 2063 6c6f 7365 and so do close │ │ │ │ +00006020: 6420 706f 6c79 6c69 6e65 2073 7765 6570 d polyline sweep │ │ │ │ +00006030: 732e 0a2a 2041 6666 696e 6520 6172 6974 s..* Affine arit │ │ │ │ +00006040: 686d 6574 6963 3a3a 2020 2020 2020 2020 hmetic:: │ │ │ │ +00006050: 2020 2053 6b65 7463 6820 7573 6566 756c Sketch useful │ │ │ │ +00006060: 206d 6174 6820 6578 7072 6573 7369 6f6e math expression │ │ │ │ +00006070: 2e0a 2a20 4d6f 7265 2074 6f20 6c65 6172 ..* More to lear │ │ │ │ +00006080: 6e3a 3a20 2020 2020 2020 2020 2020 2020 n:: │ │ │ │ +00006090: 2020 4368 6563 6b20 6f75 7420 7468 6520 Check out the │ │ │ │ +000060a0: 4d6f 6269 7573 2073 7472 6970 210a 0a1f Mobius strip!... │ │ │ │ +000060b0: 0a46 696c 653a 2073 6b65 7463 682e 696e .File: sketch.in │ │ │ │ +000060c0: 666f 2c20 204e 6f64 653a 2050 6f69 6e74 fo, Node: Point │ │ │ │ +000060d0: 2073 7765 6570 732c 2020 4e65 7874 3a20 sweeps, Next: │ │ │ │ +000060e0: 506f 6c79 6c69 6e65 2073 7765 6570 732c Polyline sweeps, │ │ │ │ +000060f0: 2020 5072 6576 3a20 5377 6570 7420 6f62 Prev: Swept ob │ │ │ │ +00006100: 6a65 6374 732c 2020 5570 3a20 5377 6570 jects, Up: Swep │ │ │ │ +00006110: 7420 6f62 6a65 6374 730a 0a32 2e37 2e31 t objects..2.7.1 │ │ │ │ +00006120: 2050 6f69 6e74 2073 7765 6570 730a 2d2d Point sweeps.-- │ │ │ │ +00006130: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ +00006140: 0a0a 5377 6565 7069 6e67 2061 2070 6f69 ..Sweeping a poi │ │ │ │ +00006150: 6e74 206d 616b 6573 2061 206f 6e65 2d64 nt makes a one-d │ │ │ │ +00006160: 696d 656e 7369 6f6e 616c 2070 6174 682c imensional path, │ │ │ │ +00006170: 2077 6869 6368 2069 7320 6120 706f 6c79 which is a poly │ │ │ │ +00006180: 6c69 6e65 2e0a 5369 6e63 6520 7765 2068 line..Since we h │ │ │ │ +00006190: 6176 6520 7377 6570 7420 7769 7468 2061 ave swept with a │ │ │ │ +000061a0: 2072 6f74 6174 696f 6e2c 2074 6865 2072 rotation, the r │ │ │ │ +000061b0: 6573 756c 7420 6973 2061 2063 6972 6375 esult is a circu │ │ │ │ +000061c0: 6c61 7220 6172 632e 2020 4865 7265 0a69 lar arc. Here.i │ │ │ │ +000061d0: 7320 7768 6174 2069 7420 6c6f 6f6b 7320 s what it looks │ │ │ │ +000061e0: 6c69 6b65 2e0a 0a00 085b 696d 6167 6520 like.....[image │ │ │ │ +000061f0: 7372 633d 2265 7830 3730 2e70 6e67 2220 src="ex070.png" │ │ │ │ +00006200: 7465 7874 3d22 496d 6167 6520 6578 3037 text="Image ex07 │ │ │ │ +00006210: 3020 6f6d 6974 7465 6420 696e 2074 6578 0 omitted in tex │ │ │ │ +00006220: 7420 7665 7273 696f 6e20 6f66 2074 6869 t version of thi │ │ │ │ +00006230: 7320 646f 6375 6d65 6e74 2e22 0008 5d0a s document."..]. │ │ │ │ +00006240: 0a20 2020 5468 6973 2069 7320 7468 6520 . This is the │ │ │ │ +00006250: 6669 7273 7420 6578 616d 706c 6520 7765 first example we │ │ │ │ +00006260: 2068 6176 6520 7365 656e 206f 6620 e280 have seen of .. │ │ │ │ +00006270: 9873 6b65 7463 68e2 8099 2061 7269 7468 .sketch... arith │ │ │ │ +00006280: 6d65 7469 632e 2020 5468 650a 6578 7072 metic. The.expr │ │ │ │ +00006290: 6573 7369 6f6e 2031 3830 202f 206e 5f73 ession 180 / n_s │ │ │ │ +000062a0: 6567 7320 6361 7573 6573 2074 6865 2065 egs causes the e │ │ │ │ +000062b0: 6967 6874 2072 6f74 6174 696f 6e73 2074 ight rotations t │ │ │ │ +000062c0: 6f20 6164 6420 746f 2031 3830 2e20 2049 o add to 180. I │ │ │ │ +000062d0: 660a 796f 7527 7265 2070 6179 696e 6720 f.you're paying │ │ │ │ +000062e0: 6174 7465 6e74 696f 6e2c 2079 6f75 276c attention, you'l │ │ │ │ +000062f0: 6c20 6861 7665 2061 6c72 6561 6479 206e l have already n │ │ │ │ +00006300: 6f74 6564 2074 6861 7420 7468 6572 6520 oted that there │ │ │ │ +00006310: 6172 6520 5f6e 696e 655f 0a70 6f69 6e74 are _nine_.point │ │ │ │ +00006320: 732c 2070 726f 6475 6369 6e67 2065 6967 s, producing eig │ │ │ │ +00006330: 6874 206c 696e 6520 7365 676d 656e 7473 ht line segments │ │ │ │ +00006340: 2e0a 0a20 2020 596f 7520 6361 6e20 6361 ... You can ca │ │ │ │ +00006350: 7573 6520 7468 6520 7377 6570 7420 706f use the swept po │ │ │ │ +00006360: 696e 7420 746f 2067 656e 6572 6174 6520 int to generate │ │ │ │ +00006370: 6120 7369 6e67 6c65 2070 6f6c 7967 6f6e a single polygon │ │ │ │ +00006380: 2072 6174 6865 720a 7468 616e 2061 2070 rather.than a p │ │ │ │ +00006390: 6f6c 796c 696e 6520 6279 2075 7369 6e67 olyline by using │ │ │ │ +000063a0: 2074 6865 20e2 809c 636c 6f73 7572 6520 the ...closure │ │ │ │ +000063b0: 7461 67e2 809d 203c 3e20 6166 7465 7220 tag... <> after │ │ │ │ +000063c0: 7468 6520 6e75 6d62 6572 206f 6620 7377 the number of sw │ │ │ │ +000063d0: 6570 740a 6f62 6a65 6374 732e 2020 436f ept.objects. Co │ │ │ │ +000063e0: 6465 2061 6e64 2072 6573 756c 7420 666f de and result fo │ │ │ │ +000063f0: 6c6c 6f77 0a20 2064 6566 206e 5f73 6567 llow. def n_seg │ │ │ │ +00006400: 7320 380a 2020 7377 6565 7020 7b20 6e5f s 8. sweep { n_ │ │ │ │ +00006410: 7365 6773 3c3e 2c20 726f 7461 7465 2831 segs<>, rotate(1 │ │ │ │ +00006420: 3830 202f 206e 5f73 6567 732c 2028 302c 80 / n_segs, (0, │ │ │ │ +00006430: 302c 3029 2c20 5b30 2c30 2c31 5d29 207d 0,0), [0,0,1]) } │ │ │ │ +00006440: 2028 312c 302c 3029 0a00 085b 696d 6167 (1,0,0)...[imag │ │ │ │ +00006450: 6520 7372 633d 2265 7830 3830 2e70 6e67 e src="ex080.png │ │ │ │ +00006460: 2220 7465 7874 3d22 496d 6167 6520 6578 " text="Image ex │ │ │ │ +00006470: 3038 3020 6f6d 6974 7465 6420 696e 2074 080 omitted in t │ │ │ │ +00006480: 6578 7420 7665 7273 696f 6e20 6f66 2074 ext version of t │ │ │ │ +00006490: 6869 7320 646f 6375 6d65 6e74 2e22 0008 his document.".. │ │ │ │ +000064a0: 5d0a 0a1f 0a46 696c 653a 2073 6b65 7463 ]....File: sketc │ │ │ │ +000064b0: 682e 696e 666f 2c20 204e 6f64 653a 2050 h.info, Node: P │ │ │ │ +000064c0: 6f6c 796c 696e 6520 7377 6565 7073 2c20 olyline sweeps, │ │ │ │ +000064d0: 204e 6578 743a 204e 6573 7465 6420 7377 Next: Nested sw │ │ │ │ +000064e0: 6565 7073 2c20 2050 7265 763a 2050 6f69 eeps, Prev: Poi │ │ │ │ +000064f0: 6e74 2073 7765 6570 732c 2020 5570 3a20 nt sweeps, Up: │ │ │ │ +00006500: 5377 6570 7420 6f62 6a65 6374 730a 0a32 Swept objects..2 │ │ │ │ +00006510: 2e37 2e32 2050 6f6c 796c 696e 6520 7377 .7.2 Polyline sw │ │ │ │ +00006520: 6565 7073 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d eeps.----------- │ │ │ │ +00006530: 2d2d 2d2d 2d2d 2d2d 2d2d 0a0a 5377 6565 ----------..Swee │ │ │ │ +00006540: 7069 6e67 2061 2070 6f6c 796c 696e 6520 ping a polyline │ │ │ │ +00006550: 7072 6f64 7563 6573 2061 2073 7572 6661 produces a surfa │ │ │ │ +00006560: 6365 2063 6f6d 706f 7365 6420 6f66 206d ce composed of m │ │ │ │ +00006570: 616e 7920 6661 6365 732e 2020 5468 650a any faces. The. │ │ │ │ +00006580: 756e 6272 6f6b 656e 2068 656c 6978 2069 unbroken helix i │ │ │ │ +00006590: 6e20 7468 6520 6578 616d 706c 6520 2a6e n the example *n │ │ │ │ +000065a0: 6f74 6520 4865 6c69 7820 7769 7468 2063 ote Helix with c │ │ │ │ +000065b0: 756c 6c20 7365 7420 6661 6c73 6520 7468 ull set false th │ │ │ │ +000065c0: 656e 0a74 7275 653a 3a20 6973 2070 726f en.true:: is pro │ │ │ │ +000065d0: 6475 6365 6420 6279 2074 6869 7320 636f duced by this co │ │ │ │ +000065e0: 6465 2028 706c 7573 2061 2073 7572 726f de (plus a surro │ │ │ │ +000065f0: 756e 6469 6e67 2070 7574 2072 6f74 6174 unding put rotat │ │ │ │ +00006600: 696f 6e20 746f 206d 616b 650a 616e 2069 ion to make.an i │ │ │ │ +00006610: 6e74 6572 6573 7469 6e67 2076 6965 773b nteresting view; │ │ │ │ +00006620: 2074 6869 7320 6861 7320 6265 656e 206f this has been o │ │ │ │ +00006630: 6d69 7474 6564 292e 0a20 2064 6566 204b mitted).. def K │ │ │ │ +00006640: 205b 302c 302c 315d 0a20 2073 7765 6570 [0,0,1]. sweep │ │ │ │ +00006650: 5b63 756c 6c3d 6661 6c73 655d 207b 0a20 [cull=false] {. │ │ │ │ +00006660: 2020 2036 302c 200a 2020 2020 726f 7461 60, . rota │ │ │ │ +00006670: 7465 2831 302c 2028 302c 302c 3029 2c20 te(10, (0,0,0), │ │ │ │ +00006680: 5b4b 5d29 2074 6865 6e20 7472 616e 736c [K]) then transl │ │ │ │ +00006690: 6174 6528 312f 3620 2a20 5b4b 5d29 200a ate(1/6 * [K]) . │ │ │ │ +000066a0: 2020 7d20 6c69 6e65 5b6c 696e 6577 6964 } line[linewid │ │ │ │ +000066b0: 7468 3d32 7074 5d28 2d31 2c30 2928 312c th=2pt](-1,0)(1, │ │ │ │ +000066c0: 3029 0a41 6761 696e 2c20 3630 2073 6567 0).Again, 60 seg │ │ │ │ +000066d0: 6d65 6e74 7320 6f66 2074 6865 2068 656c ments of the hel │ │ │ │ +000066e0: 6978 2061 7265 2070 726f 6475 6365 6420 ix are produced │ │ │ │ +000066f0: 6279 2063 6f6e 6e65 6374 696e 6720 3631 by connecting 61 │ │ │ │ +00006700: 2069 6e73 7461 6e63 6573 0a6f 6620 7468 instances.of th │ │ │ │ +00006710: 6520 7377 6570 7420 6c69 6e65 2e20 204f e swept line. O │ │ │ │ +00006720: 7074 696f 6e73 2061 7070 6c69 6564 2074 ptions applied t │ │ │ │ +00006730: 6f20 7468 6520 7377 6565 702c 2068 6572 o the sweep, her │ │ │ │ +00006740: 6520 6375 6c6c 3d66 616c 7365 2c20 6172 e cull=false, ar │ │ │ │ +00006750: 650a 7472 6561 7465 6420 6173 206f 7074 e.treated as opt │ │ │ │ +00006760: 696f 6e73 2066 6f72 2074 6865 2067 656e ions for the gen │ │ │ │ +00006770: 6572 6174 6564 2070 6f6c 7967 6f6e 206f erated polygon o │ │ │ │ +00006780: 7220 706f 6c79 6c69 6e65 2e20 204f 7074 r polyline. Opt │ │ │ │ +00006790: 696f 6e73 206f 660a 7468 6520 7377 6570 ions of.the swep │ │ │ │ +000067a0: 7420 6c69 6e65 2069 7473 656c 662c 2068 t line itself, h │ │ │ │ +000067b0: 6572 6520 6c69 6e65 7769 6474 683d 3270 ere linewidth=2p │ │ │ │ +000067c0: 742c 2061 7265 2069 676e 6f72 6564 2c20 t, are ignored, │ │ │ │ +000067d0: 7468 6f75 6768 2077 6974 6820 610a 7761 though with a.wa │ │ │ │ +000067e0: 726e 696e 672e 2020 5468 6973 2064 6566 rning. This def │ │ │ │ +000067f0: 2069 7320 6120 e280 9c76 6563 746f 72e2 is a ...vector. │ │ │ │ +00006800: 809d 2064 6566 696e 6974 696f 6e2c 2077 .. definition, w │ │ │ │ +00006810: 6869 6368 206d 7573 7420 6265 2072 6566 hich must be ref │ │ │ │ +00006820: 6572 656e 6365 640a 7769 7468 2073 7175 erenced.with squ │ │ │ │ +00006830: 6172 6520 6272 6163 6b65 7473 2c20 652e are brackets, e. │ │ │ │ +00006840: 672e 205b 666f 6f5d 2e0a 0a1f 0a46 696c g. [foo].....Fil │ │ │ │ +00006850: 653a 2073 6b65 7463 682e 696e 666f 2c20 e: sketch.info, │ │ │ │ +00006860: 204e 6f64 653a 204e 6573 7465 6420 7377 Node: Nested sw │ │ │ │ +00006870: 6565 7073 2c20 204e 6578 743a 2050 6f6c eeps, Next: Pol │ │ │ │ +00006880: 7967 6f6e 2073 7765 6570 732c 2020 5072 ygon sweeps, Pr │ │ │ │ +00006890: 6576 3a20 506f 6c79 6c69 6e65 2073 7765 ev: Polyline swe │ │ │ │ +000068a0: 6570 732c 2020 5570 3a20 5377 6570 7420 eps, Up: Swept │ │ │ │ +000068b0: 6f62 6a65 6374 730a 0a32 2e37 2e33 204e objects..2.7.3 N │ │ │ │ +000068c0: 6573 7465 6420 7377 6565 7073 0a2d 2d2d ested sweeps.--- │ │ │ │ +000068d0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ +000068e0: 0a0a 5768 656e 2074 6865 2063 656e 7465 ..When the cente │ │ │ │ +000068f0: 7220 706f 696e 7420 6f66 2072 6f74 6174 r point of rotat │ │ │ │ +00006900: 696f 6e20 6973 206f 6d69 7474 6564 2c20 ion is omitted, │ │ │ │ +00006910: 7468 6520 6f72 6967 696e 2069 7320 6173 the origin is as │ │ │ │ +00006920: 7375 6d65 642e 0a57 6865 6e20 6120 706f sumed..When a po │ │ │ │ +00006930: 696e 7420 6861 7320 6f6e 6c79 2074 776f int has only two │ │ │ │ +00006940: 2063 6f6f 7264 696e 6174 6573 2c20 7468 coordinates, th │ │ │ │ +00006950: 6579 2061 7265 2074 616b 656e 2061 7320 ey are taken as │ │ │ │ +00006960: 7820 616e 6420 792c 2077 6974 680a 7a3d x and y, with.z= │ │ │ │ +00006970: 3020 6173 7375 6d65 642e 2020 4120 746f 0 assumed. A to │ │ │ │ +00006980: 726f 6964 2069 7320 7468 6572 6566 6f72 roid is therefor │ │ │ │ +00006990: 6520 6f62 7461 696e 6564 2077 6974 6820 e obtained with │ │ │ │ +000069a0: 7468 6973 2063 6f64 652e 0a20 2064 6566 this code.. def │ │ │ │ +000069b0: 206e 5f74 6f72 6f69 645f 7365 6773 2032 n_toroid_segs 2 │ │ │ │ +000069c0: 3020 2020 6465 6620 6e5f 6369 7263 6c65 0 def n_circle │ │ │ │ +000069d0: 5f73 6567 7320 3136 0a20 2064 6566 2072 _segs 16. def r │ │ │ │ +000069e0: 5f6d 696e 6f72 2031 2020 2020 2020 2020 _minor 1 │ │ │ │ +000069f0: 2020 6465 6620 725f 6d61 6a6f 7220 312e def r_major 1. │ │ │ │ +00006a00: 350a 2020 7377 6565 7020 7b20 6e5f 746f 5. sweep { n_to │ │ │ │ +00006a10: 726f 6964 5f73 6567 732c 2072 6f74 6174 roid_segs, rotat │ │ │ │ +00006a20: 6528 3336 3020 2f20 6e5f 746f 726f 6964 e(360 / n_toroid │ │ │ │ +00006a30: 5f73 6567 732c 205b 302c 312c 305d 2920 _segs, [0,1,0]) │ │ │ │ +00006a40: 7d0a 2020 2020 7377 6565 7020 7b20 6e5f }. sweep { n_ │ │ │ │ +00006a50: 6369 7263 6c65 5f73 6567 732c 2072 6f74 circle_segs, rot │ │ │ │ +00006a60: 6174 6528 3336 3020 2f20 6e5f 6369 7263 ate(360 / n_circ │ │ │ │ +00006a70: 6c65 5f73 6567 732c 2028 725f 6d61 6a6f le_segs, (r_majo │ │ │ │ +00006a80: 722c 302c 3029 2920 7d20 0a20 2020 2020 r,0,0)) } . │ │ │ │ +00006a90: 2028 725f 6d61 6a6f 7220 2b20 725f 6d69 (r_major + r_mi │ │ │ │ +00006aa0: 6e6f 722c 2030 290a 2020 2046 6f72 2069 nor, 0). For i │ │ │ │ +00006ab0: 6e74 7569 7469 6f6e 2c20 7468 6520 6964 ntuition, the id │ │ │ │ +00006ac0: 6561 206f 6620 7468 6520 636f 6465 2069 ea of the code i │ │ │ │ +00006ad0: 7320 746f 2073 6b65 7463 6820 6120 6369 s to sketch a ci │ │ │ │ +00006ae0: 7263 6c65 2074 6f20 7468 650a 7269 6768 rcle to the.righ │ │ │ │ +00006af0: 7420 6f66 2074 6865 206f 7269 6769 6e20 t of the origin │ │ │ │ +00006b00: 696e 2074 6865 2078 792d 706c 616e 652c in the xy-plane, │ │ │ │ +00006b10: 2074 6865 6e20 726f 7461 7465 2074 6861 then rotate tha │ │ │ │ +00006b20: 7420 6369 7263 6c65 2022 6f75 7420 6f66 t circle "out of │ │ │ │ +00006b30: 2074 6865 0a70 6c61 6e65 2220 6162 6f75 the.plane" abou │ │ │ │ +00006b40: 7420 7468 6520 792d 6178 6973 2074 6f20 t the y-axis to │ │ │ │ +00006b50: 6d61 6b65 2074 6865 2066 696e 616c 2066 make the final f │ │ │ │ +00006b60: 6967 7572 652e 2020 5468 6973 2070 726f igure. This pro │ │ │ │ +00006b70: 6475 6365 7320 7468 650a 666f 6c6c 6f77 duces the.follow │ │ │ │ +00006b80: 696e 672e 2020 2841 2076 6965 7720 726f ing. (A view ro │ │ │ │ +00006b90: 7461 7469 6f6e 2061 6e64 2073 6f6d 6520 tation and some │ │ │ │ +00006ba0: 6178 6573 2068 6176 6520 6265 656e 2061 axes have been a │ │ │ │ +00006bb0: 6464 6564 2e29 0a0a 0008 5b69 6d61 6765 dded.)....[image │ │ │ │ +00006bc0: 2073 7263 3d22 6578 3039 302e 706e 6722 src="ex090.png" │ │ │ │ +00006bd0: 2074 6578 743d 2249 6d61 6765 2065 7830 text="Image ex0 │ │ │ │ +00006be0: 3930 206f 6d69 7474 6564 2069 6e20 7465 90 omitted in te │ │ │ │ +00006bf0: 7874 2076 6572 7369 6f6e 206f 6620 7468 xt version of th │ │ │ │ +00006c00: 6973 2064 6f63 756d 656e 742e 2200 085d is document."..] │ │ │ │ +00006c10: 0a0a 2020 2054 6869 7320 6578 616d 706c .. This exampl │ │ │ │ +00006c20: 6520 616c 736f 2073 686f 7773 2074 6861 e also shows tha │ │ │ │ +00006c30: 7420 7468 6520 7377 6570 7420 6f62 6a65 t the swept obje │ │ │ │ +00006c40: 6374 206d 6179 2069 7473 656c 6620 6265 ct may itself be │ │ │ │ +00006c50: 2061 6e6f 7468 6572 0ae2 8098 7377 6565 another....swee │ │ │ │ +00006c60: 70e2 8099 2e20 2049 6e20 6661 6374 2c20 p.... In fact, │ │ │ │ +00006c70: 6974 206d 6179 2062 6520 5f61 6e79 5f20 it may be _any_ │ │ │ │ +00006c80: e280 9873 6b65 7463 68e2 8099 2065 7870 ...sketch... exp │ │ │ │ +00006c90: 7265 7373 696f 6e20 7468 6174 2072 6573 ression that res │ │ │ │ +00006ca0: 756c 7473 2069 6e20 610a 6c69 7374 206f ults in a.list o │ │ │ │ +00006cb0: 6620 6f6e 6520 6f72 206d 6f72 6520 706f f one or more po │ │ │ │ +00006cc0: 696e 7473 206f 722c 2061 6c74 6572 6e61 ints or, alterna │ │ │ │ +00006cd0: 7465 6c79 2c20 6120 6c69 7374 206f 6620 tely, a list of │ │ │ │ +00006ce0: 6f6e 6520 6f72 206d 6f72 650a 706f 6c79 one or more.poly │ │ │ │ +00006cf0: 6c69 6e65 7320 616e 6420 706f 6c79 676f lines and polygo │ │ │ │ +00006d00: 6e73 2e20 2054 6865 206c 6174 7465 7220 ns. The latter │ │ │ │ +00006d10: 6b69 6e64 206f 6620 6c69 7374 2063 616e kind of list can │ │ │ │ +00006d20: 2062 6520 6372 6561 7465 6420 7769 7468 be created with │ │ │ │ +00006d30: 2061 0a7b 207d 2d65 6e63 6c6f 7365 6420 a.{ }-enclosed │ │ │ │ +00006d40: 626c 6f63 6b2c 2070 6572 6861 7073 2066 block, perhaps f │ │ │ │ +00006d50: 6f6c 6c6f 7769 6e67 2061 2070 7574 206f ollowing a put o │ │ │ │ +00006d60: 7220 7265 7065 6174 2e0a 0a1f 0a46 696c r repeat.....Fil │ │ │ │ +00006d70: 653a 2073 6b65 7463 682e 696e 666f 2c20 e: sketch.info, │ │ │ │ +00006d80: 204e 6f64 653a 2050 6f6c 7967 6f6e 2073 Node: Polygon s │ │ │ │ +00006d90: 7765 6570 732c 2020 4e65 7874 3a20 506f weeps, Next: Po │ │ │ │ +00006da0: 6c79 6c69 6e65 2073 7765 6570 7320 7769 lyline sweeps wi │ │ │ │ +00006db0: 7468 2063 6c6f 7375 7265 2c20 2050 7265 th closure, Pre │ │ │ │ +00006dc0: 763a 204e 6573 7465 6420 7377 6565 7073 v: Nested sweeps │ │ │ │ +00006dd0: 2c20 2055 703a 2053 7765 7074 206f 626a , Up: Swept obj │ │ │ │ +00006de0: 6563 7473 0a0a 322e 372e 3420 506f 6c79 ects..2.7.4 Poly │ │ │ │ +00006df0: 676f 6e20 7377 6565 7073 0a2d 2d2d 2d2d gon sweeps.----- │ │ │ │ +00006e00: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a ---------------. │ │ │ │ +00006e10: 0a53 7765 6570 696e 6720 6120 706f 6c79 .Sweeping a poly │ │ │ │ +00006e20: 676f 6e20 6372 6561 7465 7320 6120 636c gon creates a cl │ │ │ │ +00006e30: 6f73 6564 2073 7572 6661 6365 2077 6974 osed surface wit │ │ │ │ +00006e40: 6820 706f 6c79 676f 6e73 2061 7420 7468 h polygons at th │ │ │ │ +00006e50: 6520 656e 6473 2c0a 7768 6963 6820 6172 e ends,.which ar │ │ │ │ +00006e60: 6520 6a75 7374 2063 6f70 6965 7320 6f66 e just copies of │ │ │ │ +00006e70: 2074 6865 206f 7269 6769 6e61 6c2c 2061 the original, a │ │ │ │ +00006e80: 7070 726f 7072 6961 7465 6c79 2070 6f73 ppropriately pos │ │ │ │ +00006e90: 6974 696f 6e65 642e 2020 2a4e 6f74 650a itioned. *Note. │ │ │ │ +00006ea0: 536f 6c69 6420 636f 696c 2065 7861 6d70 Solid coil examp │ │ │ │ +00006eb0: 6c65 3a3a 2e20 204f 7074 696f 6e73 206f le::. Options o │ │ │ │ +00006ec0: 6e20 7468 6520 7377 6570 7420 706f 6c79 n the swept poly │ │ │ │ +00006ed0: 676f 6e2c 2069 6620 7468 6579 2065 7869 gon, if they exi │ │ │ │ +00006ee0: 7374 2c20 6172 650a 6170 706c 6965 6420 st, are.applied │ │ │ │ +00006ef0: 746f 2074 6865 2065 6e64 732e 2020 4f74 to the ends. Ot │ │ │ │ +00006f00: 6865 7277 6973 6520 7468 6520 7377 6565 herwise the swee │ │ │ │ +00006f10: 7020 6f70 7469 6f6e 7320 6172 6520 7573 p options are us │ │ │ │ +00006f20: 6564 2074 6872 6f75 6768 6f75 742e 0a0a ed throughout... │ │ │ │ +00006f30: 1f0a 4669 6c65 3a20 736b 6574 6368 2e69 ..File: sketch.i │ │ │ │ +00006f40: 6e66 6f2c 2020 4e6f 6465 3a20 506f 6c79 nfo, Node: Poly │ │ │ │ +00006f50: 6c69 6e65 2073 7765 6570 7320 7769 7468 line sweeps with │ │ │ │ +00006f60: 2063 6c6f 7375 7265 2c20 204e 6578 743a closure, Next: │ │ │ │ +00006f70: 2041 6666 696e 6520 6172 6974 686d 6574 Affine arithmet │ │ │ │ +00006f80: 6963 2c20 2050 7265 763a 2050 6f6c 7967 ic, Prev: Polyg │ │ │ │ +00006f90: 6f6e 2073 7765 6570 732c 2020 5570 3a20 on sweeps, Up: │ │ │ │ +00006fa0: 5377 6570 7420 6f62 6a65 6374 730a 0a32 Swept objects..2 │ │ │ │ +00006fb0: 2e37 2e35 2050 6f6c 796c 696e 6520 7377 .7.5 Polyline sw │ │ │ │ +00006fc0: 6565 7073 2077 6974 6820 636c 6f73 7572 eeps with closur │ │ │ │ +00006fd0: 650a 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d e.-------------- │ │ │ │ 00006fe0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ -00006ff0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 0a0a 4120 ------------..A │ │ │ │ -00007000: 706f 6c79 6c69 6e65 2073 7765 6570 2077 polyline sweep w │ │ │ │ -00007010: 6974 6820 6120 636c 6f73 7572 6520 7461 ith a closure ta │ │ │ │ -00007020: 6720 6372 6561 7465 7320 616e 6f74 6865 g creates anothe │ │ │ │ -00007030: 7220 6b69 6e64 206f 6620 636c 6f73 6564 r kind of closed │ │ │ │ -00007040: 0a73 7572 6661 6365 2e20 2046 6972 7374 .surface. First │ │ │ │ -00007050: 2c20 7468 6520 706f 6c79 6c69 6e65 2073 , the polyline s │ │ │ │ -00007060: 6567 6d65 6e74 7320 6172 6520 636f 6e6e egments are conn │ │ │ │ -00007070: 6563 7465 6420 6279 2066 6163 6573 2c20 ected by faces, │ │ │ │ -00007080: 6a75 7374 2061 730a 7769 7468 6f75 7420 just as.without │ │ │ │ -00007090: 7468 6520 636c 6f73 7572 6520 7461 672e the closure tag. │ │ │ │ -000070a0: 2020 5468 656e 2c20 6561 6368 2073 6574 Then, each set │ │ │ │ -000070b0: 206f 6620 656e 6420 706f 696e 7473 2069 of end points i │ │ │ │ -000070c0: 7320 6a6f 696e 6564 2074 6f20 6d61 6b65 s joined to make │ │ │ │ -000070d0: 0a61 2070 6f6c 7967 6f6e 2c20 6f6e 6520 .a polygon, one │ │ │ │ -000070e0: 666f 7220 6561 6368 2065 6e64 2e20 2041 for each end. A │ │ │ │ -000070f0: 2063 6f64 6520 666f 7220 7365 7665 7261 code for severa │ │ │ │ -00007100: 6c20 7669 6577 7320 6f66 2061 2063 796c l views of a cyl │ │ │ │ -00007110: 696e 6472 6963 616c 0a70 7269 736d 2066 indrical.prism f │ │ │ │ -00007120: 6f6c 6c6f 7773 2e0a 2020 6465 6620 6e5f ollows.. def n_ │ │ │ │ -00007130: 6379 6c5f 7365 6773 2032 3020 2064 6566 cyl_segs 20 def │ │ │ │ -00007140: 206e 5f76 6965 7773 2035 2020 6465 6620 n_views 5 def │ │ │ │ -00007150: 4920 5b31 2c30 2c30 5d0a 2020 6465 6620 I [1,0,0]. def │ │ │ │ -00007160: 656e 646f 7074 7320 5b66 696c 6c63 6f6c endopts [fillcol │ │ │ │ -00007170: 6f72 3d6c 6967 6874 6772 6179 5d0a 2020 or=lightgray]. │ │ │ │ -00007180: 7265 7065 6174 207b 206e 5f76 6965 7773 repeat { n_views │ │ │ │ -00007190: 2c20 726f 7461 7465 2831 3830 2f6e 5f76 , rotate(180/n_v │ │ │ │ -000071a0: 6965 7773 2c20 5b49 5d29 2074 6865 6e20 iews, [I]) then │ │ │ │ -000071b0: 7472 616e 736c 6174 6528 5b49 5d20 2a20 translate([I] * │ │ │ │ -000071c0: 322e 3129 207d 200a 2020 2020 7377 6565 2.1) } . swee │ │ │ │ -000071d0: 705b 656e 646f 7074 735d 7b20 6e5f 6379 p[endopts]{ n_cy │ │ │ │ -000071e0: 6c5f 7365 6773 3c3e 2c20 726f 7461 7465 l_segs<>, rotate │ │ │ │ -000071f0: 2833 3630 2f6e 5f63 796c 5f73 6567 732c (360/n_cyl_segs, │ │ │ │ -00007200: 205b 302c 312c 305d 2920 7d20 0a20 2020 [0,1,0]) } . │ │ │ │ -00007210: 2020 206c 696e 655b 6669 6c6c 636f 6c6f line[fillcolo │ │ │ │ -00007220: 723d 7768 6974 655d 2831 2c2d 3129 2831 r=white](1,-1)(1 │ │ │ │ -00007230: 2c31 290a 4974 2070 726f 6475 6365 7320 ,1).It produces │ │ │ │ -00007240: 7468 6973 2064 7261 7769 6e67 2e0a 0a00 this drawing.... │ │ │ │ -00007250: 085b 696d 6167 6520 7372 633d 2265 7831 .[image src="ex1 │ │ │ │ -00007260: 3130 2e70 6e67 2220 7465 7874 3d22 496d 10.png" text="Im │ │ │ │ -00007270: 6167 6520 6578 3131 3020 6f6d 6974 7465 age ex110 omitte │ │ │ │ -00007280: 6420 696e 2074 6578 7420 7665 7273 696f d in text versio │ │ │ │ -00007290: 6e20 6f66 2074 6869 7320 646f 6375 6d65 n of this docume │ │ │ │ -000072a0: 6e74 2e22 0008 5d0a 0a54 6865 206f 7074 nt."..]..The opt │ │ │ │ -000072b0: 696f 6e73 206f 6620 7468 6520 7377 6570 ions of the swep │ │ │ │ -000072c0: 7420 6c69 6e65 2c20 6966 2061 6e79 2c20 t line, if any, │ │ │ │ -000072d0: 6172 6520 6170 706c 6965 6420 746f 2074 are applied to t │ │ │ │ -000072e0: 6865 2066 6163 6573 2070 726f 6475 6365 he faces produce │ │ │ │ -000072f0: 640a 6279 2073 7765 6570 696e 6720 7468 d.by sweeping th │ │ │ │ -00007300: 6520 6c69 6e65 2c20 6275 7420 6e6f 7420 e line, but not │ │ │ │ -00007310: 7468 6520 656e 6420 706f 6c79 676f 6e73 the end polygons │ │ │ │ -00007320: 2e20 204f 7468 6572 7769 7365 2c20 7468 . Otherwise, th │ │ │ │ -00007330: 6520 7377 6565 700a 6f70 7469 6f6e 7320 e sweep.options │ │ │ │ -00007340: 6172 6520 6170 706c 6965 6420 7468 726f are applied thro │ │ │ │ -00007350: 7567 686f 7574 2e20 2054 6865 2064 6566 ughout. The def │ │ │ │ -00007360: 2069 6e20 7468 6973 2065 7861 6d70 6c65 in this example │ │ │ │ -00007370: 2069 7320 616e 20e2 809c 6f70 7469 6f6e is an ...option │ │ │ │ -00007380: e280 9d0a 6465 6669 6e69 7469 6f6e 2e20 ....definition. │ │ │ │ -00007390: 2052 6566 6572 656e 6365 7320 746f 206f References to o │ │ │ │ -000073a0: 7074 696f 6e73 206d 7573 7420 6265 2065 ptions must be e │ │ │ │ -000073b0: 6e63 6c6f 7365 6420 696e 2073 7175 6172 nclosed in squar │ │ │ │ -000073c0: 6520 6272 6163 6b65 7473 2c0a 652e 672e e brackets,.e.g. │ │ │ │ -000073d0: 2020 205b 666f 6f5d 2e20 2059 6f75 2063 [foo]. You c │ │ │ │ -000073e0: 616e 2063 6f6e 6361 7465 6e61 7465 2073 an concatenate s │ │ │ │ -000073f0: 6576 6572 616c 2073 6574 7320 6f66 206f everal sets of o │ │ │ │ -00007400: 7074 696f 6e73 2077 6974 6820 6120 7369 ptions with a si │ │ │ │ -00007410: 6e67 6c65 0a72 6566 6572 656e 6365 2c20 ngle.reference, │ │ │ │ -00007420: 652e 672e 2020 205b 636f 6c6f 722c 2073 e.g. [color, s │ │ │ │ -00007430: 697a 652c 2073 7479 6c65 5d20 2077 6f75 ize, style] wou │ │ │ │ -00007440: 6c64 2063 6175 7365 2074 6865 206f 7074 ld cause the opt │ │ │ │ -00007450: 696f 6e0a 6465 6669 6e69 7469 6f6e 7320 ion.definitions │ │ │ │ -00007460: 666f 7220 e280 9863 6f6c 6f72 e280 992c for ...color..., │ │ │ │ -00007470: 20e2 8098 7369 7a65 e280 992c 2061 6e64 ...size..., and │ │ │ │ -00007480: 20e2 8098 7374 796c 65e2 8099 2074 6f20 ...style... to │ │ │ │ -00007490: 6170 7065 6172 2069 6e20 7365 7175 656e appear in sequen │ │ │ │ -000074a0: 6365 2069 6e0a 7468 6520 6f75 7470 7574 ce in.the output │ │ │ │ -000074b0: 2063 7265 6174 6564 2062 7920 7468 6520 created by the │ │ │ │ -000074c0: e280 9873 6b65 7463 68e2 8099 2063 6f6d ...sketch... com │ │ │ │ -000074d0: 6d61 6e64 2063 6f6e 7461 696e 696e 6720 mand containing │ │ │ │ -000074e0: 7468 6520 7265 6665 7265 6e63 652e 0a48 the reference..H │ │ │ │ -000074f0: 6170 7069 6c79 2c20 7468 6520 7379 6e74 appily, the synt │ │ │ │ -00007500: 6178 206f 6620 e280 9873 6b65 7463 68e2 ax of ...sketch. │ │ │ │ -00007510: 8099 2069 7320 7375 6368 2074 6861 7420 .. is such that │ │ │ │ -00007520: 6f70 7469 6f6e 7320 7265 6665 7265 6e63 options referenc │ │ │ │ -00007530: 6573 2063 616e 0a6e 6576 6572 2062 6520 es can.never be │ │ │ │ -00007540: 636f 6e66 7573 6564 2077 6974 6820 7665 confused with ve │ │ │ │ -00007550: 6374 6f72 2072 6566 6572 656e 6365 732e ctor references. │ │ │ │ -00007560: 2020 5768 696c 6520 6e6f 7420 6170 7061 While not appa │ │ │ │ -00007570: 7265 6e74 2069 6e20 7468 6973 0a65 7861 rent in this.exa │ │ │ │ -00007580: 6d70 6c65 2c20 6f70 7469 6f6e 7320 7265 mple, options re │ │ │ │ -00007590: 6665 7265 6e63 6573 2061 7265 2075 7365 ferences are use │ │ │ │ -000075a0: 6675 6c20 7768 656e 2064 6566 696e 696e ful when definin │ │ │ │ -000075b0: 6720 6d61 6e79 206f 626a 6563 7473 2077 g many objects w │ │ │ │ -000075c0: 6974 6820 610a 7369 6d69 6c61 7220 6170 ith a.similar ap │ │ │ │ -000075d0: 7065 6172 616e 6365 2e0a 0a1f 0a46 696c pearance.....Fil │ │ │ │ -000075e0: 653a 2073 6b65 7463 682e 696e 666f 2c20 e: sketch.info, │ │ │ │ -000075f0: 204e 6f64 653a 2041 6666 696e 6520 6172 Node: Affine ar │ │ │ │ -00007600: 6974 686d 6574 6963 2c20 204e 6578 743a ithmetic, Next: │ │ │ │ -00007610: 204d 6f72 6520 746f 206c 6561 726e 2c20 More to learn, │ │ │ │ -00007620: 2050 7265 763a 2050 6f6c 796c 696e 6520 Prev: Polyline │ │ │ │ -00007630: 7377 6565 7073 2077 6974 6820 636c 6f73 sweeps with clos │ │ │ │ -00007640: 7572 652c 2020 5570 3a20 5377 6570 7420 ure, Up: Swept │ │ │ │ -00007650: 6f62 6a65 6374 730a 0a32 2e37 2e36 2041 objects..2.7.6 A │ │ │ │ -00007660: 6666 696e 6520 6172 6974 686d 6574 6963 ffine arithmetic │ │ │ │ -00007670: 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d .--------------- │ │ │ │ -00007680: 2d2d 2d2d 2d2d 2d2d 0a0a 5468 6520 6172 --------..The ar │ │ │ │ -00007690: 6974 686d 6574 6963 205b 495d 202a 2032 ithmetic [I] * 2 │ │ │ │ -000076a0: 2e31 2061 626f 7665 2068 696e 7473 2061 .1 above hints a │ │ │ │ -000076b0: 7420 6120 6c61 7267 6572 2074 7275 7468 t a larger truth │ │ │ │ -000076c0: 2e20 20e2 8098 536b 6574 6368 e280 990a . ...Sketch.... │ │ │ │ -000076d0: 6f70 6572 6174 6f72 7320 776f 726b 206f operators work o │ │ │ │ -000076e0: 6e20 7363 616c 6172 732c 2076 6563 746f n scalars, vecto │ │ │ │ -000076f0: 7273 2c20 706f 696e 7473 2c20 616e 6420 rs, points, and │ │ │ │ -00007700: 7472 616e 7366 6f72 6d73 2061 6363 6f72 transforms accor │ │ │ │ -00007710: 6469 6e67 2074 6f0a 7468 6520 6765 6e65 ding to.the gene │ │ │ │ -00007720: 7261 6c20 7275 6c65 7320 6f66 20e2 809c ral rules of ... │ │ │ │ -00007730: 6166 6669 6e65 2061 6c67 6562 7261 e280 affine algebra.. │ │ │ │ -00007740: 9d2e 2020 5468 6973 2063 616e 2062 6520 .. This can be │ │ │ │ -00007750: 6865 6c70 6675 6c20 666f 7220 7365 7474 helpful for sett │ │ │ │ -00007760: 696e 670a 7570 2064 6961 6772 616d 7320 ing.up diagrams │ │ │ │ -00007770: 7769 7468 2063 6f6d 7075 7465 6420 6765 with computed ge │ │ │ │ -00007780: 6f6d 6574 7279 2e20 2046 6f72 2065 7861 ometry. For exa │ │ │ │ -00007790: 6d70 6c65 2c20 6966 2079 6f75 2068 6176 mple, if you hav │ │ │ │ -000077a0: 6520 7472 6961 6e67 6c65 0a76 6572 7469 e triangle.verti │ │ │ │ -000077b0: 6365 7320 2870 3129 2074 6872 6f75 6768 ces (p1) through │ │ │ │ -000077c0: 2028 7033 2920 616e 6420 6e65 6564 2074 (p3) and need t │ │ │ │ -000077d0: 6f20 6472 6177 2061 2075 6e69 7420 6e6f o draw a unit no │ │ │ │ -000077e0: 726d 616c 2076 6563 746f 720a 706f 696e rmal vector.poin │ │ │ │ -000077f0: 7469 6e67 206f 7574 206f 6620 7468 6520 ting out of the │ │ │ │ -00007800: 6365 6e74 6572 206f 6620 7468 6520 7472 center of the tr │ │ │ │ -00007810: 6961 6e67 6c65 2c20 7468 6973 2063 6f64 iangle, this cod │ │ │ │ -00007820: 6520 646f 6573 2074 6865 2074 7269 636b e does the trick │ │ │ │ -00007830: 2e0a 2020 6465 6620 7031 2028 312c 302c .. def p1 (1,0, │ │ │ │ -00007840: 3029 2020 6465 6620 7032 2028 302c 302e 0) def p2 (0,0. │ │ │ │ -00007850: 352c 3029 2020 6465 6620 7033 2028 2d30 5,0) def p3 (-0 │ │ │ │ -00007860: 2e35 2c2d 312c 3229 0a20 2064 6566 204f .5,-1,2). def O │ │ │ │ -00007870: 2028 302c 302c 3029 0a20 2064 6566 204e (0,0,0). def N │ │ │ │ -00007880: 2075 6e69 7428 2028 2870 3329 202d 2028 unit( ((p3) - ( │ │ │ │ -00007890: 7032 2929 202a 2028 2870 3129 202d 2028 p2)) * ((p1) - ( │ │ │ │ -000078a0: 7032 2929 2029 0a20 2064 6566 206e 3120 p2)) ). def n1 │ │ │ │ -000078b0: 2828 7031 292d 284f 2920 2b20 2870 3229 ((p1)-(O) + (p2) │ │ │ │ -000078c0: 2d28 4f29 202b 2028 7033 292d 284f 2929 -(O) + (p3)-(O)) │ │ │ │ -000078d0: 202f 2033 202b 2028 4f29 0a20 2064 6566 / 3 + (O). def │ │ │ │ -000078e0: 206e 3220 286e 3129 2b5b 4e5d 0a20 2070 n2 (n1)+[N]. p │ │ │ │ -000078f0: 6f6c 7967 6f6e 2870 3129 2870 3229 2870 olygon(p1)(p2)(p │ │ │ │ -00007900: 3329 0a20 206c 696e 655b 6172 726f 7773 3). line[arrows │ │ │ │ -00007910: 3d2a 2d3e 5d28 6e31 2928 6e32 290a 5468 =*->](n1)(n2).Th │ │ │ │ -00007920: 6520 6669 7273 7420 6c69 6e65 2063 6f6d e first line com │ │ │ │ -00007930: 7075 7465 7320 7468 6520 6372 6f73 7320 putes the cross │ │ │ │ -00007940: 7072 6f64 7563 7420 6f66 2074 776f 2065 product of two e │ │ │ │ -00007950: 6467 6520 7665 6374 6f72 7320 6f66 2074 dge vectors of t │ │ │ │ -00007960: 6865 0a74 7269 616e 676c 6520 616e 6420 he.triangle and │ │ │ │ -00007970: 7363 616c 6573 2069 7420 746f 2075 6e69 scales it to uni │ │ │ │ -00007980: 7420 6c65 6e67 7468 2e20 2054 6865 2073 t length. The s │ │ │ │ -00007990: 6563 6f6e 6420 636f 6d70 7574 6573 2074 econd computes t │ │ │ │ -000079a0: 6865 2061 7665 7261 6765 0a6f 6620 7468 he average.of th │ │ │ │ -000079b0: 6520 7665 7274 6963 6573 2e20 204e 6f74 e vertices. Not │ │ │ │ -000079c0: 6520 7468 6174 2073 7562 7472 6163 7469 e that subtracti │ │ │ │ -000079d0: 6f6e 2061 6e64 2061 6464 6974 696f 6e20 on and addition │ │ │ │ -000079e0: 6f66 2074 6865 206f 7269 6769 6e0a 6566 of the origin.ef │ │ │ │ -000079f0: 6665 6374 6976 656c 7920 636f 6e76 6572 fectively conver │ │ │ │ -00007a00: 7420 7665 6374 6f72 7320 746f 2070 6f69 t vectors to poi │ │ │ │ -00007a10: 6e74 7320 616e 6420 5f76 6963 6520 7665 nts and _vice ve │ │ │ │ -00007a20: 7273 615f 2e20 2054 6865 206c 696e 650a rsa_. The line. │ │ │ │ -00007a30: 636f 6d6d 616e 6420 6472 6177 7320 7468 command draws th │ │ │ │ -00007a40: 6520 6e6f 726d 616c 2061 7420 7468 6520 e normal at the │ │ │ │ -00007a50: 636f 7272 6563 7420 7370 6f74 2e0a 0a00 correct spot.... │ │ │ │ -00007a60: 085b 696d 6167 6520 7372 633d 2265 7831 .[image src="ex1 │ │ │ │ -00007a70: 3030 2e70 6e67 2220 7465 7874 3d22 496d 00.png" text="Im │ │ │ │ -00007a80: 6167 6520 6578 3130 3020 6f6d 6974 7465 age ex100 omitte │ │ │ │ -00007a90: 6420 696e 2074 6578 7420 7665 7273 696f d in text versio │ │ │ │ -00007aa0: 6e20 6f66 2074 6869 7320 646f 6375 6d65 n of this docume │ │ │ │ -00007ab0: 6e74 2e22 0008 5d0a 0a20 2020 5477 6f20 nt."..].. Two │ │ │ │ -00007ac0: 6361 7665 6174 7320 7265 6761 7264 696e caveats regardin │ │ │ │ -00007ad0: 6720 7468 6973 2065 7861 6d70 6c65 2072 g this example r │ │ │ │ -00007ae0: 656d 6169 6e2e 2020 4669 7273 742c 2074 emain. First, t │ │ │ │ -00007af0: 6865 206f 6e6c 7920 7761 7920 746f 0a75 he only way to.u │ │ │ │ -00007b00: 7365 20e2 8098 5053 5472 6963 6b73 e280 se ...PSTricks.. │ │ │ │ -00007b10: 992d 7374 796c 6520 6172 726f 7773 2069 .-style arrows i │ │ │ │ -00007b20: 7320 7769 7468 2061 7272 6f77 733d 2e20 s with arrows=. │ │ │ │ -00007b30: 2054 6865 2061 6c74 6572 6e61 7469 7665 The alternative │ │ │ │ -00007b40: 2073 796e 7461 7820 666f 720a e280 9850 syntax for....P │ │ │ │ -00007b50: 5354 7269 636b 73e2 8099 2061 7272 6f77 STricks... arrow │ │ │ │ -00007b60: 7320 6973 206e 6f74 2061 6c6c 6f77 6564 s is not allowed │ │ │ │ -00007b70: 2069 6e20 736b 6574 6368 2e20 2053 6563 in sketch. Sec │ │ │ │ -00007b80: 6f6e 642c 2079 6f75 206d 6967 6874 206c ond, you might l │ │ │ │ -00007b90: 696b 6520 746f 0a65 6c69 6d69 6e61 7465 ike to.eliminate │ │ │ │ -00007ba0: 2074 6865 2074 6869 7264 2064 6566 2061 the third def a │ │ │ │ -00007bb0: 6e64 2077 7269 7465 2069 6e73 7465 6164 nd write instead │ │ │ │ -00007bc0: 2074 6865 2066 6f6c 6c6f 7769 6e67 2e0a the following.. │ │ │ │ -00007bd0: 2020 6c69 6e65 5b61 7272 6f77 733d 2a2d line[arrows=*- │ │ │ │ -00007be0: 3e5d 286e 3129 2028 6e31 292b 5b4e 5d0a >](n1) (n1)+[N]. │ │ │ │ -00007bf0: 5468 6973 2069 7320 6e6f 7420 616c 6c6f This is not allo │ │ │ │ -00007c00: 7765 642e 2020 5468 6520 706f 696e 7420 wed. The point │ │ │ │ -00007c10: 6c69 7374 7320 696e 2064 7261 7761 626c lists in drawabl │ │ │ │ -00007c20: 6573 206d 6179 2063 6f6e 7369 7374 206f es may consist o │ │ │ │ -00007c30: 6e6c 7920 6f66 0a65 7870 6c69 6369 7420 nly of.explicit │ │ │ │ -00007c40: 706f 696e 7473 206f 7220 706f 696e 7420 points or point │ │ │ │ -00007c50: 7265 6665 7265 6e63 6573 2e20 2059 6f75 references. You │ │ │ │ -00007c60: 206d 6179 2c20 686f 7765 7665 722c 2075 may, however, u │ │ │ │ -00007c70: 7365 2061 7269 7468 6d65 7469 630a 746f se arithmetic.to │ │ │ │ -00007c80: 2063 616c 6375 6c61 7465 2070 6f69 6e74 calculate point │ │ │ │ -00007c90: 2063 6f6d 706f 6e65 6e74 732e 2020 5468 components. Th │ │ │ │ -00007ca0: 6520 666f 6c6c 6f77 696e 6720 776f 726b e following work │ │ │ │ -00007cb0: 732c 2074 686f 7567 6820 6974 2773 2061 s, though it's a │ │ │ │ -00007cc0: 0a6c 6974 746c 6520 6375 6d62 6572 736f .little cumberso │ │ │ │ -00007cd0: 6d65 2e0a 2020 6c69 6e65 5b61 7272 6f77 me.. line[arrow │ │ │ │ -00007ce0: 733d 2a2d 3e5d 286e 3129 2828 6e31 2927 s=*->](n1)((n1)' │ │ │ │ -00007cf0: 782b 284e 2927 782c 2028 6e31 2927 792b x+(N)'x, (n1)'y+ │ │ │ │ -00007d00: 284e 2927 792c 2028 6e31 2927 7a2b 284e (N)'y, (n1)'z+(N │ │ │ │ -00007d10: 2927 7a29 0a4f 6276 696f 7573 6c79 2c20 )'z).Obviously, │ │ │ │ -00007d20: 7468 6520 e280 9c74 6963 6b20 6f70 6572 the ...tick oper │ │ │ │ -00007d30: 6174 6f72 e280 9d20 e280 9827 78e2 8099 ator... ...'x... │ │ │ │ -00007d40: 2065 7874 7261 6374 7320 636f 6d70 6f6e extracts compon │ │ │ │ -00007d50: 656e 7473 206f 6620 706f 696e 7473 2061 ents of points a │ │ │ │ -00007d60: 6e64 0a76 6563 746f 7273 2e0a 0a1f 0a46 nd.vectors.....F │ │ │ │ -00007d70: 696c 653a 2073 6b65 7463 682e 696e 666f ile: sketch.info │ │ │ │ -00007d80: 2c20 204e 6f64 653a 204d 6f72 6520 746f , Node: More to │ │ │ │ -00007d90: 206c 6561 726e 2c20 2050 7265 763a 2041 learn, Prev: A │ │ │ │ -00007da0: 6666 696e 6520 6172 6974 686d 6574 6963 ffine arithmetic │ │ │ │ -00007db0: 2c20 2055 703a 2053 7765 7074 206f 626a , Up: Swept obj │ │ │ │ -00007dc0: 6563 7473 0a0a 322e 372e 3720 4d6f 7265 ects..2.7.7 More │ │ │ │ -00007dd0: 2074 6f20 6c65 6172 6e0a 2d2d 2d2d 2d2d to learn.------ │ │ │ │ -00007de0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a 0a54 -------------..T │ │ │ │ -00007df0: 6869 7320 6973 206e 6f74 2074 6865 2065 his is not the e │ │ │ │ -00007e00: 6e64 206f 6620 7468 6520 7374 6f72 7920 nd of the story │ │ │ │ -00007e10: 6f6e 2073 7765 6570 7321 2020 5765 2069 on sweeps! We i │ │ │ │ -00007e20: 6e76 6974 6520 7468 6520 7265 6164 6572 nvite the reader │ │ │ │ -00007e30: 2069 6e74 6f0a 7468 6520 6d61 696e 2062 into.the main b │ │ │ │ -00007e40: 6f64 7920 6f66 2074 6869 7320 646f 6375 ody of this docu │ │ │ │ -00007e50: 6d65 6e74 6174 696f 6e20 2a6e 6f74 6520 mentation *note │ │ │ │ -00007e60: 5377 6565 7073 3a3a 2074 6f20 6c65 6172 Sweeps:: to lear │ │ │ │ -00007e70: 6e20 6d6f 7265 2e0a 0a00 085b 696d 6167 n more.....[imag │ │ │ │ -00007e80: 6520 7372 633d 2265 7831 3230 2e70 6e67 e src="ex120.png │ │ │ │ -00007e90: 2220 7465 7874 3d22 496d 6167 6520 6578 " text="Image ex │ │ │ │ -00007ea0: 3132 3020 6f6d 6974 7465 6420 696e 2074 120 omitted in t │ │ │ │ -00007eb0: 6578 7420 7665 7273 696f 6e20 6f66 2074 ext version of t │ │ │ │ -00007ec0: 6869 7320 646f 6375 6d65 6e74 2e22 0008 his document.".. │ │ │ │ -00007ed0: 5d0a 0a57 686f 206b 6e6f 7773 2077 6865 ]..Who knows whe │ │ │ │ -00007ee0: 7265 2079 6f75 276c 6c20 6669 6e69 7368 re you'll finish │ │ │ │ -00007ef0: 3f0a 0a1f 0a46 696c 653a 2073 6b65 7463 ?....File: sketc │ │ │ │ -00007f00: 682e 696e 666f 2c20 204e 6f64 653a 2049 h.info, Node: I │ │ │ │ -00007f10: 6e70 7574 206c 616e 6775 6167 652c 2020 nput language, │ │ │ │ -00007f20: 4e65 7874 3a20 4275 696c 6469 6e67 2061 Next: Building a │ │ │ │ -00007f30: 2064 7261 7769 6e67 2c20 2050 7265 763a drawing, Prev: │ │ │ │ -00007f40: 2049 6e74 726f 6475 6374 696f 6e20 6279 Introduction by │ │ │ │ -00007f50: 2065 7861 6d70 6c65 2c20 2055 703a 2054 example, Up: T │ │ │ │ -00007f60: 6f70 0a0a 3320 496e 7075 7420 6c61 6e67 op..3 Input lang │ │ │ │ -00007f70: 7561 6765 0a2a 2a2a 2a2a 2a2a 2a2a 2a2a uage.*********** │ │ │ │ -00007f80: 2a2a 2a2a 2a0a 0a54 6869 7320 6368 6170 *****..This chap │ │ │ │ -00007f90: 7465 7220 6465 7363 7269 6265 7320 7468 ter describes th │ │ │ │ -00007fa0: 6520 e280 9873 6b65 7463 68e2 8099 2069 e ...sketch... i │ │ │ │ -00007fb0: 6e70 7574 206c 616e 6775 6167 6520 696e nput language in │ │ │ │ -00007fc0: 2064 6574 6169 6c2e 0a0a 2a20 4d65 6e75 detail...* Menu │ │ │ │ -00007fd0: 3a0a 0a2a 204c 616e 6775 6167 6520 6261 :..* Language ba │ │ │ │ -00007fe0: 7369 6373 3a3a 2020 2020 2020 2020 2020 sics:: │ │ │ │ -00007ff0: 2020 2043 6173 652c 2073 7061 6365 2c20 Case, space, │ │ │ │ -00008000: 636f 6d6d 656e 7473 2c20 696e 636c 7564 comments, includ │ │ │ │ -00008010: 6520 6669 6c65 732e 0a2a 2044 7261 7761 e files..* Drawa │ │ │ │ -00008020: 626c 6573 3a3a 2020 2020 2020 2020 2020 bles:: │ │ │ │ -00008030: 2020 2020 2020 2020 2054 6869 6e67 7320 Things │ │ │ │ -00008040: 7468 6174 2063 616e 2062 6520 6472 6177 that can be draw │ │ │ │ -00008050: 6e2e 0a2a 2044 6566 696e 6974 696f 6e73 n..* Definitions │ │ │ │ -00008060: 3a3a 2020 2020 2020 2020 2020 2020 2020 :: │ │ │ │ -00008070: 2020 2047 6976 696e 6720 7468 696e 6773 Giving things │ │ │ │ -00008080: 206e 616d 6573 2e0a 2a20 476c 6f62 616c names..* Global │ │ │ │ -00008090: 2065 6e76 6972 6f6e 6d65 6e74 3a3a 2020 environment:: │ │ │ │ -000080a0: 2020 2020 2020 2020 4166 6665 6374 2074 Affect t │ │ │ │ -000080b0: 6865 2065 6e74 6972 6520 6472 6177 696e he entire drawin │ │ │ │ -000080c0: 672e 0a0a 1f0a 4669 6c65 3a20 736b 6574 g.....File: sket │ │ │ │ -000080d0: 6368 2e69 6e66 6f2c 2020 4e6f 6465 3a20 ch.info, Node: │ │ │ │ -000080e0: 4c61 6e67 7561 6765 2062 6173 6963 732c Language basics, │ │ │ │ -000080f0: 2020 4e65 7874 3a20 4472 6177 6162 6c65 Next: Drawable │ │ │ │ -00008100: 732c 2020 5072 6576 3a20 496e 7075 7420 s, Prev: Input │ │ │ │ -00008110: 6c61 6e67 7561 6765 2c20 2055 703a 2049 language, Up: I │ │ │ │ -00008120: 6e70 7574 206c 616e 6775 6167 650a 0a33 nput language..3 │ │ │ │ -00008130: 2e31 2042 6173 6963 730a 3d3d 3d3d 3d3d .1 Basics.====== │ │ │ │ -00008140: 3d3d 3d3d 0a0a e280 9853 6b65 7463 68e2 ====.....Sketch. │ │ │ │ -00008150: 8099 2069 6e70 7574 2069 7320 706c 6169 .. input is plai │ │ │ │ -00008160: 6e20 4153 4349 4920 7465 7874 2c20 7573 n ASCII text, us │ │ │ │ -00008170: 7561 6c6c 7920 7374 6f72 6564 2069 6e20 ually stored in │ │ │ │ -00008180: 616e 2069 6e70 7574 2066 696c 652e 2020 an input file. │ │ │ │ -00008190: 4974 0a64 6573 6372 6962 6573 2061 20e2 It.describes a . │ │ │ │ -000081a0: 809c 7363 656e 65e2 809d 2c20 736f 2074 ..scene..., so t │ │ │ │ -000081b0: 6865 2073 6b65 7463 6820 6c61 6e67 7561 he sketch langua │ │ │ │ -000081c0: 6765 2069 7320 6120 e280 9c73 6365 6e65 ge is a ...scene │ │ │ │ -000081d0: 2064 6573 6372 6970 7469 6f6e 0a6c 616e description.lan │ │ │ │ -000081e0: 6775 6167 65e2 809d 2e20 20e2 8098 536b guage.... ...Sk │ │ │ │ -000081f0: 6574 6368 e280 9920 696e 7075 7420 6973 etch... input is │ │ │ │ -00008200: 2061 6c73 6f20 e280 9c64 6563 6c61 7261 also ...declara │ │ │ │ -00008210: 7469 7665 e280 9d2e 2020 4974 206d 6572 tive.... It mer │ │ │ │ -00008220: 656c 7920 6465 636c 6172 6573 0a77 6861 ely declares.wha │ │ │ │ -00008230: 7420 7468 6520 7363 656e 6520 6f75 6768 t the scene ough │ │ │ │ -00008240: 7420 746f 206c 6f6f 6b20 6c69 6b65 2077 t to look like w │ │ │ │ -00008250: 6865 6e20 6472 6177 696e 6720 6973 2063 hen drawing is c │ │ │ │ -00008260: 6f6d 706c 6574 6520 616e 6420 7361 7973 omplete and says │ │ │ │ -00008270: 2076 6572 790a 6c69 7474 6c65 2061 626f very.little abo │ │ │ │ -00008280: 7574 2068 6f77 20e2 8098 736b 6574 6368 ut how ...sketch │ │ │ │ -00008290: e280 9920 7368 6f75 6c64 2064 6f20 6974 ... should do it │ │ │ │ -000082a0: 7320 776f 726b 2e20 20e2 8098 536b 6574 s work. ...Sket │ │ │ │ -000082b0: 6368 e280 9920 636f 6d6d 616e 6473 2061 ch... commands a │ │ │ │ -000082c0: 7265 206e 6f74 0a65 7865 6375 7465 6420 re not.executed │ │ │ │ -000082d0: 7365 7175 656e 7469 616c 6c79 2061 7320 sequentially as │ │ │ │ -000082e0: 696e 2074 6865 2075 7375 616c 2070 726f in the usual pro │ │ │ │ -000082f0: 6772 616d 6d69 6e67 206c 616e 6775 6167 gramming languag │ │ │ │ -00008300: 652e 2020 5468 6579 206d 6572 656c 790a e. They merely. │ │ │ │ -00008310: 636f 6e74 7269 6275 7465 2074 6f20 7468 contribute to th │ │ │ │ -00008320: 6174 2064 6563 6c61 7261 7469 6f6e 2e0a at declaration.. │ │ │ │ -00008330: 0a20 2020 4120 6665 7720 7379 6e74 6163 . A few syntac │ │ │ │ -00008340: 7469 6320 6465 7461 696c 7320 6172 6520 tic details are │ │ │ │ -00008350: 696d 706f 7274 616e 742e 2020 4361 7365 important. Case │ │ │ │ -00008360: 2069 7320 7369 676e 6966 6963 616e 7420 is significant │ │ │ │ -00008370: 696e 2074 6865 0ae2 8098 736b 6574 6368 in the....sketch │ │ │ │ -00008380: e280 9920 6c61 6e67 7561 6765 2e20 2057 ... language. W │ │ │ │ -00008390: 6974 6820 6120 6665 7720 6578 6365 7074 ith a few except │ │ │ │ -000083a0: 696f 6e73 2c20 7768 6974 6520 7370 6163 ions, white spac │ │ │ │ -000083b0: 6520 6973 206e 6f74 2e20 2054 6869 730a e is not. This. │ │ │ │ -000083c0: 696e 636c 7564 6573 206c 696e 6520 6272 includes line br │ │ │ │ -000083d0: 6561 6b73 2e20 2043 6f6d 6d65 6e74 7320 eaks. Comments │ │ │ │ -000083e0: 6265 6769 6e20 7769 7468 20e2 8098 25e2 begin with ...%. │ │ │ │ -000083f0: 8099 206f 7220 e280 9823 e280 9920 616e .. or ...#... an │ │ │ │ -00008400: 6420 6578 7465 6e64 2074 6f20 7468 650a d extend to the. │ │ │ │ -00008410: 656e 6420 6f66 2074 6865 206c 696e 652e end of the line. │ │ │ │ -00008420: 2020 596f 7520 6361 6e20 6469 7361 626c You can disabl │ │ │ │ -00008430: 6520 6120 6368 756e 6b20 6f66 2073 796e e a chunk of syn │ │ │ │ -00008440: 7461 6374 6963 616c 6c79 2063 6f72 7265 tactically corre │ │ │ │ -00008450: 6374 0ae2 8098 736b 6574 6368 e280 9920 ct....sketch... │ │ │ │ -00008460: 636f 6465 2062 7920 656e 636c 6f73 696e code by enclosin │ │ │ │ -00008470: 6720 6974 2069 6e20 6120 e280 9864 6566 g it in a ...def │ │ │ │ -00008480: e280 992e 2020 5468 6572 6520 6973 2061 .... There is a │ │ │ │ -00008490: 2073 696d 706c 6520 2269 6e63 6c75 6465 simple "include │ │ │ │ -000084a0: 0a66 696c 6522 206d 6563 6861 6e69 736d .file" mechanism │ │ │ │ -000084b0: 2e20 2054 6865 2063 6f6d 6d61 6e64 0a20 . The command. │ │ │ │ -000084c0: 2069 6e70 7574 7b6f 7468 6572 6669 6c65 input{otherfile │ │ │ │ -000084d0: 2e73 6b7d 0a63 6175 7365 7320 7468 6520 .sk}.causes the │ │ │ │ -000084e0: 636f 6e74 656e 7473 206f 6620 e280 986f contents of ...o │ │ │ │ -000084f0: 7468 6572 6669 6c65 2e73 6be2 8099 2074 therfile.sk... t │ │ │ │ -00008500: 6f20 6265 2069 6e73 6572 7465 6420 6173 o be inserted as │ │ │ │ -00008510: 2074 686f 7567 6820 7468 6579 2077 6572 though they wer │ │ │ │ -00008520: 650a 7061 7274 206f 6620 7468 6520 6375 e.part of the cu │ │ │ │ -00008530: 7272 656e 7420 6669 6c65 2e0a 0a2a 204d rrent file...* M │ │ │ │ -00008540: 656e 753a 0a0a 2a20 4964 656e 7469 6669 enu:..* Identifi │ │ │ │ -00008550: 6572 733a 3a20 2020 2020 2020 2020 2020 ers:: │ │ │ │ -00008560: 2020 2020 2020 4e61 6d65 7320 666f 7220 Names for │ │ │ │ -00008570: 7468 696e 6773 2e0a 2a20 4b65 7920 616e things..* Key an │ │ │ │ -00008580: 6420 7265 7365 7276 6564 2077 6f72 6473 d reserved words │ │ │ │ -00008590: 3a3a 2020 2020 2020 4e61 6d65 7320 796f :: Names yo │ │ │ │ -000085a0: 7520 7368 6f75 6c64 6e27 7420 7573 652e u shouldn't use. │ │ │ │ -000085b0: 0a2a 204c 6974 6572 616c 733a 3a20 2020 .* Literals:: │ │ │ │ -000085c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000085d0: 2043 6f6e 7374 616e 7473 2061 6e64 2063 Constants and c │ │ │ │ -000085e0: 6f6e 7374 7275 6374 6f72 732e 0a2a 2041 onstructors..* A │ │ │ │ -000085f0: 7269 7468 6d65 7469 633a 3a20 2020 2020 rithmetic:: │ │ │ │ -00008600: 2020 2020 2020 2020 2020 2020 2052 756c Rul │ │ │ │ -00008610: 6573 2066 6f72 2065 7870 7265 7373 696f es for expressio │ │ │ │ -00008620: 6e73 2e0a 2a20 4f70 7469 6f6e 733a 3a20 ns..* Options:: │ │ │ │ -00008630: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00008640: 2020 2020 4d6f 6469 6679 696e 6720 6f62 Modifying ob │ │ │ │ -00008650: 6a65 6374 2061 7070 6561 7261 6e63 652e ject appearance. │ │ │ │ -00008660: 0a0a 1f0a 4669 6c65 3a20 736b 6574 6368 ....File: sketch │ │ │ │ -00008670: 2e69 6e66 6f2c 2020 4e6f 6465 3a20 4964 .info, Node: Id │ │ │ │ -00008680: 656e 7469 6669 6572 732c 2020 4e65 7874 entifiers, Next │ │ │ │ -00008690: 3a20 4b65 7920 616e 6420 7265 7365 7276 : Key and reserv │ │ │ │ -000086a0: 6564 2077 6f72 6473 2c20 2050 7265 763a ed words, Prev: │ │ │ │ -000086b0: 204c 616e 6775 6167 6520 6261 7369 6373 Language basics │ │ │ │ -000086c0: 2c20 2055 703a 204c 616e 6775 6167 6520 , Up: Language │ │ │ │ -000086d0: 6261 7369 6373 0a0a 332e 312e 3120 4964 basics..3.1.1 Id │ │ │ │ -000086e0: 656e 7469 6669 6572 730a 2d2d 2d2d 2d2d entifiers.------ │ │ │ │ -000086f0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a 0a49 6465 -----------..Ide │ │ │ │ -00008700: 6e74 6966 6965 7273 2069 6e20 e280 9873 ntifiers in ...s │ │ │ │ -00008710: 6b65 7463 68e2 8099 2061 7265 2072 6566 ketch... are ref │ │ │ │ -00008720: 6572 656e 6365 7320 746f 2065 6172 6c69 erences to earli │ │ │ │ -00008730: 6572 2d64 6566 696e 6564 206f 7074 696f er-defined optio │ │ │ │ -00008740: 6e73 2c0a 7363 616c 6172 732c 2070 6f69 ns,.scalars, poi │ │ │ │ -00008750: 6e74 732c 2076 6563 746f 7273 2c20 7472 nts, vectors, tr │ │ │ │ -00008760: 616e 7366 6f72 6d73 2c20 6472 6177 6162 ansforms, drawab │ │ │ │ -00008770: 6c65 732c 2061 6e64 2074 6167 732e 2020 les, and tags. │ │ │ │ -00008780: 4465 6669 6e69 7469 6f6e 730a 6172 6520 Definitions.are │ │ │ │ -00008790: 6578 706c 6169 6e65 6420 696e 202a 6e6f explained in *no │ │ │ │ -000087a0: 7465 2044 6566 696e 6974 696f 6e73 3a3a te Definitions:: │ │ │ │ -000087b0: 2e0a 0a20 2020 416e 2069 6465 6e74 6966 ... An identif │ │ │ │ -000087c0: 6965 7220 636f 6e73 6973 7473 206f 6620 ier consists of │ │ │ │ -000087d0: 6120 6c65 6164 696e 6720 6c65 7474 6572 a leading letter │ │ │ │ -000087e0: 2066 6f6c 6c6f 7765 6420 6279 206c 6574 followed by let │ │ │ │ -000087f0: 7465 7273 2c0a 6e75 6d62 6572 7320 616e ters,.numbers an │ │ │ │ -00008800: 6420 756e 6465 7273 636f 7265 732e 2020 d underscores. │ │ │ │ -00008810: 5468 6520 6c61 7374 2063 6861 7261 6374 The last charact │ │ │ │ -00008820: 6572 206d 6179 205f 6e6f 745f 2062 6520 er may _not_ be │ │ │ │ -00008830: 616e 2075 6e64 6572 7363 6f72 652e 0a4b an underscore..K │ │ │ │ -00008840: 6579 776f 7264 7320 6361 6e6e 6f74 2062 eywords cannot b │ │ │ │ -00008850: 6520 7573 6564 2061 7320 6964 656e 7469 e used as identi │ │ │ │ -00008860: 6669 6572 732c 2061 6e64 2072 6573 6572 fiers, and reser │ │ │ │ -00008870: 7665 6420 776f 7264 7320 6f75 6768 7420 ved words ought │ │ │ │ -00008880: 746f 2062 650a 6176 6f69 6465 642e 2020 to be.avoided. │ │ │ │ -00008890: 2a4e 6f74 6520 4b65 7920 616e 6420 7265 *Note Key and re │ │ │ │ -000088a0: 7365 7276 6564 2077 6f72 6473 3a3a 2e0a served words::.. │ │ │ │ -000088b0: 0a1f 0a46 696c 653a 2073 6b65 7463 682e ...File: sketch. │ │ │ │ -000088c0: 696e 666f 2c20 204e 6f64 653a 204b 6579 info, Node: Key │ │ │ │ -000088d0: 2061 6e64 2072 6573 6572 7665 6420 776f and reserved wo │ │ │ │ -000088e0: 7264 732c 2020 4e65 7874 3a20 4c69 7465 rds, Next: Lite │ │ │ │ -000088f0: 7261 6c73 2c20 2050 7265 763a 2049 6465 rals, Prev: Ide │ │ │ │ -00008900: 6e74 6966 6965 7273 2c20 2055 703a 204c ntifiers, Up: L │ │ │ │ -00008910: 616e 6775 6167 6520 6261 7369 6373 0a0a anguage basics.. │ │ │ │ -00008920: 332e 312e 3220 4b65 7920 616e 6420 7265 3.1.2 Key and re │ │ │ │ -00008930: 7365 7276 6564 2077 6f72 6473 0a2d 2d2d served words.--- │ │ │ │ +00006ff0: 2d2d 2d2d 0a0a 4120 706f 6c79 6c69 6e65 ----..A polyline │ │ │ │ +00007000: 2073 7765 6570 2077 6974 6820 6120 636c sweep with a cl │ │ │ │ +00007010: 6f73 7572 6520 7461 6720 6372 6561 7465 osure tag create │ │ │ │ +00007020: 7320 616e 6f74 6865 7220 6b69 6e64 206f s another kind o │ │ │ │ +00007030: 6620 636c 6f73 6564 0a73 7572 6661 6365 f closed.surface │ │ │ │ +00007040: 2e20 2046 6972 7374 2c20 7468 6520 706f . First, the po │ │ │ │ +00007050: 6c79 6c69 6e65 2073 6567 6d65 6e74 7320 lyline segments │ │ │ │ +00007060: 6172 6520 636f 6e6e 6563 7465 6420 6279 are connected by │ │ │ │ +00007070: 2066 6163 6573 2c20 6a75 7374 2061 730a faces, just as. │ │ │ │ +00007080: 7769 7468 6f75 7420 7468 6520 636c 6f73 without the clos │ │ │ │ +00007090: 7572 6520 7461 672e 2020 5468 656e 2c20 ure tag. Then, │ │ │ │ +000070a0: 6561 6368 2073 6574 206f 6620 656e 6420 each set of end │ │ │ │ +000070b0: 706f 696e 7473 2069 7320 6a6f 696e 6564 points is joined │ │ │ │ +000070c0: 2074 6f20 6d61 6b65 0a61 2070 6f6c 7967 to make.a polyg │ │ │ │ +000070d0: 6f6e 2c20 6f6e 6520 666f 7220 6561 6368 on, one for each │ │ │ │ +000070e0: 2065 6e64 2e20 2041 2063 6f64 6520 666f end. A code fo │ │ │ │ +000070f0: 7220 7365 7665 7261 6c20 7669 6577 7320 r several views │ │ │ │ +00007100: 6f66 2061 2063 796c 696e 6472 6963 616c of a cylindrical │ │ │ │ +00007110: 0a70 7269 736d 2066 6f6c 6c6f 7773 2e0a .prism follows.. │ │ │ │ +00007120: 2020 6465 6620 6e5f 6379 6c5f 7365 6773 def n_cyl_segs │ │ │ │ +00007130: 2032 3020 2064 6566 206e 5f76 6965 7773 20 def n_views │ │ │ │ +00007140: 2035 2020 6465 6620 4920 5b31 2c30 2c30 5 def I [1,0,0 │ │ │ │ +00007150: 5d0a 2020 6465 6620 656e 646f 7074 7320 ]. def endopts │ │ │ │ +00007160: 5b66 696c 6c63 6f6c 6f72 3d6c 6967 6874 [fillcolor=light │ │ │ │ +00007170: 6772 6179 5d0a 2020 7265 7065 6174 207b gray]. repeat { │ │ │ │ +00007180: 206e 5f76 6965 7773 2c20 726f 7461 7465 n_views, rotate │ │ │ │ +00007190: 2831 3830 2f6e 5f76 6965 7773 2c20 5b49 (180/n_views, [I │ │ │ │ +000071a0: 5d29 2074 6865 6e20 7472 616e 736c 6174 ]) then translat │ │ │ │ +000071b0: 6528 5b49 5d20 2a20 322e 3129 207d 200a e([I] * 2.1) } . │ │ │ │ +000071c0: 2020 2020 7377 6565 705b 656e 646f 7074 sweep[endopt │ │ │ │ +000071d0: 735d 7b20 6e5f 6379 6c5f 7365 6773 3c3e s]{ n_cyl_segs<> │ │ │ │ +000071e0: 2c20 726f 7461 7465 2833 3630 2f6e 5f63 , rotate(360/n_c │ │ │ │ +000071f0: 796c 5f73 6567 732c 205b 302c 312c 305d yl_segs, [0,1,0] │ │ │ │ +00007200: 2920 7d20 0a20 2020 2020 206c 696e 655b ) } . line[ │ │ │ │ +00007210: 6669 6c6c 636f 6c6f 723d 7768 6974 655d fillcolor=white] │ │ │ │ +00007220: 2831 2c2d 3129 2831 2c31 290a 4974 2070 (1,-1)(1,1).It p │ │ │ │ +00007230: 726f 6475 6365 7320 7468 6973 2064 7261 roduces this dra │ │ │ │ +00007240: 7769 6e67 2e0a 0a00 085b 696d 6167 6520 wing.....[image │ │ │ │ +00007250: 7372 633d 2265 7831 3130 2e70 6e67 2220 src="ex110.png" │ │ │ │ +00007260: 7465 7874 3d22 496d 6167 6520 6578 3131 text="Image ex11 │ │ │ │ +00007270: 3020 6f6d 6974 7465 6420 696e 2074 6578 0 omitted in tex │ │ │ │ +00007280: 7420 7665 7273 696f 6e20 6f66 2074 6869 t version of thi │ │ │ │ +00007290: 7320 646f 6375 6d65 6e74 2e22 0008 5d0a s document."..]. │ │ │ │ +000072a0: 0a54 6865 206f 7074 696f 6e73 206f 6620 .The options of │ │ │ │ +000072b0: 7468 6520 7377 6570 7420 6c69 6e65 2c20 the swept line, │ │ │ │ +000072c0: 6966 2061 6e79 2c20 6172 6520 6170 706c if any, are appl │ │ │ │ +000072d0: 6965 6420 746f 2074 6865 2066 6163 6573 ied to the faces │ │ │ │ +000072e0: 2070 726f 6475 6365 640a 6279 2073 7765 produced.by swe │ │ │ │ +000072f0: 6570 696e 6720 7468 6520 6c69 6e65 2c20 eping the line, │ │ │ │ +00007300: 6275 7420 6e6f 7420 7468 6520 656e 6420 but not the end │ │ │ │ +00007310: 706f 6c79 676f 6e73 2e20 204f 7468 6572 polygons. Other │ │ │ │ +00007320: 7769 7365 2c20 7468 6520 7377 6565 700a wise, the sweep. │ │ │ │ +00007330: 6f70 7469 6f6e 7320 6172 6520 6170 706c options are appl │ │ │ │ +00007340: 6965 6420 7468 726f 7567 686f 7574 2e20 ied throughout. │ │ │ │ +00007350: 2054 6865 2064 6566 2069 6e20 7468 6973 The def in this │ │ │ │ +00007360: 2065 7861 6d70 6c65 2069 7320 616e 20e2 example is an . │ │ │ │ +00007370: 809c 6f70 7469 6f6e e280 9d0a 6465 6669 ..option....defi │ │ │ │ +00007380: 6e69 7469 6f6e 2e20 2052 6566 6572 656e nition. Referen │ │ │ │ +00007390: 6365 7320 746f 206f 7074 696f 6e73 206d ces to options m │ │ │ │ +000073a0: 7573 7420 6265 2065 6e63 6c6f 7365 6420 ust be enclosed │ │ │ │ +000073b0: 696e 2073 7175 6172 6520 6272 6163 6b65 in square bracke │ │ │ │ +000073c0: 7473 2c0a 652e 672e 2020 205b 666f 6f5d ts,.e.g. [foo] │ │ │ │ +000073d0: 2e20 2059 6f75 2063 616e 2063 6f6e 6361 . You can conca │ │ │ │ +000073e0: 7465 6e61 7465 2073 6576 6572 616c 2073 tenate several s │ │ │ │ +000073f0: 6574 7320 6f66 206f 7074 696f 6e73 2077 ets of options w │ │ │ │ +00007400: 6974 6820 6120 7369 6e67 6c65 0a72 6566 ith a single.ref │ │ │ │ +00007410: 6572 656e 6365 2c20 652e 672e 2020 205b erence, e.g. [ │ │ │ │ +00007420: 636f 6c6f 722c 2073 697a 652c 2073 7479 color, size, sty │ │ │ │ +00007430: 6c65 5d20 2077 6f75 6c64 2063 6175 7365 le] would cause │ │ │ │ +00007440: 2074 6865 206f 7074 696f 6e0a 6465 6669 the option.defi │ │ │ │ +00007450: 6e69 7469 6f6e 7320 666f 7220 e280 9863 nitions for ...c │ │ │ │ +00007460: 6f6c 6f72 e280 992c 20e2 8098 7369 7a65 olor..., ...size │ │ │ │ +00007470: e280 992c 2061 6e64 20e2 8098 7374 796c ..., and ...styl │ │ │ │ +00007480: 65e2 8099 2074 6f20 6170 7065 6172 2069 e... to appear i │ │ │ │ +00007490: 6e20 7365 7175 656e 6365 2069 6e0a 7468 n sequence in.th │ │ │ │ +000074a0: 6520 6f75 7470 7574 2063 7265 6174 6564 e output created │ │ │ │ +000074b0: 2062 7920 7468 6520 e280 9873 6b65 7463 by the ...sketc │ │ │ │ +000074c0: 68e2 8099 2063 6f6d 6d61 6e64 2063 6f6e h... command con │ │ │ │ +000074d0: 7461 696e 696e 6720 7468 6520 7265 6665 taining the refe │ │ │ │ +000074e0: 7265 6e63 652e 0a48 6170 7069 6c79 2c20 rence..Happily, │ │ │ │ +000074f0: 7468 6520 7379 6e74 6178 206f 6620 e280 the syntax of .. │ │ │ │ +00007500: 9873 6b65 7463 68e2 8099 2069 7320 7375 .sketch... is su │ │ │ │ +00007510: 6368 2074 6861 7420 6f70 7469 6f6e 7320 ch that options │ │ │ │ +00007520: 7265 6665 7265 6e63 6573 2063 616e 0a6e references can.n │ │ │ │ +00007530: 6576 6572 2062 6520 636f 6e66 7573 6564 ever be confused │ │ │ │ +00007540: 2077 6974 6820 7665 6374 6f72 2072 6566 with vector ref │ │ │ │ +00007550: 6572 656e 6365 732e 2020 5768 696c 6520 erences. While │ │ │ │ +00007560: 6e6f 7420 6170 7061 7265 6e74 2069 6e20 not apparent in │ │ │ │ +00007570: 7468 6973 0a65 7861 6d70 6c65 2c20 6f70 this.example, op │ │ │ │ +00007580: 7469 6f6e 7320 7265 6665 7265 6e63 6573 tions references │ │ │ │ +00007590: 2061 7265 2075 7365 6675 6c20 7768 656e are useful when │ │ │ │ +000075a0: 2064 6566 696e 696e 6720 6d61 6e79 206f defining many o │ │ │ │ +000075b0: 626a 6563 7473 2077 6974 6820 610a 7369 bjects with a.si │ │ │ │ +000075c0: 6d69 6c61 7220 6170 7065 6172 616e 6365 milar appearance │ │ │ │ +000075d0: 2e0a 0a1f 0a46 696c 653a 2073 6b65 7463 .....File: sketc │ │ │ │ +000075e0: 682e 696e 666f 2c20 204e 6f64 653a 2041 h.info, Node: A │ │ │ │ +000075f0: 6666 696e 6520 6172 6974 686d 6574 6963 ffine arithmetic │ │ │ │ +00007600: 2c20 204e 6578 743a 204d 6f72 6520 746f , Next: More to │ │ │ │ +00007610: 206c 6561 726e 2c20 2050 7265 763a 2050 learn, Prev: P │ │ │ │ +00007620: 6f6c 796c 696e 6520 7377 6565 7073 2077 olyline sweeps w │ │ │ │ +00007630: 6974 6820 636c 6f73 7572 652c 2020 5570 ith closure, Up │ │ │ │ +00007640: 3a20 5377 6570 7420 6f62 6a65 6374 730a : Swept objects. │ │ │ │ +00007650: 0a32 2e37 2e36 2041 6666 696e 6520 6172 .2.7.6 Affine ar │ │ │ │ +00007660: 6974 686d 6574 6963 0a2d 2d2d 2d2d 2d2d ithmetic.------- │ │ │ │ +00007670: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ +00007680: 0a0a 5468 6520 6172 6974 686d 6574 6963 ..The arithmetic │ │ │ │ +00007690: 205b 495d 202a 2032 2e31 2061 626f 7665 [I] * 2.1 above │ │ │ │ +000076a0: 2068 696e 7473 2061 7420 6120 6c61 7267 hints at a larg │ │ │ │ +000076b0: 6572 2074 7275 7468 2e20 20e2 8098 536b er truth. ...Sk │ │ │ │ +000076c0: 6574 6368 e280 990a 6f70 6572 6174 6f72 etch....operator │ │ │ │ +000076d0: 7320 776f 726b 206f 6e20 7363 616c 6172 s work on scalar │ │ │ │ +000076e0: 732c 2076 6563 746f 7273 2c20 706f 696e s, vectors, poin │ │ │ │ +000076f0: 7473 2c20 616e 6420 7472 616e 7366 6f72 ts, and transfor │ │ │ │ +00007700: 6d73 2061 6363 6f72 6469 6e67 2074 6f0a ms according to. │ │ │ │ +00007710: 7468 6520 6765 6e65 7261 6c20 7275 6c65 the general rule │ │ │ │ +00007720: 7320 6f66 20e2 809c 6166 6669 6e65 2061 s of ...affine a │ │ │ │ +00007730: 6c67 6562 7261 e280 9d2e 2020 5468 6973 lgebra.... This │ │ │ │ +00007740: 2063 616e 2062 6520 6865 6c70 6675 6c20 can be helpful │ │ │ │ +00007750: 666f 7220 7365 7474 696e 670a 7570 2064 for setting.up d │ │ │ │ +00007760: 6961 6772 616d 7320 7769 7468 2063 6f6d iagrams with com │ │ │ │ +00007770: 7075 7465 6420 6765 6f6d 6574 7279 2e20 puted geometry. │ │ │ │ +00007780: 2046 6f72 2065 7861 6d70 6c65 2c20 6966 For example, if │ │ │ │ +00007790: 2079 6f75 2068 6176 6520 7472 6961 6e67 you have triang │ │ │ │ +000077a0: 6c65 0a76 6572 7469 6365 7320 2870 3129 le.vertices (p1) │ │ │ │ +000077b0: 2074 6872 6f75 6768 2028 7033 2920 616e through (p3) an │ │ │ │ +000077c0: 6420 6e65 6564 2074 6f20 6472 6177 2061 d need to draw a │ │ │ │ +000077d0: 2075 6e69 7420 6e6f 726d 616c 2076 6563 unit normal vec │ │ │ │ +000077e0: 746f 720a 706f 696e 7469 6e67 206f 7574 tor.pointing out │ │ │ │ +000077f0: 206f 6620 7468 6520 6365 6e74 6572 206f of the center o │ │ │ │ +00007800: 6620 7468 6520 7472 6961 6e67 6c65 2c20 f the triangle, │ │ │ │ +00007810: 7468 6973 2063 6f64 6520 646f 6573 2074 this code does t │ │ │ │ +00007820: 6865 2074 7269 636b 2e0a 2020 6465 6620 he trick.. def │ │ │ │ +00007830: 7031 2028 312c 302c 3029 2020 6465 6620 p1 (1,0,0) def │ │ │ │ +00007840: 7032 2028 302c 302e 352c 3029 2020 6465 p2 (0,0.5,0) de │ │ │ │ +00007850: 6620 7033 2028 2d30 2e35 2c2d 312c 3229 f p3 (-0.5,-1,2) │ │ │ │ +00007860: 0a20 2064 6566 204f 2028 302c 302c 3029 . def O (0,0,0) │ │ │ │ +00007870: 0a20 2064 6566 204e 2075 6e69 7428 2028 . def N unit( ( │ │ │ │ +00007880: 2870 3329 202d 2028 7032 2929 202a 2028 (p3) - (p2)) * ( │ │ │ │ +00007890: 2870 3129 202d 2028 7032 2929 2029 0a20 (p1) - (p2)) ). │ │ │ │ +000078a0: 2064 6566 206e 3120 2828 7031 292d 284f def n1 ((p1)-(O │ │ │ │ +000078b0: 2920 2b20 2870 3229 2d28 4f29 202b 2028 ) + (p2)-(O) + ( │ │ │ │ +000078c0: 7033 292d 284f 2929 202f 2033 202b 2028 p3)-(O)) / 3 + ( │ │ │ │ +000078d0: 4f29 0a20 2064 6566 206e 3220 286e 3129 O). def n2 (n1) │ │ │ │ +000078e0: 2b5b 4e5d 0a20 2070 6f6c 7967 6f6e 2870 +[N]. polygon(p │ │ │ │ +000078f0: 3129 2870 3229 2870 3329 0a20 206c 696e 1)(p2)(p3). lin │ │ │ │ +00007900: 655b 6172 726f 7773 3d2a 2d3e 5d28 6e31 e[arrows=*->](n1 │ │ │ │ +00007910: 2928 6e32 290a 5468 6520 6669 7273 7420 )(n2).The first │ │ │ │ +00007920: 6c69 6e65 2063 6f6d 7075 7465 7320 7468 line computes th │ │ │ │ +00007930: 6520 6372 6f73 7320 7072 6f64 7563 7420 e cross product │ │ │ │ +00007940: 6f66 2074 776f 2065 6467 6520 7665 6374 of two edge vect │ │ │ │ +00007950: 6f72 7320 6f66 2074 6865 0a74 7269 616e ors of the.trian │ │ │ │ +00007960: 676c 6520 616e 6420 7363 616c 6573 2069 gle and scales i │ │ │ │ +00007970: 7420 746f 2075 6e69 7420 6c65 6e67 7468 t to unit length │ │ │ │ +00007980: 2e20 2054 6865 2073 6563 6f6e 6420 636f . The second co │ │ │ │ +00007990: 6d70 7574 6573 2074 6865 2061 7665 7261 mputes the avera │ │ │ │ +000079a0: 6765 0a6f 6620 7468 6520 7665 7274 6963 ge.of the vertic │ │ │ │ +000079b0: 6573 2e20 204e 6f74 6520 7468 6174 2073 es. Note that s │ │ │ │ +000079c0: 7562 7472 6163 7469 6f6e 2061 6e64 2061 ubtraction and a │ │ │ │ +000079d0: 6464 6974 696f 6e20 6f66 2074 6865 206f ddition of the o │ │ │ │ +000079e0: 7269 6769 6e0a 6566 6665 6374 6976 656c rigin.effectivel │ │ │ │ +000079f0: 7920 636f 6e76 6572 7420 7665 6374 6f72 y convert vector │ │ │ │ +00007a00: 7320 746f 2070 6f69 6e74 7320 616e 6420 s to points and │ │ │ │ +00007a10: 5f76 6963 6520 7665 7273 615f 2e20 2054 _vice versa_. T │ │ │ │ +00007a20: 6865 206c 696e 650a 636f 6d6d 616e 6420 he line.command │ │ │ │ +00007a30: 6472 6177 7320 7468 6520 6e6f 726d 616c draws the normal │ │ │ │ +00007a40: 2061 7420 7468 6520 636f 7272 6563 7420 at the correct │ │ │ │ +00007a50: 7370 6f74 2e0a 0a00 085b 696d 6167 6520 spot.....[image │ │ │ │ +00007a60: 7372 633d 2265 7831 3030 2e70 6e67 2220 src="ex100.png" │ │ │ │ +00007a70: 7465 7874 3d22 496d 6167 6520 6578 3130 text="Image ex10 │ │ │ │ +00007a80: 3020 6f6d 6974 7465 6420 696e 2074 6578 0 omitted in tex │ │ │ │ +00007a90: 7420 7665 7273 696f 6e20 6f66 2074 6869 t version of thi │ │ │ │ +00007aa0: 7320 646f 6375 6d65 6e74 2e22 0008 5d0a s document."..]. │ │ │ │ +00007ab0: 0a20 2020 5477 6f20 6361 7665 6174 7320 . Two caveats │ │ │ │ +00007ac0: 7265 6761 7264 696e 6720 7468 6973 2065 regarding this e │ │ │ │ +00007ad0: 7861 6d70 6c65 2072 656d 6169 6e2e 2020 xample remain. │ │ │ │ +00007ae0: 4669 7273 742c 2074 6865 206f 6e6c 7920 First, the only │ │ │ │ +00007af0: 7761 7920 746f 0a75 7365 20e2 8098 5053 way to.use ...PS │ │ │ │ +00007b00: 5472 6963 6b73 e280 992d 7374 796c 6520 Tricks...-style │ │ │ │ +00007b10: 6172 726f 7773 2069 7320 7769 7468 2061 arrows is with a │ │ │ │ +00007b20: 7272 6f77 733d 2e20 2054 6865 2061 6c74 rrows=. The alt │ │ │ │ +00007b30: 6572 6e61 7469 7665 2073 796e 7461 7820 ernative syntax │ │ │ │ +00007b40: 666f 720a e280 9850 5354 7269 636b 73e2 for....PSTricks. │ │ │ │ +00007b50: 8099 2061 7272 6f77 7320 6973 206e 6f74 .. arrows is not │ │ │ │ +00007b60: 2061 6c6c 6f77 6564 2069 6e20 736b 6574 allowed in sket │ │ │ │ +00007b70: 6368 2e20 2053 6563 6f6e 642c 2079 6f75 ch. Second, you │ │ │ │ +00007b80: 206d 6967 6874 206c 696b 6520 746f 0a65 might like to.e │ │ │ │ +00007b90: 6c69 6d69 6e61 7465 2074 6865 2074 6869 liminate the thi │ │ │ │ +00007ba0: 7264 2064 6566 2061 6e64 2077 7269 7465 rd def and write │ │ │ │ +00007bb0: 2069 6e73 7465 6164 2074 6865 2066 6f6c instead the fol │ │ │ │ +00007bc0: 6c6f 7769 6e67 2e0a 2020 6c69 6e65 5b61 lowing.. line[a │ │ │ │ +00007bd0: 7272 6f77 733d 2a2d 3e5d 286e 3129 2028 rrows=*->](n1) ( │ │ │ │ +00007be0: 6e31 292b 5b4e 5d0a 5468 6973 2069 7320 n1)+[N].This is │ │ │ │ +00007bf0: 6e6f 7420 616c 6c6f 7765 642e 2020 5468 not allowed. Th │ │ │ │ +00007c00: 6520 706f 696e 7420 6c69 7374 7320 696e e point lists in │ │ │ │ +00007c10: 2064 7261 7761 626c 6573 206d 6179 2063 drawables may c │ │ │ │ +00007c20: 6f6e 7369 7374 206f 6e6c 7920 6f66 0a65 onsist only of.e │ │ │ │ +00007c30: 7870 6c69 6369 7420 706f 696e 7473 206f xplicit points o │ │ │ │ +00007c40: 7220 706f 696e 7420 7265 6665 7265 6e63 r point referenc │ │ │ │ +00007c50: 6573 2e20 2059 6f75 206d 6179 2c20 686f es. You may, ho │ │ │ │ +00007c60: 7765 7665 722c 2075 7365 2061 7269 7468 wever, use arith │ │ │ │ +00007c70: 6d65 7469 630a 746f 2063 616c 6375 6c61 metic.to calcula │ │ │ │ +00007c80: 7465 2070 6f69 6e74 2063 6f6d 706f 6e65 te point compone │ │ │ │ +00007c90: 6e74 732e 2020 5468 6520 666f 6c6c 6f77 nts. The follow │ │ │ │ +00007ca0: 696e 6720 776f 726b 732c 2074 686f 7567 ing works, thoug │ │ │ │ +00007cb0: 6820 6974 2773 2061 0a6c 6974 746c 6520 h it's a.little │ │ │ │ +00007cc0: 6375 6d62 6572 736f 6d65 2e0a 2020 6c69 cumbersome.. li │ │ │ │ +00007cd0: 6e65 5b61 7272 6f77 733d 2a2d 3e5d 286e ne[arrows=*->](n │ │ │ │ +00007ce0: 3129 2828 6e31 2927 782b 284e 2927 782c 1)((n1)'x+(N)'x, │ │ │ │ +00007cf0: 2028 6e31 2927 792b 284e 2927 792c 2028 (n1)'y+(N)'y, ( │ │ │ │ +00007d00: 6e31 2927 7a2b 284e 2927 7a29 0a4f 6276 n1)'z+(N)'z).Obv │ │ │ │ +00007d10: 696f 7573 6c79 2c20 7468 6520 e280 9c74 iously, the ...t │ │ │ │ +00007d20: 6963 6b20 6f70 6572 6174 6f72 e280 9d20 ick operator... │ │ │ │ +00007d30: e280 9827 78e2 8099 2065 7874 7261 6374 ...'x... extract │ │ │ │ +00007d40: 7320 636f 6d70 6f6e 656e 7473 206f 6620 s components of │ │ │ │ +00007d50: 706f 696e 7473 2061 6e64 0a76 6563 746f points and.vecto │ │ │ │ +00007d60: 7273 2e0a 0a1f 0a46 696c 653a 2073 6b65 rs.....File: ske │ │ │ │ +00007d70: 7463 682e 696e 666f 2c20 204e 6f64 653a tch.info, Node: │ │ │ │ +00007d80: 204d 6f72 6520 746f 206c 6561 726e 2c20 More to learn, │ │ │ │ +00007d90: 2050 7265 763a 2041 6666 696e 6520 6172 Prev: Affine ar │ │ │ │ +00007da0: 6974 686d 6574 6963 2c20 2055 703a 2053 ithmetic, Up: S │ │ │ │ +00007db0: 7765 7074 206f 626a 6563 7473 0a0a 322e wept objects..2. │ │ │ │ +00007dc0: 372e 3720 4d6f 7265 2074 6f20 6c65 6172 7.7 More to lear │ │ │ │ +00007dd0: 6e0a 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d n.-------------- │ │ │ │ +00007de0: 2d2d 2d2d 2d0a 0a54 6869 7320 6973 206e -----..This is n │ │ │ │ +00007df0: 6f74 2074 6865 2065 6e64 206f 6620 7468 ot the end of th │ │ │ │ +00007e00: 6520 7374 6f72 7920 6f6e 2073 7765 6570 e story on sweep │ │ │ │ +00007e10: 7321 2020 5765 2069 6e76 6974 6520 7468 s! We invite th │ │ │ │ +00007e20: 6520 7265 6164 6572 2069 6e74 6f0a 7468 e reader into.th │ │ │ │ +00007e30: 6520 6d61 696e 2062 6f64 7920 6f66 2074 e main body of t │ │ │ │ +00007e40: 6869 7320 646f 6375 6d65 6e74 6174 696f his documentatio │ │ │ │ +00007e50: 6e20 2a6e 6f74 6520 5377 6565 7073 3a3a n *note Sweeps:: │ │ │ │ +00007e60: 2074 6f20 6c65 6172 6e20 6d6f 7265 2e0a to learn more.. │ │ │ │ +00007e70: 0a00 085b 696d 6167 6520 7372 633d 2265 ...[image src="e │ │ │ │ +00007e80: 7831 3230 2e70 6e67 2220 7465 7874 3d22 x120.png" text=" │ │ │ │ +00007e90: 496d 6167 6520 6578 3132 3020 6f6d 6974 Image ex120 omit │ │ │ │ +00007ea0: 7465 6420 696e 2074 6578 7420 7665 7273 ted in text vers │ │ │ │ +00007eb0: 696f 6e20 6f66 2074 6869 7320 646f 6375 ion of this docu │ │ │ │ +00007ec0: 6d65 6e74 2e22 0008 5d0a 0a57 686f 206b ment."..]..Who k │ │ │ │ +00007ed0: 6e6f 7773 2077 6865 7265 2079 6f75 276c nows where you'l │ │ │ │ +00007ee0: 6c20 6669 6e69 7368 3f0a 0a1f 0a46 696c l finish?....Fil │ │ │ │ +00007ef0: 653a 2073 6b65 7463 682e 696e 666f 2c20 e: sketch.info, │ │ │ │ +00007f00: 204e 6f64 653a 2049 6e70 7574 206c 616e Node: Input lan │ │ │ │ +00007f10: 6775 6167 652c 2020 4e65 7874 3a20 4275 guage, Next: Bu │ │ │ │ +00007f20: 696c 6469 6e67 2061 2064 7261 7769 6e67 ilding a drawing │ │ │ │ +00007f30: 2c20 2050 7265 763a 2049 6e74 726f 6475 , Prev: Introdu │ │ │ │ +00007f40: 6374 696f 6e20 6279 2065 7861 6d70 6c65 ction by example │ │ │ │ +00007f50: 2c20 2055 703a 2054 6f70 0a0a 3320 496e , Up: Top..3 In │ │ │ │ +00007f60: 7075 7420 6c61 6e67 7561 6765 0a2a 2a2a put language.*** │ │ │ │ +00007f70: 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a0a 0a54 *************..T │ │ │ │ +00007f80: 6869 7320 6368 6170 7465 7220 6465 7363 his chapter desc │ │ │ │ +00007f90: 7269 6265 7320 7468 6520 e280 9873 6b65 ribes the ...ske │ │ │ │ +00007fa0: 7463 68e2 8099 2069 6e70 7574 206c 616e tch... input lan │ │ │ │ +00007fb0: 6775 6167 6520 696e 2064 6574 6169 6c2e guage in detail. │ │ │ │ +00007fc0: 0a0a 2a20 4d65 6e75 3a0a 0a2a 204c 616e ..* Menu:..* Lan │ │ │ │ +00007fd0: 6775 6167 6520 6261 7369 6373 3a3a 2020 guage basics:: │ │ │ │ +00007fe0: 2020 2020 2020 2020 2020 2043 6173 652c Case, │ │ │ │ +00007ff0: 2073 7061 6365 2c20 636f 6d6d 656e 7473 space, comments │ │ │ │ +00008000: 2c20 696e 636c 7564 6520 6669 6c65 732e , include files. │ │ │ │ +00008010: 0a2a 2044 7261 7761 626c 6573 3a3a 2020 .* Drawables:: │ │ │ │ +00008020: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00008030: 2054 6869 6e67 7320 7468 6174 2063 616e Things that can │ │ │ │ +00008040: 2062 6520 6472 6177 6e2e 0a2a 2044 6566 be drawn..* Def │ │ │ │ +00008050: 696e 6974 696f 6e73 3a3a 2020 2020 2020 initions:: │ │ │ │ +00008060: 2020 2020 2020 2020 2020 2047 6976 696e Givin │ │ │ │ +00008070: 6720 7468 696e 6773 206e 616d 6573 2e0a g things names.. │ │ │ │ +00008080: 2a20 476c 6f62 616c 2065 6e76 6972 6f6e * Global environ │ │ │ │ +00008090: 6d65 6e74 3a3a 2020 2020 2020 2020 2020 ment:: │ │ │ │ +000080a0: 4166 6665 6374 2074 6865 2065 6e74 6972 Affect the entir │ │ │ │ +000080b0: 6520 6472 6177 696e 672e 0a0a 1f0a 4669 e drawing.....Fi │ │ │ │ +000080c0: 6c65 3a20 736b 6574 6368 2e69 6e66 6f2c le: sketch.info, │ │ │ │ +000080d0: 2020 4e6f 6465 3a20 4c61 6e67 7561 6765 Node: Language │ │ │ │ +000080e0: 2062 6173 6963 732c 2020 4e65 7874 3a20 basics, Next: │ │ │ │ +000080f0: 4472 6177 6162 6c65 732c 2020 5072 6576 Drawables, Prev │ │ │ │ +00008100: 3a20 496e 7075 7420 6c61 6e67 7561 6765 : Input language │ │ │ │ +00008110: 2c20 2055 703a 2049 6e70 7574 206c 616e , Up: Input lan │ │ │ │ +00008120: 6775 6167 650a 0a33 2e31 2042 6173 6963 guage..3.1 Basic │ │ │ │ +00008130: 730a 3d3d 3d3d 3d3d 3d3d 3d3d 0a0a e280 s.==========.... │ │ │ │ +00008140: 9853 6b65 7463 68e2 8099 2069 6e70 7574 .Sketch... input │ │ │ │ +00008150: 2069 7320 706c 6169 6e20 4153 4349 4920 is plain ASCII │ │ │ │ +00008160: 7465 7874 2c20 7573 7561 6c6c 7920 7374 text, usually st │ │ │ │ +00008170: 6f72 6564 2069 6e20 616e 2069 6e70 7574 ored in an input │ │ │ │ +00008180: 2066 696c 652e 2020 4974 0a64 6573 6372 file. It.descr │ │ │ │ +00008190: 6962 6573 2061 20e2 809c 7363 656e 65e2 ibes a ...scene. │ │ │ │ +000081a0: 809d 2c20 736f 2074 6865 2073 6b65 7463 .., so the sketc │ │ │ │ +000081b0: 6820 6c61 6e67 7561 6765 2069 7320 6120 h language is a │ │ │ │ +000081c0: e280 9c73 6365 6e65 2064 6573 6372 6970 ...scene descrip │ │ │ │ +000081d0: 7469 6f6e 0a6c 616e 6775 6167 65e2 809d tion.language... │ │ │ │ +000081e0: 2e20 20e2 8098 536b 6574 6368 e280 9920 . ...Sketch... │ │ │ │ +000081f0: 696e 7075 7420 6973 2061 6c73 6f20 e280 input is also .. │ │ │ │ +00008200: 9c64 6563 6c61 7261 7469 7665 e280 9d2e .declarative.... │ │ │ │ +00008210: 2020 4974 206d 6572 656c 7920 6465 636c It merely decl │ │ │ │ +00008220: 6172 6573 0a77 6861 7420 7468 6520 7363 ares.what the sc │ │ │ │ +00008230: 656e 6520 6f75 6768 7420 746f 206c 6f6f ene ought to loo │ │ │ │ +00008240: 6b20 6c69 6b65 2077 6865 6e20 6472 6177 k like when draw │ │ │ │ +00008250: 696e 6720 6973 2063 6f6d 706c 6574 6520 ing is complete │ │ │ │ +00008260: 616e 6420 7361 7973 2076 6572 790a 6c69 and says very.li │ │ │ │ +00008270: 7474 6c65 2061 626f 7574 2068 6f77 20e2 ttle about how . │ │ │ │ +00008280: 8098 736b 6574 6368 e280 9920 7368 6f75 ..sketch... shou │ │ │ │ +00008290: 6c64 2064 6f20 6974 7320 776f 726b 2e20 ld do its work. │ │ │ │ +000082a0: 20e2 8098 536b 6574 6368 e280 9920 636f ...Sketch... co │ │ │ │ +000082b0: 6d6d 616e 6473 2061 7265 206e 6f74 0a65 mmands are not.e │ │ │ │ +000082c0: 7865 6375 7465 6420 7365 7175 656e 7469 xecuted sequenti │ │ │ │ +000082d0: 616c 6c79 2061 7320 696e 2074 6865 2075 ally as in the u │ │ │ │ +000082e0: 7375 616c 2070 726f 6772 616d 6d69 6e67 sual programming │ │ │ │ +000082f0: 206c 616e 6775 6167 652e 2020 5468 6579 language. They │ │ │ │ +00008300: 206d 6572 656c 790a 636f 6e74 7269 6275 merely.contribu │ │ │ │ +00008310: 7465 2074 6f20 7468 6174 2064 6563 6c61 te to that decla │ │ │ │ +00008320: 7261 7469 6f6e 2e0a 0a20 2020 4120 6665 ration... A fe │ │ │ │ +00008330: 7720 7379 6e74 6163 7469 6320 6465 7461 w syntactic deta │ │ │ │ +00008340: 696c 7320 6172 6520 696d 706f 7274 616e ils are importan │ │ │ │ +00008350: 742e 2020 4361 7365 2069 7320 7369 676e t. Case is sign │ │ │ │ +00008360: 6966 6963 616e 7420 696e 2074 6865 0ae2 ificant in the.. │ │ │ │ +00008370: 8098 736b 6574 6368 e280 9920 6c61 6e67 ..sketch... lang │ │ │ │ +00008380: 7561 6765 2e20 2057 6974 6820 6120 6665 uage. With a fe │ │ │ │ +00008390: 7720 6578 6365 7074 696f 6e73 2c20 7768 w exceptions, wh │ │ │ │ +000083a0: 6974 6520 7370 6163 6520 6973 206e 6f74 ite space is not │ │ │ │ +000083b0: 2e20 2054 6869 730a 696e 636c 7564 6573 . This.includes │ │ │ │ +000083c0: 206c 696e 6520 6272 6561 6b73 2e20 2043 line breaks. C │ │ │ │ +000083d0: 6f6d 6d65 6e74 7320 6265 6769 6e20 7769 omments begin wi │ │ │ │ +000083e0: 7468 20e2 8098 25e2 8099 206f 7220 e280 th ...%... or .. │ │ │ │ +000083f0: 9823 e280 9920 616e 6420 6578 7465 6e64 .#... and extend │ │ │ │ +00008400: 2074 6f20 7468 650a 656e 6420 6f66 2074 to the.end of t │ │ │ │ +00008410: 6865 206c 696e 652e 2020 596f 7520 6361 he line. You ca │ │ │ │ +00008420: 6e20 6469 7361 626c 6520 6120 6368 756e n disable a chun │ │ │ │ +00008430: 6b20 6f66 2073 796e 7461 6374 6963 616c k of syntactical │ │ │ │ +00008440: 6c79 2063 6f72 7265 6374 0ae2 8098 736b ly correct....sk │ │ │ │ +00008450: 6574 6368 e280 9920 636f 6465 2062 7920 etch... code by │ │ │ │ +00008460: 656e 636c 6f73 696e 6720 6974 2069 6e20 enclosing it in │ │ │ │ +00008470: 6120 e280 9864 6566 e280 992e 2020 5468 a ...def.... Th │ │ │ │ +00008480: 6572 6520 6973 2061 2073 696d 706c 6520 ere is a simple │ │ │ │ +00008490: 2269 6e63 6c75 6465 0a66 696c 6522 206d "include.file" m │ │ │ │ +000084a0: 6563 6861 6e69 736d 2e20 2054 6865 2063 echanism. The c │ │ │ │ +000084b0: 6f6d 6d61 6e64 0a20 2069 6e70 7574 7b6f ommand. input{o │ │ │ │ +000084c0: 7468 6572 6669 6c65 2e73 6b7d 0a63 6175 therfile.sk}.cau │ │ │ │ +000084d0: 7365 7320 7468 6520 636f 6e74 656e 7473 ses the contents │ │ │ │ +000084e0: 206f 6620 e280 986f 7468 6572 6669 6c65 of ...otherfile │ │ │ │ +000084f0: 2e73 6be2 8099 2074 6f20 6265 2069 6e73 .sk... to be ins │ │ │ │ +00008500: 6572 7465 6420 6173 2074 686f 7567 6820 erted as though │ │ │ │ +00008510: 7468 6579 2077 6572 650a 7061 7274 206f they were.part o │ │ │ │ +00008520: 6620 7468 6520 6375 7272 656e 7420 6669 f the current fi │ │ │ │ +00008530: 6c65 2e0a 0a2a 204d 656e 753a 0a0a 2a20 le...* Menu:..* │ │ │ │ +00008540: 4964 656e 7469 6669 6572 733a 3a20 2020 Identifiers:: │ │ │ │ +00008550: 2020 2020 2020 2020 2020 2020 2020 4e61 Na │ │ │ │ +00008560: 6d65 7320 666f 7220 7468 696e 6773 2e0a mes for things.. │ │ │ │ +00008570: 2a20 4b65 7920 616e 6420 7265 7365 7276 * Key and reserv │ │ │ │ +00008580: 6564 2077 6f72 6473 3a3a 2020 2020 2020 ed words:: │ │ │ │ +00008590: 4e61 6d65 7320 796f 7520 7368 6f75 6c64 Names you should │ │ │ │ +000085a0: 6e27 7420 7573 652e 0a2a 204c 6974 6572 n't use..* Liter │ │ │ │ +000085b0: 616c 733a 3a20 2020 2020 2020 2020 2020 als:: │ │ │ │ +000085c0: 2020 2020 2020 2020 2043 6f6e 7374 616e Constan │ │ │ │ +000085d0: 7473 2061 6e64 2063 6f6e 7374 7275 6374 ts and construct │ │ │ │ +000085e0: 6f72 732e 0a2a 2041 7269 7468 6d65 7469 ors..* Arithmeti │ │ │ │ +000085f0: 633a 3a20 2020 2020 2020 2020 2020 2020 c:: │ │ │ │ +00008600: 2020 2020 2052 756c 6573 2066 6f72 2065 Rules for e │ │ │ │ +00008610: 7870 7265 7373 696f 6e73 2e0a 2a20 4f70 xpressions..* Op │ │ │ │ +00008620: 7469 6f6e 733a 3a20 2020 2020 2020 2020 tions:: │ │ │ │ +00008630: 2020 2020 2020 2020 2020 2020 4d6f 6469 Modi │ │ │ │ +00008640: 6679 696e 6720 6f62 6a65 6374 2061 7070 fying object app │ │ │ │ +00008650: 6561 7261 6e63 652e 0a0a 1f0a 4669 6c65 earance.....File │ │ │ │ +00008660: 3a20 736b 6574 6368 2e69 6e66 6f2c 2020 : sketch.info, │ │ │ │ +00008670: 4e6f 6465 3a20 4964 656e 7469 6669 6572 Node: Identifier │ │ │ │ +00008680: 732c 2020 4e65 7874 3a20 4b65 7920 616e s, Next: Key an │ │ │ │ +00008690: 6420 7265 7365 7276 6564 2077 6f72 6473 d reserved words │ │ │ │ +000086a0: 2c20 2050 7265 763a 204c 616e 6775 6167 , Prev: Languag │ │ │ │ +000086b0: 6520 6261 7369 6373 2c20 2055 703a 204c e basics, Up: L │ │ │ │ +000086c0: 616e 6775 6167 6520 6261 7369 6373 0a0a anguage basics.. │ │ │ │ +000086d0: 332e 312e 3120 4964 656e 7469 6669 6572 3.1.1 Identifier │ │ │ │ +000086e0: 730a 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d s.-------------- │ │ │ │ +000086f0: 2d2d 2d0a 0a49 6465 6e74 6966 6965 7273 ---..Identifiers │ │ │ │ +00008700: 2069 6e20 e280 9873 6b65 7463 68e2 8099 in ...sketch... │ │ │ │ +00008710: 2061 7265 2072 6566 6572 656e 6365 7320 are references │ │ │ │ +00008720: 746f 2065 6172 6c69 6572 2d64 6566 696e to earlier-defin │ │ │ │ +00008730: 6564 206f 7074 696f 6e73 2c0a 7363 616c ed options,.scal │ │ │ │ +00008740: 6172 732c 2070 6f69 6e74 732c 2076 6563 ars, points, vec │ │ │ │ +00008750: 746f 7273 2c20 7472 616e 7366 6f72 6d73 tors, transforms │ │ │ │ +00008760: 2c20 6472 6177 6162 6c65 732c 2061 6e64 , drawables, and │ │ │ │ +00008770: 2074 6167 732e 2020 4465 6669 6e69 7469 tags. Definiti │ │ │ │ +00008780: 6f6e 730a 6172 6520 6578 706c 6169 6e65 ons.are explaine │ │ │ │ +00008790: 6420 696e 202a 6e6f 7465 2044 6566 696e d in *note Defin │ │ │ │ +000087a0: 6974 696f 6e73 3a3a 2e0a 0a20 2020 416e itions::... An │ │ │ │ +000087b0: 2069 6465 6e74 6966 6965 7220 636f 6e73 identifier cons │ │ │ │ +000087c0: 6973 7473 206f 6620 6120 6c65 6164 696e ists of a leadin │ │ │ │ +000087d0: 6720 6c65 7474 6572 2066 6f6c 6c6f 7765 g letter followe │ │ │ │ +000087e0: 6420 6279 206c 6574 7465 7273 2c0a 6e75 d by letters,.nu │ │ │ │ +000087f0: 6d62 6572 7320 616e 6420 756e 6465 7273 mbers and unders │ │ │ │ +00008800: 636f 7265 732e 2020 5468 6520 6c61 7374 cores. The last │ │ │ │ +00008810: 2063 6861 7261 6374 6572 206d 6179 205f character may _ │ │ │ │ +00008820: 6e6f 745f 2062 6520 616e 2075 6e64 6572 not_ be an under │ │ │ │ +00008830: 7363 6f72 652e 0a4b 6579 776f 7264 7320 score..Keywords │ │ │ │ +00008840: 6361 6e6e 6f74 2062 6520 7573 6564 2061 cannot be used a │ │ │ │ +00008850: 7320 6964 656e 7469 6669 6572 732c 2061 s identifiers, a │ │ │ │ +00008860: 6e64 2072 6573 6572 7665 6420 776f 7264 nd reserved word │ │ │ │ +00008870: 7320 6f75 6768 7420 746f 2062 650a 6176 s ought to be.av │ │ │ │ +00008880: 6f69 6465 642e 2020 2a4e 6f74 6520 4b65 oided. *Note Ke │ │ │ │ +00008890: 7920 616e 6420 7265 7365 7276 6564 2077 y and reserved w │ │ │ │ +000088a0: 6f72 6473 3a3a 2e0a 0a1f 0a46 696c 653a ords::.....File: │ │ │ │ +000088b0: 2073 6b65 7463 682e 696e 666f 2c20 204e sketch.info, N │ │ │ │ +000088c0: 6f64 653a 204b 6579 2061 6e64 2072 6573 ode: Key and res │ │ │ │ +000088d0: 6572 7665 6420 776f 7264 732c 2020 4e65 erved words, Ne │ │ │ │ +000088e0: 7874 3a20 4c69 7465 7261 6c73 2c20 2050 xt: Literals, P │ │ │ │ +000088f0: 7265 763a 2049 6465 6e74 6966 6965 7273 rev: Identifiers │ │ │ │ +00008900: 2c20 2055 703a 204c 616e 6775 6167 6520 , Up: Language │ │ │ │ +00008910: 6261 7369 6373 0a0a 332e 312e 3220 4b65 basics..3.1.2 Ke │ │ │ │ +00008920: 7920 616e 6420 7265 7365 7276 6564 2077 y and reserved w │ │ │ │ +00008930: 6f72 6473 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d ords.----------- │ │ │ │ 00008940: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ -00008950: 2d2d 2d2d 2d2d 2d2d 2d0a 0a54 6865 206b ---------..The k │ │ │ │ -00008960: 6579 776f 7264 7320 6f66 20e2 8098 736b eywords of ...sk │ │ │ │ -00008970: 6574 6368 e280 9920 6172 6520 e280 9870 etch... are ...p │ │ │ │ -00008980: 6963 7475 7265 626f 78e2 8099 20e2 8098 icturebox... ... │ │ │ │ -00008990: 6375 7276 65e2 8099 20e2 8098 6465 66e2 curve... ...def. │ │ │ │ -000089a0: 8099 20e2 8098 646f 7473 e280 9920 e280 .. ...dots... .. │ │ │ │ -000089b0: 9866 7261 6d65 e280 990a e280 9867 6c6f .frame.......glo │ │ │ │ -000089c0: 6261 6ce2 8099 20e2 8098 696e 7075 74e2 bal... ...input. │ │ │ │ -000089d0: 8099 20e2 8098 6c69 6e65 e280 9920 e280 .. ...line... .. │ │ │ │ -000089e0: 9870 6f6c 7967 6f6e e280 9920 e280 9870 .polygon... ...p │ │ │ │ -000089f0: 7574 e280 9920 e280 9872 6570 6561 74e2 ut... ...repeat. │ │ │ │ -00008a00: 8099 20e2 8098 7365 74e2 8099 20e2 8098 .. ...set... ... │ │ │ │ -00008a10: 7377 6565 70e2 8099 2061 6e64 0ae2 8098 sweep... and.... │ │ │ │ -00008a20: 7468 656e e280 992e 2020 5468 6520 e280 then.... The .. │ │ │ │ -00008a30: 9873 6b65 7463 68e2 8099 2070 6172 7365 .sketch... parse │ │ │ │ -00008a40: 7220 7769 6c6c 206e 6f74 6520 6120 7379 r will note a sy │ │ │ │ -00008a50: 6e74 6178 2065 7272 6f72 2069 6620 616e ntax error if an │ │ │ │ -00008a60: 7920 6f66 2074 6865 7365 0a61 7265 2075 y of these.are u │ │ │ │ -00008a70: 7365 6420 696e 2070 6c61 6365 206f 6620 sed in place of │ │ │ │ -00008a80: 6120 7072 6f70 6572 2069 6465 6e74 6966 a proper identif │ │ │ │ -00008a90: 6965 722e 0a0a 2020 2049 6e20 6164 6469 ier... In addi │ │ │ │ -00008aa0: 7469 6f6e 2c20 7468 6572 6520 6172 6520 tion, there are │ │ │ │ -00008ab0: 7265 7365 7276 6564 2077 6f72 6473 2074 reserved words t │ │ │ │ -00008ac0: 6861 7420 6361 6e20 6375 7272 656e 746c hat can currentl │ │ │ │ -00008ad0: 7920 6265 2064 6566 696e 6564 0a62 7920 y be defined.by │ │ │ │ -00008ae0: 7468 6520 7573 6572 2c20 6275 7420 7769 the user, but wi │ │ │ │ -00008af0: 7468 2074 6865 2072 6973 6b20 7468 6174 th the risk that │ │ │ │ -00008b00: 2066 7574 7572 6520 7665 7273 696f 6e73 future versions │ │ │ │ -00008b10: 206f 6620 e280 9873 6b65 7463 68e2 8099 of ...sketch... │ │ │ │ -00008b20: 2077 696c 6c0a 7265 6a65 6374 2074 686f will.reject tho │ │ │ │ -00008b30: 7365 2064 6566 696e 6974 696f 6e73 2e20 se definitions. │ │ │ │ -00008b40: 2054 6865 2072 6573 6572 7665 6420 776f The reserved wo │ │ │ │ -00008b50: 7264 7320 6172 6520 e280 9861 636f 73e2 rds are ...acos. │ │ │ │ -00008b60: 8099 20e2 8098 6173 696e e280 9920 e280 .. ...asin... .. │ │ │ │ -00008b70: 9861 7461 6e32 e280 990a e280 9863 6f73 .atan2.......cos │ │ │ │ -00008b80: e280 9920 e280 9869 6e76 6572 7365 e280 ... ...inverse.. │ │ │ │ -00008b90: 9920 e280 9870 6572 7370 6563 7469 7665 . ...perspective │ │ │ │ -00008ba0: e280 9920 e280 9870 726f 6a65 6374 e280 ... ...project.. │ │ │ │ -00008bb0: 9920 e280 9872 6f74 6174 65e2 8099 20e2 . ...rotate... . │ │ │ │ -00008bc0: 8098 7363 616c 65e2 8099 20e2 8098 7369 ..scale... ...si │ │ │ │ -00008bd0: 6ee2 8099 20e2 8098 7370 6563 6961 6ce2 n... ...special. │ │ │ │ -00008be0: 8099 0ae2 8098 7371 7274 e280 9920 e280 ......sqrt... .. │ │ │ │ -00008bf0: 9874 7261 6e73 6c61 7465 e280 9920 e280 .translate... .. │ │ │ │ -00008c00: 9875 6e69 74e2 8099 2061 6e64 20e2 8098 .unit... and ... │ │ │ │ -00008c10: 7669 6577 e280 992e 0a0a 1f0a 4669 6c65 view........File │ │ │ │ -00008c20: 3a20 736b 6574 6368 2e69 6e66 6f2c 2020 : sketch.info, │ │ │ │ -00008c30: 4e6f 6465 3a20 4c69 7465 7261 6c73 2c20 Node: Literals, │ │ │ │ -00008c40: 204e 6578 743a 2041 7269 7468 6d65 7469 Next: Arithmeti │ │ │ │ -00008c50: 632c 2020 5072 6576 3a20 4b65 7920 616e c, Prev: Key an │ │ │ │ -00008c60: 6420 7265 7365 7276 6564 2077 6f72 6473 d reserved words │ │ │ │ -00008c70: 2c20 2055 703a 204c 616e 6775 6167 6520 , Up: Language │ │ │ │ -00008c80: 6261 7369 6373 0a0a 332e 312e 3320 4c69 basics..3.1.3 Li │ │ │ │ -00008c90: 7465 7261 6c73 0a2d 2d2d 2d2d 2d2d 2d2d terals.--------- │ │ │ │ -00008ca0: 2d2d 2d2d 2d0a 0a4c 6974 6572 616c 7320 -----..Literals │ │ │ │ -00008cb0: 696e 20e2 8098 736b 6574 6368 e280 9920 in ...sketch... │ │ │ │ -00008cc0: 696e 636c 7564 6520 7363 616c 6172 732c include scalars, │ │ │ │ -00008cd0: 2070 6f69 6e74 732c 2076 6563 746f 7273 points, vectors │ │ │ │ -00008ce0: 2c20 616e 6420 7472 616e 7366 6f72 6d73 , and transforms │ │ │ │ -00008cf0: 2e0a 4c69 7465 7261 6c73 2c20 616c 6f6e ..Literals, alon │ │ │ │ -00008d00: 6720 7769 7468 2064 6566 696e 6564 206f g with defined o │ │ │ │ -00008d10: 626a 6563 7420 7265 6665 7265 6e63 6573 bject references │ │ │ │ -00008d20: 2c20 6172 6520 7573 6564 2069 6e20 6172 , are used in ar │ │ │ │ -00008d30: 6974 686d 6574 6963 0a65 7870 7265 7373 ithmetic.express │ │ │ │ -00008d40: 696f 6e73 2e20 202a 4e6f 7465 2041 7269 ions. *Note Ari │ │ │ │ -00008d50: 7468 6d65 7469 633a 3a2e 0a0a 2a20 4d65 thmetic::...* Me │ │ │ │ -00008d60: 6e75 3a0a 0a2a 2053 6361 6c61 7220 6c69 nu:..* Scalar li │ │ │ │ -00008d70: 7465 7261 6c73 3a3a 2020 2020 2020 2020 terals:: │ │ │ │ -00008d80: 2020 2020 204a 7573 7420 7468 6520 6e75 Just the nu │ │ │ │ -00008d90: 6d62 6572 732e 0a2a 2050 6f69 6e74 2061 mbers..* Point a │ │ │ │ -00008da0: 6e64 2076 6563 746f 7220 6c69 7465 7261 nd vector litera │ │ │ │ -00008db0: 6c73 3a3a 2020 2033 6420 7175 616e 7469 ls:: 3d quanti │ │ │ │ -00008dc0: 7469 6573 2e0a 2a20 5472 616e 7366 6f72 ties..* Transfor │ │ │ │ -00008dd0: 6d20 6c69 7465 7261 6c73 3a3a 2020 2020 m literals:: │ │ │ │ -00008de0: 2020 2020 2020 4d61 7472 6978 2066 6f72 Matrix for │ │ │ │ -00008df0: 6d2e 0a0a 1f0a 4669 6c65 3a20 736b 6574 m.....File: sket │ │ │ │ -00008e00: 6368 2e69 6e66 6f2c 2020 4e6f 6465 3a20 ch.info, Node: │ │ │ │ -00008e10: 5363 616c 6172 206c 6974 6572 616c 732c Scalar literals, │ │ │ │ -00008e20: 2020 4e65 7874 3a20 506f 696e 7420 616e Next: Point an │ │ │ │ -00008e30: 6420 7665 6374 6f72 206c 6974 6572 616c d vector literal │ │ │ │ -00008e40: 732c 2020 5072 6576 3a20 4c69 7465 7261 s, Prev: Litera │ │ │ │ -00008e50: 6c73 2c20 2055 703a 204c 6974 6572 616c ls, Up: Literal │ │ │ │ -00008e60: 730a 0a33 2e31 2e33 2e31 2053 6361 6c61 s..3.1.3.1 Scala │ │ │ │ -00008e70: 7220 6c69 7465 7261 6c73 0a2e 2e2e 2e2e r literals...... │ │ │ │ -00008e80: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e ................ │ │ │ │ -00008e90: 2e2e 0a0a 5363 616c 6172 206c 6974 6572 ....Scalar liter │ │ │ │ -00008ea0: 616c 7320 6172 6520 706f 7369 7469 7665 als are positive │ │ │ │ -00008eb0: 2066 6c6f 6174 696e 6720 706f 696e 7420 floating point │ │ │ │ -00008ec0: 6e75 6d62 6572 7320 7769 7468 2073 796e numbers with syn │ │ │ │ -00008ed0: 7461 780a 6163 636f 7264 696e 6720 746f tax.according to │ │ │ │ -00008ee0: 2043 2063 6f6e 7665 6e74 696f 6e73 2e20 C conventions. │ │ │ │ -00008ef0: 2054 6865 2066 6f6c 6c6f 7769 6e67 2061 The following a │ │ │ │ -00008f00: 7265 2073 6f6d 6520 6578 616d 706c 6573 re some examples │ │ │ │ -00008f10: 2e0a 2020 2020 2030 2031 3030 3420 2e30 .. 0 1004 .0 │ │ │ │ -00008f20: 3031 2038 2e33 3134 3320 332e 2031 2e36 01 8.3143 3. 1.6 │ │ │ │ -00008f30: 3045 2d31 3920 362e 3032 652b 3233 0a53 0E-19 6.02e+23.S │ │ │ │ -00008f40: 6361 6c61 7220 6c69 7465 7261 6c73 206d calar literals m │ │ │ │ -00008f50: 6179 206e 6f74 2063 6f6e 7461 696e 2065 ay not contain e │ │ │ │ -00008f60: 6d62 6564 6465 6420 7370 6163 6573 2e0a mbedded spaces.. │ │ │ │ -00008f70: 0a1f 0a46 696c 653a 2073 6b65 7463 682e ...File: sketch. │ │ │ │ -00008f80: 696e 666f 2c20 204e 6f64 653a 2050 6f69 info, Node: Poi │ │ │ │ -00008f90: 6e74 2061 6e64 2076 6563 746f 7220 6c69 nt and vector li │ │ │ │ -00008fa0: 7465 7261 6c73 2c20 204e 6578 743a 2054 terals, Next: T │ │ │ │ -00008fb0: 7261 6e73 666f 726d 206c 6974 6572 616c ransform literal │ │ │ │ -00008fc0: 732c 2020 5072 6576 3a20 5363 616c 6172 s, Prev: Scalar │ │ │ │ -00008fd0: 206c 6974 6572 616c 732c 2020 5570 3a20 literals, Up: │ │ │ │ -00008fe0: 4c69 7465 7261 6c73 0a0a 332e 312e 332e Literals..3.1.3. │ │ │ │ -00008ff0: 3220 506f 696e 7420 616e 6420 7665 6374 2 Point and vect │ │ │ │ -00009000: 6f72 206c 6974 6572 616c 730a 2e2e 2e2e or literals..... │ │ │ │ +00008950: 2d0a 0a54 6865 206b 6579 776f 7264 7320 -..The keywords │ │ │ │ +00008960: 6f66 20e2 8098 736b 6574 6368 e280 9920 of ...sketch... │ │ │ │ +00008970: 6172 6520 e280 9870 6963 7475 7265 626f are ...picturebo │ │ │ │ +00008980: 78e2 8099 20e2 8098 6375 7276 65e2 8099 x... ...curve... │ │ │ │ +00008990: 20e2 8098 6465 66e2 8099 20e2 8098 646f ...def... ...do │ │ │ │ +000089a0: 7473 e280 9920 e280 9866 7261 6d65 e280 ts... ...frame.. │ │ │ │ +000089b0: 990a e280 9867 6c6f 6261 6ce2 8099 20e2 .....global... . │ │ │ │ +000089c0: 8098 696e 7075 74e2 8099 20e2 8098 6c69 ..input... ...li │ │ │ │ +000089d0: 6e65 e280 9920 e280 9870 6f6c 7967 6f6e ne... ...polygon │ │ │ │ +000089e0: e280 9920 e280 9870 7574 e280 9920 e280 ... ...put... .. │ │ │ │ +000089f0: 9872 6570 6561 74e2 8099 20e2 8098 7365 .repeat... ...se │ │ │ │ +00008a00: 74e2 8099 20e2 8098 7377 6565 70e2 8099 t... ...sweep... │ │ │ │ +00008a10: 2061 6e64 0ae2 8098 7468 656e e280 992e and....then.... │ │ │ │ +00008a20: 2020 5468 6520 e280 9873 6b65 7463 68e2 The ...sketch. │ │ │ │ +00008a30: 8099 2070 6172 7365 7220 7769 6c6c 206e .. parser will n │ │ │ │ +00008a40: 6f74 6520 6120 7379 6e74 6178 2065 7272 ote a syntax err │ │ │ │ +00008a50: 6f72 2069 6620 616e 7920 6f66 2074 6865 or if any of the │ │ │ │ +00008a60: 7365 0a61 7265 2075 7365 6420 696e 2070 se.are used in p │ │ │ │ +00008a70: 6c61 6365 206f 6620 6120 7072 6f70 6572 lace of a proper │ │ │ │ +00008a80: 2069 6465 6e74 6966 6965 722e 0a0a 2020 identifier... │ │ │ │ +00008a90: 2049 6e20 6164 6469 7469 6f6e 2c20 7468 In addition, th │ │ │ │ +00008aa0: 6572 6520 6172 6520 7265 7365 7276 6564 ere are reserved │ │ │ │ +00008ab0: 2077 6f72 6473 2074 6861 7420 6361 6e20 words that can │ │ │ │ +00008ac0: 6375 7272 656e 746c 7920 6265 2064 6566 currently be def │ │ │ │ +00008ad0: 696e 6564 0a62 7920 7468 6520 7573 6572 ined.by the user │ │ │ │ +00008ae0: 2c20 6275 7420 7769 7468 2074 6865 2072 , but with the r │ │ │ │ +00008af0: 6973 6b20 7468 6174 2066 7574 7572 6520 isk that future │ │ │ │ +00008b00: 7665 7273 696f 6e73 206f 6620 e280 9873 versions of ...s │ │ │ │ +00008b10: 6b65 7463 68e2 8099 2077 696c 6c0a 7265 ketch... will.re │ │ │ │ +00008b20: 6a65 6374 2074 686f 7365 2064 6566 696e ject those defin │ │ │ │ +00008b30: 6974 696f 6e73 2e20 2054 6865 2072 6573 itions. The res │ │ │ │ +00008b40: 6572 7665 6420 776f 7264 7320 6172 6520 erved words are │ │ │ │ +00008b50: e280 9861 636f 73e2 8099 20e2 8098 6173 ...acos... ...as │ │ │ │ +00008b60: 696e e280 9920 e280 9861 7461 6e32 e280 in... ...atan2.. │ │ │ │ +00008b70: 990a e280 9863 6f73 e280 9920 e280 9869 .....cos... ...i │ │ │ │ +00008b80: 6e76 6572 7365 e280 9920 e280 9870 6572 nverse... ...per │ │ │ │ +00008b90: 7370 6563 7469 7665 e280 9920 e280 9870 spective... ...p │ │ │ │ +00008ba0: 726f 6a65 6374 e280 9920 e280 9872 6f74 roject... ...rot │ │ │ │ +00008bb0: 6174 65e2 8099 20e2 8098 7363 616c 65e2 ate... ...scale. │ │ │ │ +00008bc0: 8099 20e2 8098 7369 6ee2 8099 20e2 8098 .. ...sin... ... │ │ │ │ +00008bd0: 7370 6563 6961 6ce2 8099 0ae2 8098 7371 special.......sq │ │ │ │ +00008be0: 7274 e280 9920 e280 9874 7261 6e73 6c61 rt... ...transla │ │ │ │ +00008bf0: 7465 e280 9920 e280 9875 6e69 74e2 8099 te... ...unit... │ │ │ │ +00008c00: 2061 6e64 20e2 8098 7669 6577 e280 992e and ...view.... │ │ │ │ +00008c10: 0a0a 1f0a 4669 6c65 3a20 736b 6574 6368 ....File: sketch │ │ │ │ +00008c20: 2e69 6e66 6f2c 2020 4e6f 6465 3a20 4c69 .info, Node: Li │ │ │ │ +00008c30: 7465 7261 6c73 2c20 204e 6578 743a 2041 terals, Next: A │ │ │ │ +00008c40: 7269 7468 6d65 7469 632c 2020 5072 6576 rithmetic, Prev │ │ │ │ +00008c50: 3a20 4b65 7920 616e 6420 7265 7365 7276 : Key and reserv │ │ │ │ +00008c60: 6564 2077 6f72 6473 2c20 2055 703a 204c ed words, Up: L │ │ │ │ +00008c70: 616e 6775 6167 6520 6261 7369 6373 0a0a anguage basics.. │ │ │ │ +00008c80: 332e 312e 3320 4c69 7465 7261 6c73 0a2d 3.1.3 Literals.- │ │ │ │ +00008c90: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a 0a4c -------------..L │ │ │ │ +00008ca0: 6974 6572 616c 7320 696e 20e2 8098 736b iterals in ...sk │ │ │ │ +00008cb0: 6574 6368 e280 9920 696e 636c 7564 6520 etch... include │ │ │ │ +00008cc0: 7363 616c 6172 732c 2070 6f69 6e74 732c scalars, points, │ │ │ │ +00008cd0: 2076 6563 746f 7273 2c20 616e 6420 7472 vectors, and tr │ │ │ │ +00008ce0: 616e 7366 6f72 6d73 2e0a 4c69 7465 7261 ansforms..Litera │ │ │ │ +00008cf0: 6c73 2c20 616c 6f6e 6720 7769 7468 2064 ls, along with d │ │ │ │ +00008d00: 6566 696e 6564 206f 626a 6563 7420 7265 efined object re │ │ │ │ +00008d10: 6665 7265 6e63 6573 2c20 6172 6520 7573 ferences, are us │ │ │ │ +00008d20: 6564 2069 6e20 6172 6974 686d 6574 6963 ed in arithmetic │ │ │ │ +00008d30: 0a65 7870 7265 7373 696f 6e73 2e20 202a .expressions. * │ │ │ │ +00008d40: 4e6f 7465 2041 7269 7468 6d65 7469 633a Note Arithmetic: │ │ │ │ +00008d50: 3a2e 0a0a 2a20 4d65 6e75 3a0a 0a2a 2053 :...* Menu:..* S │ │ │ │ +00008d60: 6361 6c61 7220 6c69 7465 7261 6c73 3a3a calar literals:: │ │ │ │ +00008d70: 2020 2020 2020 2020 2020 2020 204a 7573 Jus │ │ │ │ +00008d80: 7420 7468 6520 6e75 6d62 6572 732e 0a2a t the numbers..* │ │ │ │ +00008d90: 2050 6f69 6e74 2061 6e64 2076 6563 746f Point and vecto │ │ │ │ +00008da0: 7220 6c69 7465 7261 6c73 3a3a 2020 2033 r literals:: 3 │ │ │ │ +00008db0: 6420 7175 616e 7469 7469 6573 2e0a 2a20 d quantities..* │ │ │ │ +00008dc0: 5472 616e 7366 6f72 6d20 6c69 7465 7261 Transform litera │ │ │ │ +00008dd0: 6c73 3a3a 2020 2020 2020 2020 2020 4d61 ls:: Ma │ │ │ │ +00008de0: 7472 6978 2066 6f72 6d2e 0a0a 1f0a 4669 trix form.....Fi │ │ │ │ +00008df0: 6c65 3a20 736b 6574 6368 2e69 6e66 6f2c le: sketch.info, │ │ │ │ +00008e00: 2020 4e6f 6465 3a20 5363 616c 6172 206c Node: Scalar l │ │ │ │ +00008e10: 6974 6572 616c 732c 2020 4e65 7874 3a20 iterals, Next: │ │ │ │ +00008e20: 506f 696e 7420 616e 6420 7665 6374 6f72 Point and vector │ │ │ │ +00008e30: 206c 6974 6572 616c 732c 2020 5072 6576 literals, Prev │ │ │ │ +00008e40: 3a20 4c69 7465 7261 6c73 2c20 2055 703a : Literals, Up: │ │ │ │ +00008e50: 204c 6974 6572 616c 730a 0a33 2e31 2e33 Literals..3.1.3 │ │ │ │ +00008e60: 2e31 2053 6361 6c61 7220 6c69 7465 7261 .1 Scalar litera │ │ │ │ +00008e70: 6c73 0a2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e ls.............. │ │ │ │ +00008e80: 2e2e 2e2e 2e2e 2e2e 2e2e 0a0a 5363 616c ............Scal │ │ │ │ +00008e90: 6172 206c 6974 6572 616c 7320 6172 6520 ar literals are │ │ │ │ +00008ea0: 706f 7369 7469 7665 2066 6c6f 6174 696e positive floatin │ │ │ │ +00008eb0: 6720 706f 696e 7420 6e75 6d62 6572 7320 g point numbers │ │ │ │ +00008ec0: 7769 7468 2073 796e 7461 780a 6163 636f with syntax.acco │ │ │ │ +00008ed0: 7264 696e 6720 746f 2043 2063 6f6e 7665 rding to C conve │ │ │ │ +00008ee0: 6e74 696f 6e73 2e20 2054 6865 2066 6f6c ntions. The fol │ │ │ │ +00008ef0: 6c6f 7769 6e67 2061 7265 2073 6f6d 6520 lowing are some │ │ │ │ +00008f00: 6578 616d 706c 6573 2e0a 2020 2020 2030 examples.. 0 │ │ │ │ +00008f10: 2031 3030 3420 2e30 3031 2038 2e33 3134 1004 .001 8.314 │ │ │ │ +00008f20: 3320 332e 2031 2e36 3045 2d31 3920 362e 3 3. 1.60E-19 6. │ │ │ │ +00008f30: 3032 652b 3233 0a53 6361 6c61 7220 6c69 02e+23.Scalar li │ │ │ │ +00008f40: 7465 7261 6c73 206d 6179 206e 6f74 2063 terals may not c │ │ │ │ +00008f50: 6f6e 7461 696e 2065 6d62 6564 6465 6420 ontain embedded │ │ │ │ +00008f60: 7370 6163 6573 2e0a 0a1f 0a46 696c 653a spaces.....File: │ │ │ │ +00008f70: 2073 6b65 7463 682e 696e 666f 2c20 204e sketch.info, N │ │ │ │ +00008f80: 6f64 653a 2050 6f69 6e74 2061 6e64 2076 ode: Point and v │ │ │ │ +00008f90: 6563 746f 7220 6c69 7465 7261 6c73 2c20 ector literals, │ │ │ │ +00008fa0: 204e 6578 743a 2054 7261 6e73 666f 726d Next: Transform │ │ │ │ +00008fb0: 206c 6974 6572 616c 732c 2020 5072 6576 literals, Prev │ │ │ │ +00008fc0: 3a20 5363 616c 6172 206c 6974 6572 616c : Scalar literal │ │ │ │ +00008fd0: 732c 2020 5570 3a20 4c69 7465 7261 6c73 s, Up: Literals │ │ │ │ +00008fe0: 0a0a 332e 312e 332e 3220 506f 696e 7420 ..3.1.3.2 Point │ │ │ │ +00008ff0: 616e 6420 7665 6374 6f72 206c 6974 6572 and vector liter │ │ │ │ +00009000: 616c 730a 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e als............. │ │ │ │ 00009010: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e ................ │ │ │ │ -00009020: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e0a 0a50 ...............P │ │ │ │ -00009030: 6f69 6e74 7320 616e 6420 7665 6374 6f72 oints and vector │ │ │ │ -00009040: 206c 6974 6572 616c 7320 6861 7665 2074 literals have t │ │ │ │ -00009050: 6865 7365 2066 6f72 6d73 2072 6573 7065 hese forms respe │ │ │ │ -00009060: 6374 6976 656c 792e 0a20 2020 2020 2858 ctively.. (X │ │ │ │ -00009070: 2c59 2c5a 2920 205b 582c 592c 5a5d 0a45 ,Y,Z) [X,Y,Z].E │ │ │ │ -00009080: 6163 6820 6f66 2074 6865 2063 6f6d 706f ach of the compo │ │ │ │ -00009090: 6e65 6e74 7320 6973 2069 7473 656c 6620 nents is itself │ │ │ │ -000090a0: 6120 7363 616c 6172 2065 7870 7265 7373 a scalar express │ │ │ │ -000090b0: 696f 6e2e 2020 5468 6520 7a2d 636f 6d70 ion. The z-comp │ │ │ │ -000090c0: 6f6e 656e 7473 0a61 7265 206f 7074 696f onents.are optio │ │ │ │ -000090d0: 6e61 6c20 616e 6420 6465 6661 756c 7420 nal and default │ │ │ │ -000090e0: 746f 207a 6572 6f2e 0a0a 1f0a 4669 6c65 to zero.....File │ │ │ │ -000090f0: 3a20 736b 6574 6368 2e69 6e66 6f2c 2020 : sketch.info, │ │ │ │ -00009100: 4e6f 6465 3a20 5472 616e 7366 6f72 6d20 Node: Transform │ │ │ │ -00009110: 6c69 7465 7261 6c73 2c20 2050 7265 763a literals, Prev: │ │ │ │ -00009120: 2050 6f69 6e74 2061 6e64 2076 6563 746f Point and vecto │ │ │ │ -00009130: 7220 6c69 7465 7261 6c73 2c20 2055 703a r literals, Up: │ │ │ │ -00009140: 204c 6974 6572 616c 730a 0a33 2e31 2e33 Literals..3.1.3 │ │ │ │ -00009150: 2e33 2054 7261 6e73 666f 726d 206c 6974 .3 Transform lit │ │ │ │ -00009160: 6572 616c 730a 2e2e 2e2e 2e2e 2e2e 2e2e erals........... │ │ │ │ -00009170: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e ................ │ │ │ │ -00009180: 0a0a 4d6f 7374 2074 7261 6e73 666f 726d ..Most transform │ │ │ │ -00009190: 206c 6974 6572 616c 7320 6172 6520 666f literals are fo │ │ │ │ -000091a0: 726d 6564 2062 7920 e280 9c63 6f6e 7374 rmed by ...const │ │ │ │ -000091b0: 7275 6374 6f72 73e2 809d 2e20 2054 6865 ructors.... The │ │ │ │ -000091c0: 7365 2061 7265 0a73 756d 6d61 7269 7a65 se are.summarize │ │ │ │ -000091d0: 6420 696e 2074 6865 2066 6f6c 6c6f 7769 d in the followi │ │ │ │ -000091e0: 6e67 2074 6162 6c65 2e0a 436f 6e73 7472 ng table..Constr │ │ │ │ -000091f0: 7563 746f 7220 2020 2020 2020 2020 2020 uctor │ │ │ │ -00009200: 2020 2020 2020 2020 2020 2020 2020 5061 Pa │ │ │ │ -00009210: 7261 6d20 7479 7065 7320 2020 2020 2020 ram types │ │ │ │ -00009220: 2020 2020 4465 7363 7269 7074 696f 6e0a Description. │ │ │ │ +00009020: 2e2e 2e2e 2e0a 0a50 6f69 6e74 7320 616e .......Points an │ │ │ │ +00009030: 6420 7665 6374 6f72 206c 6974 6572 616c d vector literal │ │ │ │ +00009040: 7320 6861 7665 2074 6865 7365 2066 6f72 s have these for │ │ │ │ +00009050: 6d73 2072 6573 7065 6374 6976 656c 792e ms respectively. │ │ │ │ +00009060: 0a20 2020 2020 2858 2c59 2c5a 2920 205b . (X,Y,Z) [ │ │ │ │ +00009070: 582c 592c 5a5d 0a45 6163 6820 6f66 2074 X,Y,Z].Each of t │ │ │ │ +00009080: 6865 2063 6f6d 706f 6e65 6e74 7320 6973 he components is │ │ │ │ +00009090: 2069 7473 656c 6620 6120 7363 616c 6172 itself a scalar │ │ │ │ +000090a0: 2065 7870 7265 7373 696f 6e2e 2020 5468 expression. Th │ │ │ │ +000090b0: 6520 7a2d 636f 6d70 6f6e 656e 7473 0a61 e z-components.a │ │ │ │ +000090c0: 7265 206f 7074 696f 6e61 6c20 616e 6420 re optional and │ │ │ │ +000090d0: 6465 6661 756c 7420 746f 207a 6572 6f2e default to zero. │ │ │ │ +000090e0: 0a0a 1f0a 4669 6c65 3a20 736b 6574 6368 ....File: sketch │ │ │ │ +000090f0: 2e69 6e66 6f2c 2020 4e6f 6465 3a20 5472 .info, Node: Tr │ │ │ │ +00009100: 616e 7366 6f72 6d20 6c69 7465 7261 6c73 ansform literals │ │ │ │ +00009110: 2c20 2050 7265 763a 2050 6f69 6e74 2061 , Prev: Point a │ │ │ │ +00009120: 6e64 2076 6563 746f 7220 6c69 7465 7261 nd vector litera │ │ │ │ +00009130: 6c73 2c20 2055 703a 204c 6974 6572 616c ls, Up: Literal │ │ │ │ +00009140: 730a 0a33 2e31 2e33 2e33 2054 7261 6e73 s..3.1.3.3 Trans │ │ │ │ +00009150: 666f 726d 206c 6974 6572 616c 730a 2e2e form literals... │ │ │ │ +00009160: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e ................ │ │ │ │ +00009170: 2e2e 2e2e 2e2e 2e2e 0a0a 4d6f 7374 2074 ..........Most t │ │ │ │ +00009180: 7261 6e73 666f 726d 206c 6974 6572 616c ransform literal │ │ │ │ +00009190: 7320 6172 6520 666f 726d 6564 2062 7920 s are formed by │ │ │ │ +000091a0: e280 9c63 6f6e 7374 7275 6374 6f72 73e2 ...constructors. │ │ │ │ +000091b0: 809d 2e20 2054 6865 7365 2061 7265 0a73 ... These are.s │ │ │ │ +000091c0: 756d 6d61 7269 7a65 6420 696e 2074 6865 ummarized in the │ │ │ │ +000091d0: 2066 6f6c 6c6f 7769 6e67 2074 6162 6c65 following table │ │ │ │ +000091e0: 2e0a 436f 6e73 7472 7563 746f 7220 2020 ..Constructor │ │ │ │ +000091f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00009200: 2020 2020 2020 5061 7261 6d20 7479 7065 Param type │ │ │ │ +00009210: 7320 2020 2020 2020 2020 2020 4465 7363 s Desc │ │ │ │ +00009220: 7269 7074 696f 6e0a 2d2d 2d2d 2d2d 2d2d ription.-------- │ │ │ │ 00009230: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ 00009240: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ 00009250: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ 00009260: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ 00009270: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ 00009280: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ -00009290: 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a e280 9872 -----------....r │ │ │ │ -000092a0: 6f74 6174 6528 412c 502c 5829 e280 9920 otate(A,P,X)... │ │ │ │ -000092b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000092c0: 2020 2020 7363 616c 6172 2c70 6f69 6e74 scalar,point │ │ │ │ -000092d0: 2c76 6563 746f 7220 2020 526f 7461 7465 ,vector Rotate │ │ │ │ -000092e0: 20e2 8098 41e2 8099 2064 6567 7265 6573 ...A... degrees │ │ │ │ -000092f0: 2061 626f 7574 2070 6f69 6e74 20e2 8098 about point ... │ │ │ │ -00009300: 50e2 8099 2077 6974 6820 6178 6973 0a20 P... with axis. │ │ │ │ +00009290: 2d2d 2d0a e280 9872 6f74 6174 6528 412c ---....rotate(A, │ │ │ │ +000092a0: 502c 5829 e280 9920 2020 2020 2020 2020 P,X)... │ │ │ │ +000092b0: 2020 2020 2020 2020 2020 2020 7363 616c scal │ │ │ │ +000092c0: 6172 2c70 6f69 6e74 2c76 6563 746f 7220 ar,point,vector │ │ │ │ +000092d0: 2020 526f 7461 7465 20e2 8098 41e2 8099 Rotate ...A... │ │ │ │ +000092e0: 2064 6567 7265 6573 2061 626f 7574 2070 degrees about p │ │ │ │ +000092f0: 6f69 6e74 20e2 8098 50e2 8099 2077 6974 oint ...P... wit │ │ │ │ +00009300: 6820 6178 6973 0a20 2020 2020 2020 2020 h axis. │ │ │ │ 00009310: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009320: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009330: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009340: 2020 2020 2020 2020 20e2 8098 58e2 8099 ...X... │ │ │ │ -00009350: 2061 6363 6f72 6469 6e67 2074 6f20 7468 according to th │ │ │ │ -00009360: 6520 7269 6768 7420 6861 6e64 2072 756c e right hand rul │ │ │ │ -00009370: 652e 0a20 2020 2020 2020 2020 2020 2020 e.. │ │ │ │ +00009340: 20e2 8098 58e2 8099 2061 6363 6f72 6469 ...X... accordi │ │ │ │ +00009350: 6e67 2074 6f20 7468 6520 7269 6768 7420 ng to the right │ │ │ │ +00009360: 6861 6e64 2072 756c 652e 0a20 2020 2020 hand rule.. │ │ │ │ +00009370: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009380: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009390: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000093a0: 2020 2020 2020 2020 2020 2020 202a 4e6f *No │ │ │ │ -000093b0: 7465 2052 6967 6874 2068 616e 6420 7275 te Right hand ru │ │ │ │ -000093c0: 6c65 3a3a 2e20 20e2 8098 50e2 8099 2061 le::. ...P... a │ │ │ │ -000093d0: 6e64 20e2 8098 58e2 8099 2061 7265 2062 nd ...X... are b │ │ │ │ -000093e0: 6f74 680a 2020 2020 2020 2020 2020 2020 oth. │ │ │ │ +000093a0: 2020 2020 202a 4e6f 7465 2052 6967 6874 *Note Right │ │ │ │ +000093b0: 2068 616e 6420 7275 6c65 3a3a 2e20 20e2 hand rule::. . │ │ │ │ +000093c0: 8098 50e2 8099 2061 6e64 20e2 8098 58e2 ..P... and ...X. │ │ │ │ +000093d0: 8099 2061 7265 2062 6f74 680a 2020 2020 .. are both. │ │ │ │ +000093e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 000093f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009400: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009410: 2020 2020 2020 2020 2020 2020 2020 6f70 op │ │ │ │ -00009420: 7469 6f6e 616c 2061 6e64 2064 6566 6175 tional and defau │ │ │ │ -00009430: 6c74 2074 6f20 7468 6520 6f72 6967 696e lt to the origin │ │ │ │ -00009440: 2061 6e64 2074 6865 0a20 2020 2020 2020 and the. │ │ │ │ +00009410: 2020 2020 2020 6f70 7469 6f6e 616c 2061 optional a │ │ │ │ +00009420: 6e64 2064 6566 6175 6c74 2074 6f20 7468 nd default to th │ │ │ │ +00009430: 6520 6f72 6967 696e 2061 6e64 2074 6865 e origin and the │ │ │ │ +00009440: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ 00009450: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009460: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009470: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009480: 2020 207a 2d61 7869 7320 7265 7370 6563 z-axis respec │ │ │ │ -00009490: 7469 7665 6c79 2e0a e280 9874 7261 6e73 tively.....trans │ │ │ │ -000094a0: 6c61 7465 2858 29e2 8099 2020 2020 2020 late(X)... │ │ │ │ -000094b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000094c0: 7665 6374 6f72 2020 2020 2020 2020 2020 vector │ │ │ │ -000094d0: 2020 2020 2020 5472 616e 736c 6174 6520 Translate │ │ │ │ -000094e0: 6279 20e2 8098 58e2 8099 2e0a e280 9873 by ...X........s │ │ │ │ -000094f0: 6361 6c65 2853 29e2 8099 2020 2020 2020 cale(S)... │ │ │ │ -00009500: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009510: 2020 2020 7363 616c 6172 2020 2020 2020 scalar │ │ │ │ -00009520: 2020 2020 2020 2020 2020 5363 616c 6520 Scale │ │ │ │ -00009530: 756e 6966 6f72 6d6c 7920 6279 2066 6163 uniformly by fac │ │ │ │ -00009540: 746f 7220 e280 9853 e280 992e 0ae2 8098 tor ...S........ │ │ │ │ -00009550: 7363 616c 6528 5629 e280 9920 2020 2020 scale(V)... │ │ │ │ -00009560: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009570: 2020 2020 2076 6563 746f 7220 2020 2020 vector │ │ │ │ -00009580: 2020 2020 2020 2020 2020 2053 6361 6c65 Scale │ │ │ │ -00009590: 2061 6c6f 6e67 2065 6163 6820 6178 6973 along each axis │ │ │ │ -000095a0: 2062 7920 636f 6d70 6f6e 656e 7473 206f by components o │ │ │ │ -000095b0: 6620 e280 9856 e280 992e 0ae2 8098 7072 f ...V........pr │ │ │ │ -000095c0: 6f6a 6563 7428 29e2 8099 2020 2020 2020 oject()... │ │ │ │ -000095d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000095e0: 2020 202d 2d20 2020 2020 2020 2020 2020 -- │ │ │ │ -000095f0: 2020 2020 2020 2020 2053 616d 6520 6173 Same as │ │ │ │ -00009600: 20e2 8098 7363 616c 6528 5b31 2c31 2c30 ...scale([1,1,0 │ │ │ │ -00009610: 5d29 e280 992e 0ae2 8098 7072 6f6a 6563 ])........projec │ │ │ │ -00009620: 7428 5329 e280 9920 2020 2020 2020 2020 t(S)... │ │ │ │ -00009630: 2020 2020 2020 2020 2020 2020 2020 2073 s │ │ │ │ -00009640: 6361 6c61 7220 2020 2020 2020 2020 2020 calar │ │ │ │ -00009650: 2020 2020 2050 6572 7370 6563 7469 7665 Perspective │ │ │ │ -00009660: 2070 726f 6a65 6374 696f 6e20 7769 7468 projection with │ │ │ │ -00009670: 2076 6965 7720 6365 6e74 6572 2061 740a view center at. │ │ │ │ +00009470: 2020 2020 2020 2020 2020 207a 2d61 7869 z-axi │ │ │ │ +00009480: 7320 7265 7370 6563 7469 7665 6c79 2e0a s respectively.. │ │ │ │ +00009490: e280 9874 7261 6e73 6c61 7465 2858 29e2 ...translate(X). │ │ │ │ +000094a0: 8099 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ +000094b0: 2020 2020 2020 2020 7665 6374 6f72 2020 vector │ │ │ │ +000094c0: 2020 2020 2020 2020 2020 2020 2020 5472 Tr │ │ │ │ +000094d0: 616e 736c 6174 6520 6279 20e2 8098 58e2 anslate by ...X. │ │ │ │ +000094e0: 8099 2e0a e280 9873 6361 6c65 2853 29e2 .......scale(S). │ │ │ │ +000094f0: 8099 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ +00009500: 2020 2020 2020 2020 2020 2020 7363 616c scal │ │ │ │ +00009510: 6172 2020 2020 2020 2020 2020 2020 2020 ar │ │ │ │ +00009520: 2020 5363 616c 6520 756e 6966 6f72 6d6c Scale uniforml │ │ │ │ +00009530: 7920 6279 2066 6163 746f 7220 e280 9853 y by factor ...S │ │ │ │ +00009540: e280 992e 0ae2 8098 7363 616c 6528 5629 ........scale(V) │ │ │ │ +00009550: e280 9920 2020 2020 2020 2020 2020 2020 ... │ │ │ │ +00009560: 2020 2020 2020 2020 2020 2020 2076 6563 vec │ │ │ │ +00009570: 746f 7220 2020 2020 2020 2020 2020 2020 tor │ │ │ │ +00009580: 2020 2053 6361 6c65 2061 6c6f 6e67 2065 Scale along e │ │ │ │ +00009590: 6163 6820 6178 6973 2062 7920 636f 6d70 ach axis by comp │ │ │ │ +000095a0: 6f6e 656e 7473 206f 6620 e280 9856 e280 onents of ...V.. │ │ │ │ +000095b0: 992e 0ae2 8098 7072 6f6a 6563 7428 29e2 ......project(). │ │ │ │ +000095c0: 8099 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ +000095d0: 2020 2020 2020 2020 2020 202d 2d20 2020 -- │ │ │ │ +000095e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +000095f0: 2053 616d 6520 6173 20e2 8098 7363 616c Same as ...scal │ │ │ │ +00009600: 6528 5b31 2c31 2c30 5d29 e280 992e 0ae2 e([1,1,0])...... │ │ │ │ +00009610: 8098 7072 6f6a 6563 7428 5329 e280 9920 ..project(S)... │ │ │ │ +00009620: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00009630: 2020 2020 2020 2073 6361 6c61 7220 2020 scalar │ │ │ │ +00009640: 2020 2020 2020 2020 2020 2020 2050 6572 Per │ │ │ │ +00009650: 7370 6563 7469 7665 2070 726f 6a65 6374 spective project │ │ │ │ +00009660: 696f 6e20 7769 7468 2076 6965 7720 6365 ion with view ce │ │ │ │ +00009670: 6e74 6572 2061 740a 2020 2020 2020 2020 nter at. │ │ │ │ 00009680: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009690: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 000096a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000096b0: 2020 2020 2020 2020 2020 6f72 6967 696e origin │ │ │ │ -000096c0: 2061 6e64 2070 726f 6a65 6374 696f 6e20 and projection │ │ │ │ -000096d0: 706c 616e 6520 7a3d 2de2 8098 53e2 8099 plane z=-...S... │ │ │ │ -000096e0: 2e0a e280 9870 6572 7370 6563 7469 7665 .....perspective │ │ │ │ -000096f0: 2853 29e2 8099 2020 2020 2020 2020 2020 (S)... │ │ │ │ -00009700: 2020 2020 2020 2020 2020 7363 616c 6172 scalar │ │ │ │ -00009710: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009720: 5065 7273 7065 6374 6976 6520 5f74 7261 Perspective _tra │ │ │ │ -00009730: 6e73 666f 726d 5f20 6964 656e 7469 6361 nsform_ identica │ │ │ │ -00009740: 6c20 746f 0a20 2020 2020 2020 2020 2020 l to. │ │ │ │ +000096b0: 2020 6f72 6967 696e 2061 6e64 2070 726f origin and pro │ │ │ │ +000096c0: 6a65 6374 696f 6e20 706c 616e 6520 7a3d jection plane z= │ │ │ │ +000096d0: 2de2 8098 53e2 8099 2e0a e280 9870 6572 -...S........per │ │ │ │ +000096e0: 7370 6563 7469 7665 2853 29e2 8099 2020 spective(S)... │ │ │ │ +000096f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00009700: 2020 7363 616c 6172 2020 2020 2020 2020 scalar │ │ │ │ +00009710: 2020 2020 2020 2020 5065 7273 7065 6374 Perspect │ │ │ │ +00009720: 6976 6520 5f74 7261 6e73 666f 726d 5f20 ive _transform_ │ │ │ │ +00009730: 6964 656e 7469 6361 6c20 746f 0a20 2020 identical to. │ │ │ │ +00009740: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009750: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009760: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009770: 2020 2020 2020 2020 2020 2020 2020 20e2 . │ │ │ │ -00009780: 8098 7072 6f6a 6563 7428 5329 e280 9920 ..project(S)... │ │ │ │ -00009790: 6578 6365 7074 2074 6861 7420 7468 6520 except that the │ │ │ │ -000097a0: 7a2d 636f 6f72 6469 6e61 7465 206f 660a z-coordinate of. │ │ │ │ +00009770: 2020 2020 2020 20e2 8098 7072 6f6a 6563 ...projec │ │ │ │ +00009780: 7428 5329 e280 9920 6578 6365 7074 2074 t(S)... except t │ │ │ │ +00009790: 6861 7420 7468 6520 7a2d 636f 6f72 6469 hat the z-coordi │ │ │ │ +000097a0: 6e61 7465 206f 660a 2020 2020 2020 2020 nate of. │ │ │ │ 000097b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 000097c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 000097d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000097e0: 2020 2020 2020 2020 2020 7468 6520 7472 the tr │ │ │ │ -000097f0: 616e 7366 6f72 6d65 6420 7265 7375 6c74 ansformed result │ │ │ │ -00009800: 2069 7320 e280 9c70 7365 7564 6f64 6570 is ...pseudodep │ │ │ │ -00009810: 7468 e280 9d2c 0a20 2020 2020 2020 2020 th...,. │ │ │ │ +000097e0: 2020 7468 6520 7472 616e 7366 6f72 6d65 the transforme │ │ │ │ +000097f0: 6420 7265 7375 6c74 2069 7320 e280 9c70 d result is ...p │ │ │ │ +00009800: 7365 7564 6f64 6570 7468 e280 9d2c 0a20 seudodepth...,. │ │ │ │ +00009810: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009820: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009830: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009840: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009850: 2075 7361 626c 6520 6279 2074 6865 2068 usable by the h │ │ │ │ -00009860: 6964 6465 6e20 7375 7266 6163 6520 616c idden surface al │ │ │ │ -00009870: 676f 7269 7468 6d2e 0ae2 8098 7669 6577 gorithm.....view │ │ │ │ -00009880: 2845 2c44 2c55 29e2 8099 2020 2020 2020 (E,D,U)... │ │ │ │ -00009890: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000098a0: 2070 6f69 6e74 2c76 6563 746f 722c 7665 point,vector,ve │ │ │ │ -000098b0: 6374 6f72 2020 2056 6965 7720 7472 616e ctor View tran │ │ │ │ -000098c0: 7366 6f72 6d20 7369 6d69 6c61 7220 746f sform similar to │ │ │ │ -000098d0: 2074 6861 7420 6f66 20e2 8098 4f70 656e that of ...Open │ │ │ │ -000098e0: 474c e280 9927 732e 0a20 2020 2020 2020 GL...'s.. │ │ │ │ +00009840: 2020 2020 2020 2020 2075 7361 626c 6520 usable │ │ │ │ +00009850: 6279 2074 6865 2068 6964 6465 6e20 7375 by the hidden su │ │ │ │ +00009860: 7266 6163 6520 616c 676f 7269 7468 6d2e rface algorithm. │ │ │ │ +00009870: 0ae2 8098 7669 6577 2845 2c44 2c55 29e2 ....view(E,D,U). │ │ │ │ +00009880: 8099 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ +00009890: 2020 2020 2020 2020 2070 6f69 6e74 2c76 point,v │ │ │ │ +000098a0: 6563 746f 722c 7665 6374 6f72 2020 2056 ector,vector V │ │ │ │ +000098b0: 6965 7720 7472 616e 7366 6f72 6d20 7369 iew transform si │ │ │ │ +000098c0: 6d69 6c61 7220 746f 2074 6861 7420 6f66 milar to that of │ │ │ │ +000098d0: 20e2 8098 4f70 656e 474c e280 9927 732e ...OpenGL...'s. │ │ │ │ +000098e0: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ 000098f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009900: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009910: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009920: 2020 2054 6865 205f 6579 6520 706f 696e The _eye poin │ │ │ │ -00009930: 745f 20e2 8098 45e2 8099 2069 7320 7472 t_ ...E... is tr │ │ │ │ -00009940: 616e 736c 6174 6564 2074 6f20 7468 650a anslated to the. │ │ │ │ +00009910: 2020 2020 2020 2020 2020 2054 6865 205f The _ │ │ │ │ +00009920: 6579 6520 706f 696e 745f 20e2 8098 45e2 eye point_ ...E. │ │ │ │ +00009930: 8099 2069 7320 7472 616e 736c 6174 6564 .. is translated │ │ │ │ +00009940: 2074 6f20 7468 650a 2020 2020 2020 2020 to the. │ │ │ │ 00009950: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009960: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009970: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009980: 2020 2020 2020 2020 2020 6f72 6967 696e origin │ │ │ │ -00009990: 2077 6869 6c65 2061 2072 6f74 6174 696f while a rotatio │ │ │ │ -000099a0: 6e20 6973 2061 6c73 6f20 6170 706c 6965 n is also applie │ │ │ │ -000099b0: 6420 7468 6174 0a20 2020 2020 2020 2020 d that. │ │ │ │ +00009980: 2020 6f72 6967 696e 2077 6869 6c65 2061 origin while a │ │ │ │ +00009990: 2072 6f74 6174 696f 6e20 6973 2061 6c73 rotation is als │ │ │ │ +000099a0: 6f20 6170 706c 6965 6420 7468 6174 0a20 o applied that. │ │ │ │ +000099b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 000099c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 000099d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000099e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000099f0: 206d 616b 6573 2074 6865 205f 7669 6577 makes the _view │ │ │ │ -00009a00: 2064 6972 6563 7469 6f6e 2076 6563 746f direction vecto │ │ │ │ -00009a10: 725f 20e2 8098 44e2 8099 2061 6e64 2074 r_ ...D... and t │ │ │ │ -00009a20: 6865 0a20 2020 2020 2020 2020 2020 2020 he. │ │ │ │ +000099e0: 2020 2020 2020 2020 206d 616b 6573 2074 makes t │ │ │ │ +000099f0: 6865 205f 7669 6577 2064 6972 6563 7469 he _view directi │ │ │ │ +00009a00: 6f6e 2076 6563 746f 725f 20e2 8098 44e2 on vector_ ...D. │ │ │ │ +00009a10: 8099 2061 6e64 2074 6865 0a20 2020 2020 .. and the. │ │ │ │ +00009a20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009a30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009a40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009a50: 2020 2020 2020 2020 2020 2020 205f 7669 _vi │ │ │ │ -00009a60: 6577 2022 7570 2220 7665 6374 6f72 5f20 ew "up" vector_ │ │ │ │ -00009a70: e280 9855 e280 9920 706f 696e 7420 696e ...U... point in │ │ │ │ -00009a80: 2074 6865 206e 6567 6174 6976 650a 2020 the negative. │ │ │ │ +00009a50: 2020 2020 205f 7669 6577 2022 7570 2220 _view "up" │ │ │ │ +00009a60: 7665 6374 6f72 5f20 e280 9855 e280 9920 vector_ ...U... │ │ │ │ +00009a70: 706f 696e 7420 696e 2074 6865 206e 6567 point in the neg │ │ │ │ +00009a80: 6174 6976 650a 2020 2020 2020 2020 2020 ative. │ │ │ │ 00009a90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009aa0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009ab0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009ac0: 2020 2020 2020 2020 7a2d 2061 6e64 2074 z- and t │ │ │ │ -00009ad0: 6865 2079 2d64 6972 6563 7469 6f6e 7320 he y-directions │ │ │ │ -00009ae0: 7265 7370 6563 7469 7665 6c79 2e20 2049 respectively. I │ │ │ │ -00009af0: 6620 e280 9855 e280 990a 2020 2020 2020 f ...U.... │ │ │ │ +00009ac0: 7a2d 2061 6e64 2074 6865 2079 2d64 6972 z- and the y-dir │ │ │ │ +00009ad0: 6563 7469 6f6e 7320 7265 7370 6563 7469 ections respecti │ │ │ │ +00009ae0: 7665 6c79 2e20 2049 6620 e280 9855 e280 vely. If ...U.. │ │ │ │ +00009af0: 990a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ 00009b00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009b10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009b20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009b30: 2020 2020 6973 206f 6d69 7474 6564 2c20 is omitted, │ │ │ │ -00009b40: 6974 2064 6566 6175 6c74 7320 746f 205b it defaults to [ │ │ │ │ -00009b50: 302c 312c 305d 2e20 2057 6865 6e20 e280 0,1,0]. When .. │ │ │ │ -00009b60: 9855 e280 990a 2020 2020 2020 2020 2020 .U.... │ │ │ │ +00009b20: 2020 2020 2020 2020 2020 2020 6973 206f is o │ │ │ │ +00009b30: 6d69 7474 6564 2c20 6974 2064 6566 6175 mitted, it defau │ │ │ │ +00009b40: 6c74 7320 746f 205b 302c 312c 305d 2e20 lts to [0,1,0]. │ │ │ │ +00009b50: 2057 6865 6e20 e280 9855 e280 990a 2020 When ...U.... │ │ │ │ +00009b60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009b70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009b80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009b90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009ba0: 6973 206f 6d69 7474 6564 2c20 e280 9844 is omitted, ...D │ │ │ │ -00009bb0: e280 9920 6d61 7920 6265 2061 6c73 6f3b ... may be also; │ │ │ │ -00009bc0: 2069 7420 6465 6661 756c 7473 2074 6f0a it defaults to. │ │ │ │ +00009b90: 2020 2020 2020 2020 6973 206f 6d69 7474 is omitt │ │ │ │ +00009ba0: 6564 2c20 e280 9844 e280 9920 6d61 7920 ed, ...D... may │ │ │ │ +00009bb0: 6265 2061 6c73 6f3b 2069 7420 6465 6661 be also; it defa │ │ │ │ +00009bc0: 756c 7473 2074 6f0a 2020 2020 2020 2020 ults to. │ │ │ │ 00009bd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009be0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009bf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009c00: 2020 2020 2020 2020 2020 e280 9828 302c ...(0, │ │ │ │ -00009c10: 302c 3029 2d28 4529 e280 992c 2061 2076 0,0)-(E)..., a v │ │ │ │ -00009c20: 6563 746f 7220 706f 696e 7469 6e67 2066 ector pointing f │ │ │ │ -00009c30: 726f 6d20 7468 6520 6579 650a 2020 2020 rom the eye. │ │ │ │ +00009c00: 2020 e280 9828 302c 302c 3029 2d28 4529 ...(0,0,0)-(E) │ │ │ │ +00009c10: e280 992c 2061 2076 6563 746f 7220 706f ..., a vector po │ │ │ │ +00009c20: 696e 7469 6e67 2066 726f 6d20 7468 6520 inting from the │ │ │ │ +00009c30: 6579 650a 2020 2020 2020 2020 2020 2020 eye. │ │ │ │ 00009c40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009c50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009c60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009c70: 2020 2020 2020 746f 7761 7264 2074 6865 toward the │ │ │ │ -00009c80: 206f 7269 6769 6e2e 0ae2 8098 7669 6577 origin.....view │ │ │ │ -00009c90: 2845 2c4c 2c55 29e2 8099 2020 2020 2020 (E,L,U)... │ │ │ │ -00009ca0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009cb0: 2070 6f69 6e74 2c70 6f69 6e74 2c76 6563 point,point,vec │ │ │ │ -00009cc0: 746f 7220 2020 2041 6e20 616c 7465 726e tor An altern │ │ │ │ -00009cd0: 6174 6520 666f 726d 206f 6620 e280 9876 ate form of ...v │ │ │ │ -00009ce0: 6965 7728 452c 442c 5529 e280 9920 6162 iew(E,D,U)... ab │ │ │ │ -00009cf0: 6f76 6520 7768 6572 650a 2020 2020 2020 ove where. │ │ │ │ +00009c60: 2020 2020 2020 2020 2020 2020 2020 746f to │ │ │ │ +00009c70: 7761 7264 2074 6865 206f 7269 6769 6e2e ward the origin. │ │ │ │ +00009c80: 0ae2 8098 7669 6577 2845 2c4c 2c55 29e2 ....view(E,L,U). │ │ │ │ +00009c90: 8099 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ +00009ca0: 2020 2020 2020 2020 2070 6f69 6e74 2c70 point,p │ │ │ │ +00009cb0: 6f69 6e74 2c76 6563 746f 7220 2020 2041 oint,vector A │ │ │ │ +00009cc0: 6e20 616c 7465 726e 6174 6520 666f 726d n alternate form │ │ │ │ +00009cd0: 206f 6620 e280 9876 6965 7728 452c 442c of ...view(E,D, │ │ │ │ +00009ce0: 5529 e280 9920 6162 6f76 6520 7768 6572 U)... above wher │ │ │ │ +00009cf0: 650a 2020 2020 2020 2020 2020 2020 2020 e. │ │ │ │ 00009d00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009d10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009d20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009d30: 2020 2020 7468 6520 7669 6577 2064 6972 the view dir │ │ │ │ -00009d40: 6563 7469 6f6e 2070 6172 616d 6574 6572 ection parameter │ │ │ │ -00009d50: 20e2 8098 44e2 8099 2069 7320 7265 706c ...D... is repl │ │ │ │ -00009d60: 6163 6564 0a20 2020 2020 2020 2020 2020 aced. │ │ │ │ +00009d20: 2020 2020 2020 2020 2020 2020 7468 6520 the │ │ │ │ +00009d30: 7669 6577 2064 6972 6563 7469 6f6e 2070 view direction p │ │ │ │ +00009d40: 6172 616d 6574 6572 20e2 8098 44e2 8099 arameter ...D... │ │ │ │ +00009d50: 2069 7320 7265 706c 6163 6564 0a20 2020 is replaced. │ │ │ │ +00009d60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009d70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009d80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009d90: 2020 2020 2020 2020 2020 2020 2020 2077 w │ │ │ │ -00009da0: 6974 6820 6120 226c 6f6f 6b20 6174 2220 ith a "look at" │ │ │ │ -00009db0: 706f 696e 7420 e280 984c e280 992c 2069 point ...L..., i │ │ │ │ -00009dc0: 2e65 2e2c 2061 2070 6f69 6e74 0a20 2020 .e., a point. │ │ │ │ +00009d90: 2020 2020 2020 2077 6974 6820 6120 226c with a "l │ │ │ │ +00009da0: 6f6f 6b20 6174 2220 706f 696e 7420 e280 ook at" point .. │ │ │ │ +00009db0: 984c e280 992c 2069 2e65 2e2c 2061 2070 .L..., i.e., a p │ │ │ │ +00009dc0: 6f69 6e74 0a20 2020 2020 2020 2020 2020 oint. │ │ │ │ 00009dd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009de0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009df0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009e00: 2020 2020 2020 2077 6865 7265 2074 6865 where the │ │ │ │ -00009e10: 2076 6965 7765 7220 6973 2066 6f63 7573 viewer is focus │ │ │ │ -00009e20: 696e 6720 6865 7220 6174 7465 6e74 696f ing her attentio │ │ │ │ -00009e30: 6e2e 0a20 2020 2020 2020 2020 2020 2020 n.. │ │ │ │ +00009df0: 2020 2020 2020 2020 2020 2020 2020 2077 w │ │ │ │ +00009e00: 6865 7265 2074 6865 2076 6965 7765 7220 here the viewer │ │ │ │ +00009e10: 6973 2066 6f63 7573 696e 6720 6865 7220 is focusing her │ │ │ │ +00009e20: 6174 7465 6e74 696f 6e2e 0a20 2020 2020 attention.. │ │ │ │ +00009e30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009e40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009e50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009e60: 2020 2020 2020 2020 2020 2020 2054 6869 Thi │ │ │ │ -00009e70: 7320 666f 726d 206f 6620 7669 6577 2069 s form of view i │ │ │ │ -00009e80: 7320 6571 7569 7661 6c65 6e74 2074 6f20 s equivalent to │ │ │ │ -00009e90: e280 9876 6965 7728 452c 0a20 2020 2020 ...view(E,. │ │ │ │ +00009e60: 2020 2020 2054 6869 7320 666f 726d 206f This form o │ │ │ │ +00009e70: 6620 7669 6577 2069 7320 6571 7569 7661 f view is equiva │ │ │ │ +00009e80: 6c65 6e74 2074 6f20 e280 9876 6965 7728 lent to ...view( │ │ │ │ +00009e90: 452c 0a20 2020 2020 2020 2020 2020 2020 E,. │ │ │ │ 00009ea0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009eb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009ec0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009ed0: 2020 2020 2028 4c29 2d28 4529 2c20 5529 (L)-(E), U) │ │ │ │ -00009ee0: e280 992c 2077 6865 7265 20e2 8098 284c ..., where ...(L │ │ │ │ -00009ef0: 292d 2845 29e2 8099 2069 7320 6120 6469 )-(E)... is a di │ │ │ │ -00009f00: 7265 6374 696f 6e0a 2020 2020 2020 2020 rection. │ │ │ │ +00009ec0: 2020 2020 2020 2020 2020 2020 2028 4c29 (L) │ │ │ │ +00009ed0: 2d28 4529 2c20 5529 e280 992c 2077 6865 -(E), U)..., whe │ │ │ │ +00009ee0: 7265 20e2 8098 284c 292d 2845 29e2 8099 re ...(L)-(E)... │ │ │ │ +00009ef0: 2069 7320 6120 6469 7265 6374 696f 6e0a is a direction. │ │ │ │ +00009f00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009f10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009f20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009f30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009f40: 2020 7665 6374 6f72 2e20 20e2 8098 55e2 vector. ...U. │ │ │ │ -00009f50: 8099 2069 7320 6f70 7469 6f6e 616c 2061 .. is optional a │ │ │ │ -00009f60: 6e64 2064 6566 6175 6c74 7320 746f 0a20 nd defaults to. │ │ │ │ +00009f30: 2020 2020 2020 2020 2020 7665 6374 6f72 vector │ │ │ │ +00009f40: 2e20 20e2 8098 55e2 8099 2069 7320 6f70 . ...U... is op │ │ │ │ +00009f50: 7469 6f6e 616c 2061 6e64 2064 6566 6175 tional and defau │ │ │ │ +00009f60: 6c74 7320 746f 0a20 2020 2020 2020 2020 lts to. │ │ │ │ 00009f70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009f80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00009f90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00009fa0: 2020 2020 2020 2020 205b 302c 312c 305d [0,1,0] │ │ │ │ -00009fb0: 2e0a e280 985b 5b61 5f7b 3131 7d2c 615f .....[[a_{11},a_ │ │ │ │ -00009fc0: 7b31 327d 2c61 5f7b 3133 7d2c 615f 7b31 {12},a_{13},a_{1 │ │ │ │ -00009fd0: 347d 5de2 8099 2020 2020 3136 2073 6361 4}]... 16 sca │ │ │ │ -00009fe0: 6c61 7273 2020 2020 2020 2020 2020 2020 lars │ │ │ │ -00009ff0: 4469 7265 6374 2074 7261 6e73 666f 726d Direct transform │ │ │ │ -0000a000: 206d 6174 7269 7820 6465 6669 6e69 7469 matrix definiti │ │ │ │ -0000a010: 6f6e 2e20 2045 6163 6820 6f66 0ae2 8098 on. Each of.... │ │ │ │ -0000a020: 205b 615f 7b32 317d 2c61 5f7b 3232 7d2c [a_{21},a_{22}, │ │ │ │ -0000a030: 615f 7b32 337d 2c61 5f7b 3234 7d5d e280 a_{23},a_{24}].. │ │ │ │ -0000a040: 9920 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ -0000a050: 2020 2020 2020 2020 2020 2074 6865 2061 the a │ │ │ │ -0000a060: 5f7b 696a 7d20 6973 2061 2073 6361 6c61 _{ij} is a scala │ │ │ │ -0000a070: 7220 6578 7072 6573 7369 6f6e 2e20 2053 r expression. S │ │ │ │ -0000a080: 6565 2074 6578 740a e280 9820 5b61 5f7b ee text.... [a_{ │ │ │ │ -0000a090: 3331 7d2c 615f 7b33 327d 2c61 5f7b 3333 31},a_{32},a_{33 │ │ │ │ -0000a0a0: 7d2c 615f 7b33 347d 5de2 8099 2020 2020 },a_{34}]... │ │ │ │ -0000a0b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0000a0c0: 2020 2020 2020 666f 7220 6465 7461 696c for detail │ │ │ │ -0000a0d0: 732e 0ae2 8098 205b 615f 7b34 317d 2c61 s..... [a_{41},a │ │ │ │ -0000a0e0: 5f7b 3432 7d2c 615f 7b34 337d 2c61 5f7b _{42},a_{43},a_{ │ │ │ │ -0000a0f0: 3434 7d5d 5de2 8099 0a54 6865 20e2 8098 44}]]....The ... │ │ │ │ -0000a100: 7072 6f6a 6563 74e2 8099 2063 6f6e 7374 project... const │ │ │ │ -0000a110: 7275 6374 6f72 2069 7320 6e6f 7420 6765 ructor is not ge │ │ │ │ -0000a120: 6e65 7261 6c6c 7920 7573 6566 756c 2062 nerally useful b │ │ │ │ -0000a130: 6563 6175 7365 2069 7420 6465 6665 6174 ecause it defeat │ │ │ │ -0000a140: 730a 6869 6464 656e 2073 7572 6661 6365 s.hidden surface │ │ │ │ -0000a150: 2072 656d 6f76 616c 2062 7920 636f 6c6c removal by coll │ │ │ │ -0000a160: 6170 7369 6e67 2074 6865 2073 6365 6e65 apsing the scene │ │ │ │ -0000a170: 206f 6e74 6f20 6120 7369 6e67 6c65 2070 onto a single p │ │ │ │ -0000a180: 6c61 6e65 2e20 2049 740a 6973 2061 2073 lane. It.is a s │ │ │ │ -0000a190: 7065 6369 616c 2070 7572 706f 7365 2074 pecial purpose t │ │ │ │ -0000a1a0: 7261 6e73 666f 726d 2066 6f72 2064 7261 ransform for dra │ │ │ │ -0000a1b0: 7769 6e67 2070 6963 7475 7265 7320 6f66 wing pictures of │ │ │ │ -0000a1c0: 2073 6365 6e65 7320 7768 6572 650a 7468 scenes where.th │ │ │ │ -0000a1d0: 7265 652d 6469 6d65 6e73 696f 6e61 6c20 ree-dimensional │ │ │ │ -0000a1e0: 6f62 6a65 6374 7320 6172 6520 6265 696e objects are bein │ │ │ │ -0000a1f0: 6720 7072 6f6a 6563 7465 6420 6f6e 746f g projected onto │ │ │ │ -0000a200: 2070 6c61 6e65 732e 2020 5365 652c 2066 planes. See, f │ │ │ │ -0000a210: 6f72 0a65 7861 6d70 6c65 2c20 2a6e 6f74 or.example, *not │ │ │ │ -0000a220: 6520 4f76 6572 7669 6577 3a3a 2e0a 0a20 e Overview::... │ │ │ │ -0000a230: 2020 5468 6520 6469 7265 6374 2074 7261 The direct tra │ │ │ │ -0000a240: 6e73 666f 726d 2063 6f6e 7374 7275 6374 nsform construct │ │ │ │ -0000a250: 6f72 2061 6c6c 6f77 7320 6469 7265 6374 or allows direct │ │ │ │ -0000a260: 2065 6e74 7279 206f 6620 6120 3478 340a entry of a 4x4. │ │ │ │ -0000a270: 7472 616e 7366 6f72 6d61 7469 6f6e 206d transformation m │ │ │ │ -0000a280: 6174 7269 782e 2020 4d6f 7374 2033 6420 atrix. Most 3d │ │ │ │ -0000a290: 6772 6170 6869 6373 2073 7973 7465 6d73 graphics systems │ │ │ │ -0000a2a0: 2c20 696e 636c 7564 696e 6720 e280 9873 , including ...s │ │ │ │ -0000a2b0: 6b65 7463 68e2 8099 2c0a 7573 6520 342d ketch...,.use 4- │ │ │ │ -0000a2c0: 6469 6d65 6e73 696f 6e61 6c20 686f 6d6f dimensional homo │ │ │ │ -0000a2d0: 6765 6e65 6f75 7320 636f 6f72 6469 6e61 geneous coordina │ │ │ │ -0000a2e0: 7465 7320 696e 7465 726e 616c 6c79 2e20 tes internally. │ │ │ │ -0000a2f0: 2054 6865 7365 2061 7265 0a74 7261 6e73 These are.trans │ │ │ │ -0000a300: 666f 726d 6564 2062 7920 6d75 6c74 6970 formed by multip │ │ │ │ -0000a310: 6c69 6361 7469 6f6e 2077 6974 6820 3478 lication with 4x │ │ │ │ -0000a320: 3420 6d61 7472 6963 6573 2e20 2054 6865 4 matrices. The │ │ │ │ -0000a330: 2062 7569 6c74 2d69 6e0a 636f 6e73 7472 built-in.constr │ │ │ │ -0000a340: 7563 746f 7273 2028 e280 9872 6f74 6174 uctors (...rotat │ │ │ │ -0000a350: 65e2 8099 2c20 e280 9873 6361 6c65 e280 e..., ...scale.. │ │ │ │ -0000a360: 992c 2065 7463 2e29 2020 6172 6520 616c ., etc.) are al │ │ │ │ -0000a370: 6c20 7472 616e 736c 6174 6564 2069 6e74 l translated int │ │ │ │ -0000a380: 6572 6e61 6c6c 7920 746f 0a73 7563 6820 ernally to.such │ │ │ │ -0000a390: 3478 3420 6d61 7472 6963 6573 2e20 2046 4x4 matrices. F │ │ │ │ -0000a3a0: 6f72 206d 6f72 6520 696e 666f 726d 6174 or more informat │ │ │ │ -0000a3b0: 696f 6e20 6f6e 2068 6f6d 6f67 656e 656f ion on homogeneo │ │ │ │ -0000a3c0: 7573 2063 6f6f 7264 696e 6174 650a 7472 us coordinate.tr │ │ │ │ -0000a3d0: 616e 7366 6f72 6d61 7469 6f6e 732c 2073 ansformations, s │ │ │ │ -0000a3e0: 6565 2061 6e79 2067 6f6f 6420 636f 6d70 ee any good comp │ │ │ │ -0000a3f0: 7574 6572 2067 7261 7068 6963 7320 7465 uter graphics te │ │ │ │ -0000a400: 7874 626f 6f6b 2e20 2054 6865 2064 6972 xtbook. The dir │ │ │ │ -0000a410: 6563 740a 7472 616e 7366 6f72 6d20 6665 ect.transform fe │ │ │ │ -0000a420: 6174 7572 6520 6f66 20e2 8098 736b 6574 ature of ...sket │ │ │ │ -0000a430: 6368 e280 9920 616c 6c6f 7773 2079 6f75 ch... allows you │ │ │ │ -0000a440: 2074 6f20 656e 7465 7220 6120 6d61 7472 to enter a matr │ │ │ │ -0000a450: 6978 206f 6620 796f 7572 206f 776e 0a63 ix of your own.c │ │ │ │ -0000a460: 686f 6963 652e 2020 5468 6572 6520 6172 hoice. There ar │ │ │ │ -0000a470: 6520 6e6f 7420 6d61 6e79 2063 6173 6573 e not many cases │ │ │ │ -0000a480: 2077 6865 7265 2074 6869 7320 6973 2075 where this is u │ │ │ │ -0000a490: 7365 6675 6c2c 2062 7574 2069 6620 796f seful, but if yo │ │ │ │ -0000a4a0: 7520 646f 0a6e 6565 6420 6974 2c20 796f u do.need it, yo │ │ │ │ -0000a4b0: 7520 6e65 6564 2069 7420 6261 646c 7921 u need it badly! │ │ │ │ -0000a4c0: 0a0a 1f0a 4669 6c65 3a20 736b 6574 6368 ....File: sketch │ │ │ │ -0000a4d0: 2e69 6e66 6f2c 2020 4e6f 6465 3a20 4172 .info, Node: Ar │ │ │ │ -0000a4e0: 6974 686d 6574 6963 2c20 204e 6578 743a ithmetic, Next: │ │ │ │ -0000a4f0: 204f 7074 696f 6e73 2c20 2050 7265 763a Options, Prev: │ │ │ │ -0000a500: 204c 6974 6572 616c 732c 2020 5570 3a20 Literals, Up: │ │ │ │ -0000a510: 4c61 6e67 7561 6765 2062 6173 6963 730a Language basics. │ │ │ │ -0000a520: 0a33 2e31 2e34 2041 7269 7468 6d65 7469 .3.1.4 Arithmeti │ │ │ │ -0000a530: 6320 6578 7072 6573 7369 6f6e 730a 2d2d c expressions.-- │ │ │ │ +00009fa0: 205b 302c 312c 305d 2e0a e280 985b 5b61 [0,1,0].....[[a │ │ │ │ +00009fb0: 5f7b 3131 7d2c 615f 7b31 327d 2c61 5f7b _{11},a_{12},a_{ │ │ │ │ +00009fc0: 3133 7d2c 615f 7b31 347d 5de2 8099 2020 13},a_{14}]... │ │ │ │ +00009fd0: 2020 3136 2073 6361 6c61 7273 2020 2020 16 scalars │ │ │ │ +00009fe0: 2020 2020 2020 2020 4469 7265 6374 2074 Direct t │ │ │ │ +00009ff0: 7261 6e73 666f 726d 206d 6174 7269 7820 ransform matrix │ │ │ │ +0000a000: 6465 6669 6e69 7469 6f6e 2e20 2045 6163 definition. Eac │ │ │ │ +0000a010: 6820 6f66 0ae2 8098 205b 615f 7b32 317d h of.... [a_{21} │ │ │ │ +0000a020: 2c61 5f7b 3232 7d2c 615f 7b32 337d 2c61 ,a_{22},a_{23},a │ │ │ │ +0000a030: 5f7b 3234 7d5d e280 9920 2020 2020 2020 _{24}]... │ │ │ │ +0000a040: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0000a050: 2020 2074 6865 2061 5f7b 696a 7d20 6973 the a_{ij} is │ │ │ │ +0000a060: 2061 2073 6361 6c61 7220 6578 7072 6573 a scalar expres │ │ │ │ +0000a070: 7369 6f6e 2e20 2053 6565 2074 6578 740a sion. See text. │ │ │ │ +0000a080: e280 9820 5b61 5f7b 3331 7d2c 615f 7b33 ... [a_{31},a_{3 │ │ │ │ +0000a090: 327d 2c61 5f7b 3333 7d2c 615f 7b33 347d 2},a_{33},a_{34} │ │ │ │ +0000a0a0: 5de2 8099 2020 2020 2020 2020 2020 2020 ]... │ │ │ │ +0000a0b0: 2020 2020 2020 2020 2020 2020 2020 666f fo │ │ │ │ +0000a0c0: 7220 6465 7461 696c 732e 0ae2 8098 205b r details..... [ │ │ │ │ +0000a0d0: 615f 7b34 317d 2c61 5f7b 3432 7d2c 615f a_{41},a_{42},a_ │ │ │ │ +0000a0e0: 7b34 337d 2c61 5f7b 3434 7d5d 5de2 8099 {43},a_{44}]]... │ │ │ │ +0000a0f0: 0a54 6865 20e2 8098 7072 6f6a 6563 74e2 .The ...project. │ │ │ │ +0000a100: 8099 2063 6f6e 7374 7275 6374 6f72 2069 .. constructor i │ │ │ │ +0000a110: 7320 6e6f 7420 6765 6e65 7261 6c6c 7920 s not generally │ │ │ │ +0000a120: 7573 6566 756c 2062 6563 6175 7365 2069 useful because i │ │ │ │ +0000a130: 7420 6465 6665 6174 730a 6869 6464 656e t defeats.hidden │ │ │ │ +0000a140: 2073 7572 6661 6365 2072 656d 6f76 616c surface removal │ │ │ │ +0000a150: 2062 7920 636f 6c6c 6170 7369 6e67 2074 by collapsing t │ │ │ │ +0000a160: 6865 2073 6365 6e65 206f 6e74 6f20 6120 he scene onto a │ │ │ │ +0000a170: 7369 6e67 6c65 2070 6c61 6e65 2e20 2049 single plane. I │ │ │ │ +0000a180: 740a 6973 2061 2073 7065 6369 616c 2070 t.is a special p │ │ │ │ +0000a190: 7572 706f 7365 2074 7261 6e73 666f 726d urpose transform │ │ │ │ +0000a1a0: 2066 6f72 2064 7261 7769 6e67 2070 6963 for drawing pic │ │ │ │ +0000a1b0: 7475 7265 7320 6f66 2073 6365 6e65 7320 tures of scenes │ │ │ │ +0000a1c0: 7768 6572 650a 7468 7265 652d 6469 6d65 where.three-dime │ │ │ │ +0000a1d0: 6e73 696f 6e61 6c20 6f62 6a65 6374 7320 nsional objects │ │ │ │ +0000a1e0: 6172 6520 6265 696e 6720 7072 6f6a 6563 are being projec │ │ │ │ +0000a1f0: 7465 6420 6f6e 746f 2070 6c61 6e65 732e ted onto planes. │ │ │ │ +0000a200: 2020 5365 652c 2066 6f72 0a65 7861 6d70 See, for.examp │ │ │ │ +0000a210: 6c65 2c20 2a6e 6f74 6520 4f76 6572 7669 le, *note Overvi │ │ │ │ +0000a220: 6577 3a3a 2e0a 0a20 2020 5468 6520 6469 ew::... The di │ │ │ │ +0000a230: 7265 6374 2074 7261 6e73 666f 726d 2063 rect transform c │ │ │ │ +0000a240: 6f6e 7374 7275 6374 6f72 2061 6c6c 6f77 onstructor allow │ │ │ │ +0000a250: 7320 6469 7265 6374 2065 6e74 7279 206f s direct entry o │ │ │ │ +0000a260: 6620 6120 3478 340a 7472 616e 7366 6f72 f a 4x4.transfor │ │ │ │ +0000a270: 6d61 7469 6f6e 206d 6174 7269 782e 2020 mation matrix. │ │ │ │ +0000a280: 4d6f 7374 2033 6420 6772 6170 6869 6373 Most 3d graphics │ │ │ │ +0000a290: 2073 7973 7465 6d73 2c20 696e 636c 7564 systems, includ │ │ │ │ +0000a2a0: 696e 6720 e280 9873 6b65 7463 68e2 8099 ing ...sketch... │ │ │ │ +0000a2b0: 2c0a 7573 6520 342d 6469 6d65 6e73 696f ,.use 4-dimensio │ │ │ │ +0000a2c0: 6e61 6c20 686f 6d6f 6765 6e65 6f75 7320 nal homogeneous │ │ │ │ +0000a2d0: 636f 6f72 6469 6e61 7465 7320 696e 7465 coordinates inte │ │ │ │ +0000a2e0: 726e 616c 6c79 2e20 2054 6865 7365 2061 rnally. These a │ │ │ │ +0000a2f0: 7265 0a74 7261 6e73 666f 726d 6564 2062 re.transformed b │ │ │ │ +0000a300: 7920 6d75 6c74 6970 6c69 6361 7469 6f6e y multiplication │ │ │ │ +0000a310: 2077 6974 6820 3478 3420 6d61 7472 6963 with 4x4 matric │ │ │ │ +0000a320: 6573 2e20 2054 6865 2062 7569 6c74 2d69 es. The built-i │ │ │ │ +0000a330: 6e0a 636f 6e73 7472 7563 746f 7273 2028 n.constructors ( │ │ │ │ +0000a340: e280 9872 6f74 6174 65e2 8099 2c20 e280 ...rotate..., .. │ │ │ │ +0000a350: 9873 6361 6c65 e280 992c 2065 7463 2e29 .scale..., etc.) │ │ │ │ +0000a360: 2020 6172 6520 616c 6c20 7472 616e 736c are all transl │ │ │ │ +0000a370: 6174 6564 2069 6e74 6572 6e61 6c6c 7920 ated internally │ │ │ │ +0000a380: 746f 0a73 7563 6820 3478 3420 6d61 7472 to.such 4x4 matr │ │ │ │ +0000a390: 6963 6573 2e20 2046 6f72 206d 6f72 6520 ices. For more │ │ │ │ +0000a3a0: 696e 666f 726d 6174 696f 6e20 6f6e 2068 information on h │ │ │ │ +0000a3b0: 6f6d 6f67 656e 656f 7573 2063 6f6f 7264 omogeneous coord │ │ │ │ +0000a3c0: 696e 6174 650a 7472 616e 7366 6f72 6d61 inate.transforma │ │ │ │ +0000a3d0: 7469 6f6e 732c 2073 6565 2061 6e79 2067 tions, see any g │ │ │ │ +0000a3e0: 6f6f 6420 636f 6d70 7574 6572 2067 7261 ood computer gra │ │ │ │ +0000a3f0: 7068 6963 7320 7465 7874 626f 6f6b 2e20 phics textbook. │ │ │ │ +0000a400: 2054 6865 2064 6972 6563 740a 7472 616e The direct.tran │ │ │ │ +0000a410: 7366 6f72 6d20 6665 6174 7572 6520 6f66 sform feature of │ │ │ │ +0000a420: 20e2 8098 736b 6574 6368 e280 9920 616c ...sketch... al │ │ │ │ +0000a430: 6c6f 7773 2079 6f75 2074 6f20 656e 7465 lows you to ente │ │ │ │ +0000a440: 7220 6120 6d61 7472 6978 206f 6620 796f r a matrix of yo │ │ │ │ +0000a450: 7572 206f 776e 0a63 686f 6963 652e 2020 ur own.choice. │ │ │ │ +0000a460: 5468 6572 6520 6172 6520 6e6f 7420 6d61 There are not ma │ │ │ │ +0000a470: 6e79 2063 6173 6573 2077 6865 7265 2074 ny cases where t │ │ │ │ +0000a480: 6869 7320 6973 2075 7365 6675 6c2c 2062 his is useful, b │ │ │ │ +0000a490: 7574 2069 6620 796f 7520 646f 0a6e 6565 ut if you do.nee │ │ │ │ +0000a4a0: 6420 6974 2c20 796f 7520 6e65 6564 2069 d it, you need i │ │ │ │ +0000a4b0: 7420 6261 646c 7921 0a0a 1f0a 4669 6c65 t badly!....File │ │ │ │ +0000a4c0: 3a20 736b 6574 6368 2e69 6e66 6f2c 2020 : sketch.info, │ │ │ │ +0000a4d0: 4e6f 6465 3a20 4172 6974 686d 6574 6963 Node: Arithmetic │ │ │ │ +0000a4e0: 2c20 204e 6578 743a 204f 7074 696f 6e73 , Next: Options │ │ │ │ +0000a4f0: 2c20 2050 7265 763a 204c 6974 6572 616c , Prev: Literal │ │ │ │ +0000a500: 732c 2020 5570 3a20 4c61 6e67 7561 6765 s, Up: Language │ │ │ │ +0000a510: 2062 6173 6963 730a 0a33 2e31 2e34 2041 basics..3.1.4 A │ │ │ │ +0000a520: 7269 7468 6d65 7469 6320 6578 7072 6573 rithmetic expres │ │ │ │ +0000a530: 7369 6f6e 730a 2d2d 2d2d 2d2d 2d2d 2d2d sions.---------- │ │ │ │ 0000a540: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ -0000a550: 2d2d 2d2d 2d2d 2d2d 2d2d 0a0a 4172 6974 ----------..Arit │ │ │ │ -0000a560: 686d 6574 6963 2065 7870 7265 7373 696f hmetic expressio │ │ │ │ -0000a570: 6e73 206f 7665 7220 e280 9873 6b65 7463 ns over ...sketc │ │ │ │ -0000a580: 68e2 8099 206c 6974 6572 616c 7320 616e h... literals an │ │ │ │ -0000a590: 6420 6465 6669 6e65 6420 6964 656e 7469 d defined identi │ │ │ │ -0000a5a0: 6669 6572 730a 6172 6520 7375 6d6d 6172 fiers.are summar │ │ │ │ -0000a5b0: 697a 6564 2069 6e20 7468 6520 666f 6c6c ized in the foll │ │ │ │ -0000a5c0: 6f77 696e 6720 7461 626c 6573 2e0a 0a2a owing tables...* │ │ │ │ -0000a5d0: 204d 656e 753a 0a0a 2a20 5477 6f2d 6f70 Menu:..* Two-op │ │ │ │ -0000a5e0: 6572 616e 6420 2862 696e 6172 7929 2066 erand (binary) f │ │ │ │ -0000a5f0: 6f72 6d73 3a3a 2020 4120 6f70 2042 0a2a orms:: A op B.* │ │ │ │ -0000a600: 2055 6e61 7279 2066 6f72 6d73 3a3a 2020 Unary forms:: │ │ │ │ -0000a610: 2020 2020 2020 2020 2020 2020 2020 206f o │ │ │ │ -0000a620: 7020 4120 2861 6e64 206f 7468 6572 7329 p A (and others) │ │ │ │ -0000a630: 0a0a 1f0a 4669 6c65 3a20 736b 6574 6368 ....File: sketch │ │ │ │ -0000a640: 2e69 6e66 6f2c 2020 4e6f 6465 3a20 5477 .info, Node: Tw │ │ │ │ -0000a650: 6f2d 6f70 6572 616e 6420 2862 696e 6172 o-operand (binar │ │ │ │ -0000a660: 7929 2066 6f72 6d73 2c20 204e 6578 743a y) forms, Next: │ │ │ │ -0000a670: 2055 6e61 7279 2066 6f72 6d73 2c20 2050 Unary forms, P │ │ │ │ -0000a680: 7265 763a 2041 7269 7468 6d65 7469 632c rev: Arithmetic, │ │ │ │ -0000a690: 2020 5570 3a20 4172 6974 686d 6574 6963 Up: Arithmetic │ │ │ │ -0000a6a0: 0a0a 332e 312e 342e 3120 5477 6f2d 6f70 ..3.1.4.1 Two-op │ │ │ │ -0000a6b0: 6572 616e 6420 2862 696e 6172 7929 2066 erand (binary) f │ │ │ │ -0000a6c0: 6f72 6d73 2061 6e64 2070 7265 6365 6465 orms and precede │ │ │ │ -0000a6d0: 6e63 650a 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e nce............. │ │ │ │ +0000a550: 2d2d 0a0a 4172 6974 686d 6574 6963 2065 --..Arithmetic e │ │ │ │ +0000a560: 7870 7265 7373 696f 6e73 206f 7665 7220 xpressions over │ │ │ │ +0000a570: e280 9873 6b65 7463 68e2 8099 206c 6974 ...sketch... lit │ │ │ │ +0000a580: 6572 616c 7320 616e 6420 6465 6669 6e65 erals and define │ │ │ │ +0000a590: 6420 6964 656e 7469 6669 6572 730a 6172 d identifiers.ar │ │ │ │ +0000a5a0: 6520 7375 6d6d 6172 697a 6564 2069 6e20 e summarized in │ │ │ │ +0000a5b0: 7468 6520 666f 6c6c 6f77 696e 6720 7461 the following ta │ │ │ │ +0000a5c0: 626c 6573 2e0a 0a2a 204d 656e 753a 0a0a bles...* Menu:.. │ │ │ │ +0000a5d0: 2a20 5477 6f2d 6f70 6572 616e 6420 2862 * Two-operand (b │ │ │ │ +0000a5e0: 696e 6172 7929 2066 6f72 6d73 3a3a 2020 inary) forms:: │ │ │ │ +0000a5f0: 4120 6f70 2042 0a2a 2055 6e61 7279 2066 A op B.* Unary f │ │ │ │ +0000a600: 6f72 6d73 3a3a 2020 2020 2020 2020 2020 orms:: │ │ │ │ +0000a610: 2020 2020 2020 206f 7020 4120 2861 6e64 op A (and │ │ │ │ +0000a620: 206f 7468 6572 7329 0a0a 1f0a 4669 6c65 others)....File │ │ │ │ +0000a630: 3a20 736b 6574 6368 2e69 6e66 6f2c 2020 : sketch.info, │ │ │ │ +0000a640: 4e6f 6465 3a20 5477 6f2d 6f70 6572 616e Node: Two-operan │ │ │ │ +0000a650: 6420 2862 696e 6172 7929 2066 6f72 6d73 d (binary) forms │ │ │ │ +0000a660: 2c20 204e 6578 743a 2055 6e61 7279 2066 , Next: Unary f │ │ │ │ +0000a670: 6f72 6d73 2c20 2050 7265 763a 2041 7269 orms, Prev: Ari │ │ │ │ +0000a680: 7468 6d65 7469 632c 2020 5570 3a20 4172 thmetic, Up: Ar │ │ │ │ +0000a690: 6974 686d 6574 6963 0a0a 332e 312e 342e ithmetic..3.1.4. │ │ │ │ +0000a6a0: 3120 5477 6f2d 6f70 6572 616e 6420 2862 1 Two-operand (b │ │ │ │ +0000a6b0: 696e 6172 7929 2066 6f72 6d73 2061 6e64 inary) forms and │ │ │ │ +0000a6c0: 2070 7265 6365 6465 6e63 650a 2e2e 2e2e precedence..... │ │ │ │ +0000a6d0: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e ................ │ │ │ │ 0000a6e0: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e ................ │ │ │ │ -0000a6f0: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e ................ │ │ │ │ -0000a700: 2e2e 2e2e 2e0a 0a4d 6f73 7420 7477 6f2d .......Most two- │ │ │ │ -0000a710: 6f70 6572 616e 6420 6269 6e61 7279 2066 operand binary f │ │ │ │ -0000a720: 6f72 6d73 2068 6176 6520 6d65 616e 696e orms have meanin │ │ │ │ -0000a730: 6773 2064 6570 656e 6465 6e74 206f 6e20 gs dependent on │ │ │ │ -0000a740: 7468 6520 7479 7065 7320 6f66 0a74 6865 the types of.the │ │ │ │ -0000a750: 6972 2061 7267 756d 656e 7473 2e20 2041 ir arguments. A │ │ │ │ -0000a760: 6e20 6578 6861 7573 7469 7665 2073 756d n exhaustive sum │ │ │ │ -0000a770: 6d61 7279 206f 6620 7468 6520 706f 7373 mary of the poss │ │ │ │ -0000a780: 6962 696c 6974 6965 7320 6973 2067 6976 ibilities is giv │ │ │ │ -0000a790: 656e 2069 6e0a 7468 6520 666f 6c6c 6f77 en in.the follow │ │ │ │ -0000a7a0: 696e 6720 7461 626c 652e 0a4c 6566 7420 ing table..Left │ │ │ │ -0000a7b0: 2020 2020 2020 204f 7020 2020 2020 2020 Op │ │ │ │ -0000a7c0: 5269 6768 7420 2020 2020 2020 5265 7375 Right Resu │ │ │ │ -0000a7d0: 6c74 2020 2020 2020 4465 7363 7269 7074 lt Descript │ │ │ │ -0000a7e0: 696f 6e0a 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ion.------------ │ │ │ │ +0000a6f0: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e0a 0a4d ...............M │ │ │ │ +0000a700: 6f73 7420 7477 6f2d 6f70 6572 616e 6420 ost two-operand │ │ │ │ +0000a710: 6269 6e61 7279 2066 6f72 6d73 2068 6176 binary forms hav │ │ │ │ +0000a720: 6520 6d65 616e 696e 6773 2064 6570 656e e meanings depen │ │ │ │ +0000a730: 6465 6e74 206f 6e20 7468 6520 7479 7065 dent on the type │ │ │ │ +0000a740: 7320 6f66 0a74 6865 6972 2061 7267 756d s of.their argum │ │ │ │ +0000a750: 656e 7473 2e20 2041 6e20 6578 6861 7573 ents. An exhaus │ │ │ │ +0000a760: 7469 7665 2073 756d 6d61 7279 206f 6620 tive summary of │ │ │ │ +0000a770: 7468 6520 706f 7373 6962 696c 6974 6965 the possibilitie │ │ │ │ +0000a780: 7320 6973 2067 6976 656e 2069 6e0a 7468 s is given in.th │ │ │ │ +0000a790: 6520 666f 6c6c 6f77 696e 6720 7461 626c e following tabl │ │ │ │ +0000a7a0: 652e 0a4c 6566 7420 2020 2020 2020 204f e..Left O │ │ │ │ +0000a7b0: 7020 2020 2020 2020 5269 6768 7420 2020 p Right │ │ │ │ +0000a7c0: 2020 2020 5265 7375 6c74 2020 2020 2020 Result │ │ │ │ +0000a7d0: 4465 7363 7269 7074 696f 6e0a 2d2d 2d2d Description.---- │ │ │ │ +0000a7e0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ 0000a7f0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ 0000a800: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ 0000a810: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ 0000a820: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ 0000a830: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ 0000a840: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ -0000a850: 2d2d 2d2d 2d2d 2d2d 2d2d 0a73 6361 6c61 ----------.scala │ │ │ │ -0000a860: 7220 2020 2020 20e2 8098 2be2 8099 2020 r ...+... │ │ │ │ -0000a870: 2020 2020 7363 616c 6172 2020 2020 2020 scalar │ │ │ │ -0000a880: 7363 616c 6172 2020 2020 2020 5363 616c scalar Scal │ │ │ │ -0000a890: 6172 2073 756d 2e0a 7665 6374 6f72 2020 ar sum..vector │ │ │ │ -0000a8a0: 2020 2020 e280 982b e280 9920 2020 2020 ...+... │ │ │ │ -0000a8b0: 2076 6563 746f 7220 2020 2020 2076 6563 vector vec │ │ │ │ -0000a8c0: 746f 7220 2020 2020 2056 6563 746f 7220 tor Vector │ │ │ │ -0000a8d0: 7375 6d2e 0a70 6f69 6e74 2020 2020 2020 sum..point │ │ │ │ -0000a8e0: 20e2 8098 2be2 8099 2020 2020 2020 7665 ...+... ve │ │ │ │ -0000a8f0: 6374 6f72 2020 2020 2020 706f 696e 7420 ctor point │ │ │ │ -0000a900: 2020 2020 2020 506f 696e 742d 7665 6374 Point-vect │ │ │ │ -0000a910: 6f72 2061 6666 696e 6520 7375 6d2e 0a76 or affine sum..v │ │ │ │ -0000a920: 6563 746f 7220 2020 2020 20e2 8098 2be2 ector ...+. │ │ │ │ -0000a930: 8099 2020 2020 2020 706f 696e 7420 2020 .. point │ │ │ │ -0000a940: 2020 2020 2220 2020 2020 2020 2020 2020 " │ │ │ │ -0000a950: 220a 7363 616c 6172 2020 2020 2020 e280 ".scalar .. │ │ │ │ -0000a960: 982d e280 9920 2020 2020 2073 6361 6c61 .-... scala │ │ │ │ -0000a970: 7220 2020 2020 2073 6361 6c61 7220 2020 r scalar │ │ │ │ -0000a980: 2020 2053 6361 6c61 7220 6469 6666 6572 Scalar differ │ │ │ │ -0000a990: 656e 6365 2e0a 7665 6374 6f72 2020 2020 ence..vector │ │ │ │ -0000a9a0: 2020 e280 982d e280 9920 2020 2020 2076 ...-... v │ │ │ │ -0000a9b0: 6563 746f 7220 2020 2020 2076 6563 746f ector vecto │ │ │ │ -0000a9c0: 7220 2020 2020 2056 6563 746f 7220 6469 r Vector di │ │ │ │ -0000a9d0: 6666 6572 656e 6365 2e0a 706f 696e 7420 fference..point │ │ │ │ -0000a9e0: 2020 2020 2020 e280 982d e280 9920 2020 ...-... │ │ │ │ -0000a9f0: 2020 2070 6f69 6e74 2020 2020 2020 2076 point v │ │ │ │ -0000aa00: 6563 746f 7220 2020 2020 2050 6f69 6e74 ector Point │ │ │ │ -0000aa10: 2d70 6f69 6e74 2061 6666 696e 6520 6469 -point affine di │ │ │ │ -0000aa20: 6666 6572 656e 6365 2e0a 706f 696e 7420 fference..point │ │ │ │ -0000aa30: 2020 2020 2020 e280 982d e280 9920 2020 ...-... │ │ │ │ -0000aa40: 2020 2076 6563 746f 7220 2020 2020 2070 vector p │ │ │ │ -0000aa50: 6f69 6e74 2020 2020 2020 2050 6f69 6e74 oint Point │ │ │ │ -0000aa60: 2d76 6563 746f 7220 6166 6669 6e65 2064 -vector affine d │ │ │ │ -0000aa70: 6966 6665 7265 6e63 652e 0a73 6361 6c61 ifference..scala │ │ │ │ -0000aa80: 7220 2020 2020 20e2 8098 2ae2 8099 206f r ...*... o │ │ │ │ -0000aa90: 7220 2020 7363 616c 6172 2020 2020 2020 r scalar │ │ │ │ -0000aaa0: 7363 616c 6172 2020 2020 2020 5363 616c scalar Scal │ │ │ │ -0000aab0: 6172 2070 726f 6475 6374 2e0a 2020 2020 ar product.. │ │ │ │ -0000aac0: 2020 2020 2020 2020 e280 982e e280 990a ........ │ │ │ │ -0000aad0: 7363 616c 6172 2020 2020 2020 e280 982a scalar ...* │ │ │ │ -0000aae0: e280 9920 6f72 2020 2076 6563 746f 7220 ... or vector │ │ │ │ -0000aaf0: 2020 2020 2076 6563 746f 7220 2020 2020 vector │ │ │ │ -0000ab00: 2053 6361 6c61 722d 7665 6374 6f72 2070 Scalar-vector p │ │ │ │ -0000ab10: 726f 6475 6374 2e0a 2020 2020 2020 2020 roduct.. │ │ │ │ -0000ab20: 2020 2020 e280 982e e280 990a 7665 6374 ........vect │ │ │ │ -0000ab30: 6f72 2020 2020 2020 e280 982a e280 9920 or ...*... │ │ │ │ -0000ab40: 6f72 2020 2073 6361 6c61 7220 2020 2020 or scalar │ │ │ │ -0000ab50: 2022 2020 2020 2020 2020 2020 2022 0a20 " ". │ │ │ │ -0000ab60: 2020 2020 2020 2020 2020 20e2 8098 2ee2 ..... │ │ │ │ -0000ab70: 8099 0a76 6563 746f 7220 2020 2020 20e2 ...vector . │ │ │ │ -0000ab80: 8098 2ae2 8099 2020 2020 2020 7665 6374 ..*... vect │ │ │ │ -0000ab90: 6f72 2020 2020 2020 7665 6374 6f72 2020 or vector │ │ │ │ -0000aba0: 2020 2020 5665 6374 6f72 2063 726f 7373 Vector cross │ │ │ │ -0000abb0: 2d70 726f 6475 6374 2e0a 7665 6374 6f72 -product..vector │ │ │ │ -0000abc0: 2020 2020 2020 e280 982e e280 9920 2020 ....... │ │ │ │ -0000abd0: 2020 2076 6563 746f 7220 2020 2020 2073 vector s │ │ │ │ -0000abe0: 6361 6c61 7220 2020 2020 2056 6563 746f calar Vecto │ │ │ │ -0000abf0: 7220 646f 7420 7072 6f64 7563 742e 0a73 r dot product..s │ │ │ │ -0000ac00: 6361 6c61 7220 2020 2020 20e2 8098 5ee2 calar ...^. │ │ │ │ -0000ac10: 8099 2020 2020 2020 7363 616c 6172 2020 .. scalar │ │ │ │ -0000ac20: 2020 2020 7363 616c 6172 2020 2020 2020 scalar │ │ │ │ -0000ac30: 5261 6973 6520 7363 616c 6172 2074 6f20 Raise scalar to │ │ │ │ -0000ac40: 7363 616c 6172 2070 6f77 6572 2e0a 7472 scalar power..tr │ │ │ │ -0000ac50: 616e 7366 6f72 6d20 2020 e280 985e e280 ansform ...^.. │ │ │ │ -0000ac60: 9920 2020 2020 2069 6e74 6567 6572 2020 . integer │ │ │ │ -0000ac70: 2020 2074 7261 6e73 666f 726d 2020 2052 transform R │ │ │ │ -0000ac80: 6169 7365 2074 7261 6e73 666f 726d 2074 aise transform t │ │ │ │ -0000ac90: 6f20 696e 7465 6765 7220 706f 7765 722e o integer power. │ │ │ │ -0000aca0: 0a74 7261 6e73 666f 726d 2020 20e2 8098 .transform ... │ │ │ │ -0000acb0: 2ae2 8099 206f 7220 2020 706f 696e 7420 *... or point │ │ │ │ -0000acc0: 2020 2020 2020 706f 696e 7420 2020 2020 point │ │ │ │ -0000acd0: 2020 4166 6669 6e65 2070 6f69 6e74 2074 Affine point t │ │ │ │ -0000ace0: 7261 6e73 666f 726d 2028 7269 6768 742d ransform (right- │ │ │ │ -0000acf0: 746f 2d6c 6566 7429 2e0a 2020 2020 2020 to-left).. │ │ │ │ -0000ad00: 2020 2020 2020 e280 982e e280 990a 7472 ........tr │ │ │ │ -0000ad10: 616e 7366 6f72 6d20 2020 e280 982a e280 ansform ...*.. │ │ │ │ -0000ad20: 9920 6f72 2020 2076 6563 746f 7220 2020 . or vector │ │ │ │ -0000ad30: 2020 2076 6563 746f 7220 2020 2020 2041 vector A │ │ │ │ -0000ad40: 6666 696e 6520 7665 6374 6f72 2074 7261 ffine vector tra │ │ │ │ -0000ad50: 6e73 666f 726d 2028 7269 6768 742d 746f nsform (right-to │ │ │ │ -0000ad60: 2d6c 6566 7429 2e0a 2020 2020 2020 2020 -left).. │ │ │ │ -0000ad70: 2020 2020 e280 982e e280 990a 7472 616e ........tran │ │ │ │ -0000ad80: 7366 6f72 6d20 2020 e280 982a e280 9920 sform ...*... │ │ │ │ -0000ad90: 6f72 2020 2074 7261 6e73 666f 726d 2020 or transform │ │ │ │ -0000ada0: 2074 7261 6e73 666f 726d 2020 2054 7261 transform Tra │ │ │ │ -0000adb0: 6e73 666f 726d 2063 6f6d 706f 7369 7469 nsform compositi │ │ │ │ -0000adc0: 6f6e 2028 7269 6768 742d 746f 2d6c 6566 on (right-to-lef │ │ │ │ -0000add0: 7429 2e0a 2020 2020 2020 2020 2020 2020 t).. │ │ │ │ -0000ade0: e280 982e e280 990a 706f 696e 7420 2020 ........point │ │ │ │ -0000adf0: 2020 2020 e280 9874 6865 6ee2 8099 2020 ...then... │ │ │ │ -0000ae00: 2074 7261 6e73 666f 726d 2020 2070 6f69 transform poi │ │ │ │ -0000ae10: 6e74 2020 2020 2020 2041 6666 696e 6520 nt Affine │ │ │ │ -0000ae20: 706f 696e 7420 7472 616e 7366 6f72 6d20 point transform │ │ │ │ -0000ae30: 286c 6566 742d 746f 2d72 6967 6874 292e (left-to-right). │ │ │ │ -0000ae40: 0a76 6563 746f 7220 2020 2020 20e2 8098 .vector ... │ │ │ │ -0000ae50: 7468 656e e280 9920 2020 7472 616e 7366 then... transf │ │ │ │ -0000ae60: 6f72 6d20 2020 7665 6374 6f72 2020 2020 orm vector │ │ │ │ -0000ae70: 2020 4166 6669 6e65 2076 6563 746f 7220 Affine vector │ │ │ │ -0000ae80: 7472 616e 7366 6f72 6d20 286c 6566 742d transform (left- │ │ │ │ -0000ae90: 746f 2d72 6967 6874 292e 0a74 7261 6e73 to-right)..trans │ │ │ │ -0000aea0: 666f 726d 2020 20e2 8098 7468 656e e280 form ...then.. │ │ │ │ -0000aeb0: 9920 2020 7472 616e 7366 6f72 6d20 2020 . transform │ │ │ │ -0000aec0: 7472 616e 7366 6f72 6d20 2020 5472 616e transform Tran │ │ │ │ -0000aed0: 7366 6f72 6d20 636f 6d70 6f73 6974 696f sform compositio │ │ │ │ -0000aee0: 6e20 286c 6566 742d 746f 2d72 6967 6874 n (left-to-right │ │ │ │ -0000aef0: 292e 0a73 6361 6c61 7220 2020 2020 20e2 )..scalar . │ │ │ │ -0000af00: 8098 2fe2 8099 2020 2020 2020 7363 616c ../... scal │ │ │ │ -0000af10: 6172 2020 2020 2020 7363 616c 6172 2020 ar scalar │ │ │ │ -0000af20: 2020 2020 5363 616c 6172 2064 6976 6973 Scalar divis │ │ │ │ -0000af30: 696f 6e2e 0a76 6563 746f 7220 2020 2020 ion..vector │ │ │ │ -0000af40: 20e2 8098 2fe2 8099 2020 2020 2020 7363 .../... sc │ │ │ │ -0000af50: 616c 6172 2020 2020 2020 7665 6374 6f72 alar vector │ │ │ │ -0000af60: 2020 2020 2020 5665 6374 6f72 2063 6f6d Vector com │ │ │ │ -0000af70: 706f 6e65 6e74 2d77 6973 6520 6469 7669 ponent-wise divi │ │ │ │ -0000af80: 7369 6f6e 2062 7920 7363 616c 6172 2e0a sion by scalar.. │ │ │ │ -0000af90: 706f 696e 7420 2020 2020 2020 e280 9827 point ...' │ │ │ │ -0000afa0: e280 9920 2020 2020 20e2 8098 78e2 8099 ... ...x... │ │ │ │ -0000afb0: 2c20 e280 9879 e280 992c 2020 2073 6361 , ...y..., sca │ │ │ │ -0000afc0: 6c61 7220 2020 2020 2050 6f69 6e74 2063 lar Point c │ │ │ │ -0000afd0: 6f6d 706f 6e65 6e74 2065 7874 7261 6374 omponent extract │ │ │ │ -0000afe0: 696f 6e2e 0a20 2020 2020 2020 2020 2020 ion.. │ │ │ │ -0000aff0: 2020 2020 2020 2020 2020 6f72 20e2 8098 or ... │ │ │ │ -0000b000: 7ae2 8099 0a76 6563 746f 7220 2020 2020 z....vector │ │ │ │ -0000b010: 20e2 8098 27e2 8099 2020 2020 2020 e280 ...'... .. │ │ │ │ -0000b020: 9878 e280 992c 20e2 8098 79e2 8099 2c20 .x..., ...y..., │ │ │ │ -0000b030: 2020 7363 616c 6172 2020 2020 2020 5665 scalar Ve │ │ │ │ -0000b040: 6374 6f72 2063 6f6d 706f 6e65 6e74 2065 ctor component e │ │ │ │ -0000b050: 7874 7261 6374 696f 6e2e 0a20 2020 2020 xtraction.. │ │ │ │ -0000b060: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0000b070: 6f72 20e2 8098 7ae2 8099 0a0a 4f70 6572 or ...z.....Oper │ │ │ │ -0000b080: 6174 6f72 2070 7265 6365 6465 6e63 6520 ator precedence │ │ │ │ -0000b090: 6973 2073 686f 776e 2069 6e20 7468 6973 is shown in this │ │ │ │ -0000b0a0: 2074 6162 6c65 2e0a 4f70 2020 2020 2020 table..Op │ │ │ │ -0000b0b0: 2050 7265 6365 6465 6e63 650a 2d2d 2d2d Precedence.---- │ │ │ │ +0000a850: 2d2d 0a73 6361 6c61 7220 2020 2020 20e2 --.scalar . │ │ │ │ +0000a860: 8098 2be2 8099 2020 2020 2020 7363 616c ..+... scal │ │ │ │ +0000a870: 6172 2020 2020 2020 7363 616c 6172 2020 ar scalar │ │ │ │ +0000a880: 2020 2020 5363 616c 6172 2073 756d 2e0a Scalar sum.. │ │ │ │ +0000a890: 7665 6374 6f72 2020 2020 2020 e280 982b vector ...+ │ │ │ │ +0000a8a0: e280 9920 2020 2020 2076 6563 746f 7220 ... vector │ │ │ │ +0000a8b0: 2020 2020 2076 6563 746f 7220 2020 2020 vector │ │ │ │ +0000a8c0: 2056 6563 746f 7220 7375 6d2e 0a70 6f69 Vector sum..poi │ │ │ │ +0000a8d0: 6e74 2020 2020 2020 20e2 8098 2be2 8099 nt ...+... │ │ │ │ +0000a8e0: 2020 2020 2020 7665 6374 6f72 2020 2020 vector │ │ │ │ +0000a8f0: 2020 706f 696e 7420 2020 2020 2020 506f point Po │ │ │ │ +0000a900: 696e 742d 7665 6374 6f72 2061 6666 696e int-vector affin │ │ │ │ +0000a910: 6520 7375 6d2e 0a76 6563 746f 7220 2020 e sum..vector │ │ │ │ +0000a920: 2020 20e2 8098 2be2 8099 2020 2020 2020 ...+... │ │ │ │ +0000a930: 706f 696e 7420 2020 2020 2020 2220 2020 point " │ │ │ │ +0000a940: 2020 2020 2020 2020 220a 7363 616c 6172 ".scalar │ │ │ │ +0000a950: 2020 2020 2020 e280 982d e280 9920 2020 ...-... │ │ │ │ +0000a960: 2020 2073 6361 6c61 7220 2020 2020 2073 scalar s │ │ │ │ +0000a970: 6361 6c61 7220 2020 2020 2053 6361 6c61 calar Scala │ │ │ │ +0000a980: 7220 6469 6666 6572 656e 6365 2e0a 7665 r difference..ve │ │ │ │ +0000a990: 6374 6f72 2020 2020 2020 e280 982d e280 ctor ...-.. │ │ │ │ +0000a9a0: 9920 2020 2020 2076 6563 746f 7220 2020 . vector │ │ │ │ +0000a9b0: 2020 2076 6563 746f 7220 2020 2020 2056 vector V │ │ │ │ +0000a9c0: 6563 746f 7220 6469 6666 6572 656e 6365 ector difference │ │ │ │ +0000a9d0: 2e0a 706f 696e 7420 2020 2020 2020 e280 ..point .. │ │ │ │ +0000a9e0: 982d e280 9920 2020 2020 2070 6f69 6e74 .-... point │ │ │ │ +0000a9f0: 2020 2020 2020 2076 6563 746f 7220 2020 vector │ │ │ │ +0000aa00: 2020 2050 6f69 6e74 2d70 6f69 6e74 2061 Point-point a │ │ │ │ +0000aa10: 6666 696e 6520 6469 6666 6572 656e 6365 ffine difference │ │ │ │ +0000aa20: 2e0a 706f 696e 7420 2020 2020 2020 e280 ..point .. │ │ │ │ +0000aa30: 982d e280 9920 2020 2020 2076 6563 746f .-... vecto │ │ │ │ +0000aa40: 7220 2020 2020 2070 6f69 6e74 2020 2020 r point │ │ │ │ +0000aa50: 2020 2050 6f69 6e74 2d76 6563 746f 7220 Point-vector │ │ │ │ +0000aa60: 6166 6669 6e65 2064 6966 6665 7265 6e63 affine differenc │ │ │ │ +0000aa70: 652e 0a73 6361 6c61 7220 2020 2020 20e2 e..scalar . │ │ │ │ +0000aa80: 8098 2ae2 8099 206f 7220 2020 7363 616c ..*... or scal │ │ │ │ +0000aa90: 6172 2020 2020 2020 7363 616c 6172 2020 ar scalar │ │ │ │ +0000aaa0: 2020 2020 5363 616c 6172 2070 726f 6475 Scalar produ │ │ │ │ +0000aab0: 6374 2e0a 2020 2020 2020 2020 2020 2020 ct.. │ │ │ │ +0000aac0: e280 982e e280 990a 7363 616c 6172 2020 ........scalar │ │ │ │ +0000aad0: 2020 2020 e280 982a e280 9920 6f72 2020 ...*... or │ │ │ │ +0000aae0: 2076 6563 746f 7220 2020 2020 2076 6563 vector vec │ │ │ │ +0000aaf0: 746f 7220 2020 2020 2053 6361 6c61 722d tor Scalar- │ │ │ │ +0000ab00: 7665 6374 6f72 2070 726f 6475 6374 2e0a vector product.. │ │ │ │ +0000ab10: 2020 2020 2020 2020 2020 2020 e280 982e .... │ │ │ │ +0000ab20: e280 990a 7665 6374 6f72 2020 2020 2020 ....vector │ │ │ │ +0000ab30: e280 982a e280 9920 6f72 2020 2073 6361 ...*... or sca │ │ │ │ +0000ab40: 6c61 7220 2020 2020 2022 2020 2020 2020 lar " │ │ │ │ +0000ab50: 2020 2020 2022 0a20 2020 2020 2020 2020 ". │ │ │ │ +0000ab60: 2020 20e2 8098 2ee2 8099 0a76 6563 746f ........vecto │ │ │ │ +0000ab70: 7220 2020 2020 20e2 8098 2ae2 8099 2020 r ...*... │ │ │ │ +0000ab80: 2020 2020 7665 6374 6f72 2020 2020 2020 vector │ │ │ │ +0000ab90: 7665 6374 6f72 2020 2020 2020 5665 6374 vector Vect │ │ │ │ +0000aba0: 6f72 2063 726f 7373 2d70 726f 6475 6374 or cross-product │ │ │ │ +0000abb0: 2e0a 7665 6374 6f72 2020 2020 2020 e280 ..vector .. │ │ │ │ +0000abc0: 982e e280 9920 2020 2020 2076 6563 746f ..... vecto │ │ │ │ +0000abd0: 7220 2020 2020 2073 6361 6c61 7220 2020 r scalar │ │ │ │ +0000abe0: 2020 2056 6563 746f 7220 646f 7420 7072 Vector dot pr │ │ │ │ +0000abf0: 6f64 7563 742e 0a73 6361 6c61 7220 2020 oduct..scalar │ │ │ │ +0000ac00: 2020 20e2 8098 5ee2 8099 2020 2020 2020 ...^... │ │ │ │ +0000ac10: 7363 616c 6172 2020 2020 2020 7363 616c scalar scal │ │ │ │ +0000ac20: 6172 2020 2020 2020 5261 6973 6520 7363 ar Raise sc │ │ │ │ +0000ac30: 616c 6172 2074 6f20 7363 616c 6172 2070 alar to scalar p │ │ │ │ +0000ac40: 6f77 6572 2e0a 7472 616e 7366 6f72 6d20 ower..transform │ │ │ │ +0000ac50: 2020 e280 985e e280 9920 2020 2020 2069 ...^... i │ │ │ │ +0000ac60: 6e74 6567 6572 2020 2020 2074 7261 6e73 nteger trans │ │ │ │ +0000ac70: 666f 726d 2020 2052 6169 7365 2074 7261 form Raise tra │ │ │ │ +0000ac80: 6e73 666f 726d 2074 6f20 696e 7465 6765 nsform to intege │ │ │ │ +0000ac90: 7220 706f 7765 722e 0a74 7261 6e73 666f r power..transfo │ │ │ │ +0000aca0: 726d 2020 20e2 8098 2ae2 8099 206f 7220 rm ...*... or │ │ │ │ +0000acb0: 2020 706f 696e 7420 2020 2020 2020 706f point po │ │ │ │ +0000acc0: 696e 7420 2020 2020 2020 4166 6669 6e65 int Affine │ │ │ │ +0000acd0: 2070 6f69 6e74 2074 7261 6e73 666f 726d point transform │ │ │ │ +0000ace0: 2028 7269 6768 742d 746f 2d6c 6566 7429 (right-to-left) │ │ │ │ +0000acf0: 2e0a 2020 2020 2020 2020 2020 2020 e280 .. .. │ │ │ │ +0000ad00: 982e e280 990a 7472 616e 7366 6f72 6d20 ......transform │ │ │ │ +0000ad10: 2020 e280 982a e280 9920 6f72 2020 2076 ...*... or v │ │ │ │ +0000ad20: 6563 746f 7220 2020 2020 2076 6563 746f ector vecto │ │ │ │ +0000ad30: 7220 2020 2020 2041 6666 696e 6520 7665 r Affine ve │ │ │ │ +0000ad40: 6374 6f72 2074 7261 6e73 666f 726d 2028 ctor transform ( │ │ │ │ +0000ad50: 7269 6768 742d 746f 2d6c 6566 7429 2e0a right-to-left).. │ │ │ │ +0000ad60: 2020 2020 2020 2020 2020 2020 e280 982e .... │ │ │ │ +0000ad70: e280 990a 7472 616e 7366 6f72 6d20 2020 ....transform │ │ │ │ +0000ad80: e280 982a e280 9920 6f72 2020 2074 7261 ...*... or tra │ │ │ │ +0000ad90: 6e73 666f 726d 2020 2074 7261 6e73 666f nsform transfo │ │ │ │ +0000ada0: 726d 2020 2054 7261 6e73 666f 726d 2063 rm Transform c │ │ │ │ +0000adb0: 6f6d 706f 7369 7469 6f6e 2028 7269 6768 omposition (righ │ │ │ │ +0000adc0: 742d 746f 2d6c 6566 7429 2e0a 2020 2020 t-to-left).. │ │ │ │ +0000add0: 2020 2020 2020 2020 e280 982e e280 990a ........ │ │ │ │ +0000ade0: 706f 696e 7420 2020 2020 2020 e280 9874 point ...t │ │ │ │ +0000adf0: 6865 6ee2 8099 2020 2074 7261 6e73 666f hen... transfo │ │ │ │ +0000ae00: 726d 2020 2070 6f69 6e74 2020 2020 2020 rm point │ │ │ │ +0000ae10: 2041 6666 696e 6520 706f 696e 7420 7472 Affine point tr │ │ │ │ +0000ae20: 616e 7366 6f72 6d20 286c 6566 742d 746f ansform (left-to │ │ │ │ +0000ae30: 2d72 6967 6874 292e 0a76 6563 746f 7220 -right)..vector │ │ │ │ +0000ae40: 2020 2020 20e2 8098 7468 656e e280 9920 ...then... │ │ │ │ +0000ae50: 2020 7472 616e 7366 6f72 6d20 2020 7665 transform ve │ │ │ │ +0000ae60: 6374 6f72 2020 2020 2020 4166 6669 6e65 ctor Affine │ │ │ │ +0000ae70: 2076 6563 746f 7220 7472 616e 7366 6f72 vector transfor │ │ │ │ +0000ae80: 6d20 286c 6566 742d 746f 2d72 6967 6874 m (left-to-right │ │ │ │ +0000ae90: 292e 0a74 7261 6e73 666f 726d 2020 20e2 )..transform . │ │ │ │ +0000aea0: 8098 7468 656e e280 9920 2020 7472 616e ..then... tran │ │ │ │ +0000aeb0: 7366 6f72 6d20 2020 7472 616e 7366 6f72 sform transfor │ │ │ │ +0000aec0: 6d20 2020 5472 616e 7366 6f72 6d20 636f m Transform co │ │ │ │ +0000aed0: 6d70 6f73 6974 696f 6e20 286c 6566 742d mposition (left- │ │ │ │ +0000aee0: 746f 2d72 6967 6874 292e 0a73 6361 6c61 to-right)..scala │ │ │ │ +0000aef0: 7220 2020 2020 20e2 8098 2fe2 8099 2020 r .../... │ │ │ │ +0000af00: 2020 2020 7363 616c 6172 2020 2020 2020 scalar │ │ │ │ +0000af10: 7363 616c 6172 2020 2020 2020 5363 616c scalar Scal │ │ │ │ +0000af20: 6172 2064 6976 6973 696f 6e2e 0a76 6563 ar division..vec │ │ │ │ +0000af30: 746f 7220 2020 2020 20e2 8098 2fe2 8099 tor .../... │ │ │ │ +0000af40: 2020 2020 2020 7363 616c 6172 2020 2020 scalar │ │ │ │ +0000af50: 2020 7665 6374 6f72 2020 2020 2020 5665 vector Ve │ │ │ │ +0000af60: 6374 6f72 2063 6f6d 706f 6e65 6e74 2d77 ctor component-w │ │ │ │ +0000af70: 6973 6520 6469 7669 7369 6f6e 2062 7920 ise division by │ │ │ │ +0000af80: 7363 616c 6172 2e0a 706f 696e 7420 2020 scalar..point │ │ │ │ +0000af90: 2020 2020 e280 9827 e280 9920 2020 2020 ...'... │ │ │ │ +0000afa0: 20e2 8098 78e2 8099 2c20 e280 9879 e280 ...x..., ...y.. │ │ │ │ +0000afb0: 992c 2020 2073 6361 6c61 7220 2020 2020 ., scalar │ │ │ │ +0000afc0: 2050 6f69 6e74 2063 6f6d 706f 6e65 6e74 Point component │ │ │ │ +0000afd0: 2065 7874 7261 6374 696f 6e2e 0a20 2020 extraction.. │ │ │ │ +0000afe0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0000aff0: 2020 6f72 20e2 8098 7ae2 8099 0a76 6563 or ...z....vec │ │ │ │ +0000b000: 746f 7220 2020 2020 20e2 8098 27e2 8099 tor ...'... │ │ │ │ +0000b010: 2020 2020 2020 e280 9878 e280 992c 20e2 ...x..., . │ │ │ │ +0000b020: 8098 79e2 8099 2c20 2020 7363 616c 6172 ..y..., scalar │ │ │ │ +0000b030: 2020 2020 2020 5665 6374 6f72 2063 6f6d Vector com │ │ │ │ +0000b040: 706f 6e65 6e74 2065 7874 7261 6374 696f ponent extractio │ │ │ │ +0000b050: 6e2e 0a20 2020 2020 2020 2020 2020 2020 n.. │ │ │ │ +0000b060: 2020 2020 2020 2020 6f72 20e2 8098 7ae2 or ...z. │ │ │ │ +0000b070: 8099 0a0a 4f70 6572 6174 6f72 2070 7265 ....Operator pre │ │ │ │ +0000b080: 6365 6465 6e63 6520 6973 2073 686f 776e cedence is shown │ │ │ │ +0000b090: 2069 6e20 7468 6973 2074 6162 6c65 2e0a in this table.. │ │ │ │ +0000b0a0: 4f70 2020 2020 2020 2050 7265 6365 6465 Op Precede │ │ │ │ +0000b0b0: 6e63 650a 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d nce.------------ │ │ │ │ 0000b0c0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ -0000b0d0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ -0000b0e0: 2d2d 2d2d 2d2d 0ae2 8098 27e2 8099 2020 ------....'... │ │ │ │ -0000b0f0: 2020 2020 6869 6768 6573 7420 286d 6f73 highest (mos │ │ │ │ -0000b100: 7420 7469 6768 746c 7920 6269 6e64 696e t tightly bindin │ │ │ │ -0000b110: 6729 0ae2 8098 5ee2 8099 0ae2 8098 2de2 g)....^.......-. │ │ │ │ -0000b120: 8099 2020 2020 2020 2875 6e61 7279 206e .. (unary n │ │ │ │ -0000b130: 6567 6174 696f 6e29 0ae2 8098 2ae2 8099 egation)....*... │ │ │ │ -0000b140: 0ae2 8098 2ee2 8099 0ae2 8098 2fe2 8099 ............/... │ │ │ │ -0000b150: 0ae2 8098 2be2 8099 0ae2 8098 2de2 8099 ....+.......-... │ │ │ │ -0000b160: 0ae2 8098 7468 656e e280 9920 2020 6c6f ....then... lo │ │ │ │ -0000b170: 7765 7374 2028 6c65 6173 7420 7469 6768 west (least tigh │ │ │ │ -0000b180: 746c 7920 6269 6e64 696e 6729 0a0a 416c tly binding)..Al │ │ │ │ -0000b190: 6c20 6f70 6572 6174 696f 6e73 2061 7265 l operations are │ │ │ │ -0000b1a0: 206c 6566 742d 6173 736f 6369 6174 6976 left-associativ │ │ │ │ -0000b1b0: 6520 6578 6365 7074 2066 6f72 20e2 8098 e except for ... │ │ │ │ -0000b1c0: 5ee2 8099 2e20 2050 6172 656e 7468 6573 ^.... Parenthes │ │ │ │ -0000b1d0: 6573 20e2 8098 2820 29e2 8099 0a61 7265 es ...( )....are │ │ │ │ -0000b1e0: 2075 7365 6420 666f 7220 6772 6f75 7069 used for groupi │ │ │ │ -0000b1f0: 6e67 2074 6f20 6f76 6572 7269 6465 2070 ng to override p │ │ │ │ -0000b200: 7265 6365 6465 6e63 6520 696e 2074 6865 recedence in the │ │ │ │ -0000b210: 2075 7375 616c 2077 6179 2e0a 0a20 2020 usual way... │ │ │ │ -0000b220: 4173 2079 6f75 2063 616e 2073 6565 2c20 As you can see, │ │ │ │ -0000b230: 7468 6520 646f 7420 6f70 6572 6174 6f72 the dot operator │ │ │ │ -0000b240: 20e2 8098 2ee2 8099 2069 7320 7573 7561 ....... is usua │ │ │ │ -0000b250: 6c6c 7920 6120 7379 6e6f 6e79 6d20 666f lly a synonym fo │ │ │ │ -0000b260: 720a 7275 6e2d 6f66 2d74 6865 2d6d 696c r.run-of-the-mil │ │ │ │ -0000b270: 6c20 6d75 6c74 6970 6c69 6361 7469 6f6e l multiplication │ │ │ │ -0000b280: 2c20 e280 982a e280 992e 2020 5468 6520 , ...*.... The │ │ │ │ -0000b290: 6d65 616e 696e 6773 2064 6966 6665 7220 meanings differ │ │ │ │ -0000b2a0: 6f6e 6c79 2066 6f72 0a76 6563 746f 7220 only for.vector │ │ │ │ -0000b2b0: 6f70 6572 616e 6473 2e20 2054 6865 20e2 operands. The . │ │ │ │ -0000b2c0: 8098 7468 656e e280 9920 6f70 6572 6174 ..then... operat │ │ │ │ -0000b2d0: 6f72 206d 6572 656c 7920 7265 7665 7273 or merely revers │ │ │ │ -0000b2e0: 6573 2074 6865 206f 7065 7261 6e64 206f es the operand o │ │ │ │ -0000b2f0: 7264 6572 0a77 6974 6820 7265 7370 6563 rder.with respec │ │ │ │ -0000b300: 7420 746f 206e 6f72 6d61 6c20 6d75 6c74 t to normal mult │ │ │ │ -0000b310: 6970 6c69 6361 7469 6f6e 20e2 8098 2ae2 iplication ...*. │ │ │ │ -0000b320: 8099 2e20 2054 6865 2069 6e74 656e 7420 ... The intent │ │ │ │ -0000b330: 6865 7265 2069 7320 746f 206d 616b 650a here is to make. │ │ │ │ -0000b340: 636f 6d70 6f73 6974 696f 6e73 2072 6561 compositions rea │ │ │ │ -0000b350: 6420 6d6f 7265 206e 6174 7572 616c 6c79 d more naturally │ │ │ │ -0000b360: 2e20 2054 6865 2063 6f64 650a 2020 2020 . The code. │ │ │ │ -0000b370: 2028 312c 322c 3329 2074 6865 6e20 7363 (1,2,3) then sc │ │ │ │ -0000b380: 616c 6528 3229 2074 6865 6e20 726f 7461 ale(2) then rota │ │ │ │ -0000b390: 7465 2833 3029 2074 6865 6e20 7472 616e te(30) then tran │ │ │ │ -0000b3a0: 736c 6174 6528 5b31 2c33 2c30 5d29 0a65 slate([1,3,0]).e │ │ │ │ -0000b3b0: 7870 7265 7373 6573 2061 2073 6572 6965 xpresses a serie │ │ │ │ -0000b3c0: 7320 6f66 2073 7563 6365 7373 6976 6520 s of successive │ │ │ │ -0000b3d0: 6d6f 6469 6669 6361 7469 6f6e 7320 746f modifications to │ │ │ │ -0000b3e0: 2074 6865 2070 6f69 6e74 2c20 7768 6572 the point, wher │ │ │ │ -0000b3f0: 6561 7320 7468 650a 6571 7569 7661 6c65 eas the.equivale │ │ │ │ -0000b400: 6e74 2066 6f72 6d0a 2020 2020 2074 7261 nt form. tra │ │ │ │ -0000b410: 6e73 6c61 7465 285b 312c 332c 305d 2920 nslate([1,3,0]) │ │ │ │ -0000b420: 2a20 726f 7461 7465 2833 3029 202a 2073 * rotate(30) * s │ │ │ │ -0000b430: 6361 6c65 2832 2920 2a20 2831 2c32 2c33 cale(2) * (1,2,3 │ │ │ │ -0000b440: 290a 7769 6c6c 2062 6520 696e 7475 6974 ).will be intuit │ │ │ │ -0000b450: 6976 6520 6f6e 6c79 2074 6f20 6d61 7468 ive only to math │ │ │ │ -0000b460: 656d 6174 6963 6961 6e73 2028 616e 6420 ematicians (and │ │ │ │ -0000b470: 7065 7268 6170 7320 4172 6162 6963 206c perhaps Arabic l │ │ │ │ -0000b480: 616e 6775 6167 650a 7265 6164 6572 7329 anguage.readers) │ │ │ │ -0000b490: 2e0a 0a1f 0a46 696c 653a 2073 6b65 7463 .....File: sketc │ │ │ │ -0000b4a0: 682e 696e 666f 2c20 204e 6f64 653a 2055 h.info, Node: U │ │ │ │ -0000b4b0: 6e61 7279 2066 6f72 6d73 2c20 2050 7265 nary forms, Pre │ │ │ │ -0000b4c0: 763a 2054 776f 2d6f 7065 7261 6e64 2028 v: Two-operand ( │ │ │ │ -0000b4d0: 6269 6e61 7279 2920 666f 726d 732c 2020 binary) forms, │ │ │ │ -0000b4e0: 5570 3a20 4172 6974 686d 6574 6963 0a0a Up: Arithmetic.. │ │ │ │ -0000b4f0: 332e 312e 342e 3220 556e 6172 7920 666f 3.1.4.2 Unary fo │ │ │ │ -0000b500: 726d 730a 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e rms............. │ │ │ │ -0000b510: 2e2e 2e2e 2e2e 2e0a 0a55 6e61 7279 206f .........Unary o │ │ │ │ -0000b520: 7220 6f6e 652d 6f70 6572 616e 6420 666f r one-operand fo │ │ │ │ -0000b530: 726d 7320 6172 6520 7375 6d6d 6172 697a rms are summariz │ │ │ │ -0000b540: 6564 2069 6e20 7468 6520 666f 6c6c 6f77 ed in the follow │ │ │ │ -0000b550: 696e 6720 7461 626c 652c 2077 6865 7265 ing table, where │ │ │ │ -0000b560: 0ae2 8098 58e2 8099 2073 7461 6e64 7320 ....X... stands │ │ │ │ -0000b570: 666f 7220 7468 6520 6f70 6572 616e 642e for the operand. │ │ │ │ -0000b580: 0a4f 7020 2020 2020 2020 2020 2020 2020 .Op │ │ │ │ -0000b590: 4f70 6572 616e 6420 2020 2020 5265 7375 Operand Resu │ │ │ │ -0000b5a0: 6c74 2020 2020 2020 4465 7363 7269 7074 lt Descript │ │ │ │ -0000b5b0: 696f 6e0a 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ion.------------ │ │ │ │ +0000b0d0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 0ae2 --------------.. │ │ │ │ +0000b0e0: 8098 27e2 8099 2020 2020 2020 6869 6768 ..'... high │ │ │ │ +0000b0f0: 6573 7420 286d 6f73 7420 7469 6768 746c est (most tightl │ │ │ │ +0000b100: 7920 6269 6e64 696e 6729 0ae2 8098 5ee2 y binding)....^. │ │ │ │ +0000b110: 8099 0ae2 8098 2de2 8099 2020 2020 2020 ......-... │ │ │ │ +0000b120: 2875 6e61 7279 206e 6567 6174 696f 6e29 (unary negation) │ │ │ │ +0000b130: 0ae2 8098 2ae2 8099 0ae2 8098 2ee2 8099 ....*........... │ │ │ │ +0000b140: 0ae2 8098 2fe2 8099 0ae2 8098 2be2 8099 ..../.......+... │ │ │ │ +0000b150: 0ae2 8098 2de2 8099 0ae2 8098 7468 656e ....-.......then │ │ │ │ +0000b160: e280 9920 2020 6c6f 7765 7374 2028 6c65 ... lowest (le │ │ │ │ +0000b170: 6173 7420 7469 6768 746c 7920 6269 6e64 ast tightly bind │ │ │ │ +0000b180: 696e 6729 0a0a 416c 6c20 6f70 6572 6174 ing)..All operat │ │ │ │ +0000b190: 696f 6e73 2061 7265 206c 6566 742d 6173 ions are left-as │ │ │ │ +0000b1a0: 736f 6369 6174 6976 6520 6578 6365 7074 sociative except │ │ │ │ +0000b1b0: 2066 6f72 20e2 8098 5ee2 8099 2e20 2050 for ...^.... P │ │ │ │ +0000b1c0: 6172 656e 7468 6573 6573 20e2 8098 2820 arentheses ...( │ │ │ │ +0000b1d0: 29e2 8099 0a61 7265 2075 7365 6420 666f )....are used fo │ │ │ │ +0000b1e0: 7220 6772 6f75 7069 6e67 2074 6f20 6f76 r grouping to ov │ │ │ │ +0000b1f0: 6572 7269 6465 2070 7265 6365 6465 6e63 erride precedenc │ │ │ │ +0000b200: 6520 696e 2074 6865 2075 7375 616c 2077 e in the usual w │ │ │ │ +0000b210: 6179 2e0a 0a20 2020 4173 2079 6f75 2063 ay... As you c │ │ │ │ +0000b220: 616e 2073 6565 2c20 7468 6520 646f 7420 an see, the dot │ │ │ │ +0000b230: 6f70 6572 6174 6f72 20e2 8098 2ee2 8099 operator ....... │ │ │ │ +0000b240: 2069 7320 7573 7561 6c6c 7920 6120 7379 is usually a sy │ │ │ │ +0000b250: 6e6f 6e79 6d20 666f 720a 7275 6e2d 6f66 nonym for.run-of │ │ │ │ +0000b260: 2d74 6865 2d6d 696c 6c20 6d75 6c74 6970 -the-mill multip │ │ │ │ +0000b270: 6c69 6361 7469 6f6e 2c20 e280 982a e280 lication, ...*.. │ │ │ │ +0000b280: 992e 2020 5468 6520 6d65 616e 696e 6773 .. The meanings │ │ │ │ +0000b290: 2064 6966 6665 7220 6f6e 6c79 2066 6f72 differ only for │ │ │ │ +0000b2a0: 0a76 6563 746f 7220 6f70 6572 616e 6473 .vector operands │ │ │ │ +0000b2b0: 2e20 2054 6865 20e2 8098 7468 656e e280 . The ...then.. │ │ │ │ +0000b2c0: 9920 6f70 6572 6174 6f72 206d 6572 656c . operator merel │ │ │ │ +0000b2d0: 7920 7265 7665 7273 6573 2074 6865 206f y reverses the o │ │ │ │ +0000b2e0: 7065 7261 6e64 206f 7264 6572 0a77 6974 perand order.wit │ │ │ │ +0000b2f0: 6820 7265 7370 6563 7420 746f 206e 6f72 h respect to nor │ │ │ │ +0000b300: 6d61 6c20 6d75 6c74 6970 6c69 6361 7469 mal multiplicati │ │ │ │ +0000b310: 6f6e 20e2 8098 2ae2 8099 2e20 2054 6865 on ...*.... The │ │ │ │ +0000b320: 2069 6e74 656e 7420 6865 7265 2069 7320 intent here is │ │ │ │ +0000b330: 746f 206d 616b 650a 636f 6d70 6f73 6974 to make.composit │ │ │ │ +0000b340: 696f 6e73 2072 6561 6420 6d6f 7265 206e ions read more n │ │ │ │ +0000b350: 6174 7572 616c 6c79 2e20 2054 6865 2063 aturally. The c │ │ │ │ +0000b360: 6f64 650a 2020 2020 2028 312c 322c 3329 ode. (1,2,3) │ │ │ │ +0000b370: 2074 6865 6e20 7363 616c 6528 3229 2074 then scale(2) t │ │ │ │ +0000b380: 6865 6e20 726f 7461 7465 2833 3029 2074 hen rotate(30) t │ │ │ │ +0000b390: 6865 6e20 7472 616e 736c 6174 6528 5b31 hen translate([1 │ │ │ │ +0000b3a0: 2c33 2c30 5d29 0a65 7870 7265 7373 6573 ,3,0]).expresses │ │ │ │ +0000b3b0: 2061 2073 6572 6965 7320 6f66 2073 7563 a series of suc │ │ │ │ +0000b3c0: 6365 7373 6976 6520 6d6f 6469 6669 6361 cessive modifica │ │ │ │ +0000b3d0: 7469 6f6e 7320 746f 2074 6865 2070 6f69 tions to the poi │ │ │ │ +0000b3e0: 6e74 2c20 7768 6572 6561 7320 7468 650a nt, whereas the. │ │ │ │ +0000b3f0: 6571 7569 7661 6c65 6e74 2066 6f72 6d0a equivalent form. │ │ │ │ +0000b400: 2020 2020 2074 7261 6e73 6c61 7465 285b translate([ │ │ │ │ +0000b410: 312c 332c 305d 2920 2a20 726f 7461 7465 1,3,0]) * rotate │ │ │ │ +0000b420: 2833 3029 202a 2073 6361 6c65 2832 2920 (30) * scale(2) │ │ │ │ +0000b430: 2a20 2831 2c32 2c33 290a 7769 6c6c 2062 * (1,2,3).will b │ │ │ │ +0000b440: 6520 696e 7475 6974 6976 6520 6f6e 6c79 e intuitive only │ │ │ │ +0000b450: 2074 6f20 6d61 7468 656d 6174 6963 6961 to mathematicia │ │ │ │ +0000b460: 6e73 2028 616e 6420 7065 7268 6170 7320 ns (and perhaps │ │ │ │ +0000b470: 4172 6162 6963 206c 616e 6775 6167 650a Arabic language. │ │ │ │ +0000b480: 7265 6164 6572 7329 2e0a 0a1f 0a46 696c readers).....Fil │ │ │ │ +0000b490: 653a 2073 6b65 7463 682e 696e 666f 2c20 e: sketch.info, │ │ │ │ +0000b4a0: 204e 6f64 653a 2055 6e61 7279 2066 6f72 Node: Unary for │ │ │ │ +0000b4b0: 6d73 2c20 2050 7265 763a 2054 776f 2d6f ms, Prev: Two-o │ │ │ │ +0000b4c0: 7065 7261 6e64 2028 6269 6e61 7279 2920 perand (binary) │ │ │ │ +0000b4d0: 666f 726d 732c 2020 5570 3a20 4172 6974 forms, Up: Arit │ │ │ │ +0000b4e0: 686d 6574 6963 0a0a 332e 312e 342e 3220 hmetic..3.1.4.2 │ │ │ │ +0000b4f0: 556e 6172 7920 666f 726d 730a 2e2e 2e2e Unary forms..... │ │ │ │ +0000b500: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e0a ................ │ │ │ │ +0000b510: 0a55 6e61 7279 206f 7220 6f6e 652d 6f70 .Unary or one-op │ │ │ │ +0000b520: 6572 616e 6420 666f 726d 7320 6172 6520 erand forms are │ │ │ │ +0000b530: 7375 6d6d 6172 697a 6564 2069 6e20 7468 summarized in th │ │ │ │ +0000b540: 6520 666f 6c6c 6f77 696e 6720 7461 626c e following tabl │ │ │ │ +0000b550: 652c 2077 6865 7265 0ae2 8098 58e2 8099 e, where....X... │ │ │ │ +0000b560: 2073 7461 6e64 7320 666f 7220 7468 6520 stands for the │ │ │ │ +0000b570: 6f70 6572 616e 642e 0a4f 7020 2020 2020 operand..Op │ │ │ │ +0000b580: 2020 2020 2020 2020 4f70 6572 616e 6420 Operand │ │ │ │ +0000b590: 2020 2020 5265 7375 6c74 2020 2020 2020 Result │ │ │ │ +0000b5a0: 4465 7363 7269 7074 696f 6e0a 2d2d 2d2d Description.---- │ │ │ │ +0000b5b0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ 0000b5c0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ 0000b5d0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ 0000b5e0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ 0000b5f0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ -0000b600: 2d2d 2d2d 2d2d 2d2d 0ae2 8098 2d58 e280 --------....-X.. │ │ │ │ -0000b610: 9920 2020 2020 2020 2020 2020 7363 616c . scal │ │ │ │ -0000b620: 6172 2020 2020 2020 7363 616c 6172 2020 ar scalar │ │ │ │ -0000b630: 2020 2020 556e 6172 7920 7363 616c 6172 Unary scalar │ │ │ │ -0000b640: 206e 6567 6174 696f 6e2e 0ae2 8098 2d58 negation.....-X │ │ │ │ -0000b650: e280 9920 2020 2020 2020 2020 2020 7665 ... ve │ │ │ │ -0000b660: 6374 6f72 2020 2020 2020 7665 6374 6f72 ctor vector │ │ │ │ -0000b670: 2020 2020 2020 556e 6172 7920 7665 6374 Unary vect │ │ │ │ -0000b680: 6f72 206e 6567 6174 696f 6e2e 0ae2 8098 or negation..... │ │ │ │ -0000b690: 7c58 7ce2 8099 2020 2020 2020 2020 2020 |X|... │ │ │ │ -0000b6a0: 7665 6374 6f72 2020 2020 2020 7363 616c vector scal │ │ │ │ -0000b6b0: 6172 2020 2020 2020 5665 6374 6f72 206c ar Vector l │ │ │ │ -0000b6c0: 656e 6774 682e 0ae2 8098 756e 6974 2858 ength.....unit(X │ │ │ │ -0000b6d0: 29e2 8099 2020 2020 2020 7665 6374 6f72 )... vector │ │ │ │ -0000b6e0: 2020 2020 2020 7665 6374 6f72 2020 2020 vector │ │ │ │ -0000b6f0: 2020 556e 6974 2076 6563 746f 7220 7769 Unit vector wi │ │ │ │ -0000b700: 7468 2073 616d 6520 6469 7265 6374 696f th same directio │ │ │ │ -0000b710: 6e2e 0ae2 8098 7371 7274 2858 29e2 8099 n.....sqrt(X)... │ │ │ │ -0000b720: 2020 2020 2020 7363 616c 6172 2020 2020 scalar │ │ │ │ -0000b730: 2020 7363 616c 6172 2020 2020 2020 5363 scalar Sc │ │ │ │ -0000b740: 616c 6172 2073 7175 6172 6520 726f 6f74 alar square root │ │ │ │ -0000b750: 2e0a e280 9873 696e 2858 29e2 8099 2020 .....sin(X)... │ │ │ │ -0000b760: 2020 2020 2073 6361 6c61 7220 2020 2020 scalar │ │ │ │ -0000b770: 2073 6361 6c61 7220 2020 2020 2054 7269 scalar Tri │ │ │ │ -0000b780: 676f 6e6f 6d65 7472 6963 2073 696e 6520 gonometric sine │ │ │ │ -0000b790: 28e2 8098 58e2 8099 2069 6e20 6465 6772 (...X... in degr │ │ │ │ -0000b7a0: 6565 7329 2e0a e280 9863 6f73 2858 29e2 ees).....cos(X). │ │ │ │ -0000b7b0: 8099 2020 2020 2020 2073 6361 6c61 7220 .. scalar │ │ │ │ -0000b7c0: 2020 2020 2073 6361 6c61 7220 2020 2020 scalar │ │ │ │ -0000b7d0: 2054 7269 676f 6e6f 6d65 7472 6963 2063 Trigonometric c │ │ │ │ -0000b7e0: 6f73 696e 6520 28e2 8098 58e2 8099 2069 osine (...X... i │ │ │ │ -0000b7f0: 6e20 6465 6772 6565 7329 2e0a e280 9861 n degrees).....a │ │ │ │ -0000b800: 7369 6e28 5829 e280 9920 2020 2020 2073 sin(X)... s │ │ │ │ -0000b810: 6361 6c61 7220 2020 2020 2073 6361 6c61 calar scala │ │ │ │ -0000b820: 7220 2020 2020 2049 6e76 6572 7365 2073 r Inverse s │ │ │ │ -0000b830: 696e 6520 28e2 8098 58e2 8099 2069 6e20 ine (...X... in │ │ │ │ -0000b840: 6465 6772 6565 7329 2e0a e280 9861 636f degrees).....aco │ │ │ │ -0000b850: 7328 5829 e280 9920 2020 2020 2073 6361 s(X)... sca │ │ │ │ -0000b860: 6c61 7220 2020 2020 2073 6361 6c61 7220 lar scalar │ │ │ │ -0000b870: 2020 2020 2049 6e76 6572 7365 2063 6f73 Inverse cos │ │ │ │ -0000b880: 696e 6520 28e2 8098 58e2 8099 2069 6e20 ine (...X... in │ │ │ │ -0000b890: 6465 6772 6565 7329 2e0a e280 9861 7461 degrees).....ata │ │ │ │ -0000b8a0: 6e32 2858 2c59 29e2 8099 2020 2073 6361 n2(X,Y)... sca │ │ │ │ -0000b8b0: 6c61 7220 2020 2020 2073 6361 6c61 7220 lar scalar │ │ │ │ -0000b8c0: 2020 2020 2050 6f6c 6172 2061 6e67 6c65 Polar angle │ │ │ │ -0000b8d0: 2069 6e20 6465 6772 6565 7320 6f66 2076 in degrees of v │ │ │ │ -0000b8e0: 6563 746f 7220 5b58 2c59 5d2e 0ae2 8098 ector [X,Y]..... │ │ │ │ -0000b8f0: 696e 7665 7273 6528 5829 e280 9920 2020 inverse(X)... │ │ │ │ -0000b900: 7472 616e 7366 6f72 6d20 2020 7472 616e transform tran │ │ │ │ -0000b910: 7366 6f72 6d20 2020 496e 7665 7273 6520 sform Inverse │ │ │ │ -0000b920: 7472 616e 7366 6f72 6d2e 0a0a 4572 726f transform...Erro │ │ │ │ -0000b930: 7273 2061 7265 2072 6570 6f72 7465 6420 rs are reported │ │ │ │ -0000b940: 7768 656e 20e2 8098 7c58 7ce2 8099 2c20 when ...|X|..., │ │ │ │ -0000b950: e280 9875 6e69 74e2 8099 2c20 e280 9861 ...unit..., ...a │ │ │ │ -0000b960: 7369 6ee2 8099 2c20 e280 9861 636f 73e2 sin..., ...acos. │ │ │ │ -0000b970: 8099 2c20 e280 9873 7172 74e2 8099 2c20 .., ...sqrt..., │ │ │ │ -0000b980: e280 9861 7461 6e32 e280 992c 0a61 6e64 ...atan2...,.and │ │ │ │ -0000b990: 20e2 8098 696e 7665 7273 65e2 8099 2066 ...inverse... f │ │ │ │ -0000b9a0: 6169 6c20 6475 6520 746f 206f 7065 7261 ail due to opera │ │ │ │ -0000b9b0: 6e64 7320 6f75 7473 6964 6520 7468 6569 nds outside thei │ │ │ │ -0000b9c0: 7220 7265 7370 6563 7469 7665 2064 6f6d r respective dom │ │ │ │ -0000b9d0: 6169 6e73 2e0a 0a1f 0a46 696c 653a 2073 ains.....File: s │ │ │ │ -0000b9e0: 6b65 7463 682e 696e 666f 2c20 204e 6f64 ketch.info, Nod │ │ │ │ -0000b9f0: 653a 204f 7074 696f 6e73 2c20 2050 7265 e: Options, Pre │ │ │ │ -0000ba00: 763a 2041 7269 7468 6d65 7469 632c 2020 v: Arithmetic, │ │ │ │ -0000ba10: 5570 3a20 4c61 6e67 7561 6765 2062 6173 Up: Language bas │ │ │ │ -0000ba20: 6963 730a 0a33 2e31 2e35 204f 7074 696f ics..3.1.5 Optio │ │ │ │ -0000ba30: 6e73 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ns.------------- │ │ │ │ -0000ba40: 0a0a 2a53 796e 7461 783a 2a0a 2020 2020 ..*Syntax:*. │ │ │ │ -0000ba50: 205b 4b45 5931 3d56 414c 312c 4b45 5932 [KEY1=VAL1,KEY2 │ │ │ │ -0000ba60: 3d56 414c 322c 2e2e 2e5d 0a4f 7074 696f =VAL2,...].Optio │ │ │ │ -0000ba70: 6e73 2061 7265 2075 7365 6420 746f 2073 ns are used to s │ │ │ │ -0000ba80: 7065 6369 6679 2064 6574 6169 6c73 206f pecify details o │ │ │ │ -0000ba90: 6620 7468 6520 6170 7065 6172 616e 6365 f the appearance │ │ │ │ -0000baa0: 206f 6620 6472 6177 6162 6c65 732e 2020 of drawables. │ │ │ │ -0000bab0: 4173 0a73 686f 776e 2061 626f 7665 2c20 As.shown above, │ │ │ │ -0000bac0: 7468 6579 2061 7265 2067 6976 656e 2061 they are given a │ │ │ │ -0000bad0: 7320 636f 6d6d 612d 7365 7061 7261 7465 s comma-separate │ │ │ │ -0000bae0: 6420 6b65 792d 7661 6c75 6520 7061 6972 d key-value pair │ │ │ │ -0000baf0: 732e 0a0a 2a20 4d65 6e75 3a0a 0a2a 2050 s...* Menu:..* P │ │ │ │ -0000bb00: 5354 7269 636b 7320 6f70 7469 6f6e 733a STricks options: │ │ │ │ -0000bb10: 3a20 2020 2020 2020 2020 2020 204f 7074 : Opt │ │ │ │ -0000bb20: 696f 6e73 2069 6e68 6572 6974 6564 2066 ions inherited f │ │ │ │ -0000bb30: 726f 6d20 e280 9850 5354 7269 636b 73e2 rom ...PSTricks. │ │ │ │ -0000bb40: 8099 2e0a 2a20 5469 6b5a 2f50 4746 206f ....* TikZ/PGF o │ │ │ │ -0000bb50: 7074 696f 6e73 3a3a 2020 2020 2020 2020 ptions:: │ │ │ │ -0000bb60: 2020 2020 4f70 7469 6f6e 7320 696e 6865 Options inhe │ │ │ │ -0000bb70: 7269 7465 6420 6672 6f6d 20e2 8098 5469 rited from ...Ti │ │ │ │ -0000bb80: 6b5a 2f50 4746 e280 992e 0a2a 2044 6f74 kZ/PGF.....* Dot │ │ │ │ -0000bb90: 7320 696e 2054 696b 5a2f 5047 463a 3a20 s in TikZ/PGF:: │ │ │ │ -0000bba0: 2020 2020 2020 2020 2020 2053 6b65 7463 Sketc │ │ │ │ -0000bbb0: 6820 7573 6573 20e2 8098 5469 6b5a 2f50 h uses ...TikZ/P │ │ │ │ -0000bbc0: 4746 e280 9920 6369 7263 6c65 7320 666f GF... circles fo │ │ │ │ -0000bbd0: 7220 646f 7473 2e0a 2a20 5469 6b5a 2f50 r dots..* TikZ/P │ │ │ │ -0000bbe0: 4746 2075 7365 722d 6465 6669 6e65 6420 GF user-defined │ │ │ │ -0000bbf0: 7374 796c 6573 3a3a 2020 5375 7070 6f72 styles:: Suppor │ │ │ │ -0000bc00: 7420 666f 7220 e280 9854 696b 5a2f 5047 t for ...TikZ/PG │ │ │ │ -0000bc10: 46e2 8099 206e 616d 6564 2c20 7573 6572 F... named, user │ │ │ │ -0000bc20: 2d64 6566 696e 6564 2073 7479 6c65 732e -defined styles. │ │ │ │ -0000bc30: 0a2a 2054 7261 6e73 7061 7265 6e63 793a .* Transparency: │ │ │ │ -0000bc40: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ -0000bc50: 2053 6565 2d74 6872 6f75 6768 2070 6f6c See-through pol │ │ │ │ -0000bc60: 7967 6f6e 732e 0a2a 2049 6e74 6572 6e61 ygons..* Interna │ │ │ │ -0000bc70: 6c20 6f70 7469 6f6e 733a 3a20 2020 2020 l options:: │ │ │ │ -0000bc80: 2020 2020 2020 204f 7074 696f 6e73 2075 Options u │ │ │ │ -0000bc90: 7365 6420 6279 20e2 8098 736b 6574 6368 sed by ...sketch │ │ │ │ -0000bca0: e280 992e 0a0a 1f0a 4669 6c65 3a20 736b ........File: sk │ │ │ │ -0000bcb0: 6574 6368 2e69 6e66 6f2c 2020 4e6f 6465 etch.info, Node │ │ │ │ -0000bcc0: 3a20 5053 5472 6963 6b73 206f 7074 696f : PSTricks optio │ │ │ │ -0000bcd0: 6e73 2c20 204e 6578 743a 2054 696b 5a2f ns, Next: TikZ/ │ │ │ │ -0000bce0: 5047 4620 6f70 7469 6f6e 732c 2020 5072 PGF options, Pr │ │ │ │ -0000bcf0: 6576 3a20 4f70 7469 6f6e 732c 2020 5570 ev: Options, Up │ │ │ │ -0000bd00: 3a20 4f70 7469 6f6e 730a 0a33 2e31 2e35 : Options..3.1.5 │ │ │ │ -0000bd10: 2e31 20e2 8098 5053 5472 6963 6b73 e280 .1 ...PSTricks.. │ │ │ │ -0000bd20: 9920 6f70 7469 6f6e 730a 2e2e 2e2e 2e2e . options....... │ │ │ │ -0000bd30: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e ................ │ │ │ │ -0000bd40: 2e2e 2e2e 0a0a 5768 656e 20e2 8098 6c61 ......When ...la │ │ │ │ -0000bd50: 6e67 7561 6765 2070 7374 7269 636b 73e2 nguage pstricks. │ │ │ │ -0000bd60: 8099 2069 7320 7365 6c65 6374 6564 2028 .. is selected ( │ │ │ │ -0000bd70: 7468 6520 6465 6661 756c 7429 2c20 7065 the default), pe │ │ │ │ -0000bd80: 726d 6973 7369 626c 650a 6b65 792d 7661 rmissible.key-va │ │ │ │ -0000bd90: 6c75 6520 7061 6972 7320 696e 636c 7564 lue pairs includ │ │ │ │ -0000bda0: 6520 616c 6c20 7468 6f73 6520 666f 7220 e all those for │ │ │ │ -0000bdb0: 7369 6d69 6c61 7220 e280 9850 5354 7269 similar ...PSTri │ │ │ │ -0000bdc0: 636b 73e2 8099 206f 626a 6563 7473 2e20 cks... objects. │ │ │ │ -0000bdd0: 2046 6f72 0a65 7861 6d70 6c65 2c20 6120 For.example, a │ │ │ │ -0000bde0: 706f 6c79 676f 6e20 6d69 6768 7420 6861 polygon might ha │ │ │ │ -0000bdf0: 7665 2074 6865 206f 7074 696f 6e73 0a20 ve the options. │ │ │ │ -0000be00: 205b 6c69 6e65 7769 6474 683d 3170 742c [linewidth=1pt, │ │ │ │ -0000be10: 6c69 6e65 636f 6c6f 723d 626c 7565 2c66 linecolor=blue,f │ │ │ │ -0000be20: 696c 6c63 6f6c 6f72 3d63 7961 6e5d 0ae2 illcolor=cyan].. │ │ │ │ -0000be30: 8098 536b 6574 6368 e280 9920 6d65 7265 ..Sketch... mere │ │ │ │ -0000be40: 6c79 2070 6173 7365 7320 7468 6573 6520 ly passes these │ │ │ │ -0000be50: 6f6e 2074 6f20 e280 9850 5354 7269 636b on to ...PSTrick │ │ │ │ -0000be60: 73e2 8099 2077 6974 686f 7574 2063 6865 s... without che │ │ │ │ -0000be70: 636b 696e 6720 6f72 0a6d 6f64 6966 6963 cking or.modific │ │ │ │ -0000be80: 6174 696f 6e2e 2020 4f70 7469 6f6e 206c ation. Option l │ │ │ │ -0000be90: 6973 7473 2061 7265 2061 6c77 6179 7320 ists are always │ │ │ │ -0000bea0: 6f70 7469 6f6e 616c 2e20 2041 206d 6973 optional. A mis │ │ │ │ -0000beb0: 7369 6e67 206f 7074 696f 6e73 206c 6973 sing options lis │ │ │ │ -0000bec0: 740a 6973 2065 7175 6976 616c 656e 7420 t.is equivalent │ │ │ │ -0000bed0: 746f 2061 6e20 656d 7074 7920 6f6e 6520 to an empty one │ │ │ │ -0000bee0: e280 985b 5de2 8099 2e0a 0a20 2020 5768 ...[]...... Wh │ │ │ │ -0000bef0: 656e 2061 20e2 8098 706f 6c79 676f 6ee2 en a ...polygon. │ │ │ │ -0000bf00: 8099 2068 6173 206f 7074 696f 6e73 2066 .. has options f │ │ │ │ -0000bf10: 6f72 2062 6f74 6820 6974 7320 6661 6365 or both its face │ │ │ │ -0000bf20: 2061 6e64 2069 7473 2065 6467 6573 2c20 and its edges, │ │ │ │ -0000bf30: 616e 6420 7468 650a 706f 6c79 676f 6e20 and the.polygon │ │ │ │ -0000bf40: 6973 2073 706c 6974 2062 7920 7468 6520 is split by the │ │ │ │ -0000bf50: 6869 6464 656e 2073 7572 6661 6365 2061 hidden surface a │ │ │ │ -0000bf60: 6c67 6f72 6974 686d 2c20 e280 9873 6b65 lgorithm, ...ske │ │ │ │ -0000bf70: 7463 68e2 8099 206d 7573 7420 636f 7079 tch... must copy │ │ │ │ -0000bf80: 2074 6865 0a65 6467 6520 6f70 7469 6f6e the.edge option │ │ │ │ -0000bf90: 7320 746f 20e2 8098 7073 6c69 6e65 e280 s to ...psline.. │ │ │ │ -0000bfa0: 9973 2066 6f72 2074 6865 2065 6467 6520 .s for the edge │ │ │ │ -0000bfb0: 7365 676d 656e 7473 2061 6e64 2074 6865 segments and the │ │ │ │ -0000bfc0: 2066 6163 6520 6f70 7469 6f6e 7320 746f face options to │ │ │ │ -0000bfd0: 0ae2 8098 7073 706f 6c79 676f 6ee2 8099 ....pspolygon... │ │ │ │ -0000bfe0: 732e 2020 4f70 7469 6f6e 7320 6b6e 6f77 s. Options know │ │ │ │ -0000bff0: 6e20 746f 20e2 8098 736b 6574 6368 e280 n to ...sketch.. │ │ │ │ -0000c000: 9920 666f 7220 7075 7270 6f73 6573 206f . for purposes o │ │ │ │ -0000c010: 6620 7468 6973 2073 706c 6974 7469 6e67 f this splitting │ │ │ │ -0000c020: 0a6f 7065 7261 7469 6f6e 2069 6e63 6c75 .operation inclu │ │ │ │ -0000c030: 6465 20e2 8098 6172 726f 7773 e280 992c de ...arrows..., │ │ │ │ -0000c040: 20e2 8098 6461 7368 e280 992c 20e2 8098 ...dash..., ... │ │ │ │ -0000c050: 646f 7473 6570 e280 992c 20e2 8098 6669 dotsep..., ...fi │ │ │ │ -0000c060: 6c6c 636f 6c6f 72e2 8099 2c20 e280 9866 llcolor..., ...f │ │ │ │ -0000c070: 696c 6c73 7479 6c65 e280 992c 0ae2 8098 illstyle...,.... │ │ │ │ -0000c080: 6c69 6e65 636f 6c6f 72e2 8099 2c20 e280 linecolor..., .. │ │ │ │ -0000c090: 986c 696e 6573 7479 6c65 e280 992c 20e2 .linestyle..., . │ │ │ │ -0000c0a0: 8098 6c69 6e65 7769 6474 68e2 8099 2c20 ..linewidth..., │ │ │ │ -0000c0b0: e280 986f 7061 6369 7479 e280 992c 20e2 ...opacity..., . │ │ │ │ -0000c0c0: 8098 7368 6f77 706f 696e 7473 e280 992c ..showpoints..., │ │ │ │ -0000c0d0: 0ae2 8098 7374 726f 6b65 6f70 6163 6974 ....strokeopacit │ │ │ │ -0000c0e0: 79e2 8099 2c20 616e 6420 e280 9874 7261 y..., and ...tra │ │ │ │ -0000c0f0: 6e73 7061 6c70 6861 e280 992e 0a0a 1f0a nspalpha........ │ │ │ │ -0000c100: 4669 6c65 3a20 736b 6574 6368 2e69 6e66 File: sketch.inf │ │ │ │ -0000c110: 6f2c 2020 4e6f 6465 3a20 5469 6b5a 2f50 o, Node: TikZ/P │ │ │ │ -0000c120: 4746 206f 7074 696f 6e73 2c20 204e 6578 GF options, Nex │ │ │ │ -0000c130: 743a 2044 6f74 7320 696e 2054 696b 5a2f t: Dots in TikZ/ │ │ │ │ -0000c140: 5047 462c 2020 5072 6576 3a20 5053 5472 PGF, Prev: PSTr │ │ │ │ -0000c150: 6963 6b73 206f 7074 696f 6e73 2c20 2055 icks options, U │ │ │ │ -0000c160: 703a 204f 7074 696f 6e73 0a0a 332e 312e p: Options..3.1. │ │ │ │ -0000c170: 352e 3220 e280 9854 696b 5a2f 5047 46e2 5.2 ...TikZ/PGF. │ │ │ │ -0000c180: 8099 206f 7074 696f 6e73 0a2e 2e2e 2e2e .. options...... │ │ │ │ -0000c190: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e ................ │ │ │ │ -0000c1a0: 2e2e 2e2e 2e0a 0ae2 8098 5469 6b5a 2f50 ..........TikZ/P │ │ │ │ -0000c1b0: 4746 e280 9920 6f70 7469 6f6e 7320 6172 GF... options ar │ │ │ │ -0000c1c0: 6520 6861 6e64 6c65 6420 6d75 6368 2061 e handled much a │ │ │ │ -0000c1d0: 7320 666f 7220 e280 9850 5354 7269 636b s for ...PSTrick │ │ │ │ -0000c1e0: 73e2 8099 2e20 2054 686f 7567 680a e280 s.... Though... │ │ │ │ -0000c1f0: 9854 696b 5a2f 5047 46e2 8099 206f 6674 .TikZ/PGF... oft │ │ │ │ -0000c200: 656e 2061 6c6c 6f77 7320 636f 6c6f 7273 en allows colors │ │ │ │ -0000c210: 2061 6e64 2073 7479 6c65 7320 746f 2062 and styles to b │ │ │ │ -0000c220: 6520 6769 7665 6e20 7769 7468 6f75 740a e given without. │ │ │ │ -0000c230: 636f 7272 6573 706f 6e64 696e 6720 6b65 corresponding ke │ │ │ │ -0000c240: 7973 2c20 666f 7220 6578 616d 706c 652c ys, for example, │ │ │ │ -0000c250: 0a20 205c 6472 6177 5b72 6564 2c75 6c74 . \draw[red,ult │ │ │ │ -0000c260: 7261 2074 6869 636b 5d28 302c 3029 2d2d ra thick](0,0)-- │ │ │ │ -0000c270: 2831 2c31 293b 0a74 6869 7320 6973 206e (1,1);.this is n │ │ │ │ -0000c280: 6f74 2070 6572 6d69 7474 6564 2069 6e20 ot permitted in │ │ │ │ -0000c290: e280 9873 6b65 7463 68e2 8099 2e20 2054 ...sketch.... T │ │ │ │ -0000c2a0: 6f20 6472 6177 2061 2072 6564 2c20 756c o draw a red, ul │ │ │ │ -0000c2b0: 7472 612d 7468 6963 6b20 6c69 6e65 2069 tra-thick line i │ │ │ │ -0000c2c0: 6e0a e280 9873 6b65 7463 68e2 8099 2c20 n....sketch..., │ │ │ │ -0000c2d0: 7468 6520 666f 726d 2069 730a 2020 6c69 the form is. li │ │ │ │ -0000c2e0: 6e65 5b64 7261 773d 7265 642c 7374 796c ne[draw=red,styl │ │ │ │ -0000c2f0: 653d 756c 7472 6120 7468 6963 6b5d 2830 e=ultra thick](0 │ │ │ │ -0000c300: 2c30 2928 312c 3129 0a0a 2020 204a 7573 ,0)(1,1).. Jus │ │ │ │ -0000c310: 7420 6173 2066 6f72 20e2 8098 5053 5472 t as for ...PSTr │ │ │ │ -0000c320: 6963 6b73 e280 992c 2077 6865 6e20 6120 icks..., when a │ │ │ │ -0000c330: e280 9870 6f6c 7967 6f6e e280 9920 6861 ...polygon... ha │ │ │ │ -0000c340: 7320 6f70 7469 6f6e 7320 666f 7220 626f s options for bo │ │ │ │ -0000c350: 7468 2069 7473 0a66 6163 6520 616e 6420 th its.face and │ │ │ │ -0000c360: 6974 7320 6564 6765 732c 2061 6e64 2074 its edges, and t │ │ │ │ -0000c370: 6865 2070 6f6c 7967 6f6e 2069 7320 7370 he polygon is sp │ │ │ │ -0000c380: 6c69 7420 6279 2074 6865 2068 6964 6465 lit by the hidde │ │ │ │ -0000c390: 6e20 7375 7266 6163 650a 616c 676f 7269 n surface.algori │ │ │ │ -0000c3a0: 7468 6d2c 20e2 8098 736b 6574 6368 e280 thm, ...sketch.. │ │ │ │ -0000c3b0: 9920 6d75 7374 2063 6f70 7920 7468 6520 . must copy the │ │ │ │ -0000c3c0: 6564 6765 206f 7074 696f 6e73 2074 6f20 edge options to │ │ │ │ -0000c3d0: e280 9870 736c 696e 65e2 8099 7320 666f ...psline...s fo │ │ │ │ -0000c3e0: 7220 7468 6520 6564 6765 0a73 6567 6d65 r the edge.segme │ │ │ │ -0000c3f0: 6e74 7320 616e 6420 7468 6520 6661 6365 nts and the face │ │ │ │ -0000c400: 206f 7074 696f 6e73 2074 6f20 e280 9870 options to ...p │ │ │ │ -0000c410: 7370 6f6c 7967 6f6e e280 9973 2e20 20e2 spolygon...s. . │ │ │ │ -0000c420: 8098 5469 6b5a 2f50 4746 e280 9920 6f70 ..TikZ/PGF... op │ │ │ │ -0000c430: 7469 6f6e 7320 6b6e 6f77 6e0a 746f 20e2 tions known.to . │ │ │ │ -0000c440: 8098 736b 6574 6368 e280 9920 666f 7220 ..sketch... for │ │ │ │ -0000c450: 7075 7270 6f73 6573 206f 6620 7468 6973 purposes of this │ │ │ │ -0000c460: 2073 706c 6974 7469 6e67 206f 7065 7261 splitting opera │ │ │ │ -0000c470: 7469 6f6e 2069 6e63 6c75 6465 20e2 8098 tion include ... │ │ │ │ -0000c480: 6172 726f 7773 e280 992c 0ae2 8098 6361 arrows...,....ca │ │ │ │ -0000c490: 70e2 8099 2c20 e280 9863 6f6c 6f72 e280 p..., ...color.. │ │ │ │ -0000c4a0: 992c 20e2 8098 6461 7368 2070 6174 7465 ., ...dash patte │ │ │ │ -0000c4b0: 726e e280 992c 20e2 8098 6461 7368 2070 rn..., ...dash p │ │ │ │ -0000c4c0: 6861 7365 e280 992c 20e2 8098 646f 7562 hase..., ...doub │ │ │ │ -0000c4d0: 6c65 e280 992c 20e2 8098 646f 7562 6c65 le..., ...double │ │ │ │ -0000c4e0: 0a64 6973 7461 6e63 65e2 8099 2c20 e280 .distance..., .. │ │ │ │ -0000c4f0: 9864 7261 77e2 8099 2c20 e280 9864 7261 .draw..., ...dra │ │ │ │ -0000c500: 7720 6f70 6163 6974 79e2 8099 2c20 e280 w opacity..., .. │ │ │ │ -0000c510: 9866 696c 6ce2 8099 2c20 e280 9866 696c .fill..., ...fil │ │ │ │ -0000c520: 6c20 6f70 6163 6974 79e2 8099 2c20 e280 l opacity..., .. │ │ │ │ -0000c530: 986a 6f69 6ee2 8099 2c20 e280 986c 696e .join..., ...lin │ │ │ │ -0000c540: 650a 7769 6474 68e2 8099 2c20 e280 986d e.width..., ...m │ │ │ │ -0000c550: 6974 6572 206c 696d 6974 e280 992c 20e2 iter limit..., . │ │ │ │ -0000c560: 8098 7061 7474 6572 6ee2 8099 2c20 e280 ..pattern..., .. │ │ │ │ -0000c570: 9870 6174 7465 726e 2063 6f6c 6f72 e280 .pattern color.. │ │ │ │ -0000c580: 992c 2061 6e64 20e2 8098 7374 796c 65e2 ., and ...style. │ │ │ │ -0000c590: 8099 2e0a 0a20 2020 5468 6520 e280 9873 ..... The ...s │ │ │ │ -0000c5a0: 7479 6c65 e280 9920 6f70 7469 6f6e 2063 tyle... option c │ │ │ │ -0000c5b0: 616e 2063 6f6e 7461 696e 2062 6f74 6820 an contain both │ │ │ │ -0000c5c0: 6661 6365 2061 6e64 2065 6467 6520 696e face and edge in │ │ │ │ -0000c5d0: 666f 726d 6174 696f 6e2c 2073 6f0a e280 formation, so... │ │ │ │ -0000c5e0: 9873 6b65 7463 68e2 8099 206d 7573 7420 .sketch... must │ │ │ │ -0000c5f0: 6368 6563 6b20 7468 6520 7374 796c 6520 check the style │ │ │ │ -0000c600: 7661 6c75 652e 2020 5661 6c75 6573 206b value. Values k │ │ │ │ -0000c610: 6e6f 776e 2074 6f20 e280 9873 6b65 7463 nown to ...sketc │ │ │ │ -0000c620: 68e2 8099 2069 6e63 6c75 6465 0ae2 8098 h... include.... │ │ │ │ -0000c630: 6461 7368 6564 e280 992c 20e2 8098 6465 dashed..., ...de │ │ │ │ -0000c640: 6e73 656c 7920 6461 7368 6564 e280 992c nsely dashed..., │ │ │ │ -0000c650: 20e2 8098 6465 6e73 656c 7920 646f 7474 ...densely dott │ │ │ │ -0000c660: 6564 e280 992c 20e2 8098 646f 7474 6564 ed..., ...dotted │ │ │ │ -0000c670: e280 992c 20e2 8098 646f 7562 6c65 e280 ..., ...double.. │ │ │ │ -0000c680: 992c 0ae2 8098 6c6f 6f73 656c 7920 6461 .,....loosely da │ │ │ │ -0000c690: 7368 6564 e280 992c 20e2 8098 6c6f 6f73 shed..., ...loos │ │ │ │ -0000c6a0: 656c 7920 646f 7474 6564 e280 992c 20e2 ely dotted..., . │ │ │ │ -0000c6b0: 8098 6e65 6172 6c79 206f 7061 7175 65e2 ..nearly opaque. │ │ │ │ -0000c6c0: 8099 2c20 e280 986e 6561 726c 790a 7472 .., ...nearly.tr │ │ │ │ -0000c6d0: 616e 7370 6172 656e 74e2 8099 2c20 e280 ansparent..., .. │ │ │ │ -0000c6e0: 9873 656d 6974 6869 636b e280 992c 20e2 .semithick..., . │ │ │ │ -0000c6f0: 8098 7365 6d69 7472 616e 7370 6172 656e ..semitransparen │ │ │ │ -0000c700: 74e2 8099 2c20 e280 9873 6f6c 6964 e280 t..., ...solid.. │ │ │ │ -0000c710: 992c 20e2 8098 7468 6963 6be2 8099 2c20 ., ...thick..., │ │ │ │ -0000c720: e280 9874 6869 6ee2 8099 2c0a e280 9874 ...thin...,....t │ │ │ │ -0000c730: 7261 6e73 7061 7265 6e74 e280 992c 20e2 ransparent..., . │ │ │ │ -0000c740: 8098 756c 7472 6120 6e65 6172 6c79 2074 ..ultra nearly t │ │ │ │ -0000c750: 7261 6e73 7061 7265 6e74 e280 992c 20e2 ransparent..., . │ │ │ │ -0000c760: 8098 756c 7472 6120 7468 6963 6be2 8099 ..ultra thick... │ │ │ │ -0000c770: 2c20 e280 9875 6c74 7261 2074 6869 6ee2 , ...ultra thin. │ │ │ │ -0000c780: 8099 2c0a e280 9876 6572 7920 6e65 6172 ..,....very near │ │ │ │ -0000c790: 6c79 2074 7261 6e73 7061 7265 6e74 e280 ly transparent.. │ │ │ │ -0000c7a0: 992c 20e2 8098 7665 7279 2074 6869 636b ., ...very thick │ │ │ │ -0000c7b0: e280 992c 2061 6e64 20e2 8098 7665 7279 ..., and ...very │ │ │ │ -0000c7c0: 2074 6869 6ee2 8099 2e0a 0a1f 0a46 696c thin........Fil │ │ │ │ -0000c7d0: 653a 2073 6b65 7463 682e 696e 666f 2c20 e: sketch.info, │ │ │ │ -0000c7e0: 204e 6f64 653a 2044 6f74 7320 696e 2054 Node: Dots in T │ │ │ │ -0000c7f0: 696b 5a2f 5047 462c 2020 4e65 7874 3a20 ikZ/PGF, Next: │ │ │ │ -0000c800: 5469 6b5a 2f50 4746 2075 7365 722d 6465 TikZ/PGF user-de │ │ │ │ -0000c810: 6669 6e65 6420 7374 796c 6573 2c20 2050 fined styles, P │ │ │ │ -0000c820: 7265 763a 2054 696b 5a2f 5047 4620 6f70 rev: TikZ/PGF op │ │ │ │ -0000c830: 7469 6f6e 732c 2020 5570 3a20 4f70 7469 tions, Up: Opti │ │ │ │ -0000c840: 6f6e 730a 0a33 2e31 2e35 2e33 2044 6f74 ons..3.1.5.3 Dot │ │ │ │ -0000c850: 7320 696e 20e2 8098 5469 6b5a 2f50 4746 s in ...TikZ/PGF │ │ │ │ -0000c860: e280 990a 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e ................ │ │ │ │ -0000c870: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 0a0a ................ │ │ │ │ -0000c880: e280 9854 696b 5a2f 5047 46e2 8099 2064 ...TikZ/PGF... d │ │ │ │ -0000c890: 6f65 7320 6e6f 7420 6861 7665 2061 20e2 oes not have a . │ │ │ │ -0000c8a0: 8098 646f 7473 e280 9920 636f 6d6d 616e ..dots... comman │ │ │ │ -0000c8b0: 6420 6173 2064 6f65 7320 5053 5472 6963 d as does PSTric │ │ │ │ -0000c8c0: 6b73 2e20 2049 6e73 7465 6164 2c0a e280 ks. Instead,... │ │ │ │ -0000c8d0: 9853 6b65 7463 68e2 8099 2065 6d69 7473 .Sketch... emits │ │ │ │ -0000c8e0: 2064 6f74 7320 6173 20e2 8098 6669 6c6c dots as ...fill │ │ │ │ -0000c8f0: 6472 6177 e280 9920 6369 7263 6c65 732e draw... circles. │ │ │ │ -0000c900: 2020 5468 6520 6469 616d 6574 6572 206d The diameter m │ │ │ │ -0000c910: 6179 2062 6520 7365 740a 7573 696e 6720 ay be set.using │ │ │ │ -0000c920: 7468 6520 6f70 7469 6f6e 20e2 8098 646f the option ...do │ │ │ │ -0000c930: 7473 697a 65e2 8099 2062 6f72 726f 7765 tsize... borrowe │ │ │ │ -0000c940: 6420 6672 6f6d 2050 5354 7269 636b 732e d from PSTricks. │ │ │ │ -0000c950: 2020 5468 6520 e280 9864 6f74 7369 7a65 The ...dotsize │ │ │ │ -0000c960: e280 9920 6f70 7469 6f6e 0a77 696c 6c20 ... option.will │ │ │ │ -0000c970: 6265 2072 656d 6f76 6564 2066 726f 6d20 be removed from │ │ │ │ -0000c980: 7468 6520 6f70 7469 6f6e 206c 6973 7420 the option list │ │ │ │ -0000c990: 696e 2074 6865 206f 7574 7075 7420 e280 in the output .. │ │ │ │ -0000c9a0: 9866 696c 6c64 7261 77e2 8099 2063 6f6d .filldraw... com │ │ │ │ -0000c9b0: 6d61 6e64 2e0a 4f74 6865 7220 6f70 7469 mand..Other opti │ │ │ │ -0000c9c0: 6f6e 7320 776f 726b 2069 6e20 7468 6520 ons work in the │ │ │ │ -0000c9d0: 6578 7065 6374 6564 2077 6179 2e20 2046 expected way. F │ │ │ │ -0000c9e0: 6f72 2065 7861 6d70 6c65 2c20 e280 9866 or example, ...f │ │ │ │ -0000c9f0: 696c 6ce2 8099 2073 6574 7320 6669 6c6c ill... sets fill │ │ │ │ -0000ca00: 0a63 6f6c 6f72 2061 6e64 20e2 8098 636f .color and ...co │ │ │ │ -0000ca10: 6c6f 72e2 8099 2073 6574 7320 6c69 6e65 lor... sets line │ │ │ │ -0000ca20: 2063 6f6c 6f72 206f 6620 7468 6520 6369 color of the ci │ │ │ │ -0000ca30: 7263 6c65 732e 0a0a 1f0a 4669 6c65 3a20 rcles.....File: │ │ │ │ -0000ca40: 736b 6574 6368 2e69 6e66 6f2c 2020 4e6f sketch.info, No │ │ │ │ -0000ca50: 6465 3a20 5469 6b5a 2f50 4746 2075 7365 de: TikZ/PGF use │ │ │ │ -0000ca60: 722d 6465 6669 6e65 6420 7374 796c 6573 r-defined styles │ │ │ │ -0000ca70: 2c20 204e 6578 743a 2054 7261 6e73 7061 , Next: Transpa │ │ │ │ -0000ca80: 7265 6e63 792c 2020 5072 6576 3a20 446f rency, Prev: Do │ │ │ │ -0000ca90: 7473 2069 6e20 5469 6b5a 2f50 4746 2c20 ts in TikZ/PGF, │ │ │ │ -0000caa0: 2055 703a 204f 7074 696f 6e73 0a0a 332e Up: Options..3. │ │ │ │ -0000cab0: 312e 352e 3420 e280 9854 696b 5a2f 5047 1.5.4 ...TikZ/PG │ │ │ │ -0000cac0: 46e2 8099 2075 7365 722d 6465 6669 6e65 F... user-define │ │ │ │ -0000cad0: 6420 7374 796c 6573 0a2e 2e2e 2e2e 2e2e d styles........ │ │ │ │ +0000b600: 0ae2 8098 2d58 e280 9920 2020 2020 2020 ....-X... │ │ │ │ +0000b610: 2020 2020 7363 616c 6172 2020 2020 2020 scalar │ │ │ │ +0000b620: 7363 616c 6172 2020 2020 2020 556e 6172 scalar Unar │ │ │ │ +0000b630: 7920 7363 616c 6172 206e 6567 6174 696f y scalar negatio │ │ │ │ +0000b640: 6e2e 0ae2 8098 2d58 e280 9920 2020 2020 n.....-X... │ │ │ │ +0000b650: 2020 2020 2020 7665 6374 6f72 2020 2020 vector │ │ │ │ +0000b660: 2020 7665 6374 6f72 2020 2020 2020 556e vector Un │ │ │ │ +0000b670: 6172 7920 7665 6374 6f72 206e 6567 6174 ary vector negat │ │ │ │ +0000b680: 696f 6e2e 0ae2 8098 7c58 7ce2 8099 2020 ion.....|X|... │ │ │ │ +0000b690: 2020 2020 2020 2020 7665 6374 6f72 2020 vector │ │ │ │ +0000b6a0: 2020 2020 7363 616c 6172 2020 2020 2020 scalar │ │ │ │ +0000b6b0: 5665 6374 6f72 206c 656e 6774 682e 0ae2 Vector length... │ │ │ │ +0000b6c0: 8098 756e 6974 2858 29e2 8099 2020 2020 ..unit(X)... │ │ │ │ +0000b6d0: 2020 7665 6374 6f72 2020 2020 2020 7665 vector ve │ │ │ │ +0000b6e0: 6374 6f72 2020 2020 2020 556e 6974 2076 ctor Unit v │ │ │ │ +0000b6f0: 6563 746f 7220 7769 7468 2073 616d 6520 ector with same │ │ │ │ +0000b700: 6469 7265 6374 696f 6e2e 0ae2 8098 7371 direction.....sq │ │ │ │ +0000b710: 7274 2858 29e2 8099 2020 2020 2020 7363 rt(X)... sc │ │ │ │ +0000b720: 616c 6172 2020 2020 2020 7363 616c 6172 alar scalar │ │ │ │ +0000b730: 2020 2020 2020 5363 616c 6172 2073 7175 Scalar squ │ │ │ │ +0000b740: 6172 6520 726f 6f74 2e0a e280 9873 696e are root.....sin │ │ │ │ +0000b750: 2858 29e2 8099 2020 2020 2020 2073 6361 (X)... sca │ │ │ │ +0000b760: 6c61 7220 2020 2020 2073 6361 6c61 7220 lar scalar │ │ │ │ +0000b770: 2020 2020 2054 7269 676f 6e6f 6d65 7472 Trigonometr │ │ │ │ +0000b780: 6963 2073 696e 6520 28e2 8098 58e2 8099 ic sine (...X... │ │ │ │ +0000b790: 2069 6e20 6465 6772 6565 7329 2e0a e280 in degrees).... │ │ │ │ +0000b7a0: 9863 6f73 2858 29e2 8099 2020 2020 2020 .cos(X)... │ │ │ │ +0000b7b0: 2073 6361 6c61 7220 2020 2020 2073 6361 scalar sca │ │ │ │ +0000b7c0: 6c61 7220 2020 2020 2054 7269 676f 6e6f lar Trigono │ │ │ │ +0000b7d0: 6d65 7472 6963 2063 6f73 696e 6520 28e2 metric cosine (. │ │ │ │ +0000b7e0: 8098 58e2 8099 2069 6e20 6465 6772 6565 ..X... in degree │ │ │ │ +0000b7f0: 7329 2e0a e280 9861 7369 6e28 5829 e280 s).....asin(X).. │ │ │ │ +0000b800: 9920 2020 2020 2073 6361 6c61 7220 2020 . scalar │ │ │ │ +0000b810: 2020 2073 6361 6c61 7220 2020 2020 2049 scalar I │ │ │ │ +0000b820: 6e76 6572 7365 2073 696e 6520 28e2 8098 nverse sine (... │ │ │ │ +0000b830: 58e2 8099 2069 6e20 6465 6772 6565 7329 X... in degrees) │ │ │ │ +0000b840: 2e0a e280 9861 636f 7328 5829 e280 9920 .....acos(X)... │ │ │ │ +0000b850: 2020 2020 2073 6361 6c61 7220 2020 2020 scalar │ │ │ │ +0000b860: 2073 6361 6c61 7220 2020 2020 2049 6e76 scalar Inv │ │ │ │ +0000b870: 6572 7365 2063 6f73 696e 6520 28e2 8098 erse cosine (... │ │ │ │ +0000b880: 58e2 8099 2069 6e20 6465 6772 6565 7329 X... in degrees) │ │ │ │ +0000b890: 2e0a e280 9861 7461 6e32 2858 2c59 29e2 .....atan2(X,Y). │ │ │ │ +0000b8a0: 8099 2020 2073 6361 6c61 7220 2020 2020 .. scalar │ │ │ │ +0000b8b0: 2073 6361 6c61 7220 2020 2020 2050 6f6c scalar Pol │ │ │ │ +0000b8c0: 6172 2061 6e67 6c65 2069 6e20 6465 6772 ar angle in degr │ │ │ │ +0000b8d0: 6565 7320 6f66 2076 6563 746f 7220 5b58 ees of vector [X │ │ │ │ +0000b8e0: 2c59 5d2e 0ae2 8098 696e 7665 7273 6528 ,Y].....inverse( │ │ │ │ +0000b8f0: 5829 e280 9920 2020 7472 616e 7366 6f72 X)... transfor │ │ │ │ +0000b900: 6d20 2020 7472 616e 7366 6f72 6d20 2020 m transform │ │ │ │ +0000b910: 496e 7665 7273 6520 7472 616e 7366 6f72 Inverse transfor │ │ │ │ +0000b920: 6d2e 0a0a 4572 726f 7273 2061 7265 2072 m...Errors are r │ │ │ │ +0000b930: 6570 6f72 7465 6420 7768 656e 20e2 8098 eported when ... │ │ │ │ +0000b940: 7c58 7ce2 8099 2c20 e280 9875 6e69 74e2 |X|..., ...unit. │ │ │ │ +0000b950: 8099 2c20 e280 9861 7369 6ee2 8099 2c20 .., ...asin..., │ │ │ │ +0000b960: e280 9861 636f 73e2 8099 2c20 e280 9873 ...acos..., ...s │ │ │ │ +0000b970: 7172 74e2 8099 2c20 e280 9861 7461 6e32 qrt..., ...atan2 │ │ │ │ +0000b980: e280 992c 0a61 6e64 20e2 8098 696e 7665 ...,.and ...inve │ │ │ │ +0000b990: 7273 65e2 8099 2066 6169 6c20 6475 6520 rse... fail due │ │ │ │ +0000b9a0: 746f 206f 7065 7261 6e64 7320 6f75 7473 to operands outs │ │ │ │ +0000b9b0: 6964 6520 7468 6569 7220 7265 7370 6563 ide their respec │ │ │ │ +0000b9c0: 7469 7665 2064 6f6d 6169 6e73 2e0a 0a1f tive domains.... │ │ │ │ +0000b9d0: 0a46 696c 653a 2073 6b65 7463 682e 696e .File: sketch.in │ │ │ │ +0000b9e0: 666f 2c20 204e 6f64 653a 204f 7074 696f fo, Node: Optio │ │ │ │ +0000b9f0: 6e73 2c20 2050 7265 763a 2041 7269 7468 ns, Prev: Arith │ │ │ │ +0000ba00: 6d65 7469 632c 2020 5570 3a20 4c61 6e67 metic, Up: Lang │ │ │ │ +0000ba10: 7561 6765 2062 6173 6963 730a 0a33 2e31 uage basics..3.1 │ │ │ │ +0000ba20: 2e35 204f 7074 696f 6e73 0a2d 2d2d 2d2d .5 Options.----- │ │ │ │ +0000ba30: 2d2d 2d2d 2d2d 2d2d 0a0a 2a53 796e 7461 --------..*Synta │ │ │ │ +0000ba40: 783a 2a0a 2020 2020 205b 4b45 5931 3d56 x:*. [KEY1=V │ │ │ │ +0000ba50: 414c 312c 4b45 5932 3d56 414c 322c 2e2e AL1,KEY2=VAL2,.. │ │ │ │ +0000ba60: 2e5d 0a4f 7074 696f 6e73 2061 7265 2075 .].Options are u │ │ │ │ +0000ba70: 7365 6420 746f 2073 7065 6369 6679 2064 sed to specify d │ │ │ │ +0000ba80: 6574 6169 6c73 206f 6620 7468 6520 6170 etails of the ap │ │ │ │ +0000ba90: 7065 6172 616e 6365 206f 6620 6472 6177 pearance of draw │ │ │ │ +0000baa0: 6162 6c65 732e 2020 4173 0a73 686f 776e ables. As.shown │ │ │ │ +0000bab0: 2061 626f 7665 2c20 7468 6579 2061 7265 above, they are │ │ │ │ +0000bac0: 2067 6976 656e 2061 7320 636f 6d6d 612d given as comma- │ │ │ │ +0000bad0: 7365 7061 7261 7465 6420 6b65 792d 7661 separated key-va │ │ │ │ +0000bae0: 6c75 6520 7061 6972 732e 0a0a 2a20 4d65 lue pairs...* Me │ │ │ │ +0000baf0: 6e75 3a0a 0a2a 2050 5354 7269 636b 7320 nu:..* PSTricks │ │ │ │ +0000bb00: 6f70 7469 6f6e 733a 3a20 2020 2020 2020 options:: │ │ │ │ +0000bb10: 2020 2020 204f 7074 696f 6e73 2069 6e68 Options inh │ │ │ │ +0000bb20: 6572 6974 6564 2066 726f 6d20 e280 9850 erited from ...P │ │ │ │ +0000bb30: 5354 7269 636b 73e2 8099 2e0a 2a20 5469 STricks.....* Ti │ │ │ │ +0000bb40: 6b5a 2f50 4746 206f 7074 696f 6e73 3a3a kZ/PGF options:: │ │ │ │ +0000bb50: 2020 2020 2020 2020 2020 2020 4f70 7469 Opti │ │ │ │ +0000bb60: 6f6e 7320 696e 6865 7269 7465 6420 6672 ons inherited fr │ │ │ │ +0000bb70: 6f6d 20e2 8098 5469 6b5a 2f50 4746 e280 om ...TikZ/PGF.. │ │ │ │ +0000bb80: 992e 0a2a 2044 6f74 7320 696e 2054 696b ...* Dots in Tik │ │ │ │ +0000bb90: 5a2f 5047 463a 3a20 2020 2020 2020 2020 Z/PGF:: │ │ │ │ +0000bba0: 2020 2053 6b65 7463 6820 7573 6573 20e2 Sketch uses . │ │ │ │ +0000bbb0: 8098 5469 6b5a 2f50 4746 e280 9920 6369 ..TikZ/PGF... ci │ │ │ │ +0000bbc0: 7263 6c65 7320 666f 7220 646f 7473 2e0a rcles for dots.. │ │ │ │ +0000bbd0: 2a20 5469 6b5a 2f50 4746 2075 7365 722d * TikZ/PGF user- │ │ │ │ +0000bbe0: 6465 6669 6e65 6420 7374 796c 6573 3a3a defined styles:: │ │ │ │ +0000bbf0: 2020 5375 7070 6f72 7420 666f 7220 e280 Support for .. │ │ │ │ +0000bc00: 9854 696b 5a2f 5047 46e2 8099 206e 616d .TikZ/PGF... nam │ │ │ │ +0000bc10: 6564 2c20 7573 6572 2d64 6566 696e 6564 ed, user-defined │ │ │ │ +0000bc20: 2073 7479 6c65 732e 0a2a 2054 7261 6e73 styles..* Trans │ │ │ │ +0000bc30: 7061 7265 6e63 793a 3a20 2020 2020 2020 parency:: │ │ │ │ +0000bc40: 2020 2020 2020 2020 2053 6565 2d74 6872 See-thr │ │ │ │ +0000bc50: 6f75 6768 2070 6f6c 7967 6f6e 732e 0a2a ough polygons..* │ │ │ │ +0000bc60: 2049 6e74 6572 6e61 6c20 6f70 7469 6f6e Internal option │ │ │ │ +0000bc70: 733a 3a20 2020 2020 2020 2020 2020 204f s:: O │ │ │ │ +0000bc80: 7074 696f 6e73 2075 7365 6420 6279 20e2 ptions used by . │ │ │ │ +0000bc90: 8098 736b 6574 6368 e280 992e 0a0a 1f0a ..sketch........ │ │ │ │ +0000bca0: 4669 6c65 3a20 736b 6574 6368 2e69 6e66 File: sketch.inf │ │ │ │ +0000bcb0: 6f2c 2020 4e6f 6465 3a20 5053 5472 6963 o, Node: PSTric │ │ │ │ +0000bcc0: 6b73 206f 7074 696f 6e73 2c20 204e 6578 ks options, Nex │ │ │ │ +0000bcd0: 743a 2054 696b 5a2f 5047 4620 6f70 7469 t: TikZ/PGF opti │ │ │ │ +0000bce0: 6f6e 732c 2020 5072 6576 3a20 4f70 7469 ons, Prev: Opti │ │ │ │ +0000bcf0: 6f6e 732c 2020 5570 3a20 4f70 7469 6f6e ons, Up: Option │ │ │ │ +0000bd00: 730a 0a33 2e31 2e35 2e31 20e2 8098 5053 s..3.1.5.1 ...PS │ │ │ │ +0000bd10: 5472 6963 6b73 e280 9920 6f70 7469 6f6e Tricks... option │ │ │ │ +0000bd20: 730a 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e s............... │ │ │ │ +0000bd30: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 0a0a 5768 ..............Wh │ │ │ │ +0000bd40: 656e 20e2 8098 6c61 6e67 7561 6765 2070 en ...language p │ │ │ │ +0000bd50: 7374 7269 636b 73e2 8099 2069 7320 7365 stricks... is se │ │ │ │ +0000bd60: 6c65 6374 6564 2028 7468 6520 6465 6661 lected (the defa │ │ │ │ +0000bd70: 756c 7429 2c20 7065 726d 6973 7369 626c ult), permissibl │ │ │ │ +0000bd80: 650a 6b65 792d 7661 6c75 6520 7061 6972 e.key-value pair │ │ │ │ +0000bd90: 7320 696e 636c 7564 6520 616c 6c20 7468 s include all th │ │ │ │ +0000bda0: 6f73 6520 666f 7220 7369 6d69 6c61 7220 ose for similar │ │ │ │ +0000bdb0: e280 9850 5354 7269 636b 73e2 8099 206f ...PSTricks... o │ │ │ │ +0000bdc0: 626a 6563 7473 2e20 2046 6f72 0a65 7861 bjects. For.exa │ │ │ │ +0000bdd0: 6d70 6c65 2c20 6120 706f 6c79 676f 6e20 mple, a polygon │ │ │ │ +0000bde0: 6d69 6768 7420 6861 7665 2074 6865 206f might have the o │ │ │ │ +0000bdf0: 7074 696f 6e73 0a20 205b 6c69 6e65 7769 ptions. [linewi │ │ │ │ +0000be00: 6474 683d 3170 742c 6c69 6e65 636f 6c6f dth=1pt,linecolo │ │ │ │ +0000be10: 723d 626c 7565 2c66 696c 6c63 6f6c 6f72 r=blue,fillcolor │ │ │ │ +0000be20: 3d63 7961 6e5d 0ae2 8098 536b 6574 6368 =cyan]....Sketch │ │ │ │ +0000be30: e280 9920 6d65 7265 6c79 2070 6173 7365 ... merely passe │ │ │ │ +0000be40: 7320 7468 6573 6520 6f6e 2074 6f20 e280 s these on to .. │ │ │ │ +0000be50: 9850 5354 7269 636b 73e2 8099 2077 6974 .PSTricks... wit │ │ │ │ +0000be60: 686f 7574 2063 6865 636b 696e 6720 6f72 hout checking or │ │ │ │ +0000be70: 0a6d 6f64 6966 6963 6174 696f 6e2e 2020 .modification. │ │ │ │ +0000be80: 4f70 7469 6f6e 206c 6973 7473 2061 7265 Option lists are │ │ │ │ +0000be90: 2061 6c77 6179 7320 6f70 7469 6f6e 616c always optional │ │ │ │ +0000bea0: 2e20 2041 206d 6973 7369 6e67 206f 7074 . A missing opt │ │ │ │ +0000beb0: 696f 6e73 206c 6973 740a 6973 2065 7175 ions list.is equ │ │ │ │ +0000bec0: 6976 616c 656e 7420 746f 2061 6e20 656d ivalent to an em │ │ │ │ +0000bed0: 7074 7920 6f6e 6520 e280 985b 5de2 8099 pty one ...[]... │ │ │ │ +0000bee0: 2e0a 0a20 2020 5768 656e 2061 20e2 8098 ... When a ... │ │ │ │ +0000bef0: 706f 6c79 676f 6ee2 8099 2068 6173 206f polygon... has o │ │ │ │ +0000bf00: 7074 696f 6e73 2066 6f72 2062 6f74 6820 ptions for both │ │ │ │ +0000bf10: 6974 7320 6661 6365 2061 6e64 2069 7473 its face and its │ │ │ │ +0000bf20: 2065 6467 6573 2c20 616e 6420 7468 650a edges, and the. │ │ │ │ +0000bf30: 706f 6c79 676f 6e20 6973 2073 706c 6974 polygon is split │ │ │ │ +0000bf40: 2062 7920 7468 6520 6869 6464 656e 2073 by the hidden s │ │ │ │ +0000bf50: 7572 6661 6365 2061 6c67 6f72 6974 686d urface algorithm │ │ │ │ +0000bf60: 2c20 e280 9873 6b65 7463 68e2 8099 206d , ...sketch... m │ │ │ │ +0000bf70: 7573 7420 636f 7079 2074 6865 0a65 6467 ust copy the.edg │ │ │ │ +0000bf80: 6520 6f70 7469 6f6e 7320 746f 20e2 8098 e options to ... │ │ │ │ +0000bf90: 7073 6c69 6e65 e280 9973 2066 6f72 2074 psline...s for t │ │ │ │ +0000bfa0: 6865 2065 6467 6520 7365 676d 656e 7473 he edge segments │ │ │ │ +0000bfb0: 2061 6e64 2074 6865 2066 6163 6520 6f70 and the face op │ │ │ │ +0000bfc0: 7469 6f6e 7320 746f 0ae2 8098 7073 706f tions to....pspo │ │ │ │ +0000bfd0: 6c79 676f 6ee2 8099 732e 2020 4f70 7469 lygon...s. Opti │ │ │ │ +0000bfe0: 6f6e 7320 6b6e 6f77 6e20 746f 20e2 8098 ons known to ... │ │ │ │ +0000bff0: 736b 6574 6368 e280 9920 666f 7220 7075 sketch... for pu │ │ │ │ +0000c000: 7270 6f73 6573 206f 6620 7468 6973 2073 rposes of this s │ │ │ │ +0000c010: 706c 6974 7469 6e67 0a6f 7065 7261 7469 plitting.operati │ │ │ │ +0000c020: 6f6e 2069 6e63 6c75 6465 20e2 8098 6172 on include ...ar │ │ │ │ +0000c030: 726f 7773 e280 992c 20e2 8098 6461 7368 rows..., ...dash │ │ │ │ +0000c040: e280 992c 20e2 8098 646f 7473 6570 e280 ..., ...dotsep.. │ │ │ │ +0000c050: 992c 20e2 8098 6669 6c6c 636f 6c6f 72e2 ., ...fillcolor. │ │ │ │ +0000c060: 8099 2c20 e280 9866 696c 6c73 7479 6c65 .., ...fillstyle │ │ │ │ +0000c070: e280 992c 0ae2 8098 6c69 6e65 636f 6c6f ...,....linecolo │ │ │ │ +0000c080: 72e2 8099 2c20 e280 986c 696e 6573 7479 r..., ...linesty │ │ │ │ +0000c090: 6c65 e280 992c 20e2 8098 6c69 6e65 7769 le..., ...linewi │ │ │ │ +0000c0a0: 6474 68e2 8099 2c20 e280 986f 7061 6369 dth..., ...opaci │ │ │ │ +0000c0b0: 7479 e280 992c 20e2 8098 7368 6f77 706f ty..., ...showpo │ │ │ │ +0000c0c0: 696e 7473 e280 992c 0ae2 8098 7374 726f ints...,....stro │ │ │ │ +0000c0d0: 6b65 6f70 6163 6974 79e2 8099 2c20 616e keopacity..., an │ │ │ │ +0000c0e0: 6420 e280 9874 7261 6e73 7061 6c70 6861 d ...transpalpha │ │ │ │ +0000c0f0: e280 992e 0a0a 1f0a 4669 6c65 3a20 736b ........File: sk │ │ │ │ +0000c100: 6574 6368 2e69 6e66 6f2c 2020 4e6f 6465 etch.info, Node │ │ │ │ +0000c110: 3a20 5469 6b5a 2f50 4746 206f 7074 696f : TikZ/PGF optio │ │ │ │ +0000c120: 6e73 2c20 204e 6578 743a 2044 6f74 7320 ns, Next: Dots │ │ │ │ +0000c130: 696e 2054 696b 5a2f 5047 462c 2020 5072 in TikZ/PGF, Pr │ │ │ │ +0000c140: 6576 3a20 5053 5472 6963 6b73 206f 7074 ev: PSTricks opt │ │ │ │ +0000c150: 696f 6e73 2c20 2055 703a 204f 7074 696f ions, Up: Optio │ │ │ │ +0000c160: 6e73 0a0a 332e 312e 352e 3220 e280 9854 ns..3.1.5.2 ...T │ │ │ │ +0000c170: 696b 5a2f 5047 46e2 8099 206f 7074 696f ikZ/PGF... optio │ │ │ │ +0000c180: 6e73 0a2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e ns.............. │ │ │ │ +0000c190: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e0a 0ae2 ................ │ │ │ │ +0000c1a0: 8098 5469 6b5a 2f50 4746 e280 9920 6f70 ..TikZ/PGF... op │ │ │ │ +0000c1b0: 7469 6f6e 7320 6172 6520 6861 6e64 6c65 tions are handle │ │ │ │ +0000c1c0: 6420 6d75 6368 2061 7320 666f 7220 e280 d much as for .. │ │ │ │ +0000c1d0: 9850 5354 7269 636b 73e2 8099 2e20 2054 .PSTricks.... T │ │ │ │ +0000c1e0: 686f 7567 680a e280 9854 696b 5a2f 5047 hough....TikZ/PG │ │ │ │ +0000c1f0: 46e2 8099 206f 6674 656e 2061 6c6c 6f77 F... often allow │ │ │ │ +0000c200: 7320 636f 6c6f 7273 2061 6e64 2073 7479 s colors and sty │ │ │ │ +0000c210: 6c65 7320 746f 2062 6520 6769 7665 6e20 les to be given │ │ │ │ +0000c220: 7769 7468 6f75 740a 636f 7272 6573 706f without.correspo │ │ │ │ +0000c230: 6e64 696e 6720 6b65 7973 2c20 666f 7220 nding keys, for │ │ │ │ +0000c240: 6578 616d 706c 652c 0a20 205c 6472 6177 example,. \draw │ │ │ │ +0000c250: 5b72 6564 2c75 6c74 7261 2074 6869 636b [red,ultra thick │ │ │ │ +0000c260: 5d28 302c 3029 2d2d 2831 2c31 293b 0a74 ](0,0)--(1,1);.t │ │ │ │ +0000c270: 6869 7320 6973 206e 6f74 2070 6572 6d69 his is not permi │ │ │ │ +0000c280: 7474 6564 2069 6e20 e280 9873 6b65 7463 tted in ...sketc │ │ │ │ +0000c290: 68e2 8099 2e20 2054 6f20 6472 6177 2061 h.... To draw a │ │ │ │ +0000c2a0: 2072 6564 2c20 756c 7472 612d 7468 6963 red, ultra-thic │ │ │ │ +0000c2b0: 6b20 6c69 6e65 2069 6e0a e280 9873 6b65 k line in....ske │ │ │ │ +0000c2c0: 7463 68e2 8099 2c20 7468 6520 666f 726d tch..., the form │ │ │ │ +0000c2d0: 2069 730a 2020 6c69 6e65 5b64 7261 773d is. line[draw= │ │ │ │ +0000c2e0: 7265 642c 7374 796c 653d 756c 7472 6120 red,style=ultra │ │ │ │ +0000c2f0: 7468 6963 6b5d 2830 2c30 2928 312c 3129 thick](0,0)(1,1) │ │ │ │ +0000c300: 0a0a 2020 204a 7573 7420 6173 2066 6f72 .. Just as for │ │ │ │ +0000c310: 20e2 8098 5053 5472 6963 6b73 e280 992c ...PSTricks..., │ │ │ │ +0000c320: 2077 6865 6e20 6120 e280 9870 6f6c 7967 when a ...polyg │ │ │ │ +0000c330: 6f6e e280 9920 6861 7320 6f70 7469 6f6e on... has option │ │ │ │ +0000c340: 7320 666f 7220 626f 7468 2069 7473 0a66 s for both its.f │ │ │ │ +0000c350: 6163 6520 616e 6420 6974 7320 6564 6765 ace and its edge │ │ │ │ +0000c360: 732c 2061 6e64 2074 6865 2070 6f6c 7967 s, and the polyg │ │ │ │ +0000c370: 6f6e 2069 7320 7370 6c69 7420 6279 2074 on is split by t │ │ │ │ +0000c380: 6865 2068 6964 6465 6e20 7375 7266 6163 he hidden surfac │ │ │ │ +0000c390: 650a 616c 676f 7269 7468 6d2c 20e2 8098 e.algorithm, ... │ │ │ │ +0000c3a0: 736b 6574 6368 e280 9920 6d75 7374 2063 sketch... must c │ │ │ │ +0000c3b0: 6f70 7920 7468 6520 6564 6765 206f 7074 opy the edge opt │ │ │ │ +0000c3c0: 696f 6e73 2074 6f20 e280 9870 736c 696e ions to ...pslin │ │ │ │ +0000c3d0: 65e2 8099 7320 666f 7220 7468 6520 6564 e...s for the ed │ │ │ │ +0000c3e0: 6765 0a73 6567 6d65 6e74 7320 616e 6420 ge.segments and │ │ │ │ +0000c3f0: 7468 6520 6661 6365 206f 7074 696f 6e73 the face options │ │ │ │ +0000c400: 2074 6f20 e280 9870 7370 6f6c 7967 6f6e to ...pspolygon │ │ │ │ +0000c410: e280 9973 2e20 20e2 8098 5469 6b5a 2f50 ...s. ...TikZ/P │ │ │ │ +0000c420: 4746 e280 9920 6f70 7469 6f6e 7320 6b6e GF... options kn │ │ │ │ +0000c430: 6f77 6e0a 746f 20e2 8098 736b 6574 6368 own.to ...sketch │ │ │ │ +0000c440: e280 9920 666f 7220 7075 7270 6f73 6573 ... for purposes │ │ │ │ +0000c450: 206f 6620 7468 6973 2073 706c 6974 7469 of this splitti │ │ │ │ +0000c460: 6e67 206f 7065 7261 7469 6f6e 2069 6e63 ng operation inc │ │ │ │ +0000c470: 6c75 6465 20e2 8098 6172 726f 7773 e280 lude ...arrows.. │ │ │ │ +0000c480: 992c 0ae2 8098 6361 70e2 8099 2c20 e280 .,....cap..., .. │ │ │ │ +0000c490: 9863 6f6c 6f72 e280 992c 20e2 8098 6461 .color..., ...da │ │ │ │ +0000c4a0: 7368 2070 6174 7465 726e e280 992c 20e2 sh pattern..., . │ │ │ │ +0000c4b0: 8098 6461 7368 2070 6861 7365 e280 992c ..dash phase..., │ │ │ │ +0000c4c0: 20e2 8098 646f 7562 6c65 e280 992c 20e2 ...double..., . │ │ │ │ +0000c4d0: 8098 646f 7562 6c65 0a64 6973 7461 6e63 ..double.distanc │ │ │ │ +0000c4e0: 65e2 8099 2c20 e280 9864 7261 77e2 8099 e..., ...draw... │ │ │ │ +0000c4f0: 2c20 e280 9864 7261 7720 6f70 6163 6974 , ...draw opacit │ │ │ │ +0000c500: 79e2 8099 2c20 e280 9866 696c 6ce2 8099 y..., ...fill... │ │ │ │ +0000c510: 2c20 e280 9866 696c 6c20 6f70 6163 6974 , ...fill opacit │ │ │ │ +0000c520: 79e2 8099 2c20 e280 986a 6f69 6ee2 8099 y..., ...join... │ │ │ │ +0000c530: 2c20 e280 986c 696e 650a 7769 6474 68e2 , ...line.width. │ │ │ │ +0000c540: 8099 2c20 e280 986d 6974 6572 206c 696d .., ...miter lim │ │ │ │ +0000c550: 6974 e280 992c 20e2 8098 7061 7474 6572 it..., ...patter │ │ │ │ +0000c560: 6ee2 8099 2c20 e280 9870 6174 7465 726e n..., ...pattern │ │ │ │ +0000c570: 2063 6f6c 6f72 e280 992c 2061 6e64 20e2 color..., and . │ │ │ │ +0000c580: 8098 7374 796c 65e2 8099 2e0a 0a20 2020 ..style...... │ │ │ │ +0000c590: 5468 6520 e280 9873 7479 6c65 e280 9920 The ...style... │ │ │ │ +0000c5a0: 6f70 7469 6f6e 2063 616e 2063 6f6e 7461 option can conta │ │ │ │ +0000c5b0: 696e 2062 6f74 6820 6661 6365 2061 6e64 in both face and │ │ │ │ +0000c5c0: 2065 6467 6520 696e 666f 726d 6174 696f edge informatio │ │ │ │ +0000c5d0: 6e2c 2073 6f0a e280 9873 6b65 7463 68e2 n, so....sketch. │ │ │ │ +0000c5e0: 8099 206d 7573 7420 6368 6563 6b20 7468 .. must check th │ │ │ │ +0000c5f0: 6520 7374 796c 6520 7661 6c75 652e 2020 e style value. │ │ │ │ +0000c600: 5661 6c75 6573 206b 6e6f 776e 2074 6f20 Values known to │ │ │ │ +0000c610: e280 9873 6b65 7463 68e2 8099 2069 6e63 ...sketch... inc │ │ │ │ +0000c620: 6c75 6465 0ae2 8098 6461 7368 6564 e280 lude....dashed.. │ │ │ │ +0000c630: 992c 20e2 8098 6465 6e73 656c 7920 6461 ., ...densely da │ │ │ │ +0000c640: 7368 6564 e280 992c 20e2 8098 6465 6e73 shed..., ...dens │ │ │ │ +0000c650: 656c 7920 646f 7474 6564 e280 992c 20e2 ely dotted..., . │ │ │ │ +0000c660: 8098 646f 7474 6564 e280 992c 20e2 8098 ..dotted..., ... │ │ │ │ +0000c670: 646f 7562 6c65 e280 992c 0ae2 8098 6c6f double...,....lo │ │ │ │ +0000c680: 6f73 656c 7920 6461 7368 6564 e280 992c osely dashed..., │ │ │ │ +0000c690: 20e2 8098 6c6f 6f73 656c 7920 646f 7474 ...loosely dott │ │ │ │ +0000c6a0: 6564 e280 992c 20e2 8098 6e65 6172 6c79 ed..., ...nearly │ │ │ │ +0000c6b0: 206f 7061 7175 65e2 8099 2c20 e280 986e opaque..., ...n │ │ │ │ +0000c6c0: 6561 726c 790a 7472 616e 7370 6172 656e early.transparen │ │ │ │ +0000c6d0: 74e2 8099 2c20 e280 9873 656d 6974 6869 t..., ...semithi │ │ │ │ +0000c6e0: 636b e280 992c 20e2 8098 7365 6d69 7472 ck..., ...semitr │ │ │ │ +0000c6f0: 616e 7370 6172 656e 74e2 8099 2c20 e280 ansparent..., .. │ │ │ │ +0000c700: 9873 6f6c 6964 e280 992c 20e2 8098 7468 .solid..., ...th │ │ │ │ +0000c710: 6963 6be2 8099 2c20 e280 9874 6869 6ee2 ick..., ...thin. │ │ │ │ +0000c720: 8099 2c0a e280 9874 7261 6e73 7061 7265 ..,....transpare │ │ │ │ +0000c730: 6e74 e280 992c 20e2 8098 756c 7472 6120 nt..., ...ultra │ │ │ │ +0000c740: 6e65 6172 6c79 2074 7261 6e73 7061 7265 nearly transpare │ │ │ │ +0000c750: 6e74 e280 992c 20e2 8098 756c 7472 6120 nt..., ...ultra │ │ │ │ +0000c760: 7468 6963 6be2 8099 2c20 e280 9875 6c74 thick..., ...ult │ │ │ │ +0000c770: 7261 2074 6869 6ee2 8099 2c0a e280 9876 ra thin...,....v │ │ │ │ +0000c780: 6572 7920 6e65 6172 6c79 2074 7261 6e73 ery nearly trans │ │ │ │ +0000c790: 7061 7265 6e74 e280 992c 20e2 8098 7665 parent..., ...ve │ │ │ │ +0000c7a0: 7279 2074 6869 636b e280 992c 2061 6e64 ry thick..., and │ │ │ │ +0000c7b0: 20e2 8098 7665 7279 2074 6869 6ee2 8099 ...very thin... │ │ │ │ +0000c7c0: 2e0a 0a1f 0a46 696c 653a 2073 6b65 7463 .....File: sketc │ │ │ │ +0000c7d0: 682e 696e 666f 2c20 204e 6f64 653a 2044 h.info, Node: D │ │ │ │ +0000c7e0: 6f74 7320 696e 2054 696b 5a2f 5047 462c ots in TikZ/PGF, │ │ │ │ +0000c7f0: 2020 4e65 7874 3a20 5469 6b5a 2f50 4746 Next: TikZ/PGF │ │ │ │ +0000c800: 2075 7365 722d 6465 6669 6e65 6420 7374 user-defined st │ │ │ │ +0000c810: 796c 6573 2c20 2050 7265 763a 2054 696b yles, Prev: Tik │ │ │ │ +0000c820: 5a2f 5047 4620 6f70 7469 6f6e 732c 2020 Z/PGF options, │ │ │ │ +0000c830: 5570 3a20 4f70 7469 6f6e 730a 0a33 2e31 Up: Options..3.1 │ │ │ │ +0000c840: 2e35 2e33 2044 6f74 7320 696e 20e2 8098 .5.3 Dots in ... │ │ │ │ +0000c850: 5469 6b5a 2f50 4746 e280 990a 2e2e 2e2e TikZ/PGF........ │ │ │ │ +0000c860: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e ................ │ │ │ │ +0000c870: 2e2e 2e2e 2e2e 0a0a e280 9854 696b 5a2f ...........TikZ/ │ │ │ │ +0000c880: 5047 46e2 8099 2064 6f65 7320 6e6f 7420 PGF... does not │ │ │ │ +0000c890: 6861 7665 2061 20e2 8098 646f 7473 e280 have a ...dots.. │ │ │ │ +0000c8a0: 9920 636f 6d6d 616e 6420 6173 2064 6f65 . command as doe │ │ │ │ +0000c8b0: 7320 5053 5472 6963 6b73 2e20 2049 6e73 s PSTricks. Ins │ │ │ │ +0000c8c0: 7465 6164 2c0a e280 9853 6b65 7463 68e2 tead,....Sketch. │ │ │ │ +0000c8d0: 8099 2065 6d69 7473 2064 6f74 7320 6173 .. emits dots as │ │ │ │ +0000c8e0: 20e2 8098 6669 6c6c 6472 6177 e280 9920 ...filldraw... │ │ │ │ +0000c8f0: 6369 7263 6c65 732e 2020 5468 6520 6469 circles. The di │ │ │ │ +0000c900: 616d 6574 6572 206d 6179 2062 6520 7365 ameter may be se │ │ │ │ +0000c910: 740a 7573 696e 6720 7468 6520 6f70 7469 t.using the opti │ │ │ │ +0000c920: 6f6e 20e2 8098 646f 7473 697a 65e2 8099 on ...dotsize... │ │ │ │ +0000c930: 2062 6f72 726f 7765 6420 6672 6f6d 2050 borrowed from P │ │ │ │ +0000c940: 5354 7269 636b 732e 2020 5468 6520 e280 STricks. The .. │ │ │ │ +0000c950: 9864 6f74 7369 7a65 e280 9920 6f70 7469 .dotsize... opti │ │ │ │ +0000c960: 6f6e 0a77 696c 6c20 6265 2072 656d 6f76 on.will be remov │ │ │ │ +0000c970: 6564 2066 726f 6d20 7468 6520 6f70 7469 ed from the opti │ │ │ │ +0000c980: 6f6e 206c 6973 7420 696e 2074 6865 206f on list in the o │ │ │ │ +0000c990: 7574 7075 7420 e280 9866 696c 6c64 7261 utput ...filldra │ │ │ │ +0000c9a0: 77e2 8099 2063 6f6d 6d61 6e64 2e0a 4f74 w... command..Ot │ │ │ │ +0000c9b0: 6865 7220 6f70 7469 6f6e 7320 776f 726b her options work │ │ │ │ +0000c9c0: 2069 6e20 7468 6520 6578 7065 6374 6564 in the expected │ │ │ │ +0000c9d0: 2077 6179 2e20 2046 6f72 2065 7861 6d70 way. For examp │ │ │ │ +0000c9e0: 6c65 2c20 e280 9866 696c 6ce2 8099 2073 le, ...fill... s │ │ │ │ +0000c9f0: 6574 7320 6669 6c6c 0a63 6f6c 6f72 2061 ets fill.color a │ │ │ │ +0000ca00: 6e64 20e2 8098 636f 6c6f 72e2 8099 2073 nd ...color... s │ │ │ │ +0000ca10: 6574 7320 6c69 6e65 2063 6f6c 6f72 206f ets line color o │ │ │ │ +0000ca20: 6620 7468 6520 6369 7263 6c65 732e 0a0a f the circles... │ │ │ │ +0000ca30: 1f0a 4669 6c65 3a20 736b 6574 6368 2e69 ..File: sketch.i │ │ │ │ +0000ca40: 6e66 6f2c 2020 4e6f 6465 3a20 5469 6b5a nfo, Node: TikZ │ │ │ │ +0000ca50: 2f50 4746 2075 7365 722d 6465 6669 6e65 /PGF user-define │ │ │ │ +0000ca60: 6420 7374 796c 6573 2c20 204e 6578 743a d styles, Next: │ │ │ │ +0000ca70: 2054 7261 6e73 7061 7265 6e63 792c 2020 Transparency, │ │ │ │ +0000ca80: 5072 6576 3a20 446f 7473 2069 6e20 5469 Prev: Dots in Ti │ │ │ │ +0000ca90: 6b5a 2f50 4746 2c20 2055 703a 204f 7074 kZ/PGF, Up: Opt │ │ │ │ +0000caa0: 696f 6e73 0a0a 332e 312e 352e 3420 e280 ions..3.1.5.4 .. │ │ │ │ +0000cab0: 9854 696b 5a2f 5047 46e2 8099 2075 7365 .TikZ/PGF... use │ │ │ │ +0000cac0: 722d 6465 6669 6e65 6420 7374 796c 6573 r-defined styles │ │ │ │ +0000cad0: 0a2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e ................ │ │ │ │ 0000cae0: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e ................ │ │ │ │ -0000caf0: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e0a ................ │ │ │ │ -0000cb00: 0ae2 8098 5469 6b5a 2f50 4746 e280 9920 ....TikZ/PGF... │ │ │ │ -0000cb10: 616c 6c6f 7773 206e 616d 6564 2073 7479 allows named sty │ │ │ │ -0000cb20: 6c65 7320 6465 6669 6e65 6420 6279 2074 les defined by t │ │ │ │ -0000cb30: 6865 2075 7365 722c 2066 6f72 2065 7861 he user, for exa │ │ │ │ -0000cb40: 6d70 6c65 0a20 205c 7469 6b7a 7374 796c mple. \tikzstyl │ │ │ │ -0000cb50: 657b 6d79 706f 6c79 676f 6e73 7479 6c65 e{mypolygonstyle │ │ │ │ -0000cb60: 7d20 3d20 5b66 696c 6c3d 626c 7565 2132 } = [fill=blue!2 │ │ │ │ -0000cb70: 302c 6669 6c6c 206f 7061 6369 7479 3d30 0,fill opacity=0 │ │ │ │ -0000cb80: 2e38 5d20 200a 2020 5c74 696b 7a73 7479 .8] . \tikzsty │ │ │ │ -0000cb90: 6c65 7b6d 796c 696e 6573 7479 6c65 7d20 le{mylinestyle} │ │ │ │ -0000cba0: 3d20 5b72 6564 2132 302c 6461 7368 6564 = [red!20,dashed │ │ │ │ -0000cbb0: 5d0a 5369 6e63 6520 e280 9873 6b65 7463 ].Since ...sketc │ │ │ │ -0000cbc0: 68e2 8099 2068 6173 206e 6f20 696e 666f h... has no info │ │ │ │ -0000cbd0: 726d 6174 696f 6e20 6f6e 2074 6865 2063 rmation on the c │ │ │ │ -0000cbe0: 6f6e 7465 6e74 7320 6f66 2073 7563 6820 ontents of such │ │ │ │ -0000cbf0: 7374 796c 6573 2c20 6974 0a6f 6d69 7473 styles, it.omits │ │ │ │ -0000cc00: 2074 6865 6d20 656e 7469 7265 6c79 2066 them entirely f │ │ │ │ -0000cc10: 726f 6d20 6c69 6e65 732c 2070 6f6c 7967 rom lines, polyg │ │ │ │ -0000cc20: 6f6e 732c 2061 6e64 2074 6865 6972 2065 ons, and their e │ │ │ │ -0000cc30: 6467 6573 2064 7572 696e 6720 6f70 7469 dges during opti │ │ │ │ -0000cc40: 6f6e 0a73 706c 6974 7469 6e67 2e20 2046 on.splitting. F │ │ │ │ -0000cc50: 6f72 2065 7861 6d70 6c65 2c0a 2020 706f or example,. po │ │ │ │ -0000cc60: 6c79 676f 6e5b 7374 796c 653d 6d79 706f lygon[style=mypo │ │ │ │ -0000cc70: 6c79 676f 6e73 7479 6c65 2c73 7479 6c65 lygonstyle,style │ │ │ │ -0000cc80: 3d74 6869 636b 5d28 302c 302c 3129 2831 =thick](0,0,1)(1 │ │ │ │ -0000cc90: 2c30 2c30 2928 302c 312c 3029 0a20 206c ,0,0)(0,1,0). l │ │ │ │ -0000cca0: 696e 655b 7374 796c 653d 6d79 6c69 6e65 ine[style=myline │ │ │ │ -0000ccb0: 7374 796c 655d 282d 312c 2d31 2c2d 3129 style](-1,-1,-1) │ │ │ │ -0000ccc0: 2832 2c32 2c32 290a 7072 6f64 7563 6573 (2,2,2).produces │ │ │ │ -0000ccd0: 2074 6865 20e2 8098 5469 6b5a e280 9920 the ...TikZ... │ │ │ │ -0000cce0: 6f75 7470 7574 0a20 205c 6472 6177 282d output. \draw(- │ │ │ │ -0000ccf0: 312c 2d31 292d 2d28 2e33 3333 2c2e 3333 1,-1)--(.333,.33 │ │ │ │ -0000cd00: 3329 3b0a 2020 5c66 696c 6c64 7261 775b 3);. \filldraw[ │ │ │ │ -0000cd10: 7468 6963 6b2c 6669 6c6c 3d77 6869 7465 thick,fill=white │ │ │ │ -0000cd20: 5d28 302c 3029 2d2d 2831 2c30 292d 2d28 ](0,0)--(1,0)--( │ │ │ │ -0000cd30: 302c 3129 2d2d 6379 636c 653b 0a20 205c 0,1)--cycle;. \ │ │ │ │ -0000cd40: 6472 6177 282e 3333 332c 2e33 3333 292d draw(.333,.333)- │ │ │ │ -0000cd50: 2d28 322c 3229 3b0a 4e6f 7465 2074 6861 -(2,2);.Note tha │ │ │ │ -0000cd60: 7420 7468 6520 7573 6572 2d64 6566 696e t the user-defin │ │ │ │ -0000cd70: 6564 2073 7479 6c65 7320 6172 6520 6e6f ed styles are no │ │ │ │ -0000cd80: 7420 7072 6573 656e 742e 2020 536b 6574 t present. Sket │ │ │ │ -0000cd90: 6368 2061 6c73 6f20 6973 7375 6573 0a77 ch also issues.w │ │ │ │ -0000cda0: 6172 6e69 6e67 733a 0a20 2077 6172 6e69 arnings:. warni │ │ │ │ -0000cdb0: 6e67 2c20 756e 6b6e 6f77 6e20 706f 6c79 ng, unknown poly │ │ │ │ -0000cdc0: 676f 6e20 6f70 7469 6f6e 2073 7479 6c65 gon option style │ │ │ │ -0000cdd0: 3d6d 7970 6f6c 7967 6f6e 7374 796c 6520 =mypolygonstyle │ │ │ │ -0000cde0: 7769 6c6c 2062 6520 6967 6e6f 7265 640a will be ignored. │ │ │ │ -0000cdf0: 2020 7761 726e 696e 672c 2075 6e6b 6e6f warning, unkno │ │ │ │ -0000ce00: 776e 206c 696e 6520 6f70 7469 6f6e 2073 wn line option s │ │ │ │ -0000ce10: 7479 6c65 3d6d 796c 696e 6573 7479 6c65 tyle=mylinestyle │ │ │ │ -0000ce20: 2077 696c 6c20 6265 2069 676e 6f72 6564 will be ignored │ │ │ │ -0000ce30: 0a0a 2020 2054 6865 2072 656d 6564 7920 .. The remedy │ │ │ │ -0000ce40: 6973 2074 6f20 7374 6174 6520 6578 706c is to state expl │ │ │ │ -0000ce50: 6963 6974 6c79 2077 6865 7468 6572 2061 icitly whether a │ │ │ │ -0000ce60: 2075 7365 722d 6465 6669 6e65 6420 7374 user-defined st │ │ │ │ -0000ce70: 796c 6520 7368 6f75 6c64 0a62 6520 6174 yle should.be at │ │ │ │ -0000ce80: 7463 6865 6420 746f 2070 6f6c 7967 6f6e tched to polygon │ │ │ │ -0000ce90: 7320 6f72 206c 696e 6573 2069 6e20 7468 s or lines in th │ │ │ │ -0000cea0: 6520 e280 9854 696b 5ae2 8099 206f 7574 e ...TikZ... out │ │ │ │ -0000ceb0: 7075 7420 7573 696e 670a 5f70 7365 7564 put using._pseud │ │ │ │ -0000cec0: 6f2d 6f70 7469 6f6e 735f 20e2 8098 6669 o-options_ ...fi │ │ │ │ -0000ced0: 6c6c 2073 7479 6c65 e280 9920 616e 6420 ll style... and │ │ │ │ -0000cee0: e280 986c 696e 6520 7374 796c 65e2 8099 ...line style... │ │ │ │ -0000cef0: 2c0a 2020 706f 6c79 676f 6e5b 6669 6c6c ,. polygon[fill │ │ │ │ -0000cf00: 2073 7479 6c65 3d6d 7970 6f6c 7967 6f6e style=mypolygon │ │ │ │ -0000cf10: 7374 796c 652c 7374 796c 653d 7468 6963 style,style=thic │ │ │ │ -0000cf20: 6b5d 2830 2c30 2c31 2928 312c 302c 3029 k](0,0,1)(1,0,0) │ │ │ │ -0000cf30: 2830 2c31 2c30 290a 2020 6c69 6e65 5b6c (0,1,0). line[l │ │ │ │ -0000cf40: 696e 6520 7374 796c 653d 6d79 6c69 6e65 ine style=myline │ │ │ │ -0000cf50: 7374 796c 655d 282d 312c 2d31 2c2d 3129 style](-1,-1,-1) │ │ │ │ -0000cf60: 2832 2c32 2c32 290a 4e6f 772c 2074 6865 (2,2,2).Now, the │ │ │ │ -0000cf70: 206f 7574 7075 7420 6973 0a20 205c 6472 output is. \dr │ │ │ │ -0000cf80: 6177 5b6d 796c 696e 6573 7479 6c65 5d28 aw[mylinestyle]( │ │ │ │ -0000cf90: 2d31 2c2d 3129 2d2d 282e 3333 332c 2e33 -1,-1)--(.333,.3 │ │ │ │ -0000cfa0: 3333 293b 0a20 205c 6669 6c6c 6472 6177 33);. \filldraw │ │ │ │ -0000cfb0: 5b6d 7970 6f6c 7967 6f6e 7374 796c 652c [mypolygonstyle, │ │ │ │ -0000cfc0: 7468 6963 6b5d 2830 2c30 292d 2d28 312c thick](0,0)--(1, │ │ │ │ -0000cfd0: 3029 2d2d 2830 2c31 292d 2d63 7963 6c65 0)--(0,1)--cycle │ │ │ │ -0000cfe0: 3b0a 2020 5c64 7261 775b 6d79 6c69 6e65 ;. \draw[myline │ │ │ │ -0000cff0: 7374 796c 655d 282e 3333 332c 2e33 3333 style](.333,.333 │ │ │ │ -0000d000: 292d 2d28 322c 3229 3b0a 0a20 2020 4120 )--(2,2);.. A │ │ │ │ -0000d010: 7573 6566 756c 2074 6563 686e 6971 7565 useful technique │ │ │ │ -0000d020: 2069 7320 746f 2069 6e63 6c75 6465 2075 is to include u │ │ │ │ -0000d030: 7365 722d 6465 6669 6e65 6420 7374 796c ser-defined styl │ │ │ │ -0000d040: 6520 6465 6669 6e69 7469 6f6e 7320 696e e definitions in │ │ │ │ -0000d050: 0ae2 8098 736b 6574 6368 e280 9920 636f ....sketch... co │ │ │ │ -0000d060: 6465 2061 7320 e280 9873 7065 6369 616c de as ...special │ │ │ │ -0000d070: e280 9973 2077 6974 6820 6f70 7469 6f6e ...s with option │ │ │ │ -0000d080: 20e2 8098 5b6c 6179 3d75 6e64 6572 5de2 ...[lay=under]. │ │ │ │ -0000d090: 8099 2074 6f20 656e 7375 7265 2074 6861 .. to ensure tha │ │ │ │ -0000d0a0: 7420 7468 650a 7374 796c 6573 2061 7265 t the.styles are │ │ │ │ -0000d0b0: 2065 6d69 7474 6564 2066 6972 7374 2069 emitted first i │ │ │ │ -0000d0c0: 6e20 7468 6520 6f75 7470 7574 2c20 6265 n the output, be │ │ │ │ -0000d0d0: 666f 7265 2061 6e79 2075 7365 7320 6f66 fore any uses of │ │ │ │ -0000d0e0: 2074 6865 2073 7479 6c65 0a6e 616d 6573 the style.names │ │ │ │ -0000d0f0: 2e20 2028 3129 2020 466f 7220 6578 616d . (1) For exam │ │ │ │ -0000d100: 706c 652c 0a20 2073 7065 6369 616c 7c5c ple,. special|\ │ │ │ │ -0000d110: 7469 6b7a 7374 796c 657b 6d79 706f 6c79 tikzstyle{mypoly │ │ │ │ -0000d120: 676f 6e73 7479 6c65 7d20 3d20 5b66 696c gonstyle} = [fil │ │ │ │ -0000d130: 6c3d 626c 7565 2132 302c 6669 6c6c 206f l=blue!20,fill o │ │ │ │ -0000d140: 7061 6369 7479 3d30 2e38 5d7c 5b6c 6179 pacity=0.8]|[lay │ │ │ │ -0000d150: 3d75 6e64 6572 5d0a 2020 7370 6563 6961 =under]. specia │ │ │ │ -0000d160: 6c7c 5c74 696b 7a73 7479 6c65 7b6d 796c l|\tikzstyle{myl │ │ │ │ -0000d170: 696e 6573 7479 6c65 7d20 3d20 5b72 6564 inestyle} = [red │ │ │ │ -0000d180: 2132 302c 6461 7368 6564 5d7c 5b6c 6179 !20,dashed]|[lay │ │ │ │ -0000d190: 3d75 6e64 6572 5d0a 5468 6520 6175 7468 =under].The auth │ │ │ │ -0000d1a0: 6f72 2069 7320 7265 7370 6f6e 7369 626c or is responsibl │ │ │ │ -0000d1b0: 6520 666f 7220 7573 696e 6720 7468 6520 e for using the │ │ │ │ -0000d1c0: 6b65 792c 20e2 8098 6c69 6e65 2073 7479 key, ...line sty │ │ │ │ -0000d1d0: 6c65 e280 9920 6f72 20e2 8098 6669 6c6c le... or ...fill │ │ │ │ -0000d1e0: 0a73 7479 6c65 e280 992c 2074 6861 7420 .style..., that │ │ │ │ -0000d1f0: 6d61 7463 6865 7320 7468 6520 636f 6e74 matches the cont │ │ │ │ -0000d200: 656e 7420 6f66 2074 6865 2073 7479 6c65 ent of the style │ │ │ │ -0000d210: 2064 6566 696e 6974 696f 6e2e 0a0a 2020 definition... │ │ │ │ -0000d220: 202d 2d2d 2d2d 2d2d 2d2d 2d20 466f 6f74 ---------- Foot │ │ │ │ -0000d230: 6e6f 7465 7320 2d2d 2d2d 2d2d 2d2d 2d2d notes ---------- │ │ │ │ -0000d240: 0a0a 2020 2028 3129 2054 6869 7320 636c .. (1) This cl │ │ │ │ -0000d250: 6576 6572 2074 7269 636b 2069 7320 6475 ever trick is du │ │ │ │ -0000d260: 6520 746f 204b 6a65 6c6c 204d 6167 6e65 e to Kjell Magne │ │ │ │ -0000d270: 2046 6175 736b 652e 0a0a 1f0a 4669 6c65 Fauske.....File │ │ │ │ -0000d280: 3a20 736b 6574 6368 2e69 6e66 6f2c 2020 : sketch.info, │ │ │ │ -0000d290: 4e6f 6465 3a20 5472 616e 7370 6172 656e Node: Transparen │ │ │ │ -0000d2a0: 6379 2c20 204e 6578 743a 2049 6e74 6572 cy, Next: Inter │ │ │ │ -0000d2b0: 6e61 6c20 6f70 7469 6f6e 732c 2020 5072 nal options, Pr │ │ │ │ -0000d2c0: 6576 3a20 5469 6b5a 2f50 4746 2075 7365 ev: TikZ/PGF use │ │ │ │ -0000d2d0: 722d 6465 6669 6e65 6420 7374 796c 6573 r-defined styles │ │ │ │ -0000d2e0: 2c20 2055 703a 204f 7074 696f 6e73 0a0a , Up: Options.. │ │ │ │ -0000d2f0: 332e 312e 352e 3520 5472 616e 7370 6172 3.1.5.5 Transpar │ │ │ │ -0000d300: 656e 6379 0a2e 2e2e 2e2e 2e2e 2e2e 2e2e ency............ │ │ │ │ -0000d310: 2e2e 2e2e 2e2e 2e2e 2e0a 0a42 6f74 6820 ...........Both │ │ │ │ -0000d320: e280 9850 5354 7269 636b 73e2 8099 2061 ...PSTricks... a │ │ │ │ -0000d330: 6e64 20e2 8098 5469 6b5a 2f50 4746 e280 nd ...TikZ/PGF.. │ │ │ │ -0000d340: 9920 7375 7070 6f72 7420 706f 6c79 676f . support polygo │ │ │ │ -0000d350: 6e20 6f70 7469 6f6e 7320 7468 6174 2068 n options that h │ │ │ │ -0000d360: 6176 6520 7468 650a 6566 6665 6374 206f ave the.effect o │ │ │ │ -0000d370: 6620 6d61 6b69 6e67 2074 6865 2070 6f6c f making the pol │ │ │ │ -0000d380: 7967 6f6e 2061 7070 6561 7220 7472 616e ygon appear tran │ │ │ │ -0000d390: 7370 6172 656e 742e 2020 466f 7220 e280 sparent. For .. │ │ │ │ -0000d3a0: 9850 5354 7269 636b 73e2 8099 2c0a 6b65 .PSTricks...,.ke │ │ │ │ -0000d3b0: 7977 6f72 6420 e280 9874 7261 6e73 7061 yword ...transpa │ │ │ │ -0000d3c0: 6c70 6861 e280 9920 7761 7320 7573 6564 lpha... was used │ │ │ │ -0000d3d0: 2064 7572 696e 6720 696e 6974 6961 6c20 during initial │ │ │ │ -0000d3e0: 6465 7665 6c6f 706d 656e 7420 6f66 0a74 development of.t │ │ │ │ -0000d3f0: 7261 6e73 7061 7265 6e63 7920 6665 6174 ransparency feat │ │ │ │ -0000d400: 7572 6573 2c20 616e 6420 e280 986f 7061 ures, and ...opa │ │ │ │ -0000d410: 6369 7479 e280 9920 7761 7320 6164 6f70 city... was adop │ │ │ │ -0000d420: 7465 6420 6c61 7465 722e 2020 e280 9853 ted later. ...S │ │ │ │ -0000d430: 6b65 7463 68e2 8099 2068 6f6e 6f72 730a ketch... honors. │ │ │ │ -0000d440: 626f 7468 2e20 20e2 8098 5469 6b5a 2f50 both. ...TikZ/P │ │ │ │ -0000d450: 4746 e280 9920 7573 6573 20e2 8098 6f70 GF... uses ...op │ │ │ │ -0000d460: 6163 6974 79e2 8099 206f 6e6c 792e 2020 acity... only. │ │ │ │ -0000d470: 5768 656e 2074 7261 6e73 7061 7265 6e74 When transparent │ │ │ │ -0000d480: 2070 6f6c 7967 6f6e 7320 6172 6520 696e polygons are in │ │ │ │ -0000d490: 0a74 6865 2066 6f72 6567 726f 756e 642c .the foreground, │ │ │ │ -0000d4a0: 206f 626a 6563 7473 2062 6568 696e 6420 objects behind │ │ │ │ -0000d4b0: 7468 656d 2028 6472 6177 6e20 6561 726c them (drawn earl │ │ │ │ -0000d4c0: 6965 7229 2061 7265 2076 6973 6962 6c65 ier) are visible │ │ │ │ -0000d4d0: 2077 6974 680a 636f 6c6f 7220 7375 6264 with.color subd │ │ │ │ -0000d4e0: 7565 6420 616e 6420 7469 6e74 6564 2e20 ued and tinted. │ │ │ │ -0000d4f0: 2054 6865 2068 6964 6465 6e20 7375 7266 The hidden surf │ │ │ │ -0000d500: 6163 6520 616c 676f 7269 7468 6d20 6f66 ace algorithm of │ │ │ │ -0000d510: 20e2 8098 736b 6574 6368 e280 990a 776f ...sketch....wo │ │ │ │ -0000d520: 726b 7320 7765 6c6c 2077 6974 6820 7375 rks well with su │ │ │ │ -0000d530: 6368 2074 7261 6e73 7061 7265 6e74 2070 ch transparent p │ │ │ │ -0000d540: 6f6c 7967 6f6e 732e 0a0a 2020 204e 6f74 olygons... Not │ │ │ │ -0000d550: 6520 7468 6174 2063 756c 6c3d 6661 6c73 e that cull=fals │ │ │ │ -0000d560: 6520 6d75 7374 2062 6520 7573 6564 2066 e must be used f │ │ │ │ -0000d570: 6f72 2072 6561 722d 6661 6369 6e67 2070 or rear-facing p │ │ │ │ -0000d580: 6f6c 7967 6f6e 7320 746f 2062 650a 7669 olygons to be.vi │ │ │ │ -0000d590: 7369 626c 6520 7768 656e 2070 6f73 6974 sible when posit │ │ │ │ -0000d5a0: 696f 6e65 6420 6265 6869 6e64 206f 7468 ioned behind oth │ │ │ │ -0000d5b0: 6572 2074 7261 6e73 7061 7265 6e74 2073 er transparent s │ │ │ │ -0000d5c0: 7572 6661 6365 732e 0a0a 1f0a 4669 6c65 urfaces.....File │ │ │ │ -0000d5d0: 3a20 736b 6574 6368 2e69 6e66 6f2c 2020 : sketch.info, │ │ │ │ -0000d5e0: 4e6f 6465 3a20 496e 7465 726e 616c 206f Node: Internal o │ │ │ │ -0000d5f0: 7074 696f 6e73 2c20 2050 7265 763a 2054 ptions, Prev: T │ │ │ │ -0000d600: 7261 6e73 7061 7265 6e63 792c 2020 5570 ransparency, Up │ │ │ │ -0000d610: 3a20 4f70 7469 6f6e 730a 0a33 2e31 2e35 : Options..3.1.5 │ │ │ │ -0000d620: 2e36 2049 6e74 6572 6e61 6c20 6f70 7469 .6 Internal opti │ │ │ │ -0000d630: 6f6e 730a 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e ons............. │ │ │ │ -0000d640: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 0a0a 5468 ..............Th │ │ │ │ -0000d650: 6572 6520 6172 6520 616c 736f 205f 696e ere are also _in │ │ │ │ -0000d660: 7465 726e 616c 5f20 6f70 7469 6f6e 7320 ternal_ options │ │ │ │ -0000d670: 7573 6564 206f 6e6c 7920 6279 20e2 8098 used only by ... │ │ │ │ -0000d680: 736b 6574 6368 e280 9920 616e 6420 6e6f sketch... and no │ │ │ │ -0000d690: 7420 7061 7373 6564 0a6f 6e20 746f 20e2 t passed.on to . │ │ │ │ -0000d6a0: 8098 5053 5472 6963 6b73 e280 992e 2020 ..PSTricks.... │ │ │ │ -0000d6b0: 5468 6573 6520 6172 6520 7375 6d6d 6172 These are summar │ │ │ │ -0000d6c0: 697a 6564 2069 6e20 7468 6520 666f 6c6c ized in the foll │ │ │ │ -0000d6d0: 6f77 696e 6720 7461 626c 652e 0a4b 6579 owing table..Key │ │ │ │ -0000d6e0: 2020 2020 2020 2050 6f73 7369 626c 6520 Possible │ │ │ │ -0000d6f0: 7661 6c75 6573 2020 2020 2020 2020 2044 values D │ │ │ │ -0000d700: 6573 6372 6970 7469 6f6e 0a2d 2d2d 2d2d escription.----- │ │ │ │ +0000caf0: 2e2e 2e2e 2e2e 2e0a 0ae2 8098 5469 6b5a ............TikZ │ │ │ │ +0000cb00: 2f50 4746 e280 9920 616c 6c6f 7773 206e /PGF... allows n │ │ │ │ +0000cb10: 616d 6564 2073 7479 6c65 7320 6465 6669 amed styles defi │ │ │ │ +0000cb20: 6e65 6420 6279 2074 6865 2075 7365 722c ned by the user, │ │ │ │ +0000cb30: 2066 6f72 2065 7861 6d70 6c65 0a20 205c for example. \ │ │ │ │ +0000cb40: 7469 6b7a 7374 796c 657b 6d79 706f 6c79 tikzstyle{mypoly │ │ │ │ +0000cb50: 676f 6e73 7479 6c65 7d20 3d20 5b66 696c gonstyle} = [fil │ │ │ │ +0000cb60: 6c3d 626c 7565 2132 302c 6669 6c6c 206f l=blue!20,fill o │ │ │ │ +0000cb70: 7061 6369 7479 3d30 2e38 5d20 200a 2020 pacity=0.8] . │ │ │ │ +0000cb80: 5c74 696b 7a73 7479 6c65 7b6d 796c 696e \tikzstyle{mylin │ │ │ │ +0000cb90: 6573 7479 6c65 7d20 3d20 5b72 6564 2132 estyle} = [red!2 │ │ │ │ +0000cba0: 302c 6461 7368 6564 5d0a 5369 6e63 6520 0,dashed].Since │ │ │ │ +0000cbb0: e280 9873 6b65 7463 68e2 8099 2068 6173 ...sketch... has │ │ │ │ +0000cbc0: 206e 6f20 696e 666f 726d 6174 696f 6e20 no information │ │ │ │ +0000cbd0: 6f6e 2074 6865 2063 6f6e 7465 6e74 7320 on the contents │ │ │ │ +0000cbe0: 6f66 2073 7563 6820 7374 796c 6573 2c20 of such styles, │ │ │ │ +0000cbf0: 6974 0a6f 6d69 7473 2074 6865 6d20 656e it.omits them en │ │ │ │ +0000cc00: 7469 7265 6c79 2066 726f 6d20 6c69 6e65 tirely from line │ │ │ │ +0000cc10: 732c 2070 6f6c 7967 6f6e 732c 2061 6e64 s, polygons, and │ │ │ │ +0000cc20: 2074 6865 6972 2065 6467 6573 2064 7572 their edges dur │ │ │ │ +0000cc30: 696e 6720 6f70 7469 6f6e 0a73 706c 6974 ing option.split │ │ │ │ +0000cc40: 7469 6e67 2e20 2046 6f72 2065 7861 6d70 ting. For examp │ │ │ │ +0000cc50: 6c65 2c0a 2020 706f 6c79 676f 6e5b 7374 le,. polygon[st │ │ │ │ +0000cc60: 796c 653d 6d79 706f 6c79 676f 6e73 7479 yle=mypolygonsty │ │ │ │ +0000cc70: 6c65 2c73 7479 6c65 3d74 6869 636b 5d28 le,style=thick]( │ │ │ │ +0000cc80: 302c 302c 3129 2831 2c30 2c30 2928 302c 0,0,1)(1,0,0)(0, │ │ │ │ +0000cc90: 312c 3029 0a20 206c 696e 655b 7374 796c 1,0). line[styl │ │ │ │ +0000cca0: 653d 6d79 6c69 6e65 7374 796c 655d 282d e=mylinestyle](- │ │ │ │ +0000ccb0: 312c 2d31 2c2d 3129 2832 2c32 2c32 290a 1,-1,-1)(2,2,2). │ │ │ │ +0000ccc0: 7072 6f64 7563 6573 2074 6865 20e2 8098 produces the ... │ │ │ │ +0000ccd0: 5469 6b5a e280 9920 6f75 7470 7574 0a20 TikZ... output. │ │ │ │ +0000cce0: 205c 6472 6177 282d 312c 2d31 292d 2d28 \draw(-1,-1)--( │ │ │ │ +0000ccf0: 2e33 3333 2c2e 3333 3329 3b0a 2020 5c66 .333,.333);. \f │ │ │ │ +0000cd00: 696c 6c64 7261 775b 7468 6963 6b2c 6669 illdraw[thick,fi │ │ │ │ +0000cd10: 6c6c 3d77 6869 7465 5d28 302c 3029 2d2d ll=white](0,0)-- │ │ │ │ +0000cd20: 2831 2c30 292d 2d28 302c 3129 2d2d 6379 (1,0)--(0,1)--cy │ │ │ │ +0000cd30: 636c 653b 0a20 205c 6472 6177 282e 3333 cle;. \draw(.33 │ │ │ │ +0000cd40: 332c 2e33 3333 292d 2d28 322c 3229 3b0a 3,.333)--(2,2);. │ │ │ │ +0000cd50: 4e6f 7465 2074 6861 7420 7468 6520 7573 Note that the us │ │ │ │ +0000cd60: 6572 2d64 6566 696e 6564 2073 7479 6c65 er-defined style │ │ │ │ +0000cd70: 7320 6172 6520 6e6f 7420 7072 6573 656e s are not presen │ │ │ │ +0000cd80: 742e 2020 536b 6574 6368 2061 6c73 6f20 t. Sketch also │ │ │ │ +0000cd90: 6973 7375 6573 0a77 6172 6e69 6e67 733a issues.warnings: │ │ │ │ +0000cda0: 0a20 2077 6172 6e69 6e67 2c20 756e 6b6e . warning, unkn │ │ │ │ +0000cdb0: 6f77 6e20 706f 6c79 676f 6e20 6f70 7469 own polygon opti │ │ │ │ +0000cdc0: 6f6e 2073 7479 6c65 3d6d 7970 6f6c 7967 on style=mypolyg │ │ │ │ +0000cdd0: 6f6e 7374 796c 6520 7769 6c6c 2062 6520 onstyle will be │ │ │ │ +0000cde0: 6967 6e6f 7265 640a 2020 7761 726e 696e ignored. warnin │ │ │ │ +0000cdf0: 672c 2075 6e6b 6e6f 776e 206c 696e 6520 g, unknown line │ │ │ │ +0000ce00: 6f70 7469 6f6e 2073 7479 6c65 3d6d 796c option style=myl │ │ │ │ +0000ce10: 696e 6573 7479 6c65 2077 696c 6c20 6265 inestyle will be │ │ │ │ +0000ce20: 2069 676e 6f72 6564 0a0a 2020 2054 6865 ignored.. The │ │ │ │ +0000ce30: 2072 656d 6564 7920 6973 2074 6f20 7374 remedy is to st │ │ │ │ +0000ce40: 6174 6520 6578 706c 6963 6974 6c79 2077 ate explicitly w │ │ │ │ +0000ce50: 6865 7468 6572 2061 2075 7365 722d 6465 hether a user-de │ │ │ │ +0000ce60: 6669 6e65 6420 7374 796c 6520 7368 6f75 fined style shou │ │ │ │ +0000ce70: 6c64 0a62 6520 6174 7463 6865 6420 746f ld.be attched to │ │ │ │ +0000ce80: 2070 6f6c 7967 6f6e 7320 6f72 206c 696e polygons or lin │ │ │ │ +0000ce90: 6573 2069 6e20 7468 6520 e280 9854 696b es in the ...Tik │ │ │ │ +0000cea0: 5ae2 8099 206f 7574 7075 7420 7573 696e Z... output usin │ │ │ │ +0000ceb0: 670a 5f70 7365 7564 6f2d 6f70 7469 6f6e g._pseudo-option │ │ │ │ +0000cec0: 735f 20e2 8098 6669 6c6c 2073 7479 6c65 s_ ...fill style │ │ │ │ +0000ced0: e280 9920 616e 6420 e280 986c 696e 6520 ... and ...line │ │ │ │ +0000cee0: 7374 796c 65e2 8099 2c0a 2020 706f 6c79 style...,. poly │ │ │ │ +0000cef0: 676f 6e5b 6669 6c6c 2073 7479 6c65 3d6d gon[fill style=m │ │ │ │ +0000cf00: 7970 6f6c 7967 6f6e 7374 796c 652c 7374 ypolygonstyle,st │ │ │ │ +0000cf10: 796c 653d 7468 6963 6b5d 2830 2c30 2c31 yle=thick](0,0,1 │ │ │ │ +0000cf20: 2928 312c 302c 3029 2830 2c31 2c30 290a )(1,0,0)(0,1,0). │ │ │ │ +0000cf30: 2020 6c69 6e65 5b6c 696e 6520 7374 796c line[line styl │ │ │ │ +0000cf40: 653d 6d79 6c69 6e65 7374 796c 655d 282d e=mylinestyle](- │ │ │ │ +0000cf50: 312c 2d31 2c2d 3129 2832 2c32 2c32 290a 1,-1,-1)(2,2,2). │ │ │ │ +0000cf60: 4e6f 772c 2074 6865 206f 7574 7075 7420 Now, the output │ │ │ │ +0000cf70: 6973 0a20 205c 6472 6177 5b6d 796c 696e is. \draw[mylin │ │ │ │ +0000cf80: 6573 7479 6c65 5d28 2d31 2c2d 3129 2d2d estyle](-1,-1)-- │ │ │ │ +0000cf90: 282e 3333 332c 2e33 3333 293b 0a20 205c (.333,.333);. \ │ │ │ │ +0000cfa0: 6669 6c6c 6472 6177 5b6d 7970 6f6c 7967 filldraw[mypolyg │ │ │ │ +0000cfb0: 6f6e 7374 796c 652c 7468 6963 6b5d 2830 onstyle,thick](0 │ │ │ │ +0000cfc0: 2c30 292d 2d28 312c 3029 2d2d 2830 2c31 ,0)--(1,0)--(0,1 │ │ │ │ +0000cfd0: 292d 2d63 7963 6c65 3b0a 2020 5c64 7261 )--cycle;. \dra │ │ │ │ +0000cfe0: 775b 6d79 6c69 6e65 7374 796c 655d 282e w[mylinestyle](. │ │ │ │ +0000cff0: 3333 332c 2e33 3333 292d 2d28 322c 3229 333,.333)--(2,2) │ │ │ │ +0000d000: 3b0a 0a20 2020 4120 7573 6566 756c 2074 ;.. A useful t │ │ │ │ +0000d010: 6563 686e 6971 7565 2069 7320 746f 2069 echnique is to i │ │ │ │ +0000d020: 6e63 6c75 6465 2075 7365 722d 6465 6669 nclude user-defi │ │ │ │ +0000d030: 6e65 6420 7374 796c 6520 6465 6669 6e69 ned style defini │ │ │ │ +0000d040: 7469 6f6e 7320 696e 0ae2 8098 736b 6574 tions in....sket │ │ │ │ +0000d050: 6368 e280 9920 636f 6465 2061 7320 e280 ch... code as .. │ │ │ │ +0000d060: 9873 7065 6369 616c e280 9973 2077 6974 .special...s wit │ │ │ │ +0000d070: 6820 6f70 7469 6f6e 20e2 8098 5b6c 6179 h option ...[lay │ │ │ │ +0000d080: 3d75 6e64 6572 5de2 8099 2074 6f20 656e =under]... to en │ │ │ │ +0000d090: 7375 7265 2074 6861 7420 7468 650a 7374 sure that the.st │ │ │ │ +0000d0a0: 796c 6573 2061 7265 2065 6d69 7474 6564 yles are emitted │ │ │ │ +0000d0b0: 2066 6972 7374 2069 6e20 7468 6520 6f75 first in the ou │ │ │ │ +0000d0c0: 7470 7574 2c20 6265 666f 7265 2061 6e79 tput, before any │ │ │ │ +0000d0d0: 2075 7365 7320 6f66 2074 6865 2073 7479 uses of the sty │ │ │ │ +0000d0e0: 6c65 0a6e 616d 6573 2e20 2028 3129 2020 le.names. (1) │ │ │ │ +0000d0f0: 466f 7220 6578 616d 706c 652c 0a20 2073 For example,. s │ │ │ │ +0000d100: 7065 6369 616c 7c5c 7469 6b7a 7374 796c pecial|\tikzstyl │ │ │ │ +0000d110: 657b 6d79 706f 6c79 676f 6e73 7479 6c65 e{mypolygonstyle │ │ │ │ +0000d120: 7d20 3d20 5b66 696c 6c3d 626c 7565 2132 } = [fill=blue!2 │ │ │ │ +0000d130: 302c 6669 6c6c 206f 7061 6369 7479 3d30 0,fill opacity=0 │ │ │ │ +0000d140: 2e38 5d7c 5b6c 6179 3d75 6e64 6572 5d0a .8]|[lay=under]. │ │ │ │ +0000d150: 2020 7370 6563 6961 6c7c 5c74 696b 7a73 special|\tikzs │ │ │ │ +0000d160: 7479 6c65 7b6d 796c 696e 6573 7479 6c65 tyle{mylinestyle │ │ │ │ +0000d170: 7d20 3d20 5b72 6564 2132 302c 6461 7368 } = [red!20,dash │ │ │ │ +0000d180: 6564 5d7c 5b6c 6179 3d75 6e64 6572 5d0a ed]|[lay=under]. │ │ │ │ +0000d190: 5468 6520 6175 7468 6f72 2069 7320 7265 The author is re │ │ │ │ +0000d1a0: 7370 6f6e 7369 626c 6520 666f 7220 7573 sponsible for us │ │ │ │ +0000d1b0: 696e 6720 7468 6520 6b65 792c 20e2 8098 ing the key, ... │ │ │ │ +0000d1c0: 6c69 6e65 2073 7479 6c65 e280 9920 6f72 line style... or │ │ │ │ +0000d1d0: 20e2 8098 6669 6c6c 0a73 7479 6c65 e280 ...fill.style.. │ │ │ │ +0000d1e0: 992c 2074 6861 7420 6d61 7463 6865 7320 ., that matches │ │ │ │ +0000d1f0: 7468 6520 636f 6e74 656e 7420 6f66 2074 the content of t │ │ │ │ +0000d200: 6865 2073 7479 6c65 2064 6566 696e 6974 he style definit │ │ │ │ +0000d210: 696f 6e2e 0a0a 2020 202d 2d2d 2d2d 2d2d ion... ------- │ │ │ │ +0000d220: 2d2d 2d20 466f 6f74 6e6f 7465 7320 2d2d --- Footnotes -- │ │ │ │ +0000d230: 2d2d 2d2d 2d2d 2d2d 0a0a 2020 2028 3129 --------.. (1) │ │ │ │ +0000d240: 2054 6869 7320 636c 6576 6572 2074 7269 This clever tri │ │ │ │ +0000d250: 636b 2069 7320 6475 6520 746f 204b 6a65 ck is due to Kje │ │ │ │ +0000d260: 6c6c 204d 6167 6e65 2046 6175 736b 652e ll Magne Fauske. │ │ │ │ +0000d270: 0a0a 1f0a 4669 6c65 3a20 736b 6574 6368 ....File: sketch │ │ │ │ +0000d280: 2e69 6e66 6f2c 2020 4e6f 6465 3a20 5472 .info, Node: Tr │ │ │ │ +0000d290: 616e 7370 6172 656e 6379 2c20 204e 6578 ansparency, Nex │ │ │ │ +0000d2a0: 743a 2049 6e74 6572 6e61 6c20 6f70 7469 t: Internal opti │ │ │ │ +0000d2b0: 6f6e 732c 2020 5072 6576 3a20 5469 6b5a ons, Prev: TikZ │ │ │ │ +0000d2c0: 2f50 4746 2075 7365 722d 6465 6669 6e65 /PGF user-define │ │ │ │ +0000d2d0: 6420 7374 796c 6573 2c20 2055 703a 204f d styles, Up: O │ │ │ │ +0000d2e0: 7074 696f 6e73 0a0a 332e 312e 352e 3520 ptions..3.1.5.5 │ │ │ │ +0000d2f0: 5472 616e 7370 6172 656e 6379 0a2e 2e2e Transparency.... │ │ │ │ +0000d300: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e ................ │ │ │ │ +0000d310: 2e0a 0a42 6f74 6820 e280 9850 5354 7269 ...Both ...PSTri │ │ │ │ +0000d320: 636b 73e2 8099 2061 6e64 20e2 8098 5469 cks... and ...Ti │ │ │ │ +0000d330: 6b5a 2f50 4746 e280 9920 7375 7070 6f72 kZ/PGF... suppor │ │ │ │ +0000d340: 7420 706f 6c79 676f 6e20 6f70 7469 6f6e t polygon option │ │ │ │ +0000d350: 7320 7468 6174 2068 6176 6520 7468 650a s that have the. │ │ │ │ +0000d360: 6566 6665 6374 206f 6620 6d61 6b69 6e67 effect of making │ │ │ │ +0000d370: 2074 6865 2070 6f6c 7967 6f6e 2061 7070 the polygon app │ │ │ │ +0000d380: 6561 7220 7472 616e 7370 6172 656e 742e ear transparent. │ │ │ │ +0000d390: 2020 466f 7220 e280 9850 5354 7269 636b For ...PSTrick │ │ │ │ +0000d3a0: 73e2 8099 2c0a 6b65 7977 6f72 6420 e280 s...,.keyword .. │ │ │ │ +0000d3b0: 9874 7261 6e73 7061 6c70 6861 e280 9920 .transpalpha... │ │ │ │ +0000d3c0: 7761 7320 7573 6564 2064 7572 696e 6720 was used during │ │ │ │ +0000d3d0: 696e 6974 6961 6c20 6465 7665 6c6f 706d initial developm │ │ │ │ +0000d3e0: 656e 7420 6f66 0a74 7261 6e73 7061 7265 ent of.transpare │ │ │ │ +0000d3f0: 6e63 7920 6665 6174 7572 6573 2c20 616e ncy features, an │ │ │ │ +0000d400: 6420 e280 986f 7061 6369 7479 e280 9920 d ...opacity... │ │ │ │ +0000d410: 7761 7320 6164 6f70 7465 6420 6c61 7465 was adopted late │ │ │ │ +0000d420: 722e 2020 e280 9853 6b65 7463 68e2 8099 r. ...Sketch... │ │ │ │ +0000d430: 2068 6f6e 6f72 730a 626f 7468 2e20 20e2 honors.both. . │ │ │ │ +0000d440: 8098 5469 6b5a 2f50 4746 e280 9920 7573 ..TikZ/PGF... us │ │ │ │ +0000d450: 6573 20e2 8098 6f70 6163 6974 79e2 8099 es ...opacity... │ │ │ │ +0000d460: 206f 6e6c 792e 2020 5768 656e 2074 7261 only. When tra │ │ │ │ +0000d470: 6e73 7061 7265 6e74 2070 6f6c 7967 6f6e nsparent polygon │ │ │ │ +0000d480: 7320 6172 6520 696e 0a74 6865 2066 6f72 s are in.the for │ │ │ │ +0000d490: 6567 726f 756e 642c 206f 626a 6563 7473 eground, objects │ │ │ │ +0000d4a0: 2062 6568 696e 6420 7468 656d 2028 6472 behind them (dr │ │ │ │ +0000d4b0: 6177 6e20 6561 726c 6965 7229 2061 7265 awn earlier) are │ │ │ │ +0000d4c0: 2076 6973 6962 6c65 2077 6974 680a 636f visible with.co │ │ │ │ +0000d4d0: 6c6f 7220 7375 6264 7565 6420 616e 6420 lor subdued and │ │ │ │ +0000d4e0: 7469 6e74 6564 2e20 2054 6865 2068 6964 tinted. The hid │ │ │ │ +0000d4f0: 6465 6e20 7375 7266 6163 6520 616c 676f den surface algo │ │ │ │ +0000d500: 7269 7468 6d20 6f66 20e2 8098 736b 6574 rithm of ...sket │ │ │ │ +0000d510: 6368 e280 990a 776f 726b 7320 7765 6c6c ch....works well │ │ │ │ +0000d520: 2077 6974 6820 7375 6368 2074 7261 6e73 with such trans │ │ │ │ +0000d530: 7061 7265 6e74 2070 6f6c 7967 6f6e 732e parent polygons. │ │ │ │ +0000d540: 0a0a 2020 204e 6f74 6520 7468 6174 2063 .. Note that c │ │ │ │ +0000d550: 756c 6c3d 6661 6c73 6520 6d75 7374 2062 ull=false must b │ │ │ │ +0000d560: 6520 7573 6564 2066 6f72 2072 6561 722d e used for rear- │ │ │ │ +0000d570: 6661 6369 6e67 2070 6f6c 7967 6f6e 7320 facing polygons │ │ │ │ +0000d580: 746f 2062 650a 7669 7369 626c 6520 7768 to be.visible wh │ │ │ │ +0000d590: 656e 2070 6f73 6974 696f 6e65 6420 6265 en positioned be │ │ │ │ +0000d5a0: 6869 6e64 206f 7468 6572 2074 7261 6e73 hind other trans │ │ │ │ +0000d5b0: 7061 7265 6e74 2073 7572 6661 6365 732e parent surfaces. │ │ │ │ +0000d5c0: 0a0a 1f0a 4669 6c65 3a20 736b 6574 6368 ....File: sketch │ │ │ │ +0000d5d0: 2e69 6e66 6f2c 2020 4e6f 6465 3a20 496e .info, Node: In │ │ │ │ +0000d5e0: 7465 726e 616c 206f 7074 696f 6e73 2c20 ternal options, │ │ │ │ +0000d5f0: 2050 7265 763a 2054 7261 6e73 7061 7265 Prev: Transpare │ │ │ │ +0000d600: 6e63 792c 2020 5570 3a20 4f70 7469 6f6e ncy, Up: Option │ │ │ │ +0000d610: 730a 0a33 2e31 2e35 2e36 2049 6e74 6572 s..3.1.5.6 Inter │ │ │ │ +0000d620: 6e61 6c20 6f70 7469 6f6e 730a 2e2e 2e2e nal options..... │ │ │ │ +0000d630: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e ................ │ │ │ │ +0000d640: 2e2e 2e2e 0a0a 5468 6572 6520 6172 6520 ......There are │ │ │ │ +0000d650: 616c 736f 205f 696e 7465 726e 616c 5f20 also _internal_ │ │ │ │ +0000d660: 6f70 7469 6f6e 7320 7573 6564 206f 6e6c options used onl │ │ │ │ +0000d670: 7920 6279 20e2 8098 736b 6574 6368 e280 y by ...sketch.. │ │ │ │ +0000d680: 9920 616e 6420 6e6f 7420 7061 7373 6564 . and not passed │ │ │ │ +0000d690: 0a6f 6e20 746f 20e2 8098 5053 5472 6963 .on to ...PSTric │ │ │ │ +0000d6a0: 6b73 e280 992e 2020 5468 6573 6520 6172 ks.... These ar │ │ │ │ +0000d6b0: 6520 7375 6d6d 6172 697a 6564 2069 6e20 e summarized in │ │ │ │ +0000d6c0: 7468 6520 666f 6c6c 6f77 696e 6720 7461 the following ta │ │ │ │ +0000d6d0: 626c 652e 0a4b 6579 2020 2020 2020 2050 ble..Key P │ │ │ │ +0000d6e0: 6f73 7369 626c 6520 7661 6c75 6573 2020 ossible values │ │ │ │ +0000d6f0: 2020 2020 2020 2044 6573 6372 6970 7469 Descripti │ │ │ │ +0000d700: 6f6e 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d on.------------- │ │ │ │ 0000d710: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ 0000d720: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ 0000d730: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ 0000d740: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ 0000d750: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ -0000d760: 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a e280 9863 -----------....c │ │ │ │ -0000d770: 756c 6ce2 8099 2020 2020 e280 9874 7275 ull... ...tru │ │ │ │ -0000d780: 65e2 8099 2c20 e280 9866 616c 7365 e280 e..., ...false.. │ │ │ │ -0000d790: 9920 2020 2020 2020 2020 5475 726e 2063 . Turn c │ │ │ │ -0000d7a0: 756c 6c69 6e67 206f 6620 6261 636b 6661 ulling of backfa │ │ │ │ -0000d7b0: 6365 7320 6f6e 2061 6e64 206f 6666 2072 ces on and off r │ │ │ │ -0000d7c0: 6573 7065 6374 6976 656c 7920 666f 7220 espectively for │ │ │ │ -0000d7d0: 7468 6973 0a20 2020 2020 2020 2020 2020 this. │ │ │ │ -0000d7e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0000d7f0: 2020 2020 2020 206f 626a 6563 742e 2020 object. │ │ │ │ -0000d800: 5468 6520 6465 6661 756c 7420 7661 6c75 The default valu │ │ │ │ -0000d810: 6520 6973 20e2 8098 7472 7565 e280 992e e is ...true.... │ │ │ │ -0000d820: 0ae2 8098 6c61 79e2 8099 2020 2020 20e2 ....lay... . │ │ │ │ -0000d830: 8098 6f76 6572 e280 992c 20e2 8098 696e ..over..., ...in │ │ │ │ -0000d840: e280 992c 20e2 8098 756e 6465 72e2 8099 ..., ...under... │ │ │ │ -0000d850: 2020 2046 6f72 6365 2074 6869 7320 6f62 Force this ob │ │ │ │ -0000d860: 6a65 6374 2074 6f20 6265 20e2 8098 756e ject to be ...un │ │ │ │ -0000d870: 6465 72e2 8099 206f 7220 e280 986f 7665 der... or ...ove │ │ │ │ -0000d880: 72e2 8099 2061 6c6c 206f 7468 6572 206f r... all other o │ │ │ │ -0000d890: 626a 6563 7473 0a20 2020 2020 2020 2020 bjects. │ │ │ │ +0000d760: 2d2d 2d0a e280 9863 756c 6ce2 8099 2020 ---....cull... │ │ │ │ +0000d770: 2020 e280 9874 7275 65e2 8099 2c20 e280 ...true..., .. │ │ │ │ +0000d780: 9866 616c 7365 e280 9920 2020 2020 2020 .false... │ │ │ │ +0000d790: 2020 5475 726e 2063 756c 6c69 6e67 206f Turn culling o │ │ │ │ +0000d7a0: 6620 6261 636b 6661 6365 7320 6f6e 2061 f backfaces on a │ │ │ │ +0000d7b0: 6e64 206f 6666 2072 6573 7065 6374 6976 nd off respectiv │ │ │ │ +0000d7c0: 656c 7920 666f 7220 7468 6973 0a20 2020 ely for this. │ │ │ │ +0000d7d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0000d7e0: 2020 2020 2020 2020 2020 2020 2020 206f o │ │ │ │ +0000d7f0: 626a 6563 742e 2020 5468 6520 6465 6661 bject. The defa │ │ │ │ +0000d800: 756c 7420 7661 6c75 6520 6973 20e2 8098 ult value is ... │ │ │ │ +0000d810: 7472 7565 e280 992e 0ae2 8098 6c61 79e2 true........lay. │ │ │ │ +0000d820: 8099 2020 2020 20e2 8098 6f76 6572 e280 .. ...over.. │ │ │ │ +0000d830: 992c 20e2 8098 696e e280 992c 20e2 8098 ., ...in..., ... │ │ │ │ +0000d840: 756e 6465 72e2 8099 2020 2046 6f72 6365 under... Force │ │ │ │ +0000d850: 2074 6869 7320 6f62 6a65 6374 2074 6f20 this object to │ │ │ │ +0000d860: 6265 20e2 8098 756e 6465 72e2 8099 206f be ...under... o │ │ │ │ +0000d870: 7220 e280 986f 7665 72e2 8099 2061 6c6c r ...over... all │ │ │ │ +0000d880: 206f 7468 6572 206f 626a 6563 7473 0a20 other objects. │ │ │ │ +0000d890: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0000d8a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0000d8b0: 2020 2020 2020 2020 2069 6e20 7468 6520 in the │ │ │ │ -0000d8c0: 6465 7074 6820 736f 7274 206f 7264 6572 depth sort order │ │ │ │ -0000d8d0: 2063 7265 6174 6564 2062 7920 7468 6520 created by the │ │ │ │ -0000d8e0: 6869 6464 656e 2073 7572 6661 6365 0a20 hidden surface. │ │ │ │ +0000d8b0: 2069 6e20 7468 6520 6465 7074 6820 736f in the depth so │ │ │ │ +0000d8c0: 7274 206f 7264 6572 2063 7265 6174 6564 rt order created │ │ │ │ +0000d8d0: 2062 7920 7468 6520 6869 6464 656e 2073 by the hidden s │ │ │ │ +0000d8e0: 7572 6661 6365 0a20 2020 2020 2020 2020 urface. │ │ │ │ 0000d8f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0000d900: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0000d910: 2061 6c67 6f72 6974 686d 2e20 2054 6865 algorithm. The │ │ │ │ -0000d920: 2064 6566 6175 6c74 2076 616c 7565 20e2 default value . │ │ │ │ -0000d930: 8098 6f76 6572 e280 9920 6775 6172 616e ..over... guaran │ │ │ │ -0000d940: 7465 6573 2074 6861 7420 6f75 7470 7574 tees that output │ │ │ │ -0000d950: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ -0000d960: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0000d970: 2020 2064 7565 2074 6f20 7468 6520 e280 due to the .. │ │ │ │ -0000d980: 9873 7065 6369 616c e280 9920 7769 6c6c .special... will │ │ │ │ -0000d990: 2062 6520 7669 7369 626c 652e 0ae2 8098 be visible..... │ │ │ │ -0000d9a0: 7370 6c69 74e2 8099 2020 20e2 8098 7472 split... ...tr │ │ │ │ -0000d9b0: 7565 e280 992c 20e2 8098 6661 6c73 65e2 ue..., ...false. │ │ │ │ -0000d9c0: 8099 2020 2020 2020 2020 2054 7572 6e20 .. Turn │ │ │ │ -0000d9d0: 7370 6c69 7474 696e 6720 6f66 2073 7765 splitting of swe │ │ │ │ -0000d9e0: 6570 2d67 656e 6572 6174 6564 2062 6f64 ep-generated bod │ │ │ │ -0000d9f0: 7920 706f 6c79 676f 6e73 206f 6e20 616e y polygons on an │ │ │ │ -0000da00: 6420 6f66 660a 2020 2020 2020 2020 2020 d off. │ │ │ │ +0000d900: 2020 2020 2020 2020 2061 6c67 6f72 6974 algorit │ │ │ │ +0000d910: 686d 2e20 2054 6865 2064 6566 6175 6c74 hm. The default │ │ │ │ +0000d920: 2076 616c 7565 20e2 8098 6f76 6572 e280 value ...over.. │ │ │ │ +0000d930: 9920 6775 6172 616e 7465 6573 2074 6861 . guarantees tha │ │ │ │ +0000d940: 7420 6f75 7470 7574 0a20 2020 2020 2020 t output. │ │ │ │ +0000d950: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0000d960: 2020 2020 2020 2020 2020 2064 7565 2074 due t │ │ │ │ +0000d970: 6f20 7468 6520 e280 9873 7065 6369 616c o the ...special │ │ │ │ +0000d980: e280 9920 7769 6c6c 2062 6520 7669 7369 ... will be visi │ │ │ │ +0000d990: 626c 652e 0ae2 8098 7370 6c69 74e2 8099 ble.....split... │ │ │ │ +0000d9a0: 2020 20e2 8098 7472 7565 e280 992c 20e2 ...true..., . │ │ │ │ +0000d9b0: 8098 6661 6c73 65e2 8099 2020 2020 2020 ..false... │ │ │ │ +0000d9c0: 2020 2054 7572 6e20 7370 6c69 7474 696e Turn splittin │ │ │ │ +0000d9d0: 6720 6f66 2073 7765 6570 2d67 656e 6572 g of sweep-gener │ │ │ │ +0000d9e0: 6174 6564 2062 6f64 7920 706f 6c79 676f ated body polygo │ │ │ │ +0000d9f0: 6e73 206f 6e20 616e 6420 6f66 660a 2020 ns on and off. │ │ │ │ +0000da00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0000da10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0000da20: 2020 2020 2020 2020 7265 7370 6563 7469 respecti │ │ │ │ -0000da30: 7665 6c79 2e20 202a 4e6f 7465 2053 7765 vely. *Note Swe │ │ │ │ -0000da40: 6570 733a 3a2e 2020 5468 6520 6465 6661 eps::. The defa │ │ │ │ -0000da50: 756c 7420 7661 6c75 6520 e280 9874 7275 ult value ...tru │ │ │ │ -0000da60: 65e2 8099 0a20 2020 2020 2020 2020 2020 e.... │ │ │ │ -0000da70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0000da80: 2020 2020 2020 2063 6175 7365 7320 2277 causes "w │ │ │ │ -0000da90: 6172 7065 6422 2070 6f6c 7967 6f6e 7320 arped" polygons │ │ │ │ -0000daa0: 746f 2062 6520 7370 6c69 7420 696e 746f to be split into │ │ │ │ -0000dab0: 2074 7269 616e 676c 6573 2c20 7768 6963 triangles, whic │ │ │ │ -0000dac0: 680a 2020 2020 2020 2020 2020 2020 2020 h. │ │ │ │ -0000dad0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0000dae0: 2020 2020 6176 6f69 6473 206d 6973 7461 avoids mista │ │ │ │ -0000daf0: 6b65 7320 6279 2074 6865 2068 6964 6465 kes by the hidde │ │ │ │ -0000db00: 6e20 7375 7266 6163 6520 616c 676f 7269 n surface algori │ │ │ │ -0000db10: 7468 6d2e 0a0a 332e 312e 3620 506f 696e thm...3.1.6 Poin │ │ │ │ -0000db20: 7420 6c69 7374 730a 2d2d 2d2d 2d2d 2d2d t lists.-------- │ │ │ │ -0000db30: 2d2d 2d2d 2d2d 2d2d 2d0a 0a2a 5379 6e74 ---------..*Synt │ │ │ │ -0000db40: 6178 3a2a 0a20 2020 2020 2858 312c 5931 ax:*. (X1,Y1 │ │ │ │ -0000db50: 2c5a 3129 2858 322c 5932 2c5a 3229 2e2e ,Z1)(X2,Y2,Z2).. │ │ │ │ -0000db60: 2e0a 4120 7365 7175 656e 6365 206f 6620 ..A sequence of │ │ │ │ -0000db70: 6f6e 6520 6f72 206d 6f72 6520 706f 696e one or more poin │ │ │ │ -0000db80: 7473 206d 616b 6573 2061 2070 6f69 6e74 ts makes a point │ │ │ │ -0000db90: 206c 6973 742c 2061 2066 6561 7475 7265 list, a feature │ │ │ │ -0000dba0: 2063 6f6d 6d6f 6e20 746f 0a61 6c6c 2064 common to.all d │ │ │ │ -0000dbb0: 7261 7761 626c 6573 2e20 2045 6163 6820 rawables. Each │ │ │ │ -0000dbc0: 6f66 2074 6865 2070 6f69 6e74 2063 6f6d of the point com │ │ │ │ -0000dbd0: 706f 6e65 6e74 7320 6973 2061 2073 6361 ponents is a sca │ │ │ │ -0000dbe0: 6c61 7220 6172 6974 686d 6574 6963 0a65 lar arithmetic.e │ │ │ │ -0000dbf0: 7870 7265 7373 696f 6e2e 2020 416e 7920 xpression. Any │ │ │ │ -0000dc00: 706f 696e 7420 6d61 7920 6861 7665 2074 point may have t │ │ │ │ -0000dc10: 6865 207a 2d63 6f6d 706f 6e65 6e74 206f he z-component o │ │ │ │ -0000dc20: 6d69 7474 6564 3b20 6974 2077 696c 6c20 mitted; it will │ │ │ │ -0000dc30: 6465 6661 756c 740a 746f 207a 3d30 2e0a default.to z=0.. │ │ │ │ -0000dc40: 0a2a 204d 656e 753a 0a0a 2a20 4472 6177 .* Menu:..* Draw │ │ │ │ -0000dc50: 6162 6c65 733a 3a20 2020 2020 2020 2020 ables:: │ │ │ │ -0000dc60: 2020 2020 2020 2020 2020 5468 696e 6773 Things │ │ │ │ -0000dc70: 2074 6861 7420 6172 6520 6472 6177 6e2e that are drawn. │ │ │ │ -0000dc80: 0a2a 2044 6566 696e 6974 696f 6e73 3a3a .* Definitions:: │ │ │ │ -0000dc90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0000dca0: 2054 6869 6e67 7320 7769 7468 206e 616d Things with nam │ │ │ │ -0000dcb0: 6573 2e0a 0a1f 0a46 696c 653a 2073 6b65 es.....File: ske │ │ │ │ -0000dcc0: 7463 682e 696e 666f 2c20 204e 6f64 653a tch.info, Node: │ │ │ │ -0000dcd0: 2044 7261 7761 626c 6573 2c20 204e 6578 Drawables, Nex │ │ │ │ -0000dce0: 743a 2044 6566 696e 6974 696f 6e73 2c20 t: Definitions, │ │ │ │ -0000dcf0: 2050 7265 763a 204c 616e 6775 6167 6520 Prev: Language │ │ │ │ -0000dd00: 6261 7369 6373 2c20 2055 703a 2049 6e70 basics, Up: Inp │ │ │ │ -0000dd10: 7574 206c 616e 6775 6167 650a 0a33 2e32 ut language..3.2 │ │ │ │ -0000dd20: 2044 7261 7761 626c 6573 0a3d 3d3d 3d3d Drawables.===== │ │ │ │ -0000dd30: 3d3d 3d3d 3d3d 3d3d 0a0a 4472 6177 6162 ========..Drawab │ │ │ │ -0000dd40: 6c65 7320 6172 6520 7369 6d70 6c79 20e2 les are simply . │ │ │ │ -0000dd50: 8098 736b 6574 6368 e280 9920 6f62 6a65 ..sketch... obje │ │ │ │ -0000dd60: 6374 7320 7468 6174 206d 6967 6874 2061 cts that might a │ │ │ │ -0000dd70: 7070 6561 7220 696e 2074 6865 2064 7261 ppear in the dra │ │ │ │ -0000dd80: 7769 6e67 2e0a 5468 6579 2069 6e63 6c75 wing..They inclu │ │ │ │ -0000dd90: 6465 2064 6f74 732c 2070 6f6c 796c 696e de dots, polylin │ │ │ │ -0000dda0: 6573 2c20 6375 7276 6573 2c20 706f 6c79 es, curves, poly │ │ │ │ -0000ddb0: 676f 6e73 2c20 616e 6420 6d6f 7265 2063 gons, and more c │ │ │ │ -0000ddc0: 6f6d 706c 6578 206f 626a 6563 7473 0a74 omplex objects.t │ │ │ │ -0000ddd0: 6861 7420 6172 6520 6275 696c 7420 7570 hat are built up │ │ │ │ -0000dde0: 2066 726f 6d20 7369 6d70 6c65 7220 6f6e from simpler on │ │ │ │ -0000ddf0: 6573 2069 6e20 7661 7269 6f75 7320 7761 es in various wa │ │ │ │ -0000de00: 7973 2e20 2046 696e 616c 6c79 2c20 e280 ys. Finally, .. │ │ │ │ -0000de10: 9c73 7065 6369 616c e280 9d0a 6f62 6a65 .special....obje │ │ │ │ -0000de20: 6374 7320 6172 6520 7468 6f73 6520 636f cts are those co │ │ │ │ -0000de30: 6d70 6f73 6564 206f 6620 4c61 5465 5820 mposed of LaTeX │ │ │ │ -0000de40: 6f72 20e2 8098 5053 5472 6963 6b73 e280 or ...PSTricks.. │ │ │ │ -0000de50: 9920 636f 6465 2c20 7065 7268 6170 730a . code, perhaps. │ │ │ │ -0000de60: 696e 636c 7564 696e 6720 636f 6f72 6469 including coordi │ │ │ │ -0000de70: 6e61 7465 7320 616e 6420 616e 676c 6573 nates and angles │ │ │ │ -0000de80: 2063 6f6d 7075 7465 6420 6279 20e2 8098 computed by ... │ │ │ │ -0000de90: 736b 6574 6368 e280 992e 0a0a 2a20 4d65 sketch......* Me │ │ │ │ -0000dea0: 6e75 3a0a 0a2a 2044 6f74 733a 3a20 2020 nu:..* Dots:: │ │ │ │ -0000deb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0000dec0: 2020 2020 2044 7261 7720 646f 7473 2e0a Draw dots.. │ │ │ │ -0000ded0: 2a20 4c69 6e65 733a 3a20 2020 2020 2020 * Lines:: │ │ │ │ -0000dee0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0000def0: 4472 6177 2070 6f6c 796c 696e 6573 2e0a Draw polylines.. │ │ │ │ -0000df00: 2a20 4375 7276 6573 3a3a 2020 2020 2020 * Curves:: │ │ │ │ -0000df10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0000df20: 4472 6177 2063 7572 7665 732e 0a2a 2050 Draw curves..* P │ │ │ │ -0000df30: 6f6c 7967 6f6e 733a 3a20 2020 2020 2020 olygons:: │ │ │ │ -0000df40: 2020 2020 2020 2020 2020 2020 2044 7261 Dra │ │ │ │ -0000df50: 7720 706f 6c79 676f 6e73 2e0a 2a20 5370 w polygons..* Sp │ │ │ │ -0000df60: 6563 6961 6c73 3a3a 2020 2020 2020 2020 ecials:: │ │ │ │ -0000df70: 2020 2020 2020 2020 2020 2020 456d 6265 Embe │ │ │ │ -0000df80: 6420 7261 7720 4c61 5465 5820 616e 6420 d raw LaTeX and │ │ │ │ -0000df90: e280 9850 5354 7269 636b 73e2 8099 2e0a ...PSTricks..... │ │ │ │ -0000dfa0: 2a20 5377 6565 7073 3a3a 2020 2020 2020 * Sweeps:: │ │ │ │ -0000dfb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0000dfc0: 4472 6177 2073 7765 6570 7320 6f66 2064 Draw sweeps of d │ │ │ │ -0000dfd0: 6f74 7320 616e 6420 706f 6c79 6c69 6e65 ots and polyline │ │ │ │ -0000dfe0: 732e 0a2a 2042 6c6f 636b 733a 3a20 2020 s..* Blocks:: │ │ │ │ -0000dff0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0000e000: 2020 2047 726f 7570 206f 7468 6572 2064 Group other d │ │ │ │ -0000e010: 7261 7761 626c 6573 2e0a 2a20 5265 7065 rawables..* Repe │ │ │ │ -0000e020: 6174 733a 3a20 2020 2020 2020 2020 2020 ats:: │ │ │ │ -0000e030: 2020 2020 2020 2020 2020 4472 6177 2074 Draw t │ │ │ │ -0000e040: 7261 6e73 666f 726d 6564 2063 6f70 6965 ransformed copie │ │ │ │ -0000e050: 7320 6f66 206f 626a 6563 7473 2e0a 2a20 s of objects..* │ │ │ │ -0000e060: 5075 7473 3a3a 2020 2020 2020 2020 2020 Puts:: │ │ │ │ -0000e070: 2020 2020 2020 2020 2020 2020 2020 4472 Dr │ │ │ │ -0000e080: 6177 206f 6e65 206f 626a 6563 7420 7472 aw one object tr │ │ │ │ -0000e090: 616e 7366 6f72 6d65 642e 0a0a 1f0a 4669 ansformed.....Fi │ │ │ │ -0000e0a0: 6c65 3a20 736b 6574 6368 2e69 6e66 6f2c le: sketch.info, │ │ │ │ -0000e0b0: 2020 4e6f 6465 3a20 446f 7473 2c20 204e Node: Dots, N │ │ │ │ -0000e0c0: 6578 743a 204c 696e 6573 2c20 2050 7265 ext: Lines, Pre │ │ │ │ -0000e0d0: 763a 2044 7261 7761 626c 6573 2c20 2055 v: Drawables, U │ │ │ │ -0000e0e0: 703a 2044 7261 7761 626c 6573 0a0a 332e p: Drawables..3. │ │ │ │ -0000e0f0: 322e 3120 446f 7473 0a2d 2d2d 2d2d 2d2d 2.1 Dots.------- │ │ │ │ -0000e100: 2d2d 2d0a 0a2a 5379 6e74 6178 3a2a 0a20 ---..*Syntax:*. │ │ │ │ -0000e110: 2020 2020 646f 7473 5b4f 5054 494f 4e53 dots[OPTIONS │ │ │ │ -0000e120: 5d20 504f 494e 545f 4c49 5354 0a54 6869 ] POINT_LIST.Thi │ │ │ │ -0000e130: 7320 636f 6d6d 616e 6420 6973 2074 6865 s command is the │ │ │ │ -0000e140: 2074 6872 6565 2d64 696d 656e 7369 6f6e three-dimension │ │ │ │ -0000e150: 616c 2065 7175 6976 616c 656e 7420 6f66 al equivalent of │ │ │ │ -0000e160: 2074 6865 20e2 8098 5053 5472 6963 6b73 the ...PSTricks │ │ │ │ -0000e170: e280 990a 636f 6d6d 616e 6420 e280 985c ....command ...\ │ │ │ │ -0000e180: 7073 646f 7473 e280 992e 0a0a 1f0a 4669 psdots........Fi │ │ │ │ -0000e190: 6c65 3a20 736b 6574 6368 2e69 6e66 6f2c le: sketch.info, │ │ │ │ -0000e1a0: 2020 4e6f 6465 3a20 4c69 6e65 732c 2020 Node: Lines, │ │ │ │ -0000e1b0: 4e65 7874 3a20 4375 7276 6573 2c20 2050 Next: Curves, P │ │ │ │ -0000e1c0: 7265 763a 2044 6f74 732c 2020 5570 3a20 rev: Dots, Up: │ │ │ │ -0000e1d0: 4472 6177 6162 6c65 730a 0a33 2e32 2e32 Drawables..3.2.2 │ │ │ │ -0000e1e0: 204c 696e 6573 0a2d 2d2d 2d2d 2d2d 2d2d Lines.--------- │ │ │ │ -0000e1f0: 2d2d 0a0a 2a53 796e 7461 783a 2a0a 2020 --..*Syntax:*. │ │ │ │ -0000e200: 2020 206c 696e 655b 4f50 5449 4f4e 535d line[OPTIONS] │ │ │ │ -0000e210: 2050 4f49 4e54 5f4c 4953 540a 5468 6973 POINT_LIST.This │ │ │ │ -0000e220: 2063 6f6d 6d61 6e64 2069 7320 7468 6520 command is the │ │ │ │ -0000e230: 7468 7265 652d 6469 6d65 6e73 696f 6e61 three-dimensiona │ │ │ │ -0000e240: 6c20 6571 7569 7661 6c65 6e74 206f 6620 l equivalent of │ │ │ │ -0000e250: 7468 6520 e280 9850 5354 7269 636b 73e2 the ...PSTricks. │ │ │ │ -0000e260: 8099 0a63 6f6d 6d61 6e64 20e2 8098 5c70 ...command ...\p │ │ │ │ -0000e270: 736c 696e 65e2 8099 2e0a 0a1f 0a46 696c sline........Fil │ │ │ │ -0000e280: 653a 2073 6b65 7463 682e 696e 666f 2c20 e: sketch.info, │ │ │ │ -0000e290: 204e 6f64 653a 2043 7572 7665 732c 2020 Node: Curves, │ │ │ │ -0000e2a0: 4e65 7874 3a20 506f 6c79 676f 6e73 2c20 Next: Polygons, │ │ │ │ -0000e2b0: 2050 7265 763a 204c 696e 6573 2c20 2055 Prev: Lines, U │ │ │ │ -0000e2c0: 703a 2044 7261 7761 626c 6573 0a0a 332e p: Drawables..3. │ │ │ │ -0000e2d0: 322e 3320 4375 7276 6573 0a2d 2d2d 2d2d 2.3 Curves.----- │ │ │ │ -0000e2e0: 2d2d 2d2d 2d2d 2d0a 0a2a 5379 6e74 6178 -------..*Syntax │ │ │ │ -0000e2f0: 3a2a 0a20 2020 2020 6375 7276 655b 4f50 :*. curve[OP │ │ │ │ -0000e300: 5449 4f4e 535d 2050 4f49 4e54 5f4c 4953 TIONS] POINT_LIS │ │ │ │ -0000e310: 540a 5468 6973 2063 6f6d 6d61 6e64 2069 T.This command i │ │ │ │ -0000e320: 7320 7468 6520 7468 7265 652d 6469 6d65 s the three-dime │ │ │ │ -0000e330: 6e73 696f 6e61 6c20 6571 7569 7661 6c65 nsional equivale │ │ │ │ -0000e340: 6e74 206f 6620 7468 6520 e280 9850 5354 nt of the ...PST │ │ │ │ -0000e350: 7269 636b 73e2 8099 0a63 6f6d 6d61 6e64 ricks....command │ │ │ │ -0000e360: 20e2 8098 5c70 7363 7572 7665 e280 992e ...\pscurve.... │ │ │ │ -0000e370: 2020 4974 2069 7320 6e6f 7420 696d 706c It is not impl │ │ │ │ -0000e380: 656d 656e 7465 6420 696e 2074 6865 2063 emented in the c │ │ │ │ -0000e390: 7572 7265 6e74 2076 6572 7369 6f6e 206f urrent version o │ │ │ │ -0000e3a0: 660a e280 9873 6b65 7463 68e2 8099 2e0a f....sketch..... │ │ │ │ -0000e3b0: 0a1f 0a46 696c 653a 2073 6b65 7463 682e ...File: sketch. │ │ │ │ -0000e3c0: 696e 666f 2c20 204e 6f64 653a 2050 6f6c info, Node: Pol │ │ │ │ -0000e3d0: 7967 6f6e 732c 2020 4e65 7874 3a20 5370 ygons, Next: Sp │ │ │ │ -0000e3e0: 6563 6961 6c73 2c20 2050 7265 763a 2043 ecials, Prev: C │ │ │ │ -0000e3f0: 7572 7665 732c 2020 5570 3a20 4472 6177 urves, Up: Draw │ │ │ │ -0000e400: 6162 6c65 730a 0a33 2e32 2e34 2050 6f6c ables..3.2.4 Pol │ │ │ │ -0000e410: 7967 6f6e 730a 2d2d 2d2d 2d2d 2d2d 2d2d ygons.---------- │ │ │ │ -0000e420: 2d2d 2d2d 0a0a 2a53 796e 7461 783a 2a0a ----..*Syntax:*. │ │ │ │ -0000e430: 2020 2020 2070 6f6c 7967 6f6e 5b4f 5054 polygon[OPT │ │ │ │ -0000e440: 494f 4e53 5d20 504f 494e 545f 4c49 5354 IONS] POINT_LIST │ │ │ │ -0000e450: 0a54 6869 7320 636f 6d6d 616e 6420 6973 .This command is │ │ │ │ -0000e460: 2074 6865 2074 6872 6565 2d64 696d 656e the three-dimen │ │ │ │ -0000e470: 7369 6f6e 616c 2065 7175 6976 616c 656e sional equivalen │ │ │ │ -0000e480: 7420 6f66 2074 6865 20e2 8098 5053 5472 t of the ...PSTr │ │ │ │ -0000e490: 6963 6b73 e280 990a 636f 6d6d 616e 6420 icks....command │ │ │ │ -0000e4a0: e280 985c 7073 706f 6c79 676f 6ee2 8099 ...\pspolygon... │ │ │ │ -0000e4b0: 2e20 2054 6865 20e2 8098 736b 6574 6368 . The ...sketch │ │ │ │ -0000e4c0: e280 9920 6869 6464 656e 2073 7572 6661 ... hidden surfa │ │ │ │ -0000e4d0: 6365 2061 6c67 6f72 6974 686d 2061 7373 ce algorithm ass │ │ │ │ -0000e4e0: 756d 6573 0a74 6861 7420 706f 6c79 676f umes.that polygo │ │ │ │ -0000e4f0: 6e73 2061 7265 2063 6f6e 7665 7820 616e ns are convex an │ │ │ │ -0000e500: 6420 706c 616e 6172 2e20 2049 6e20 7072 d planar. In pr │ │ │ │ -0000e510: 6163 7469 6365 2c20 6472 6177 696e 6773 actice, drawings │ │ │ │ -0000e520: 206d 6179 2077 656c 6c0a 7475 726e 206f may well.turn o │ │ │ │ -0000e530: 7574 2063 6f72 7265 6374 6c79 2065 7665 ut correctly eve │ │ │ │ -0000e540: 6e20 6966 2074 6865 7365 2061 7373 756d n if these assum │ │ │ │ -0000e550: 7074 696f 6e73 2061 7265 2076 696f 6c61 ptions are viola │ │ │ │ -0000e560: 7465 642e 0a0a 1f0a 4669 6c65 3a20 736b ted.....File: sk │ │ │ │ -0000e570: 6574 6368 2e69 6e66 6f2c 2020 4e6f 6465 etch.info, Node │ │ │ │ -0000e580: 3a20 5370 6563 6961 6c73 2c20 204e 6578 : Specials, Nex │ │ │ │ -0000e590: 743a 2053 7765 6570 732c 2020 5072 6576 t: Sweeps, Prev │ │ │ │ -0000e5a0: 3a20 506f 6c79 676f 6e73 2c20 2055 703a : Polygons, Up: │ │ │ │ -0000e5b0: 2044 7261 7761 626c 6573 0a0a 332e 322e Drawables..3.2. │ │ │ │ -0000e5c0: 3520 5370 6563 6961 6c73 0a2d 2d2d 2d2d 5 Specials.----- │ │ │ │ -0000e5d0: 2d2d 2d2d 2d2d 2d2d 2d0a 0a2a 5379 6e74 ---------..*Synt │ │ │ │ -0000e5e0: 6178 3a2a 0a20 2020 2020 7370 6563 6961 ax:*. specia │ │ │ │ -0000e5f0: 6c20 2452 4157 5f54 4558 5424 5b4f 5054 l $RAW_TEXT$[OPT │ │ │ │ -0000e600: 494f 4e53 5d20 4152 475f 4c49 5354 0a48 IONS] ARG_LIST.H │ │ │ │ -0000e610: 6572 6520 e280 9824 e280 9920 6361 6e20 ere ...$... can │ │ │ │ -0000e620: 6265 2061 6e79 2063 6861 7261 6374 6572 be any character │ │ │ │ -0000e630: 2061 6e64 2069 7320 7573 6564 2074 6f20 and is used to │ │ │ │ -0000e640: 6465 6c69 6d69 7420 7468 6520 7374 6172 delimit the star │ │ │ │ -0000e650: 7420 616e 6420 656e 640a 6f66 2052 4157 t and end.of RAW │ │ │ │ -0000e660: 5f54 4558 542e 2020 5468 6520 636f 6d6d _TEXT. The comm │ │ │ │ -0000e670: 616e 6420 656d 6265 6473 2052 4157 5f54 and embeds RAW_T │ │ │ │ -0000e680: 4558 5420 696e 2074 6865 20e2 8098 736b EXT in the ...sk │ │ │ │ -0000e690: 6574 6368 e280 9920 6f75 7470 7574 2061 etch... output a │ │ │ │ -0000e6a0: 6674 6572 0a70 6572 666f 726d 696e 6720 fter.performing │ │ │ │ -0000e6b0: 7375 6273 7469 7475 7469 6f6e 7320 6173 substitutions as │ │ │ │ -0000e6c0: 2066 6f6c 6c6f 7773 2e0a 2020 20e2 80a2 follows.. ... │ │ │ │ -0000e6d0: 20e2 8098 2349 e280 9920 7768 6572 6520 ...#I... where │ │ │ │ -0000e6e0: 4920 6973 2061 2070 6f73 6974 6976 6520 I is a positive │ │ │ │ -0000e6f0: 696e 7465 6765 7220 6973 2072 6570 6c61 integer is repla │ │ │ │ -0000e700: 6365 6420 6279 2074 6865 2049 2774 6820 ced by the I'th │ │ │ │ -0000e710: 7661 6c75 6520 696e 0a20 2020 2020 4152 value in. AR │ │ │ │ -0000e720: 475f 4c49 5354 2e20 2050 6f69 6e74 2061 G_LIST. Point a │ │ │ │ -0000e730: 6e64 2076 6563 746f 7220 6172 6775 6d65 nd vector argume │ │ │ │ -0000e740: 6e74 7320 6265 636f 6d65 2074 776f 2d64 nts become two-d │ │ │ │ -0000e750: 696d 656e 7369 6f6e 616c 0a20 2020 2020 imensional. │ │ │ │ -0000e760: 706f 696e 7473 2c20 7768 6963 6820 6172 points, which ar │ │ │ │ -0000e770: 6520 7468 6520 7472 616e 7366 6f72 6d65 e the transforme │ │ │ │ -0000e780: 6420 3364 2061 7267 756d 656e 7473 2070 d 3d arguments p │ │ │ │ -0000e790: 726f 6a65 6374 6564 206f 6e74 6f20 7468 rojected onto th │ │ │ │ -0000e7a0: 650a 2020 2020 2058 2d59 2070 6c61 6e65 e. X-Y plane │ │ │ │ -0000e7b0: 2e20 2054 6869 7320 616c 6c6f 7773 2074 . This allows t │ │ │ │ -0000e7c0: 776f 2d64 696d 656e 7469 6f6e 616c 206f wo-dimentional o │ │ │ │ -0000e7d0: 7574 7075 7420 656c 656d 656e 7473 2073 utput elements s │ │ │ │ -0000e7e0: 7563 6820 6173 0a20 2020 2020 6c61 6265 uch as. labe │ │ │ │ -0000e7f0: 6c73 2074 6f20 6265 2065 6173 696c 7920 ls to be easily │ │ │ │ -0000e800: 706f 7369 7469 6f6e 6564 2077 6974 6820 positioned with │ │ │ │ -0000e810: 7265 7370 6563 7420 746f 2074 6872 6565 respect to three │ │ │ │ -0000e820: 2d64 696d 656e 7369 6f6e 616c 0a20 2020 -dimensional. │ │ │ │ -0000e830: 2020 6665 6174 7572 6573 2069 6e20 7468 features in th │ │ │ │ -0000e840: 6520 6472 6177 696e 672e 2020 5363 616c e drawing. Scal │ │ │ │ -0000e850: 6172 2061 7267 756d 656e 7473 2061 7265 ar arguments are │ │ │ │ -0000e860: 2073 7562 7369 7475 7465 6420 6469 7265 subsituted dire │ │ │ │ -0000e870: 6374 6c79 2e0a 2020 2020 204e 6f20 7472 ctly.. No tr │ │ │ │ -0000e880: 616e 7366 6f72 6d61 7469 6f6e 2069 7320 ansformation is │ │ │ │ -0000e890: 6170 706c 6965 642e 0a20 2020 e280 a220 applied.. ... │ │ │ │ -0000e8a0: e280 9823 7b49 7de2 8099 2069 7320 616c ...#{I}... is al │ │ │ │ -0000e8b0: 736f 2072 6570 6c61 6365 6420 6173 2061 so replaced as a │ │ │ │ -0000e8c0: 626f 7665 2e0a 2020 20e2 80a2 20e2 8098 bove.. ... ... │ │ │ │ -0000e8d0: 2349 2732 e280 9920 6973 2072 6570 6c61 #I'2... is repla │ │ │ │ -0000e8e0: 6365 6420 6173 2061 626f 7665 2066 6f72 ced as above for │ │ │ │ -0000e8f0: 2070 6f69 6e74 7320 6f72 2076 6563 746f points or vecto │ │ │ │ -0000e900: 7273 2e20 2049 7420 6973 2061 6e20 6572 rs. It is an er │ │ │ │ -0000e910: 726f 720a 2020 2020 2066 6f72 2074 6865 ror. for the │ │ │ │ -0000e920: 2049 2774 6820 6172 6775 6d65 6e74 2074 I'th argument t │ │ │ │ -0000e930: 6f20 6265 2061 2073 6361 6c61 722e 0a20 o be a scalar.. │ │ │ │ -0000e940: 2020 e280 a220 e280 9823 4927 78e2 8099 ... ...#I'x... │ │ │ │ -0000e950: 2c20 e280 9823 4927 79e2 8099 2c20 6f72 , ...#I'y..., or │ │ │ │ -0000e960: 20e2 8098 2349 277a e280 9920 6973 2072 ...#I'z... is r │ │ │ │ -0000e970: 6570 6c61 6365 642c 2072 6573 7065 6374 eplaced, respect │ │ │ │ -0000e980: 6976 656c 792c 2062 7920 7468 6520 7363 ively, by the sc │ │ │ │ -0000e990: 616c 6172 0a20 2020 2020 582c 2059 2c20 alar. X, Y, │ │ │ │ -0000e9a0: 6f72 205a 2d63 6f6f 7264 696e 6174 6520 or Z-coordinate │ │ │ │ -0000e9b0: 6f66 2074 6865 2061 7267 756d 656e 7420 of the argument │ │ │ │ -0000e9c0: 706f 696e 7420 6f72 2076 6563 746f 722e point or vector. │ │ │ │ -0000e9d0: 2020 4974 2069 7320 616e 0a20 2020 2020 It is an. │ │ │ │ -0000e9e0: 6572 726f 7220 666f 7220 7468 6520 4927 error for the I' │ │ │ │ -0000e9f0: 7468 2061 7267 756d 656e 7420 746f 2062 th argument to b │ │ │ │ -0000ea00: 6520 6120 7363 616c 6172 2e0a 2020 20e2 e a scalar.. . │ │ │ │ -0000ea10: 80a2 20e2 8098 2349 2733 e280 9920 6973 .. ...#I'3... is │ │ │ │ -0000ea20: 2072 6570 6c61 6365 6420 6279 2074 6865 replaced by the │ │ │ │ -0000ea30: 2074 6872 6565 2d64 696d 656e 7369 6f6e three-dimension │ │ │ │ -0000ea40: 616c 2074 7261 6e73 666f 726d 6564 2061 al transformed a │ │ │ │ -0000ea50: 7267 756d 656e 742e 0a20 2020 2020 4e6f rgument.. No │ │ │ │ -0000ea60: 7465 2074 6861 7420 6966 2061 2070 6572 te that if a per │ │ │ │ -0000ea70: 7370 6563 7469 7665 2074 7261 6e73 666f spective transfo │ │ │ │ -0000ea80: 726d 6174 696f 6e20 6861 7320 6265 656e rmation has been │ │ │ │ -0000ea90: 2061 7070 6c69 6564 2c20 7468 650a 2020 applied, the. │ │ │ │ -0000eaa0: 2020 205a 2d63 6f6f 7264 696e 6174 6520 Z-coordinate │ │ │ │ -0000eab0: 6861 7320 6c69 7474 6c65 2067 656f 6d65 has little geome │ │ │ │ -0000eac0: 7472 6963 2073 6967 6e69 6669 6361 6e63 tric significanc │ │ │ │ -0000ead0: 652c 2074 686f 7567 6820 6974 0a20 2020 e, though it. │ │ │ │ -0000eae0: 2020 6163 6375 7261 7465 6c79 2069 6e64 accurately ind │ │ │ │ -0000eaf0: 6963 6174 6573 2072 656c 6174 6976 6520 icates relative │ │ │ │ -0000eb00: 6465 7074 682e 0a20 2020 e280 a220 e280 depth.. ... .. │ │ │ │ -0000eb10: 9823 492d 4ae2 8099 2077 6865 7265 2049 .#I-J... where I │ │ │ │ -0000eb20: 2061 6e64 204a 2061 7265 2070 6f73 6974 and J are posit │ │ │ │ -0000eb30: 6976 6520 696e 7465 6765 7273 2069 7320 ive integers is │ │ │ │ -0000eb40: 7265 706c 6163 6564 2062 7920 6120 7374 replaced by a st │ │ │ │ -0000eb50: 7269 6e67 0a20 2020 2020 e280 987b 414e ring. ...{AN │ │ │ │ -0000eb60: 474c 457d e280 9920 7768 6572 6520 414e GLE}... where AN │ │ │ │ -0000eb70: 474c 4520 6973 2074 6865 2070 6f6c 6172 GLE is the polar │ │ │ │ -0000eb80: 2061 6e67 6c65 206f 6620 6120 7665 6374 angle of a vect │ │ │ │ -0000eb90: 6f72 2066 726f 6d20 7468 6520 4927 7468 or from the I'th │ │ │ │ -0000eba0: 0a20 2020 2020 706f 696e 7420 696e 2050 . point in P │ │ │ │ -0000ebb0: 4f49 4e54 5f4c 4953 5420 746f 2074 6865 OINT_LIST to the │ │ │ │ -0000ebc0: 204a 2774 6820 706f 696e 7420 7072 6f6a J'th point proj │ │ │ │ -0000ebd0: 6563 7465 6420 696e 746f 2074 6865 2078 ected into the x │ │ │ │ -0000ebe0: 2d79 2070 6c61 6e65 2e0a 2020 2020 2049 -y plane.. I │ │ │ │ -0000ebf0: 7420 6973 2061 6e20 6572 726f 7220 666f t is an error fo │ │ │ │ -0000ec00: 7220 7468 6520 4927 7468 206f 7220 4a27 r the I'th or J' │ │ │ │ -0000ec10: 7468 2061 7267 756d 656e 7420 746f 2062 th argument to b │ │ │ │ -0000ec20: 6520 6120 7363 616c 6172 206f 7220 610a e a scalar or a. │ │ │ │ -0000ec30: 2020 2020 2076 6563 746f 722e 0a20 2020 vector.. │ │ │ │ -0000ec40: e280 a220 e280 9823 7b49 2d4a 7de2 8099 ... ...#{I-J}... │ │ │ │ -0000ec50: 2069 7320 616c 736f 2072 6570 6c61 6365 is also replace │ │ │ │ -0000ec60: 6420 6173 2061 626f 7665 2e0a 2020 20e2 d as above.. . │ │ │ │ -0000ec70: 80a2 20e2 8098 2323 e280 9920 6973 2072 .. ...##... is r │ │ │ │ -0000ec80: 6570 6c61 6365 6420 7769 7468 20e2 8098 eplaced with ... │ │ │ │ -0000ec90: 23e2 8099 2e0a 5468 6520 666f 726d 7320 #.....The forms │ │ │ │ -0000eca0: 7769 7468 2062 7261 6365 7320 e280 987b with braces ...{ │ │ │ │ -0000ecb0: 207d e280 9920 6172 6520 7573 6566 756c }... are useful │ │ │ │ -0000ecc0: 2077 6865 6e20 7468 6520 6172 6775 6d65 when the argume │ │ │ │ -0000ecd0: 6e74 2069 7320 696d 6d65 6469 6174 656c nt is immediatel │ │ │ │ -0000ece0: 790a 666f 6c6c 6f77 6564 2062 7920 6120 y.followed by a │ │ │ │ -0000ecf0: 6469 6769 7420 6f72 2061 2074 6963 6b20 digit or a tick │ │ │ │ -0000ed00: 6368 6172 6163 7465 7220 7468 6174 2069 character that i │ │ │ │ -0000ed10: 7320 7061 7274 206f 6620 7468 6520 5465 s part of the Te │ │ │ │ -0000ed20: 5820 636f 6465 2e0a 0a20 2020 5468 6520 X code... The │ │ │ │ -0000ed30: 6f6e 6c79 2075 7365 6675 6c20 6f70 7469 only useful opti │ │ │ │ -0000ed40: 6f6e 206f 6620 e280 9873 7065 6369 616c on of ...special │ │ │ │ -0000ed50: e280 9920 6973 20e2 8098 6c61 79e2 8099 ... is ...lay... │ │ │ │ -0000ed60: 2c20 7768 6963 6820 6465 7465 726d 696e , which determin │ │ │ │ -0000ed70: 6573 2069 6620 7468 650a 7375 6273 7469 es if the.substi │ │ │ │ -0000ed80: 7475 6564 2072 6177 2074 6578 7420 6973 tued raw text is │ │ │ │ -0000ed90: 2065 6d69 7474 6564 2062 6566 6f72 652c emitted before, │ │ │ │ -0000eda0: 2061 6674 6572 2c20 6f72 2075 7369 6e67 after, or using │ │ │ │ -0000edb0: 2074 6865 2066 6972 7374 2070 6f69 6e74 the first point │ │ │ │ -0000edc0: 0a69 6e20 504f 494e 545f 4c49 5354 2061 .in POINT_LIST a │ │ │ │ -0000edd0: 7320 616e 2069 6e64 6963 6174 6f72 206f s an indicator o │ │ │ │ -0000ede0: 6620 6465 7074 682e 2020 5468 6573 6520 f depth. These │ │ │ │ -0000edf0: 6f63 6375 722c 2072 6573 7065 6374 6976 occur, respectiv │ │ │ │ -0000ee00: 656c 792c 2077 6974 680a e280 986c 6179 ely, with....lay │ │ │ │ -0000ee10: 3d75 6e64 6572 e280 992c 20e2 8098 6c61 =under..., ...la │ │ │ │ -0000ee20: 793d 6f76 6572 e280 992c 2061 6e64 20e2 y=over..., and . │ │ │ │ -0000ee30: 8098 6c61 793d 696e e280 992e 2020 5365 ..lay=in.... Se │ │ │ │ -0000ee40: 6520 2a6e 6f74 6520 5370 6563 6961 6c20 e *note Special │ │ │ │ -0000ee50: 6f62 6a65 6374 733a 3a20 616e 640a 2a6e objects:: and.*n │ │ │ │ -0000ee60: 6f74 6520 5469 6b5a 2f50 4746 2075 7365 ote TikZ/PGF use │ │ │ │ -0000ee70: 722d 6465 6669 6e65 6420 7374 796c 6573 r-defined styles │ │ │ │ -0000ee80: 3a3a 2066 6f72 2065 7861 6d70 6c65 732e :: for examples. │ │ │ │ -0000ee90: 2020 2a4e 6f74 6520 496e 7465 726e 616c *Note Internal │ │ │ │ -0000eea0: 0a6f 7074 696f 6e73 3a3a 2e0a 0a1f 0a46 .options::.....F │ │ │ │ -0000eeb0: 696c 653a 2073 6b65 7463 682e 696e 666f ile: sketch.info │ │ │ │ -0000eec0: 2c20 204e 6f64 653a 2053 7765 6570 732c , Node: Sweeps, │ │ │ │ -0000eed0: 2020 4e65 7874 3a20 426c 6f63 6b73 2c20 Next: Blocks, │ │ │ │ -0000eee0: 2050 7265 763a 2053 7065 6369 616c 732c Prev: Specials, │ │ │ │ -0000eef0: 2020 5570 3a20 4472 6177 6162 6c65 730a Up: Drawables. │ │ │ │ -0000ef00: 0a33 2e32 2e36 2053 7765 6570 730a 2d2d .3.2.6 Sweeps.-- │ │ │ │ -0000ef10: 2d2d 2d2d 2d2d 2d2d 2d2d 0a0a 2a53 796e ----------..*Syn │ │ │ │ -0000ef20: 7461 783a 2a0a 2020 2020 2073 7765 6570 tax:*. sweep │ │ │ │ -0000ef30: 207b 204e 2c20 545f 312c 2054 5f32 2c20 { N, T_1, T_2, │ │ │ │ -0000ef40: 2e2e 2e2c 2054 5f52 207d 5b4f 5054 494f ..., T_R }[OPTIO │ │ │ │ -0000ef50: 4e53 5d20 5357 4550 545f 4f42 4a45 4354 NS] SWEPT_OBJECT │ │ │ │ -0000ef60: 0a20 2020 2020 7377 6565 7020 7b20 4e3c . sweep { N< │ │ │ │ -0000ef70: 3e2c 2054 5f31 2c20 545f 322c 202e 2e2e >, T_1, T_2, ... │ │ │ │ -0000ef80: 2c20 545f 5220 7d5b 4f50 5449 4f4e 535d , T_R }[OPTIONS] │ │ │ │ -0000ef90: 2053 5745 5054 5f4f 424a 4543 540a 5468 SWEPT_OBJECT.Th │ │ │ │ -0000efa0: 6520 7377 6565 7020 636f 6e6e 6563 7473 e sweep connects │ │ │ │ -0000efb0: 204e 2028 6f72 2070 6572 6861 7073 204e N (or perhaps N │ │ │ │ -0000efc0: 2b31 2920 636f 7069 6573 206f 6620 5357 +1) copies of SW │ │ │ │ -0000efd0: 4550 545f 4f42 4a45 4354 2069 6e20 6f72 EPT_OBJECT in or │ │ │ │ -0000efe0: 6465 7220 746f 0a63 7265 6174 6520 6120 der to.create a │ │ │ │ -0000eff0: 6e65 7720 6f62 6a65 6374 206f 6620 6869 new object of hi │ │ │ │ -0000f000: 6768 6572 2064 696d 656e 7369 6f6e 2e20 gher dimension. │ │ │ │ -0000f010: 2054 6865 2054 5f49 2028 666f 7220 6920 The T_I (for i │ │ │ │ -0000f020: 6265 7477 6565 6e20 3120 616e 640a 7229 between 1 and.r) │ │ │ │ -0000f030: 2061 7265 2074 7261 6e73 666f 726d 732e are transforms. │ │ │ │ -0000f040: 2020 5468 6520 6b27 7468 2063 6f70 7920 The k'th copy │ │ │ │ -0000f050: 6f66 2053 5745 5054 5f4f 424a 4543 5420 of SWEPT_OBJECT │ │ │ │ -0000f060: 6973 2070 726f 6475 6365 6420 6279 0a61 is produced by.a │ │ │ │ -0000f070: 7070 6c79 696e 6720 7468 6520 666f 6c6c pplying the foll │ │ │ │ -0000f080: 6f77 696e 6720 7472 616e 7366 6f72 6d20 owing transform │ │ │ │ -0000f090: 746f 2074 6865 206f 7269 6769 6e61 6c2e to the original. │ │ │ │ -0000f0a0: 0a20 2020 2020 545f 315e 6b20 7468 656e . T_1^k then │ │ │ │ -0000f0b0: 2054 5f32 5e6b 2074 6865 6e20 2e2e 2e20 T_2^k then ... │ │ │ │ -0000f0c0: 7468 656e 2054 5f52 5e6b 0a48 6572 6520 then T_R^k.Here │ │ │ │ -0000f0d0: 545e 6b20 6d65 616e 7320 2274 7261 6e73 T^k means "trans │ │ │ │ -0000f0e0: 666f 726d 2054 2061 7070 6c69 6564 206b form T applied k │ │ │ │ -0000f0f0: 2074 696d 6573 2e22 2020 5468 6520 6f72 times." The or │ │ │ │ -0000f100: 6967 696e 616c 206f 626a 6563 7420 6973 iginal object is │ │ │ │ -0000f110: 0a74 6865 207a 6572 6f27 7468 2063 6f70 .the zero'th cop │ │ │ │ -0000f120: 792c 2077 6974 6820 6b3d 3020 616e 6420 y, with k=0 and │ │ │ │ -0000f130: 6566 6665 6374 6976 656c 7920 6e6f 2074 effectively no t │ │ │ │ -0000f140: 7261 6e73 666f 726d 2061 7070 6c69 6564 ransform applied │ │ │ │ -0000f150: 2028 545e 303d 492c 0a74 6865 2069 6465 (T^0=I,.the ide │ │ │ │ -0000f160: 6e74 6974 7920 7472 616e 7366 6f72 6d29 ntity transform) │ │ │ │ -0000f170: 2e0a 0a20 2020 5468 6520 6d65 7468 6f64 ... The method │ │ │ │ -0000f180: 206f 6620 636f 6e6e 6563 7469 6e67 2074 of connecting t │ │ │ │ -0000f190: 6865 2063 6f70 6965 7320 6465 7065 6e64 he copies depend │ │ │ │ -0000f1a0: 7320 6f6e 2074 6865 2074 7970 6520 6f66 s on the type of │ │ │ │ -0000f1b0: 0a53 5745 5054 5f4f 424a 4543 5420 616e .SWEPT_OBJECT an │ │ │ │ -0000f1c0: 6420 6f6e 2077 6865 7468 6572 2074 6865 d on whether the │ │ │ │ -0000f1d0: 2063 6c6f 7375 7265 2074 6167 20e2 8098 closure tag ... │ │ │ │ -0000f1e0: 3c3e e280 9920 6973 2070 7265 7365 6e74 <>... is present │ │ │ │ -0000f1f0: 206f 7220 6e6f 742e 0a0a 2020 2041 6e20 or not... An │ │ │ │ -0000f200: 6578 616d 706c 6520 6f66 2061 2073 7765 example of a swe │ │ │ │ -0000f210: 6570 2077 6865 7265 2072 3d32 2069 7320 ep where r=2 is │ │ │ │ -0000f220: 7468 6520 4d6f 6269 7573 2066 6967 7572 the Mobius figur │ │ │ │ -0000f230: 6520 6174 202a 6e6f 7465 204d 6f72 6520 e at *note More │ │ │ │ -0000f240: 746f 0a6c 6561 726e 3a3a 2e0a 0a2a 204d to.learn::...* M │ │ │ │ -0000f250: 656e 753a 0a0a 2a20 5377 6570 7420 706f enu:..* Swept po │ │ │ │ -0000f260: 696e 7473 3a3a 2020 2020 2020 2020 2020 ints:: │ │ │ │ -0000f270: 2020 2020 2020 5377 6570 7420 706f 696e Swept poin │ │ │ │ -0000f280: 7473 206d 616b 6520 6c69 6e65 7320 6f72 ts make lines or │ │ │ │ -0000f290: 2070 6f6c 7967 6f6e 732e 0a2a 2053 7765 polygons..* Swe │ │ │ │ -0000f2a0: 7074 206c 696e 6573 3a3a 2020 2020 2020 pt lines:: │ │ │ │ -0000f2b0: 2020 2020 2020 2020 2020 2053 7765 7074 Swept │ │ │ │ -0000f2c0: 206c 696e 6573 206d 616b 6520 6f70 656e lines make open │ │ │ │ -0000f2d0: 206f 7220 636c 6f73 6564 2073 7572 6661 or closed surfa │ │ │ │ -0000f2e0: 6365 732e 0a2a 2053 7765 7074 2070 6f6c ces..* Swept pol │ │ │ │ -0000f2f0: 7967 6f6e 733a 3a20 2020 2020 2020 2020 ygons:: │ │ │ │ -0000f300: 2020 2020 2053 7765 7074 2070 6f6c 7967 Swept polyg │ │ │ │ -0000f310: 6f6e 7320 6d61 6b65 2063 6c6f 7365 6420 ons make closed │ │ │ │ -0000f320: 7375 7266 6163 6573 2e0a 2a20 5377 6570 surfaces..* Swep │ │ │ │ -0000f330: 7420 626c 6f63 6b73 3a3a 2020 2020 2020 t blocks:: │ │ │ │ -0000f340: 2020 2020 2020 2020 2020 5377 6570 7420 Swept │ │ │ │ -0000f350: 626c 6f63 6b20 e289 a120 626c 6f63 6b20 block ... block │ │ │ │ -0000f360: 6f66 2073 7765 6570 732e 0a2a 2053 7765 of sweeps..* Swe │ │ │ │ -0000f370: 6570 2066 6163 6520 7370 6c69 7474 696e ep face splittin │ │ │ │ -0000f380: 673a 3a20 2020 2020 2020 2046 6978 696e g:: Fixin │ │ │ │ -0000f390: 6720 7761 7270 6564 2066 6163 6573 2077 g warped faces w │ │ │ │ -0000f3a0: 6974 6820 7472 6961 6e67 6c65 732e 0a0a ith triangles... │ │ │ │ -0000f3b0: 1f0a 4669 6c65 3a20 736b 6574 6368 2e69 ..File: sketch.i │ │ │ │ -0000f3c0: 6e66 6f2c 2020 4e6f 6465 3a20 5377 6570 nfo, Node: Swep │ │ │ │ -0000f3d0: 7420 706f 696e 7473 2c20 204e 6578 743a t points, Next: │ │ │ │ -0000f3e0: 2053 7765 7074 206c 696e 6573 2c20 2050 Swept lines, P │ │ │ │ -0000f3f0: 7265 763a 2053 7765 6570 732c 2020 5570 rev: Sweeps, Up │ │ │ │ -0000f400: 3a20 5377 6565 7073 0a0a 332e 322e 362e : Sweeps..3.2.6. │ │ │ │ -0000f410: 3120 5377 6570 7420 706f 696e 7473 0a2e 1 Swept points.. │ │ │ │ -0000f420: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e ................ │ │ │ │ -0000f430: 2e2e 2e0a 0a49 6620 5357 4550 545f 4f42 .....If SWEPT_OB │ │ │ │ -0000f440: 4a45 4354 2069 7320 6120 706f 696e 7420 JECT is a point │ │ │ │ -0000f450: 6c69 7374 2061 6e64 2074 6865 7265 2069 list and there i │ │ │ │ -0000f460: 7320 6e6f 2063 6c6f 7375 7265 2074 6167 s no closure tag │ │ │ │ -0000f470: 2c20 7468 656e 0ae2 8098 7377 6565 70e2 , then....sweep. │ │ │ │ -0000f480: 8099 2063 6f6e 6e65 6374 7320 4e2b 3120 .. connects N+1 │ │ │ │ -0000f490: 7375 6363 6573 7369 7665 2063 6f70 6965 successive copie │ │ │ │ -0000f4a0: 7320 6f66 2065 6163 6820 706f 696e 7420 s of each point │ │ │ │ -0000f4b0: 2869 6e63 6c75 6469 6e67 2074 6865 0a6f (including the.o │ │ │ │ -0000f4c0: 7269 6769 6e61 6c29 2077 6974 6820 7374 riginal) with st │ │ │ │ -0000f4d0: 7261 6967 6874 206c 696e 6520 7365 676d raight line segm │ │ │ │ -0000f4e0: 656e 7473 2074 6f20 666f 726d 2061 2070 ents to form a p │ │ │ │ -0000f4f0: 6f6c 796c 696e 652e 2020 4966 2074 6865 olyline. If the │ │ │ │ -0000f500: 7265 2061 7265 0a6d 2070 6f69 6e74 7320 re are.m points │ │ │ │ -0000f510: 696e 2074 6865 206f 7269 6769 6e61 6c20 in the original │ │ │ │ -0000f520: 706f 696e 7420 6c69 7374 2c20 7468 656e point list, then │ │ │ │ -0000f530: 206d 2070 6f6c 796c 696e 6573 2077 6974 m polylines wit │ │ │ │ -0000f540: 6820 4e20 7365 676d 656e 7473 0a65 6163 h N segments.eac │ │ │ │ -0000f550: 6820 6172 6520 666f 726d 6564 2062 7920 h are formed by │ │ │ │ -0000f560: 7468 6520 7377 6565 702e 2020 496e 2074 the sweep. In t │ │ │ │ -0000f570: 6869 7320 6d61 6e6e 6572 2c20 e280 9873 his manner, ...s │ │ │ │ -0000f580: 7765 6570 e280 9920 666f 726d 7320 6120 weep... forms a │ │ │ │ -0000f590: 7365 7420 6f66 0a6f 6e65 2d64 696d 656e set of.one-dimen │ │ │ │ -0000f5a0: 7369 6f6e 616c 206f 626a 6563 7473 2028 sional objects ( │ │ │ │ -0000f5b0: 706f 6c79 6c69 6e65 7329 2066 726f 6d20 polylines) from │ │ │ │ -0000f5c0: 7a65 726f 2d64 696d 656e 7369 6f6e 616c zero-dimensional │ │ │ │ -0000f5d0: 206f 6e65 7320 2870 6f69 6e74 7329 2e0a ones (points).. │ │ │ │ -0000f5e0: 0a20 2020 5768 656e 2074 6865 7265 205f . When there _ │ │ │ │ -0000f5f0: 6973 5f20 6120 636c 6f73 7572 6520 7461 is_ a closure ta │ │ │ │ -0000f600: 672c 20e2 8098 7377 6565 70e2 8099 2063 g, ...sweep... c │ │ │ │ -0000f610: 6f6e 6e65 6374 7320 4e20 7375 6363 6573 onnects N succes │ │ │ │ -0000f620: 7369 7665 2063 6f70 6965 730a 6f66 2065 sive copies.of e │ │ │ │ -0000f630: 6163 6820 706f 696e 7420 2869 6e63 6c75 ach point (inclu │ │ │ │ -0000f640: 6469 6e67 2074 6865 206f 7269 6769 6e61 ding the origina │ │ │ │ -0000f650: 6c29 2077 6974 6820 7374 7261 6967 6874 l) with straight │ │ │ │ -0000f660: 206c 696e 6520 7365 676d 656e 7473 2061 line segments a │ │ │ │ -0000f670: 6e64 0a66 696e 616c 6c79 2063 6f6e 6e65 nd.finally conne │ │ │ │ -0000f680: 6374 7320 7468 6520 6c61 7374 2063 6f70 cts the last cop │ │ │ │ -0000f690: 7920 6261 636b 2074 6f20 7468 6520 6f72 y back to the or │ │ │ │ -0000f6a0: 6967 696e 616c 2074 6f20 666f 726d 2061 iginal to form a │ │ │ │ -0000f6b0: 2070 6f6c 7967 6f6e 0a77 6974 6820 4e20 polygon.with N │ │ │ │ -0000f6c0: 7369 6465 732e 2020 4966 2074 6865 7265 sides. If there │ │ │ │ -0000f6d0: 2061 7265 206d 2070 6f69 6e74 7320 696e are m points in │ │ │ │ -0000f6e0: 2074 6865 206f 7269 6769 6e61 6c20 706f the original po │ │ │ │ -0000f6f0: 696e 7420 6c69 7374 2c20 7468 656e 206d int list, then m │ │ │ │ -0000f700: 0a70 6f6c 7967 6f6e 7320 7769 7468 204e .polygons with N │ │ │ │ -0000f710: 2073 6964 6573 2065 6163 6820 6172 6520 sides each are │ │ │ │ -0000f720: 666f 726d 6564 2062 7920 7468 6520 7377 formed by the sw │ │ │ │ -0000f730: 6565 702e 2020 496e 2074 6869 7320 6d61 eep. In this ma │ │ │ │ -0000f740: 6e6e 6572 2c0a e280 9873 7765 6570 e280 nner,....sweep.. │ │ │ │ -0000f750: 9920 666f 726d 7320 6120 7365 7420 6f66 . forms a set of │ │ │ │ -0000f760: 2074 776f 2d64 696d 656e 7369 6f6e 616c two-dimensional │ │ │ │ -0000f770: 206f 626a 6563 7473 2028 706f 6c79 676f objects (polygo │ │ │ │ -0000f780: 6e73 2920 6672 6f6d 0a7a 6572 6f2d 6469 ns) from.zero-di │ │ │ │ -0000f790: 6d65 6e73 696f 6e61 6c20 6f6e 6573 2028 mensional ones ( │ │ │ │ -0000f7a0: 706f 696e 7473 292e 0a0a 2020 204f 7074 points)... Opt │ │ │ │ -0000f7b0: 696f 6e73 206f 6620 7468 6520 e280 9873 ions of the ...s │ │ │ │ -0000f7c0: 7765 6570 e280 9920 6172 6520 636f 7069 weep... are copi │ │ │ │ -0000f7d0: 6564 2064 6972 6563 746c 7920 746f 2074 ed directly to t │ │ │ │ -0000f7e0: 6865 2072 6573 756c 7469 6e67 0a70 6f6c he resulting.pol │ │ │ │ -0000f7f0: 796c 696e 6528 7329 2e0a 0a1f 0a46 696c yline(s).....Fil │ │ │ │ -0000f800: 653a 2073 6b65 7463 682e 696e 666f 2c20 e: sketch.info, │ │ │ │ -0000f810: 204e 6f64 653a 2053 7765 7074 206c 696e Node: Swept lin │ │ │ │ -0000f820: 6573 2c20 204e 6578 743a 2053 7765 7074 es, Next: Swept │ │ │ │ -0000f830: 2070 6f6c 7967 6f6e 732c 2020 5072 6576 polygons, Prev │ │ │ │ -0000f840: 3a20 5377 6570 7420 706f 696e 7473 2c20 : Swept points, │ │ │ │ -0000f850: 2055 703a 2053 7765 6570 730a 0a33 2e32 Up: Sweeps..3.2 │ │ │ │ -0000f860: 2e36 2e32 2053 7765 7074 206c 696e 6573 .6.2 Swept lines │ │ │ │ -0000f870: 0a2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e ................ │ │ │ │ -0000f880: 2e2e 2e2e 0a0a 4966 2053 5745 5054 5f4f ......If SWEPT_O │ │ │ │ -0000f890: 424a 4543 5420 6973 2061 2070 6f6c 796c BJECT is a polyl │ │ │ │ -0000f8a0: 696e 6520 616e 6420 7468 6572 6520 6973 ine and there is │ │ │ │ -0000f8b0: 206e 6f20 636c 6f73 7572 6520 7461 672c no closure tag, │ │ │ │ -0000f8c0: 2074 6865 6e20 e280 9873 7765 6570 e280 then ...sweep.. │ │ │ │ -0000f8d0: 990a 636f 6e6e 6563 7473 204e 2b31 2073 ..connects N+1 s │ │ │ │ -0000f8e0: 7563 6365 7373 6976 6520 636f 7069 6573 uccessive copies │ │ │ │ -0000f8f0: 206f 6620 7468 6520 706f 6c79 6c69 6e65 of the polyline │ │ │ │ -0000f900: 2028 696e 636c 7564 696e 6720 7468 6520 (including the │ │ │ │ -0000f910: 6f72 6967 696e 616c 290a 7769 7468 2066 original).with f │ │ │ │ -0000f920: 6f75 722d 7369 6465 6420 706f 6c79 676f our-sided polygo │ │ │ │ -0000f930: 6e73 2c20 6561 6368 2070 6169 7220 6f66 ns, each pair of │ │ │ │ -0000f940: 2063 6f70 6965 7320 6769 7669 6e67 2072 copies giving r │ │ │ │ -0000f950: 6973 6520 746f 2061 2022 706f 6c79 676f ise to a "polygo │ │ │ │ -0000f960: 6e0a 7374 7269 702e 2220 2049 6620 7468 n.strip." If th │ │ │ │ -0000f970: 6572 6520 6172 6520 6d20 706f 696e 7473 ere are m points │ │ │ │ -0000f980: 2069 6e20 7468 6520 6f72 6967 696e 616c in the original │ │ │ │ -0000f990: 2070 6f6c 796c 696e 652c 2074 6865 6e20 polyline, then │ │ │ │ -0000f9a0: 286d 2d31 294e 0a70 6f6c 7967 6f6e 7320 (m-1)N.polygons │ │ │ │ -0000f9b0: 6172 6520 666f 726d 6564 2062 7920 7468 are formed by th │ │ │ │ -0000f9c0: 6520 7377 6565 702e 2020 5765 2063 616c e sweep. We cal │ │ │ │ -0000f9d0: 6c20 7468 6573 6520 e280 9c62 6f64 7920 l these ...body │ │ │ │ -0000f9e0: 706f 6c79 676f 6e73 e280 9d2e 2020 496e polygons.... In │ │ │ │ -0000f9f0: 0a74 6869 7320 6d61 6e6e 6572 2c20 e280 .this manner, .. │ │ │ │ -0000fa00: 9873 7765 6570 e280 9920 666f 726d 7320 .sweep... forms │ │ │ │ -0000fa10: 6120 7477 6f2d 6469 6d65 6e73 696f 6e61 a two-dimensiona │ │ │ │ -0000fa20: 6c20 7375 7266 6163 6520 6672 6f6d 2066 l surface from f │ │ │ │ -0000fa30: 726f 6d20 610a 6f6e 652d 6469 6d65 6e73 rom a.one-dimens │ │ │ │ -0000fa40: 696f 6e61 6c20 706f 6c79 6c69 6e65 2e0a ional polyline.. │ │ │ │ -0000fa50: 0a20 2020 5468 6520 6f72 6465 7220 6f66 . The order of │ │ │ │ -0000fa60: 2076 6572 7469 6365 7320 7072 6f64 7563 vertices produc │ │ │ │ -0000fa70: 6564 2062 7920 e280 9873 7765 6570 e280 ed by ...sweep.. │ │ │ │ -0000fa80: 9920 6973 2069 6d70 6f72 7461 6e74 2e20 . is important. │ │ │ │ -0000fa90: 2049 6620 610a 706f 6c79 676f 6e27 7320 If a.polygon's │ │ │ │ -0000faa0: 7665 7274 6963 6573 2064 6f20 6e6f 7420 vertices do not │ │ │ │ -0000fab0: 6170 7065 6172 2069 6e20 636f 756e 7465 appear in counte │ │ │ │ -0000fac0: 722d 636c 6f63 6b77 6973 6520 6f72 6465 r-clockwise orde │ │ │ │ -0000fad0: 7220 696e 2074 6865 2066 696e 616c 0a69 r in the final.i │ │ │ │ -0000fae0: 6d61 6765 2c20 7468 6520 706f 6c79 676f mage, the polygo │ │ │ │ -0000faf0: 6e20 7769 6c6c 2062 6520 6375 6c6c 6564 n will be culled │ │ │ │ -0000fb00: 2028 756e 6c65 7373 20e2 8098 6375 6c6c (unless ...cull │ │ │ │ -0000fb10: 3d66 616c 7365 e280 9920 6973 2073 6574 =false... is set │ │ │ │ -0000fb20: 292e 2020 4966 2074 6865 0a70 6f69 6e74 ). If the.point │ │ │ │ -0000fb30: 7320 696e 2074 6865 206b 2774 6820 636f s in the k'th co │ │ │ │ -0000fb40: 7079 206f 6620 7468 6520 706f 6c79 6c69 py of the polyli │ │ │ │ -0000fb50: 6e65 2061 7265 2050 5f31 2c20 505f 322c ne are P_1, P_2, │ │ │ │ -0000fb60: 202e 2e2e 2c20 505f 6d2c 2061 6e64 2074 ..., P_m, and t │ │ │ │ -0000fb70: 6865 0a70 6f69 6e74 7320 696e 2074 6865 he.points in the │ │ │ │ -0000fb80: 206e 6578 7420 636f 7079 2c20 7468 6520 next copy, the │ │ │ │ -0000fb90: 286b 2b31 2973 742c 2061 7265 2050 5f31 (k+1)st, are P_1 │ │ │ │ -0000fba0: 272c 2050 5f32 272c 202e 2e2e 2c20 505f ', P_2', ..., P_ │ │ │ │ -0000fbb0: 6d27 2c20 7468 656e 0a74 6865 2076 6572 m', then.the ver │ │ │ │ -0000fbc0: 7465 7820 6f72 6465 7220 6f66 2074 6865 tex order of the │ │ │ │ -0000fbd0: 2067 656e 6572 6174 6564 2070 6f6c 7967 generated polyg │ │ │ │ -0000fbe0: 6f6e 7320 6973 0a20 2020 2020 426f 6479 ons is. Body │ │ │ │ -0000fbf0: 2070 6f6c 7967 6f6e 2031 3a20 505f 3220 polygon 1: P_2 │ │ │ │ -0000fc00: 505f 3120 505f 3127 2050 5f32 270a 2020 P_1 P_1' P_2'. │ │ │ │ -0000fc10: 2020 2042 6f64 7920 706f 6c79 676f 6e20 Body polygon │ │ │ │ -0000fc20: 323a 2050 5f33 2050 5f32 2050 5f32 2720 2: P_3 P_2 P_2' │ │ │ │ -0000fc30: 505f 3327 0a20 2020 2020 2e2e 2e0a 2020 P_3'. .... │ │ │ │ -0000fc40: 2020 2042 6f64 7920 706f 6c79 676f 6e20 Body polygon │ │ │ │ -0000fc50: 6d2d 313a 2050 5f6d 2050 5f7b 6d2d 317d m-1: P_m P_{m-1} │ │ │ │ -0000fc60: 2050 5f7b 6d2d 317d 2720 505f 6d27 0a0a P_{m-1}' P_m'.. │ │ │ │ -0000fc70: 2020 204f 7074 696f 6e73 206f 6620 756e Options of un │ │ │ │ -0000fc80: 636c 6f73 6564 206c 696e 6520 7377 6565 closed line swee │ │ │ │ -0000fc90: 7073 2061 7265 2063 6f70 6965 6420 746f ps are copied to │ │ │ │ -0000fca0: 2065 6163 6820 6f75 7470 7574 2070 6f6c each output pol │ │ │ │ -0000fcb0: 7967 6f6e 2e0a 4f70 7469 6f6e 7320 6f66 ygon..Options of │ │ │ │ -0000fcc0: 2074 6865 2073 7765 7074 206c 696e 6520 the swept line │ │ │ │ -0000fcd0: 6172 6520 6967 6e6f 7265 642e 0a0a 2020 are ignored... │ │ │ │ -0000fce0: 2057 6865 6e20 7468 6572 6520 5f69 735f When there _is_ │ │ │ │ -0000fcf0: 2061 2063 6c6f 7375 7265 2074 6167 2c20 a closure tag, │ │ │ │ -0000fd00: 7468 656e 20e2 8098 7377 6565 70e2 8099 then ...sweep... │ │ │ │ -0000fd10: 2063 6f6e 6e65 6374 7320 4e20 7375 6363 connects N succ │ │ │ │ -0000fd20: 6573 7369 7665 0a63 6f70 6965 7320 6f66 essive.copies of │ │ │ │ -0000fd30: 2074 6865 2070 6f6c 796c 696e 6520 2869 the polyline (i │ │ │ │ -0000fd40: 6e63 6c75 6469 6e67 2074 6865 206f 7269 ncluding the ori │ │ │ │ -0000fd50: 6769 6e61 6c29 2077 6974 6820 666f 7572 ginal) with four │ │ │ │ -0000fd60: 2d73 6964 6564 2062 6f64 790a 706f 6c79 -sided body.poly │ │ │ │ -0000fd70: 676f 6e73 206a 7573 7420 6173 2074 6865 gons just as the │ │ │ │ -0000fd80: 2063 6173 6520 7769 7468 206e 6f20 636c case with no cl │ │ │ │ -0000fd90: 6f73 7572 6520 7461 672e 2020 4974 2074 osure tag. It t │ │ │ │ -0000fda0: 6865 6e20 636f 6e6e 6563 7473 2074 6865 hen connects the │ │ │ │ -0000fdb0: 0a6c 6173 7420 636f 7079 2062 6163 6b20 .last copy back │ │ │ │ -0000fdc0: 746f 2074 6865 206f 7269 6769 6e61 6c20 to the original │ │ │ │ -0000fdd0: 746f 2066 6f72 6d20 6120 7269 6262 6f6e to form a ribbon │ │ │ │ -0000fde0: 2d73 6861 7065 6420 7375 7266 6163 6520 -shaped surface │ │ │ │ -0000fdf0: 7468 6174 0a63 6c6f 7365 7320 6f6e 2069 that.closes on i │ │ │ │ -0000fe00: 7473 656c 6620 7769 7468 2074 776f 2068 tself with two h │ │ │ │ -0000fe10: 6f6c 6573 2072 656d 6169 6e69 6e67 2e0a oles remaining.. │ │ │ │ -0000fe20: 0a20 2020 4669 6e61 6c6c 792c 2074 6865 . Finally, the │ │ │ │ -0000fe30: 2073 7765 6570 2061 6464 7320 7477 6f20 sweep adds two │ │ │ │ -0000fe40: 6d6f 7265 2070 6f6c 7967 6f6e 7320 746f more polygons to │ │ │ │ -0000fe50: 2073 6561 6c20 7468 6520 686f 6c65 7320 seal the holes │ │ │ │ -0000fe60: 616e 6420 666f 726d 0a61 2063 6c6f 7365 and form.a close │ │ │ │ -0000fe70: 6420 7375 7266 6163 6520 7468 6174 2c20 d surface that, │ │ │ │ -0000fe80: 6465 7065 6e64 696e 6720 6f6e 2074 6865 depending on the │ │ │ │ -0000fe90: 2073 7765 6570 2074 7261 6e73 666f 726d sweep transform │ │ │ │ -0000fea0: 732c 206d 6179 2072 6570 7265 7365 6e74 s, may represent │ │ │ │ -0000feb0: 0a74 6865 2062 6f75 6e64 6172 7920 6f66 .the boundary of │ │ │ │ -0000fec0: 2061 2073 6f6c 6964 2e20 2049 6e20 7468 a solid. In th │ │ │ │ -0000fed0: 6973 206d 616e 6e65 722c 20e2 8098 7377 is manner, ...sw │ │ │ │ -0000fee0: 6565 70e2 8099 2066 6f72 6d73 2074 6865 eep... forms the │ │ │ │ -0000fef0: 2062 6f75 6e64 6172 7920 6f66 0a61 2074 boundary of.a t │ │ │ │ -0000ff00: 6872 6565 2d64 696d 656e 7369 6f6e 616c hree-dimensional │ │ │ │ -0000ff10: 206f 626a 6563 7420 6672 6f6d 2061 206f object from a o │ │ │ │ -0000ff20: 6e65 2d64 696d 656e 7369 6f6e 616c 2070 ne-dimensional p │ │ │ │ -0000ff30: 6f6c 796c 696e 652e 2020 5765 2063 616c olyline. We cal │ │ │ │ -0000ff40: 6c0a 7468 6573 6520 686f 6c65 2d66 696c l.these hole-fil │ │ │ │ -0000ff50: 6c69 6e67 2070 6f6c 7967 6f6e 7320 e280 ling polygons .. │ │ │ │ -0000ff60: 9c65 6e64 73e2 809d 2e0a 0a20 2020 5468 .ends...... Th │ │ │ │ -0000ff70: 6520 6f72 6465 7220 6f66 2076 6572 7469 e order of verti │ │ │ │ -0000ff80: 6365 7320 6f66 2065 6e64 2070 6f6c 7967 ces of end polyg │ │ │ │ -0000ff90: 6f6e 7320 6973 2069 6d70 6f72 7461 6e74 ons is important │ │ │ │ -0000ffa0: 2066 6f72 2063 6f72 7265 6374 0a63 756c for correct.cul │ │ │ │ -0000ffb0: 6c69 6e67 2061 7320 6465 7363 7269 6265 ling as describe │ │ │ │ -0000ffc0: 6420 6162 6f76 652e 2020 4966 2050 5f31 d above. If P_1 │ │ │ │ -0000ffd0: 5e31 2c20 505f 315e 322c 202e 2e2e 2c20 ^1, P_1^2, ..., │ │ │ │ -0000ffe0: 505f 315e 6e20 6172 6520 7468 6520 4e0a P_1^n are the N. │ │ │ │ -0000fff0: 636f 7069 6573 206f 6620 7468 6520 6669 copies of the fi │ │ │ │ -00010000: 7273 7420 706f 6c79 6c69 6e65 2070 6f69 rst polyline poi │ │ │ │ -00010010: 6e74 2061 6e64 2050 5f6d 5e31 2c20 505f nt and P_m^1, P_ │ │ │ │ -00010020: 6d5e 322c 202e 2e2e 202c 505f 6d5e 6e20 m^2, ... ,P_m^n │ │ │ │ -00010030: 6172 6520 7468 650a 4e20 636f 7069 6573 are the.N copies │ │ │ │ -00010040: 206f 6620 7468 6520 6c61 7374 2070 6f6c of the last pol │ │ │ │ -00010050: 796c 696e 6520 706f 696e 742c 2074 6865 yline point, the │ │ │ │ -00010060: 6e20 7468 6520 656e 6420 706f 6c79 676f n the end polygo │ │ │ │ -00010070: 6e20 7665 7274 6578 206f 7264 6572 0a69 n vertex order.i │ │ │ │ -00010080: 730a 2020 2020 2045 6e64 2070 6f6c 7967 s. End polyg │ │ │ │ -00010090: 6f6e 2031 3a20 505f 315e 6e2c 2050 5f31 on 1: P_1^n, P_1 │ │ │ │ -000100a0: 5e7b 6e2d 317d 2c20 2e2e 2e20 2c50 5f31 ^{n-1}, ... ,P_1 │ │ │ │ -000100b0: 5e31 0a20 2020 2020 456e 6420 706f 6c79 ^1. End poly │ │ │ │ -000100c0: 676f 6e20 323a 2050 5f6d 5e31 2c20 505f gon 2: P_m^1, P_ │ │ │ │ -000100d0: 6d5e 322c 202e 2e2e 202c 505f 6d5e 6e0a m^2, ... ,P_m^n. │ │ │ │ -000100e0: 0a20 2020 4966 2074 6865 7265 2061 7265 . If there are │ │ │ │ -000100f0: 206e 6f20 6f70 7469 6f6e 7320 6f6e 2074 no options on t │ │ │ │ -00010100: 6865 2073 7765 7074 206c 696e 652c 2074 he swept line, t │ │ │ │ -00010110: 6865 6e20 7468 6520 e280 9873 7765 6570 hen the ...sweep │ │ │ │ -00010120: e280 9920 6f70 7469 6f6e 730a 6172 6520 ... options.are │ │ │ │ -00010130: 636f 7069 6564 2074 6f20 6561 6368 206f copied to each o │ │ │ │ -00010140: 7574 7075 7420 706f 6c79 676f 6e2e 2020 utput polygon. │ │ │ │ -00010150: 4966 2074 6865 2073 7765 7074 206c 696e If the swept lin │ │ │ │ -00010160: 6520 646f 6573 2068 6176 6520 6f70 7469 e does have opti │ │ │ │ -00010170: 6f6e 732c 0a74 6865 7365 2061 7265 2063 ons,.these are c │ │ │ │ -00010180: 6f70 6965 6420 746f 2063 6f72 7265 7370 opied to corresp │ │ │ │ -00010190: 6f6e 6469 6e67 2062 6f64 7920 706f 6c79 onding body poly │ │ │ │ -000101a0: 676f 6e73 3b20 7468 6520 7377 6565 7020 gons; the sweep │ │ │ │ -000101b0: 6f70 7469 6f6e 7320 6172 650a 636f 7069 options are.copi │ │ │ │ -000101c0: 6564 2074 6f20 7468 6520 656e 6420 706f ed to the end po │ │ │ │ -000101d0: 6c79 676f 6e73 2e20 2049 6e20 7468 6973 lygons. In this │ │ │ │ -000101e0: 206d 616e 6e65 722c 2062 6f64 7920 616e manner, body an │ │ │ │ -000101f0: 6420 656e 6473 206d 6179 2062 6520 6472 d ends may be dr │ │ │ │ -00010200: 6177 6e0a 7769 7468 2064 6966 6665 7265 awn.with differe │ │ │ │ -00010210: 6e74 2063 6861 7261 6374 6572 6973 7469 nt characteristi │ │ │ │ -00010220: 6373 2073 7563 6820 6173 20e2 8098 6669 cs such as ...fi │ │ │ │ -00010230: 6c6c 636f 6c6f 72e2 8099 2e0a 0a1f 0a46 llcolor........F │ │ │ │ -00010240: 696c 653a 2073 6b65 7463 682e 696e 666f ile: sketch.info │ │ │ │ -00010250: 2c20 204e 6f64 653a 2053 7765 7074 2070 , Node: Swept p │ │ │ │ -00010260: 6f6c 7967 6f6e 732c 2020 4e65 7874 3a20 olygons, Next: │ │ │ │ -00010270: 5377 6570 7420 626c 6f63 6b73 2c20 2050 Swept blocks, P │ │ │ │ -00010280: 7265 763a 2053 7765 7074 206c 696e 6573 rev: Swept lines │ │ │ │ -00010290: 2c20 2055 703a 2053 7765 6570 730a 0a33 , Up: Sweeps..3 │ │ │ │ -000102a0: 2e32 2e36 2e33 2053 7765 7074 2070 6f6c .2.6.3 Swept pol │ │ │ │ -000102b0: 7967 6f6e 730a 2e2e 2e2e 2e2e 2e2e 2e2e ygons........... │ │ │ │ -000102c0: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 0a0a 4966 ..............If │ │ │ │ -000102d0: 2053 5745 5054 5f4f 424a 4543 5420 6973 SWEPT_OBJECT is │ │ │ │ -000102e0: 2061 2070 6f6c 7967 6f6e 2c20 7468 6520 a polygon, the │ │ │ │ -000102f0: e280 9873 7765 6570 e280 9920 636f 6e6e ...sweep... conn │ │ │ │ -00010300: 6563 7473 204e 2b31 2073 7563 6365 7373 ects N+1 success │ │ │ │ -00010310: 6976 6520 636f 7069 6573 0a6f 6620 7468 ive copies.of th │ │ │ │ -00010320: 6520 636c 6f73 6564 2070 6f6c 796c 696e e closed polylin │ │ │ │ -00010330: 6520 626f 7264 6572 206f 6620 7468 6520 e border of the │ │ │ │ -00010340: 706f 6c79 676f 6e20 746f 2066 6f72 6d20 polygon to form │ │ │ │ -00010350: 626f 6479 2070 6f6c 7967 6f6e 730a 6578 body polygons.ex │ │ │ │ -00010360: 6163 746c 7920 6173 2074 686f 7567 6820 actly as though │ │ │ │ -00010370: 7468 6520 626f 7264 6572 2077 6572 6520 the border were │ │ │ │ -00010380: 6120 7377 6570 7420 706f 6c79 6c69 6e65 a swept polyline │ │ │ │ -00010390: 2061 7320 6465 7363 7269 6265 6420 696e as described in │ │ │ │ -000103a0: 202a 6e6f 7465 0a53 7765 7074 206c 696e *note.Swept lin │ │ │ │ -000103b0: 6573 3a3a 2e20 2049 6620 7468 6572 6520 es::. If there │ │ │ │ -000103c0: 6172 6520 6d20 706f 696e 7473 2069 6e20 are m points in │ │ │ │ -000103d0: 7468 6520 6f72 6967 696e 616c 2070 6f6c the original pol │ │ │ │ -000103e0: 7967 6f6e 2c20 7468 656e 206d 4e0a 626f ygon, then mN.bo │ │ │ │ -000103f0: 6479 2070 6f6c 7967 6f6e 7320 6172 6520 dy polygons are │ │ │ │ -00010400: 666f 726d 6564 2062 7920 7468 6973 2073 formed by this s │ │ │ │ -00010410: 7765 6570 2e20 2054 6865 2062 6f64 7920 weep. The body │ │ │ │ -00010420: 706f 6c79 676f 6e73 2066 6f72 6d20 616e polygons form an │ │ │ │ -00010430: 0ae2 809c 6578 7472 7573 696f 6ee2 809d ....extrusion... │ │ │ │ -00010440: 206f 6620 7468 6520 626f 756e 6461 7279 of the boundary │ │ │ │ -00010450: 206f 6620 7468 6520 6f72 6967 696e 616c of the original │ │ │ │ -00010460: 2070 6f6c 7967 6f6e 2077 6974 6820 7477 polygon with tw │ │ │ │ -00010470: 6f20 686f 6c65 7320 6174 0a74 6865 206f o holes at.the o │ │ │ │ -00010480: 7065 6e20 656e 6473 2e0a 0a20 2020 4669 pen ends... Fi │ │ │ │ -00010490: 6e61 6c6c 792c 2074 6865 2073 7765 6570 nally, the sweep │ │ │ │ -000104a0: 2061 6464 7320 7477 6f20 636f 7069 6573 adds two copies │ │ │ │ -000104b0: 206f 6620 7468 6520 6f72 6967 696e 616c of the original │ │ │ │ -000104c0: 2070 6f6c 7967 6f6e 2074 6f20 636f 7665 polygon to cove │ │ │ │ -000104d0: 720a 7468 6520 686f 6c65 732e 2020 5765 r.the holes. We │ │ │ │ -000104e0: 2063 616c 6c20 7468 6573 6520 686f 6c65 call these hole │ │ │ │ -000104f0: 2d66 696c 6c69 6e67 2070 6f6c 7967 6f6e -filling polygon │ │ │ │ -00010500: 7320 e280 9c65 6e64 73e2 809d 2e20 2049 s ...ends.... I │ │ │ │ -00010510: 6e20 7468 6973 206d 616e 6e65 722c 0ae2 n this manner,.. │ │ │ │ -00010520: 8098 7377 6565 70e2 8099 2066 6f72 6d73 ..sweep... forms │ │ │ │ -00010530: 2074 6865 2062 6f75 6e64 6172 7920 6f66 the boundary of │ │ │ │ -00010540: 2061 2074 6872 6565 2d64 696d 656e 7369 a three-dimensi │ │ │ │ -00010550: 6f6e 616c 206f 626a 6563 7420 6672 6f6d onal object from │ │ │ │ -00010560: 2061 0a74 776f 2d64 696d 656e 7369 6f6e a.two-dimension │ │ │ │ -00010570: 616c 2070 6f6c 7967 6f6e 2e0a 0a20 2020 al polygon... │ │ │ │ -00010580: 5468 6520 6f72 6465 7220 6f66 2076 6572 The order of ver │ │ │ │ -00010590: 7469 6365 7320 6f66 2065 6e64 2070 6f6c tices of end pol │ │ │ │ -000105a0: 7967 6f6e 7320 6973 2069 6d70 6f72 7461 ygons is importa │ │ │ │ -000105b0: 6e74 2066 6f72 2063 6f72 7265 6374 0a63 nt for correct.c │ │ │ │ -000105c0: 756c 6c69 6e67 2061 7320 6465 7363 7269 ulling as descri │ │ │ │ -000105d0: 6265 6420 6162 6f76 652e 2020 416e 2065 bed above. An e │ │ │ │ -000105e0: 7861 6374 2063 6f70 7920 6f66 2074 6865 xact copy of the │ │ │ │ -000105f0: 206f 7269 6769 6e61 6c20 706f 6c79 676f original polygo │ │ │ │ -00010600: 6e20 7769 7468 0a76 6572 7465 7820 6f72 n with.vertex or │ │ │ │ -00010610: 6465 7220 696e 7461 6374 2066 6f72 6d73 der intact forms │ │ │ │ -00010620: 2074 6865 2066 6972 7374 2065 6e64 2070 the first end p │ │ │ │ -00010630: 6f6c 7967 6f6e 2e20 2054 6865 206f 7468 olygon. The oth │ │ │ │ -00010640: 6572 2065 6e64 2070 6f6c 7967 6f6e 0a72 er end polygon.r │ │ │ │ -00010650: 6573 756c 7473 2066 726f 6d20 7472 616e esults from tran │ │ │ │ -00010660: 7366 6f72 6d69 6e67 2061 6e64 2074 6865 sforming and the │ │ │ │ -00010670: 2072 6576 6572 7369 6e67 2074 6865 206f reversing the o │ │ │ │ -00010680: 7264 6572 206f 6620 7665 7274 6963 6573 rder of vertices │ │ │ │ -00010690: 2069 6e20 7468 650a 6f72 6967 696e 616c in the.original │ │ │ │ -000106a0: 2e20 2054 6865 2074 7261 6e73 666f 726d . The transform │ │ │ │ -000106b0: 2070 6c61 6365 7320 7468 6520 6f72 6967 places the orig │ │ │ │ -000106c0: 696e 616c 2070 6f6c 7967 6f6e 2061 7420 inal polygon at │ │ │ │ -000106d0: 7468 6520 756e 636f 7665 7265 640a 686f the uncovered.ho │ │ │ │ -000106e0: 6c65 3b20 6974 2069 730a 2020 2020 2054 le; it is. T │ │ │ │ -000106f0: 5f31 5e6e 2074 6865 6e20 545f 325e 6e20 _1^n then T_2^n │ │ │ │ -00010700: 7468 656e 202e 2e2e 2074 6865 6e20 545f then ... then T_ │ │ │ │ -00010710: 525e 6e2e 0a49 6620 7468 6572 6520 6172 R^n..If there ar │ │ │ │ -00010720: 6520 6e6f 206f 7074 696f 6e73 206f 6e20 e no options on │ │ │ │ -00010730: 7468 6520 7377 6570 7420 706f 6c79 676f the swept polygo │ │ │ │ -00010740: 6e2c 2074 6865 6e20 7468 6520 e280 9873 n, then the ...s │ │ │ │ -00010750: 7765 6570 e280 9920 6f70 7469 6f6e 730a weep... options. │ │ │ │ -00010760: 6172 6520 636f 7069 6564 2074 6f20 6561 are copied to ea │ │ │ │ -00010770: 6368 206f 7574 7075 7420 706f 6c79 676f ch output polygo │ │ │ │ -00010780: 6e2e 2020 4966 2074 6865 2073 7765 7074 n. If the swept │ │ │ │ -00010790: 2070 6f6c 7967 6f6e 2064 6f65 7320 6861 polygon does ha │ │ │ │ -000107a0: 7665 0a6f 7074 696f 6e73 2c20 7468 6573 ve.options, thes │ │ │ │ -000107b0: 6520 6172 6520 636f 7069 6564 2074 6f20 e are copied to │ │ │ │ -000107c0: 7468 6520 656e 6473 3b20 7468 6520 7377 the ends; the sw │ │ │ │ -000107d0: 6565 7020 6f70 7469 6f6e 7320 6172 6520 eep options are │ │ │ │ -000107e0: 636f 7069 6564 2074 6f0a 7468 6520 626f copied to.the bo │ │ │ │ -000107f0: 6479 2070 6f6c 7967 6f6e 732e 2020 496e dy polygons. In │ │ │ │ -00010800: 2074 6869 7320 6d61 6e6e 6572 2c20 626f this manner, bo │ │ │ │ -00010810: 6479 2061 6e64 2065 6e64 7320 6d61 7920 dy and ends may │ │ │ │ -00010820: 6265 2064 7261 776e 2077 6974 680a 6469 be drawn with.di │ │ │ │ -00010830: 6666 6572 656e 7420 6368 6172 6163 7465 fferent characte │ │ │ │ -00010840: 7269 7374 6963 7320 7375 6368 2061 7320 ristics such as │ │ │ │ -00010850: e280 9866 696c 6c63 6f6c 6f72 e280 992e ...fillcolor.... │ │ │ │ -00010860: 0a0a 1f0a 4669 6c65 3a20 736b 6574 6368 ....File: sketch │ │ │ │ -00010870: 2e69 6e66 6f2c 2020 4e6f 6465 3a20 5377 .info, Node: Sw │ │ │ │ -00010880: 6570 7420 626c 6f63 6b73 2c20 204e 6578 ept blocks, Nex │ │ │ │ -00010890: 743a 2053 7765 6570 2066 6163 6520 7370 t: Sweep face sp │ │ │ │ -000108a0: 6c69 7474 696e 672c 2020 5072 6576 3a20 litting, Prev: │ │ │ │ -000108b0: 5377 6570 7420 706f 6c79 676f 6e73 2c20 Swept polygons, │ │ │ │ -000108c0: 2055 703a 2053 7765 6570 730a 0a33 2e32 Up: Sweeps..3.2 │ │ │ │ -000108d0: 2e36 2e34 2053 7765 7074 2062 6c6f 636b .6.4 Swept block │ │ │ │ -000108e0: 730a 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e s............... │ │ │ │ -000108f0: 2e2e 2e2e 2e2e 0a0a 5468 6520 7377 6570 ........The swep │ │ │ │ -00010900: 7420 6f62 6a65 6374 2053 5745 5054 5f4f t object SWEPT_O │ │ │ │ -00010910: 424a 4543 5420 6d61 7920 616c 736f 2062 BJECT may also b │ │ │ │ -00010920: 6520 616e 7920 636f 6c6c 6563 7469 6f6e e any collection │ │ │ │ -00010930: 206f 6620 706f 6c79 6c69 6e65 730a 616e of polylines.an │ │ │ │ -00010940: 6420 706f 6c79 676f 6e73 2e20 2054 6869 d polygons. Thi │ │ │ │ -00010950: 7320 6d61 7920 6265 2061 2062 6c6f 636b s may be a block │ │ │ │ -00010960: 2063 6f6d 706f 7365 6420 6f66 20e2 8098 composed of ... │ │ │ │ -00010970: 6c69 6e65 e280 9920 616e 642f 6f72 20e2 line... and/or . │ │ │ │ -00010980: 8098 706f 6c79 676f 6ee2 8099 0a63 6f6d ..polygon....com │ │ │ │ -00010990: 6d61 6e64 7320 696e 2062 7261 6365 7320 mands in braces │ │ │ │ -000109a0: e280 987b 207d e280 992c 206f 7220 6974 ...{ }..., or it │ │ │ │ -000109b0: 206d 6179 2062 6520 7468 6520 7265 7375 may be the resu │ │ │ │ -000109c0: 6c74 206f 6620 6120 e280 9872 6570 6561 lt of a ...repea │ │ │ │ -000109d0: 74e2 8099 2c20 616e 6f74 6865 720a e280 t..., another... │ │ │ │ -000109e0: 9873 7765 6570 e280 992c 2065 7463 2e20 .sweep..., etc. │ │ │ │ -000109f0: 2054 6865 2073 7765 6570 2061 6374 7320 The sweep acts │ │ │ │ -00010a00: 696e 6465 7065 6e64 656e 746c 7920 6f6e independently on │ │ │ │ -00010a10: 2065 6163 6820 6f62 6a65 6374 2069 6e20 each object in │ │ │ │ -00010a20: 7468 6520 626c 6f63 6b0a 6578 6163 746c the block.exactl │ │ │ │ -00010a30: 7920 6173 2069 6620 6974 2077 6572 6520 y as if it were │ │ │ │ -00010a40: 6120 7369 6e67 6c65 2073 7765 7074 206f a single swept o │ │ │ │ -00010a50: 626a 6563 7420 6465 7363 7269 6265 6420 bject described │ │ │ │ -00010a60: 6162 6f76 6520 696e 202a 6e6f 7465 0a53 above in *note.S │ │ │ │ -00010a70: 7765 7074 206c 696e 6573 3a3a 2061 6e64 wept lines:: and │ │ │ │ -00010a80: 202a 6e6f 7465 2053 7765 7074 2070 6f6c *note Swept pol │ │ │ │ -00010a90: 7967 6f6e 733a 3a2e 0a0a 1f0a 4669 6c65 ygons::.....File │ │ │ │ -00010aa0: 3a20 736b 6574 6368 2e69 6e66 6f2c 2020 : sketch.info, │ │ │ │ -00010ab0: 4e6f 6465 3a20 5377 6565 7020 6661 6365 Node: Sweep face │ │ │ │ -00010ac0: 2073 706c 6974 7469 6e67 2c20 2050 7265 splitting, Pre │ │ │ │ -00010ad0: 763a 2053 7765 7074 2062 6c6f 636b 732c v: Swept blocks, │ │ │ │ -00010ae0: 2020 5570 3a20 5377 6565 7073 0a0a 332e Up: Sweeps..3. │ │ │ │ -00010af0: 322e 362e 3520 5377 6565 7020 6661 6365 2.6.5 Sweep face │ │ │ │ -00010b00: 2073 706c 6974 7469 6e67 0a2e 2e2e 2e2e splitting...... │ │ │ │ -00010b10: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e ................ │ │ │ │ -00010b20: 2e2e 2e2e 2e2e 2e0a 0a42 6566 6f72 6520 .........Before │ │ │ │ -00010b30: 7365 6e64 696e 6720 6561 6368 2066 6f75 sending each fou │ │ │ │ -00010b40: 722d 7369 6465 6420 626f 6479 2070 6f6c r-sided body pol │ │ │ │ -00010b50: 7967 6f6e 206f 6620 6120 e280 9873 7765 ygon of a ...swe │ │ │ │ -00010b60: 6570 e280 9920 746f 2074 6865 206f 7574 ep... to the out │ │ │ │ -00010b70: 7075 742c 0ae2 8098 736b 6574 6368 e280 put,....sketch.. │ │ │ │ -00010b80: 9920 7465 7374 7320 746f 2073 6565 2069 . tests to see i │ │ │ │ -00010b90: 6620 6974 2069 7320 726f 7567 686c 7920 f it is roughly │ │ │ │ -00010ba0: 706c 616e 6172 2e20 2053 696e 6365 2070 planar. Since p │ │ │ │ -00010bb0: 6c61 6e61 7269 7479 2069 730a 6e65 6365 lanarity is.nece │ │ │ │ -00010bc0: 7373 6172 7920 666f 7220 7072 6f70 6572 ssary for proper │ │ │ │ -00010bd0: 2066 756e 6374 696f 6e69 6e67 206f 6620 functioning of │ │ │ │ -00010be0: 7468 6520 6869 6464 656e 2073 7572 6661 the hidden surfa │ │ │ │ -00010bf0: 6365 2061 6c67 6f72 6974 686d 2c0a 2277 ce algorithm,."w │ │ │ │ -00010c00: 6172 7065 6422 2070 6f6c 7967 6f6e 7320 arped" polygons │ │ │ │ -00010c10: 6172 6520 6175 746f 6d61 7469 6361 6c6c are automaticall │ │ │ │ -00010c20: 7920 7370 6c69 7420 696e 746f 2074 776f y split into two │ │ │ │ -00010c30: 2074 7269 616e 676c 6573 2e0a 0a20 2020 triangles... │ │ │ │ -00010c40: 486f 6c65 2d66 696c 6c69 6e67 2070 6f6c Hole-filling pol │ │ │ │ -00010c50: 7967 6f6e 7320 7072 6f64 7563 6564 2062 ygons produced b │ │ │ │ -00010c60: 7920 636c 6f73 7572 652d 7461 6767 6564 y closure-tagged │ │ │ │ -00010c70: 206c 696e 6520 7377 6565 7073 2061 7265 line sweeps are │ │ │ │ -00010c80: 206e 6f74 0a73 706c 6974 2e20 204e 6f72 not.split. Nor │ │ │ │ -00010c90: 2061 7265 206f 7269 6769 6e61 6c20 706f are original po │ │ │ │ -00010ca0: 6c79 676f 6e73 2069 6e20 706f 6c79 676f lygons in polygo │ │ │ │ -00010cb0: 6e20 7377 6565 7073 2e20 2049 7420 6973 n sweeps. It is │ │ │ │ -00010cc0: 2074 6865 2075 7365 7227 730a 7265 7370 the user's.resp │ │ │ │ -00010cd0: 6f6e 7369 6269 6c69 7479 2074 6f20 656e onsibility to en │ │ │ │ -00010ce0: 7375 7265 2074 6865 7365 2061 7265 2070 sure these are p │ │ │ │ -00010cf0: 6c61 6e61 722e 0a0a 1f0a 4669 6c65 3a20 lanar.....File: │ │ │ │ -00010d00: 736b 6574 6368 2e69 6e66 6f2c 2020 4e6f sketch.info, No │ │ │ │ -00010d10: 6465 3a20 426c 6f63 6b73 2c20 204e 6578 de: Blocks, Nex │ │ │ │ -00010d20: 743a 2052 6570 6561 7473 2c20 2050 7265 t: Repeats, Pre │ │ │ │ -00010d30: 763a 2053 7765 6570 732c 2020 5570 3a20 v: Sweeps, Up: │ │ │ │ -00010d40: 4472 6177 6162 6c65 730a 0a33 2e32 2e37 Drawables..3.2.7 │ │ │ │ -00010d50: 2042 6c6f 636b 730a 2d2d 2d2d 2d2d 2d2d Blocks.-------- │ │ │ │ -00010d60: 2d2d 2d2d 0a0a 416e 7920 7365 7175 656e ----..Any sequen │ │ │ │ -00010d70: 6365 206f 6620 6472 6177 6162 6c65 7320 ce of drawables │ │ │ │ -00010d80: 6d61 7920 6265 2067 726f 7570 6564 2069 may be grouped i │ │ │ │ -00010d90: 6e20 6120 e280 9c62 6c6f 636b e280 9d20 n a ...block... │ │ │ │ -00010da0: 6d65 7265 6c79 2062 790a 656e 636c 6f73 merely by.enclos │ │ │ │ -00010db0: 696e 6720 7468 656d 2069 6e20 6272 6163 ing them in brac │ │ │ │ -00010dc0: 6573 20e2 8098 7b20 7de2 8099 2e20 2041 es ...{ }.... A │ │ │ │ -00010dd0: 2062 6c6f 636b 2069 7320 6974 7365 6c66 block is itself │ │ │ │ -00010de0: 2064 7261 7761 626c 652e 2020 4120 6b65 drawable. A ke │ │ │ │ -00010df0: 7920 7573 650a 6f66 2062 6c6f 636b 7320 y use.of blocks │ │ │ │ -00010e00: 6973 2074 6f20 6578 7465 6e64 2074 6865 is to extend the │ │ │ │ -00010e10: 2065 6666 6563 7420 6f66 2061 2073 696e effect of a sin │ │ │ │ -00010e20: 676c 6520 e280 9864 6566 e280 992c 202a gle ...def..., * │ │ │ │ -00010e30: 6e6f 7465 0a44 6566 696e 6974 696f 6e73 note.Definitions │ │ │ │ -00010e40: 3a3a 2c20 e280 9870 7574 e280 9920 2a6e ::, ...put... *n │ │ │ │ -00010e50: 6f74 6520 5075 7473 3a3a 2c20 e280 9873 ote Puts::, ...s │ │ │ │ -00010e60: 7765 6570 e280 9920 2a6e 6f74 6520 5377 weep... *note Sw │ │ │ │ -00010e70: 6565 7073 3a3a 2c20 6f72 20e2 8098 7265 eeps::, or ...re │ │ │ │ -00010e80: 7065 6174 e280 990a 2a6e 6f74 6520 5265 peat....*note Re │ │ │ │ -00010e90: 7065 6174 733a 3a20 746f 2069 6e63 6c75 peats:: to inclu │ │ │ │ -00010ea0: 6465 2073 6576 6572 616c 206f 626a 6563 de several objec │ │ │ │ -00010eb0: 7473 2072 6174 6865 7220 7468 616e 206f ts rather than o │ │ │ │ -00010ec0: 6e65 2e0a 0a20 2020 4465 6669 6e69 7469 ne... Definiti │ │ │ │ -00010ed0: 6f6e 7320 282a 4e6f 7465 2044 6566 696e ons (*Note Defin │ │ │ │ -00010ee0: 6974 696f 6e73 3a3a 2e29 2020 696e 7369 itions::.) insi │ │ │ │ -00010ef0: 6465 2061 2062 6c6f 636b 2068 6176 6520 de a block have │ │ │ │ -00010f00: e280 9c6c 6578 6963 616c 0a73 636f 7065 ...lexical.scope │ │ │ │ -00010f10: e280 9d20 6578 7465 6e64 696e 6720 6672 ... extending fr │ │ │ │ -00010f20: 6f6d 2074 6865 2070 6c61 6365 206f 6620 om the place of │ │ │ │ -00010f30: 6465 6669 6e69 7469 6f6e 2074 6f20 7468 definition to th │ │ │ │ -00010f40: 6520 656e 6420 6f66 2074 6865 2062 6c6f e end of the blo │ │ │ │ -00010f50: 636b 2e0a 0a1f 0a46 696c 653a 2073 6b65 ck.....File: ske │ │ │ │ -00010f60: 7463 682e 696e 666f 2c20 204e 6f64 653a tch.info, Node: │ │ │ │ -00010f70: 2052 6570 6561 7473 2c20 204e 6578 743a Repeats, Next: │ │ │ │ -00010f80: 2050 7574 732c 2020 5072 6576 3a20 426c Puts, Prev: Bl │ │ │ │ -00010f90: 6f63 6b73 2c20 2055 703a 2044 7261 7761 ocks, Up: Drawa │ │ │ │ -00010fa0: 626c 6573 0a0a 332e 322e 3820 5265 7065 bles..3.2.8 Repe │ │ │ │ -00010fb0: 6174 730a 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ats.------------ │ │ │ │ -00010fc0: 2d0a 0a2a 5379 6e74 6178 3a2a 0a20 2020 -..*Syntax:*. │ │ │ │ -00010fd0: 2020 7265 7065 6174 207b 204e 2c20 545f repeat { N, T_ │ │ │ │ -00010fe0: 312c 2054 5f32 2c20 2e2e 2e2c 2054 5f52 1, T_2, ..., T_R │ │ │ │ -00010ff0: 207d 2052 4550 4541 5445 445f 4f42 4a45 } REPEATED_OBJE │ │ │ │ -00011000: 4354 0a54 6865 2072 6570 6561 7420 6d61 CT.The repeat ma │ │ │ │ -00011010: 6b65 7320 4e20 7472 616e 7366 6f72 6d65 kes N transforme │ │ │ │ -00011020: 6420 636f 7069 6573 206f 6620 5245 5045 d copies of REPE │ │ │ │ -00011030: 4154 4544 5f4f 424a 4543 5420 2869 6e63 ATED_OBJECT (inc │ │ │ │ -00011040: 6c75 6469 6e67 2074 6865 0a6f 7269 6769 luding the.origi │ │ │ │ -00011050: 6e61 6c29 2e20 2054 6865 2054 5f49 2061 nal). The T_I a │ │ │ │ -00011060: 7265 2074 7261 6e73 666f 726d 732e 2020 re transforms. │ │ │ │ -00011070: 5468 6520 6b27 7468 2063 6f70 7920 6f66 The k'th copy of │ │ │ │ -00011080: 2074 6865 0a52 4550 4541 5445 445f 4f42 the.REPEATED_OB │ │ │ │ -00011090: 4a45 4354 2028 666f 7220 6b3d 302c 312c JECT (for k=0,1, │ │ │ │ -000110a0: 2e2e 2e2c 6e2d 3129 2069 7320 7072 6f64 ...,n-1) is prod │ │ │ │ -000110b0: 7563 6564 2069 6e20 7468 6520 7361 6d65 uced in the same │ │ │ │ -000110c0: 206d 616e 6e65 7220 6173 0a66 6f72 20e2 manner as.for . │ │ │ │ -000110d0: 8098 7377 6565 70e2 8099 7320 6465 7363 ..sweep...s desc │ │ │ │ -000110e0: 7269 6265 6420 696e 202a 6e6f 7465 2053 ribed in *note S │ │ │ │ -000110f0: 7765 6570 733a 3a2e 2020 5468 6973 2069 weeps::. This i │ │ │ │ -00011100: 7320 7265 7065 6174 6564 2068 6572 6520 s repeated here │ │ │ │ -00011110: 286e 6f20 7075 6e0a 696e 7465 6e64 6564 (no pun.intended │ │ │ │ -00011120: 2920 666f 7220 636f 6e76 656e 6965 6e63 ) for convenienc │ │ │ │ -00011130: 652e 2020 546f 206d 616b 6520 7468 6520 e. To make the │ │ │ │ -00011140: 6b27 7468 2063 6f70 792c 2074 6865 2066 k'th copy, the f │ │ │ │ -00011150: 6f6c 6c6f 7769 6e67 0a74 7261 6e73 666f ollowing.transfo │ │ │ │ -00011160: 726d 2069 7320 6170 706c 6965 6420 746f rm is applied to │ │ │ │ -00011170: 2074 6865 206f 7269 6769 6e61 6c20 6f62 the original ob │ │ │ │ -00011180: 6a65 6374 2e0a 2020 2020 2054 5f31 5e6b ject.. T_1^k │ │ │ │ -00011190: 2074 6865 6e20 545f 325e 6b20 7468 656e then T_2^k then │ │ │ │ -000111a0: 202e 2e2e 2074 6865 6e20 545f 525e 6b0a ... then T_R^k. │ │ │ │ -000111b0: 4865 7265 2054 5e6b 206d 6561 6e73 2022 Here T^k means " │ │ │ │ -000111c0: 7472 616e 7366 6f72 6d20 5420 6170 706c transform T appl │ │ │ │ -000111d0: 6965 6420 6b20 7469 6d65 732e 220a 0a1f ied k times."... │ │ │ │ -000111e0: 0a46 696c 653a 2073 6b65 7463 682e 696e .File: sketch.in │ │ │ │ -000111f0: 666f 2c20 204e 6f64 653a 2050 7574 732c fo, Node: Puts, │ │ │ │ -00011200: 2020 5072 6576 3a20 5265 7065 6174 732c Prev: Repeats, │ │ │ │ -00011210: 2020 5570 3a20 4472 6177 6162 6c65 730a Up: Drawables. │ │ │ │ -00011220: 0a33 2e32 2e39 2050 7574 730a 2d2d 2d2d .3.2.9 Puts.---- │ │ │ │ -00011230: 2d2d 2d2d 2d2d 0a0a 2a53 796e 7461 783a ------..*Syntax: │ │ │ │ -00011240: 2a0a 2020 2020 2070 7574 207b 2054 207d *. put { T } │ │ │ │ -00011250: 2050 5554 5f4f 424a 4543 540a 5075 7420 PUT_OBJECT.Put │ │ │ │ -00011260: 6d65 7265 6c79 2061 7070 6c69 6573 2074 merely applies t │ │ │ │ -00011270: 7261 6e73 666f 726d 2054 2074 6f20 7468 ransform T to th │ │ │ │ -00011280: 6520 6472 6177 6162 6c65 2050 5554 5f4f e drawable PUT_O │ │ │ │ -00011290: 424a 4543 542e 0a0a 1f0a 4669 6c65 3a20 BJECT.....File: │ │ │ │ -000112a0: 736b 6574 6368 2e69 6e66 6f2c 2020 4e6f sketch.info, No │ │ │ │ -000112b0: 6465 3a20 4465 6669 6e69 7469 6f6e 732c de: Definitions, │ │ │ │ -000112c0: 2020 4e65 7874 3a20 476c 6f62 616c 2065 Next: Global e │ │ │ │ -000112d0: 6e76 6972 6f6e 6d65 6e74 2c20 2050 7265 nvironment, Pre │ │ │ │ -000112e0: 763a 2044 7261 7761 626c 6573 2c20 2055 v: Drawables, U │ │ │ │ -000112f0: 703a 2049 6e70 7574 206c 616e 6775 6167 p: Input languag │ │ │ │ -00011300: 650a 0a33 2e33 2044 6566 696e 6974 696f e..3.3 Definitio │ │ │ │ -00011310: 6e73 0a3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d ns.============= │ │ │ │ -00011320: 3d3d 0a0a 4465 6669 6e69 7469 6f6e 7320 ==..Definitions │ │ │ │ -00011330: 6769 7665 206e 616d 6573 2074 6f20 e280 give names to .. │ │ │ │ -00011340: 9873 6b65 7463 68e2 8099 206f 626a 6563 .sketch... objec │ │ │ │ -00011350: 7473 2e20 2044 6566 696e 6974 696f 6e73 ts. Definitions │ │ │ │ -00011360: 2061 6c6f 6e65 2061 7265 0a62 656e 6967 alone are.benig │ │ │ │ -00011370: 6e2e 2020 4120 e280 9873 6b65 7463 68e2 n. A ...sketch. │ │ │ │ -00011380: 8099 2069 6e70 7574 2066 696c 6520 636f .. input file co │ │ │ │ -00011390: 6e73 6973 7469 6e67 2065 6e74 6972 656c nsisting entirel │ │ │ │ -000113a0: 7920 6f66 2064 6566 696e 6974 696f 6e73 y of definitions │ │ │ │ -000113b0: 2077 696c 6c0a 6765 6e65 7261 7465 206e will.generate n │ │ │ │ -000113c0: 6f20 6472 6177 696e 672e 2020 4f6e 6c79 o drawing. Only │ │ │ │ -000113d0: 2077 6865 6e20 6465 6669 6e69 7469 6f6e when definition │ │ │ │ -000113e0: 7320 6172 6520 e280 9c72 6566 6572 656e s are ...referen │ │ │ │ -000113f0: 6365 64e2 809d 2064 6f20 7468 6579 0a70 ced... do they.p │ │ │ │ -00011400: 6f74 656e 7469 616c 6c79 206c 6561 6420 otentially lead │ │ │ │ -00011410: 746f 2069 6e6b 206f 6e20 7468 6520 6472 to ink on the dr │ │ │ │ -00011420: 6177 696e 672e 0a0a 2020 2054 6865 2069 awing... The i │ │ │ │ -00011430: 6e74 656e 7420 6f66 2064 6566 696e 6974 ntent of definit │ │ │ │ -00011440: 696f 6e73 2069 7320 746f 206d 616b 6520 ions is to make │ │ │ │ -00011450: e280 9873 6b65 7463 68e2 8099 2063 6f64 ...sketch... cod │ │ │ │ -00011460: 6520 6d6f 7265 2063 6f6e 6369 7365 2061 e more concise a │ │ │ │ -00011470: 6e64 0a72 6561 6461 626c 652e 2020 5468 nd.readable. Th │ │ │ │ -00011480: 6572 6520 6973 206e 6f20 696e 7075 7420 ere is no input │ │ │ │ -00011490: 6669 6c65 2065 6d70 6c6f 7969 6e67 2064 file employing d │ │ │ │ -000114a0: 6566 696e 6974 696f 6e73 2074 6861 7420 efinitions that │ │ │ │ -000114b0: 636f 756c 6420 6e6f 740a 6265 2072 652d could not.be re- │ │ │ │ -000114c0: 7772 6974 7465 6e20 7769 7468 6f75 7420 written without │ │ │ │ -000114d0: 7468 656d 2e0a 0a20 2020 4465 6669 6e61 them... Defina │ │ │ │ -000114e0: 626c 6520 6f62 6a65 6374 7320 696e 636c ble objects incl │ │ │ │ -000114f0: 7564 6520 616e 7920 7265 7375 6c74 206f ude any result o │ │ │ │ -00011500: 6620 616e 2061 6666 696e 6520 6172 6974 f an affine arit │ │ │ │ -00011510: 686d 6574 6963 0a65 7870 7265 7373 696f hmetic.expressio │ │ │ │ -00011520: 6e20 2873 6361 6c61 722c 2070 6f69 6e74 n (scalar, point │ │ │ │ -00011530: 2c20 7665 6374 6f72 2c20 6f72 2074 7261 , vector, or tra │ │ │ │ -00011540: 6e73 666f 726d 292c 2061 6e79 2064 7261 nsform), any dra │ │ │ │ -00011550: 7761 626c 6520 6f62 6a65 6374 0a28 646f wable object.(do │ │ │ │ -00011560: 7473 2c20 6c69 6e65 2c20 6375 7276 652c ts, line, curve, │ │ │ │ -00011570: 2070 6f6c 7967 6f6e 2c20 626c 6f63 6b2c polygon, block, │ │ │ │ -00011580: 2073 7765 6570 2c20 7075 742c 2072 6570 sweep, put, rep │ │ │ │ -00011590: 6561 742c 206f 7220 7370 6563 6961 6c29 eat, or special) │ │ │ │ -000115a0: 2c20 616e 640a 6f70 7469 6f6e 2073 7472 , and.option str │ │ │ │ -000115b0: 696e 6773 2e20 2049 6e20 6164 6469 7469 ings. In additi │ │ │ │ -000115c0: 6f6e 2c20 e280 9c74 6167 2064 6566 696e on, ...tag defin │ │ │ │ -000115d0: 6974 696f 6e73 e280 9d2c 2077 6869 6368 itions..., which │ │ │ │ -000115e0: 2068 6176 6520 6e6f 0a61 7373 6f63 6961 have no.associa │ │ │ │ -000115f0: 7465 6420 6f62 6a65 6374 2061 7420 616c ted object at al │ │ │ │ -00011600: 6c2c 2061 6c6c 6f77 2074 6865 206d 6561 l, allow the mea │ │ │ │ -00011610: 6e69 6e67 206f 6620 6f74 6865 7220 6465 ning of other de │ │ │ │ -00011620: 6669 6e69 7469 6f6e 7320 746f 2062 650a finitions to be. │ │ │ │ -00011630: 7365 6c65 6374 6564 2066 726f 6d20 6120 selected from a │ │ │ │ -00011640: 7365 7420 6f66 2061 6c74 6572 6e61 7469 set of alternati │ │ │ │ -00011650: 7665 732e 2020 5369 6e63 6520 7461 6773 ves. Since tags │ │ │ │ -00011660: 206d 6179 2062 6520 6465 6669 6e65 6420 may be defined │ │ │ │ -00011670: 2861 6e64 0a75 6e64 6566 696e 6564 2920 (and.undefined) │ │ │ │ -00011680: 696e 2074 6865 2063 6f6d 6d61 6e64 206c in the command l │ │ │ │ -00011690: 696e 6520 6f66 20e2 8098 736b 6574 6368 ine of ...sketch │ │ │ │ -000116a0: e280 992c 2074 6865 7920 6361 6e20 6265 ..., they can be │ │ │ │ -000116b0: 2061 6e20 6169 6420 696e 2074 6865 0a73 an aid in the.s │ │ │ │ -000116c0: 6372 6970 742d 6472 6976 656e 2070 7265 cript-driven pre │ │ │ │ -000116d0: 7061 7261 7469 6f6e 206f 6620 646f 6375 paration of docu │ │ │ │ -000116e0: 6d65 6e74 732e 0a0a 2a20 4d65 6e75 3a0a ments...* Menu:. │ │ │ │ -000116f0: 0a2a 2046 6f72 6d73 206f 6620 6465 6669 .* Forms of defi │ │ │ │ -00011700: 6e69 7469 6f6e 733a 3a20 2020 2020 2020 nitions:: │ │ │ │ -00011710: 2044 6966 6665 7265 6e74 2064 6566 7320 Different defs │ │ │ │ -00011720: 666f 7220 6469 6666 6572 656e 7420 7075 for different pu │ │ │ │ -00011730: 7270 6f73 6573 2e0a 2a20 466f 726d 7320 rposes..* Forms │ │ │ │ -00011740: 6f66 2072 6566 6572 656e 6365 733a 3a20 of references:: │ │ │ │ -00011750: 2020 2020 2020 2020 486f 7720 7265 6665 How refe │ │ │ │ -00011760: 7265 6e63 6573 2064 656e 6f74 6520 7479 rences denote ty │ │ │ │ -00011770: 7065 732e 0a0a 1f0a 4669 6c65 3a20 736b pes.....File: sk │ │ │ │ -00011780: 6574 6368 2e69 6e66 6f2c 2020 4e6f 6465 etch.info, Node │ │ │ │ -00011790: 3a20 466f 726d 7320 6f66 2064 6566 696e : Forms of defin │ │ │ │ -000117a0: 6974 696f 6e73 2c20 204e 6578 743a 2046 itions, Next: F │ │ │ │ -000117b0: 6f72 6d73 206f 6620 7265 6665 7265 6e63 orms of referenc │ │ │ │ -000117c0: 6573 2c20 2050 7265 763a 2044 6566 696e es, Prev: Defin │ │ │ │ -000117d0: 6974 696f 6e73 2c20 2055 703a 2044 6566 itions, Up: Def │ │ │ │ -000117e0: 696e 6974 696f 6e73 0a0a 332e 332e 3120 initions..3.3.1 │ │ │ │ -000117f0: 466f 726d 7320 6f66 2064 6566 696e 6974 Forms of definit │ │ │ │ -00011800: 696f 6e73 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d ions.----------- │ │ │ │ -00011810: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a ---------------. │ │ │ │ -00011820: 0a44 6566 696e 6974 696f 6e73 2068 6176 .Definitions hav │ │ │ │ -00011830: 6520 7468 7265 6520 706f 7373 6962 6c65 e three possible │ │ │ │ -00011840: 2066 6f72 6d73 2c20 e280 9c73 696d 706c forms, ...simpl │ │ │ │ -00011850: 65e2 809d 2c20 e280 9c77 6974 6820 616c e..., ...with al │ │ │ │ -00011860: 7465 726e 6174 6976 6573 e280 9d2c 0a61 ternatives...,.a │ │ │ │ -00011870: 6e64 20e2 809c 7461 67e2 809d 2061 7320 nd ...tag... as │ │ │ │ -00011880: 7368 6f77 6e20 6865 7265 2069 6e20 6f72 shown here in or │ │ │ │ -00011890: 6465 722e 0a0a 2a53 796e 7461 783a 2a0a der...*Syntax:*. │ │ │ │ -000118a0: 2020 2020 2064 6566 2049 4420 4f42 4a45 def ID OBJE │ │ │ │ -000118b0: 4354 2020 2520 7369 6d70 6c65 2064 6566 CT % simple def │ │ │ │ -000118c0: 0a20 2020 2020 6465 6620 4944 203c 5441 . def ID OBJECT_1 % │ │ │ │ -000118e0: 2064 6566 2077 6974 6820 616c 7465 726e def with altern │ │ │ │ -000118f0: 6174 6976 6573 0a20 2020 2020 2020 2020 atives. │ │ │ │ -00011900: 2020 203c 5441 475f 323e 204f 424a 4543 OBJEC │ │ │ │ -00011910: 545f 320a 2020 2020 2020 2020 2020 2020 T_2. │ │ │ │ -00011920: 2e2e 2e0a 2020 2020 2020 2020 2020 2020 .... │ │ │ │ -00011930: 3c3e 2044 4546 4155 4c54 5f4f 424a 4543 <> DEFAULT_OBJEC │ │ │ │ -00011940: 540a 2020 2020 2064 6566 2049 4420 3c3e T. def ID <> │ │ │ │ -00011950: 2020 2520 7461 6720 6465 660a 5468 6520 % tag def.The │ │ │ │ -00011960: 7369 6d70 6c65 2064 6566 696e 6974 696f simple definitio │ │ │ │ -00011970: 6e20 6d65 7265 6c79 2061 7373 6f63 6961 n merely associa │ │ │ │ -00011980: 7465 7320 4f42 4a45 4354 2077 6974 6820 tes OBJECT with │ │ │ │ -00011990: 7468 6520 6964 656e 7469 6669 6572 2049 the identifier I │ │ │ │ -000119a0: 442e 0a0a 2020 2054 6865 2064 6566 696e D... The defin │ │ │ │ -000119b0: 6974 696f 6e20 7769 7468 2061 6c74 6572 ition with alter │ │ │ │ -000119c0: 6e61 7469 7665 7320 6173 736f 6369 6174 natives associat │ │ │ │ -000119d0: 6573 204f 424a 4543 545f 4920 7769 7468 es OBJECT_I with │ │ │ │ -000119e0: 2049 442c 2077 6865 7265 0a54 4147 5f49 ID, where.TAG_I │ │ │ │ -000119f0: 2069 7320 7468 6520 6669 7273 7420 6465 is the first de │ │ │ │ -00011a00: 6669 6e65 6420 7461 6720 696e 2074 6865 fined tag in the │ │ │ │ -00011a10: 206c 6973 7420 6f66 2061 6c74 6572 6e61 list of alterna │ │ │ │ -00011a20: 7469 7665 2074 6167 0a72 6566 6572 656e tive tag.referen │ │ │ │ -00011a30: 6365 732e 2020 4966 206e 6f20 7461 6720 ces. If no tag │ │ │ │ -00011a40: 696e 2074 6865 206c 6973 7420 6973 2064 in the list is d │ │ │ │ -00011a50: 6566 696e 6564 2c20 7468 656e 2044 4546 efined, then DEF │ │ │ │ -00011a60: 4155 4c54 5f4f 424a 4543 5420 6973 0a61 AULT_OBJECT is.a │ │ │ │ -00011a70: 7373 6f63 6961 7465 6420 7769 7468 2069 ssociated with i │ │ │ │ -00011a80: 6465 6e74 6966 6965 7220 4944 2e0a 0a20 dentifier ID... │ │ │ │ -00011a90: 2020 5468 6520 6669 6e61 6c20 666f 726d The final form │ │ │ │ -00011aa0: 2064 6566 696e 6573 2049 4420 6173 2061 defines ID as a │ │ │ │ -00011ab0: 2074 6167 2e20 2041 6e6f 7468 6572 2077 tag. Another w │ │ │ │ -00011ac0: 6179 2074 6f20 6465 6669 6e65 2061 2074 ay to define a t │ │ │ │ -00011ad0: 6167 2069 730a 7769 7468 2074 6865 20e2 ag is.with the . │ │ │ │ -00011ae0: 8098 2d44 e280 9920 636f 6d6d 616e 6420 ..-D... command │ │ │ │ -00011af0: 6c69 6e65 206f 7074 696f 6e2e 2020 2a4e line option. *N │ │ │ │ -00011b00: 6f74 6520 436f 6d6d 616e 6420 6c69 6e65 ote Command line │ │ │ │ -00011b10: 3a3a 2e0a 0a1f 0a46 696c 653a 2073 6b65 ::.....File: ske │ │ │ │ -00011b20: 7463 682e 696e 666f 2c20 204e 6f64 653a tch.info, Node: │ │ │ │ -00011b30: 2046 6f72 6d73 206f 6620 7265 6665 7265 Forms of refere │ │ │ │ -00011b40: 6e63 6573 2c20 2050 7265 763a 2046 6f72 nces, Prev: For │ │ │ │ -00011b50: 6d73 206f 6620 6465 6669 6e69 7469 6f6e ms of definition │ │ │ │ -00011b60: 732c 2020 5570 3a20 4465 6669 6e69 7469 s, Up: Definiti │ │ │ │ -00011b70: 6f6e 730a 0a33 2e33 2e32 2046 6f72 6d73 ons..3.3.2 Forms │ │ │ │ -00011b80: 206f 6620 7265 6665 7265 6e63 6573 0a2d of references.- │ │ │ │ +0000da20: 7265 7370 6563 7469 7665 6c79 2e20 202a respectively. * │ │ │ │ +0000da30: 4e6f 7465 2053 7765 6570 733a 3a2e 2020 Note Sweeps::. │ │ │ │ +0000da40: 5468 6520 6465 6661 756c 7420 7661 6c75 The default valu │ │ │ │ +0000da50: 6520 e280 9874 7275 65e2 8099 0a20 2020 e ...true.... │ │ │ │ +0000da60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0000da70: 2020 2020 2020 2020 2020 2020 2020 2063 c │ │ │ │ +0000da80: 6175 7365 7320 2277 6172 7065 6422 2070 auses "warped" p │ │ │ │ +0000da90: 6f6c 7967 6f6e 7320 746f 2062 6520 7370 olygons to be sp │ │ │ │ +0000daa0: 6c69 7420 696e 746f 2074 7269 616e 676c lit into triangl │ │ │ │ +0000dab0: 6573 2c20 7768 6963 680a 2020 2020 2020 es, which. │ │ │ │ +0000dac0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0000dad0: 2020 2020 2020 2020 2020 2020 6176 6f69 avoi │ │ │ │ +0000dae0: 6473 206d 6973 7461 6b65 7320 6279 2074 ds mistakes by t │ │ │ │ +0000daf0: 6865 2068 6964 6465 6e20 7375 7266 6163 he hidden surfac │ │ │ │ +0000db00: 6520 616c 676f 7269 7468 6d2e 0a0a 332e e algorithm...3. │ │ │ │ +0000db10: 312e 3620 506f 696e 7420 6c69 7374 730a 1.6 Point lists. │ │ │ │ +0000db20: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ +0000db30: 2d0a 0a2a 5379 6e74 6178 3a2a 0a20 2020 -..*Syntax:*. │ │ │ │ +0000db40: 2020 2858 312c 5931 2c5a 3129 2858 322c (X1,Y1,Z1)(X2, │ │ │ │ +0000db50: 5932 2c5a 3229 2e2e 2e0a 4120 7365 7175 Y2,Z2)....A sequ │ │ │ │ +0000db60: 656e 6365 206f 6620 6f6e 6520 6f72 206d ence of one or m │ │ │ │ +0000db70: 6f72 6520 706f 696e 7473 206d 616b 6573 ore points makes │ │ │ │ +0000db80: 2061 2070 6f69 6e74 206c 6973 742c 2061 a point list, a │ │ │ │ +0000db90: 2066 6561 7475 7265 2063 6f6d 6d6f 6e20 feature common │ │ │ │ +0000dba0: 746f 0a61 6c6c 2064 7261 7761 626c 6573 to.all drawables │ │ │ │ +0000dbb0: 2e20 2045 6163 6820 6f66 2074 6865 2070 . Each of the p │ │ │ │ +0000dbc0: 6f69 6e74 2063 6f6d 706f 6e65 6e74 7320 oint components │ │ │ │ +0000dbd0: 6973 2061 2073 6361 6c61 7220 6172 6974 is a scalar arit │ │ │ │ +0000dbe0: 686d 6574 6963 0a65 7870 7265 7373 696f hmetic.expressio │ │ │ │ +0000dbf0: 6e2e 2020 416e 7920 706f 696e 7420 6d61 n. Any point ma │ │ │ │ +0000dc00: 7920 6861 7665 2074 6865 207a 2d63 6f6d y have the z-com │ │ │ │ +0000dc10: 706f 6e65 6e74 206f 6d69 7474 6564 3b20 ponent omitted; │ │ │ │ +0000dc20: 6974 2077 696c 6c20 6465 6661 756c 740a it will default. │ │ │ │ +0000dc30: 746f 207a 3d30 2e0a 0a2a 204d 656e 753a to z=0...* Menu: │ │ │ │ +0000dc40: 0a0a 2a20 4472 6177 6162 6c65 733a 3a20 ..* Drawables:: │ │ │ │ +0000dc50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0000dc60: 2020 5468 696e 6773 2074 6861 7420 6172 Things that ar │ │ │ │ +0000dc70: 6520 6472 6177 6e2e 0a2a 2044 6566 696e e drawn..* Defin │ │ │ │ +0000dc80: 6974 696f 6e73 3a3a 2020 2020 2020 2020 itions:: │ │ │ │ +0000dc90: 2020 2020 2020 2020 2054 6869 6e67 7320 Things │ │ │ │ +0000dca0: 7769 7468 206e 616d 6573 2e0a 0a1f 0a46 with names.....F │ │ │ │ +0000dcb0: 696c 653a 2073 6b65 7463 682e 696e 666f ile: sketch.info │ │ │ │ +0000dcc0: 2c20 204e 6f64 653a 2044 7261 7761 626c , Node: Drawabl │ │ │ │ +0000dcd0: 6573 2c20 204e 6578 743a 2044 6566 696e es, Next: Defin │ │ │ │ +0000dce0: 6974 696f 6e73 2c20 2050 7265 763a 204c itions, Prev: L │ │ │ │ +0000dcf0: 616e 6775 6167 6520 6261 7369 6373 2c20 anguage basics, │ │ │ │ +0000dd00: 2055 703a 2049 6e70 7574 206c 616e 6775 Up: Input langu │ │ │ │ +0000dd10: 6167 650a 0a33 2e32 2044 7261 7761 626c age..3.2 Drawabl │ │ │ │ +0000dd20: 6573 0a3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d es.============= │ │ │ │ +0000dd30: 0a0a 4472 6177 6162 6c65 7320 6172 6520 ..Drawables are │ │ │ │ +0000dd40: 7369 6d70 6c79 20e2 8098 736b 6574 6368 simply ...sketch │ │ │ │ +0000dd50: e280 9920 6f62 6a65 6374 7320 7468 6174 ... objects that │ │ │ │ +0000dd60: 206d 6967 6874 2061 7070 6561 7220 696e might appear in │ │ │ │ +0000dd70: 2074 6865 2064 7261 7769 6e67 2e0a 5468 the drawing..Th │ │ │ │ +0000dd80: 6579 2069 6e63 6c75 6465 2064 6f74 732c ey include dots, │ │ │ │ +0000dd90: 2070 6f6c 796c 696e 6573 2c20 6375 7276 polylines, curv │ │ │ │ +0000dda0: 6573 2c20 706f 6c79 676f 6e73 2c20 616e es, polygons, an │ │ │ │ +0000ddb0: 6420 6d6f 7265 2063 6f6d 706c 6578 206f d more complex o │ │ │ │ +0000ddc0: 626a 6563 7473 0a74 6861 7420 6172 6520 bjects.that are │ │ │ │ +0000ddd0: 6275 696c 7420 7570 2066 726f 6d20 7369 built up from si │ │ │ │ +0000dde0: 6d70 6c65 7220 6f6e 6573 2069 6e20 7661 mpler ones in va │ │ │ │ +0000ddf0: 7269 6f75 7320 7761 7973 2e20 2046 696e rious ways. Fin │ │ │ │ +0000de00: 616c 6c79 2c20 e280 9c73 7065 6369 616c ally, ...special │ │ │ │ +0000de10: e280 9d0a 6f62 6a65 6374 7320 6172 6520 ....objects are │ │ │ │ +0000de20: 7468 6f73 6520 636f 6d70 6f73 6564 206f those composed o │ │ │ │ +0000de30: 6620 4c61 5465 5820 6f72 20e2 8098 5053 f LaTeX or ...PS │ │ │ │ +0000de40: 5472 6963 6b73 e280 9920 636f 6465 2c20 Tricks... code, │ │ │ │ +0000de50: 7065 7268 6170 730a 696e 636c 7564 696e perhaps.includin │ │ │ │ +0000de60: 6720 636f 6f72 6469 6e61 7465 7320 616e g coordinates an │ │ │ │ +0000de70: 6420 616e 676c 6573 2063 6f6d 7075 7465 d angles compute │ │ │ │ +0000de80: 6420 6279 20e2 8098 736b 6574 6368 e280 d by ...sketch.. │ │ │ │ +0000de90: 992e 0a0a 2a20 4d65 6e75 3a0a 0a2a 2044 ....* Menu:..* D │ │ │ │ +0000dea0: 6f74 733a 3a20 2020 2020 2020 2020 2020 ots:: │ │ │ │ +0000deb0: 2020 2020 2020 2020 2020 2020 2044 7261 Dra │ │ │ │ +0000dec0: 7720 646f 7473 2e0a 2a20 4c69 6e65 733a w dots..* Lines: │ │ │ │ +0000ded0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +0000dee0: 2020 2020 2020 2020 4472 6177 2070 6f6c Draw pol │ │ │ │ +0000def0: 796c 696e 6573 2e0a 2a20 4375 7276 6573 ylines..* Curves │ │ │ │ +0000df00: 3a3a 2020 2020 2020 2020 2020 2020 2020 :: │ │ │ │ +0000df10: 2020 2020 2020 2020 4472 6177 2063 7572 Draw cur │ │ │ │ +0000df20: 7665 732e 0a2a 2050 6f6c 7967 6f6e 733a ves..* Polygons: │ │ │ │ +0000df30: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +0000df40: 2020 2020 2044 7261 7720 706f 6c79 676f Draw polygo │ │ │ │ +0000df50: 6e73 2e0a 2a20 5370 6563 6961 6c73 3a3a ns..* Specials:: │ │ │ │ +0000df60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0000df70: 2020 2020 456d 6265 6420 7261 7720 4c61 Embed raw La │ │ │ │ +0000df80: 5465 5820 616e 6420 e280 9850 5354 7269 TeX and ...PSTri │ │ │ │ +0000df90: 636b 73e2 8099 2e0a 2a20 5377 6565 7073 cks.....* Sweeps │ │ │ │ +0000dfa0: 3a3a 2020 2020 2020 2020 2020 2020 2020 :: │ │ │ │ +0000dfb0: 2020 2020 2020 2020 4472 6177 2073 7765 Draw swe │ │ │ │ +0000dfc0: 6570 7320 6f66 2064 6f74 7320 616e 6420 eps of dots and │ │ │ │ +0000dfd0: 706f 6c79 6c69 6e65 732e 0a2a 2042 6c6f polylines..* Blo │ │ │ │ +0000dfe0: 636b 733a 3a20 2020 2020 2020 2020 2020 cks:: │ │ │ │ +0000dff0: 2020 2020 2020 2020 2020 2047 726f 7570 Group │ │ │ │ +0000e000: 206f 7468 6572 2064 7261 7761 626c 6573 other drawables │ │ │ │ +0000e010: 2e0a 2a20 5265 7065 6174 733a 3a20 2020 ..* Repeats:: │ │ │ │ +0000e020: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0000e030: 2020 4472 6177 2074 7261 6e73 666f 726d Draw transform │ │ │ │ +0000e040: 6564 2063 6f70 6965 7320 6f66 206f 626a ed copies of obj │ │ │ │ +0000e050: 6563 7473 2e0a 2a20 5075 7473 3a3a 2020 ects..* Puts:: │ │ │ │ +0000e060: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0000e070: 2020 2020 2020 4472 6177 206f 6e65 206f Draw one o │ │ │ │ +0000e080: 626a 6563 7420 7472 616e 7366 6f72 6d65 bject transforme │ │ │ │ +0000e090: 642e 0a0a 1f0a 4669 6c65 3a20 736b 6574 d.....File: sket │ │ │ │ +0000e0a0: 6368 2e69 6e66 6f2c 2020 4e6f 6465 3a20 ch.info, Node: │ │ │ │ +0000e0b0: 446f 7473 2c20 204e 6578 743a 204c 696e Dots, Next: Lin │ │ │ │ +0000e0c0: 6573 2c20 2050 7265 763a 2044 7261 7761 es, Prev: Drawa │ │ │ │ +0000e0d0: 626c 6573 2c20 2055 703a 2044 7261 7761 bles, Up: Drawa │ │ │ │ +0000e0e0: 626c 6573 0a0a 332e 322e 3120 446f 7473 bles..3.2.1 Dots │ │ │ │ +0000e0f0: 0a2d 2d2d 2d2d 2d2d 2d2d 2d0a 0a2a 5379 .----------..*Sy │ │ │ │ +0000e100: 6e74 6178 3a2a 0a20 2020 2020 646f 7473 ntax:*. dots │ │ │ │ +0000e110: 5b4f 5054 494f 4e53 5d20 504f 494e 545f [OPTIONS] POINT_ │ │ │ │ +0000e120: 4c49 5354 0a54 6869 7320 636f 6d6d 616e LIST.This comman │ │ │ │ +0000e130: 6420 6973 2074 6865 2074 6872 6565 2d64 d is the three-d │ │ │ │ +0000e140: 696d 656e 7369 6f6e 616c 2065 7175 6976 imensional equiv │ │ │ │ +0000e150: 616c 656e 7420 6f66 2074 6865 20e2 8098 alent of the ... │ │ │ │ +0000e160: 5053 5472 6963 6b73 e280 990a 636f 6d6d PSTricks....comm │ │ │ │ +0000e170: 616e 6420 e280 985c 7073 646f 7473 e280 and ...\psdots.. │ │ │ │ +0000e180: 992e 0a0a 1f0a 4669 6c65 3a20 736b 6574 ......File: sket │ │ │ │ +0000e190: 6368 2e69 6e66 6f2c 2020 4e6f 6465 3a20 ch.info, Node: │ │ │ │ +0000e1a0: 4c69 6e65 732c 2020 4e65 7874 3a20 4375 Lines, Next: Cu │ │ │ │ +0000e1b0: 7276 6573 2c20 2050 7265 763a 2044 6f74 rves, Prev: Dot │ │ │ │ +0000e1c0: 732c 2020 5570 3a20 4472 6177 6162 6c65 s, Up: Drawable │ │ │ │ +0000e1d0: 730a 0a33 2e32 2e32 204c 696e 6573 0a2d s..3.2.2 Lines.- │ │ │ │ +0000e1e0: 2d2d 2d2d 2d2d 2d2d 2d2d 0a0a 2a53 796e ----------..*Syn │ │ │ │ +0000e1f0: 7461 783a 2a0a 2020 2020 206c 696e 655b tax:*. line[ │ │ │ │ +0000e200: 4f50 5449 4f4e 535d 2050 4f49 4e54 5f4c OPTIONS] POINT_L │ │ │ │ +0000e210: 4953 540a 5468 6973 2063 6f6d 6d61 6e64 IST.This command │ │ │ │ +0000e220: 2069 7320 7468 6520 7468 7265 652d 6469 is the three-di │ │ │ │ +0000e230: 6d65 6e73 696f 6e61 6c20 6571 7569 7661 mensional equiva │ │ │ │ +0000e240: 6c65 6e74 206f 6620 7468 6520 e280 9850 lent of the ...P │ │ │ │ +0000e250: 5354 7269 636b 73e2 8099 0a63 6f6d 6d61 STricks....comma │ │ │ │ +0000e260: 6e64 20e2 8098 5c70 736c 696e 65e2 8099 nd ...\psline... │ │ │ │ +0000e270: 2e0a 0a1f 0a46 696c 653a 2073 6b65 7463 .....File: sketc │ │ │ │ +0000e280: 682e 696e 666f 2c20 204e 6f64 653a 2043 h.info, Node: C │ │ │ │ +0000e290: 7572 7665 732c 2020 4e65 7874 3a20 506f urves, Next: Po │ │ │ │ +0000e2a0: 6c79 676f 6e73 2c20 2050 7265 763a 204c lygons, Prev: L │ │ │ │ +0000e2b0: 696e 6573 2c20 2055 703a 2044 7261 7761 ines, Up: Drawa │ │ │ │ +0000e2c0: 626c 6573 0a0a 332e 322e 3320 4375 7276 bles..3.2.3 Curv │ │ │ │ +0000e2d0: 6573 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a es.------------. │ │ │ │ +0000e2e0: 0a2a 5379 6e74 6178 3a2a 0a20 2020 2020 .*Syntax:*. │ │ │ │ +0000e2f0: 6375 7276 655b 4f50 5449 4f4e 535d 2050 curve[OPTIONS] P │ │ │ │ +0000e300: 4f49 4e54 5f4c 4953 540a 5468 6973 2063 OINT_LIST.This c │ │ │ │ +0000e310: 6f6d 6d61 6e64 2069 7320 7468 6520 7468 ommand is the th │ │ │ │ +0000e320: 7265 652d 6469 6d65 6e73 696f 6e61 6c20 ree-dimensional │ │ │ │ +0000e330: 6571 7569 7661 6c65 6e74 206f 6620 7468 equivalent of th │ │ │ │ +0000e340: 6520 e280 9850 5354 7269 636b 73e2 8099 e ...PSTricks... │ │ │ │ +0000e350: 0a63 6f6d 6d61 6e64 20e2 8098 5c70 7363 .command ...\psc │ │ │ │ +0000e360: 7572 7665 e280 992e 2020 4974 2069 7320 urve.... It is │ │ │ │ +0000e370: 6e6f 7420 696d 706c 656d 656e 7465 6420 not implemented │ │ │ │ +0000e380: 696e 2074 6865 2063 7572 7265 6e74 2076 in the current v │ │ │ │ +0000e390: 6572 7369 6f6e 206f 660a e280 9873 6b65 ersion of....ske │ │ │ │ +0000e3a0: 7463 68e2 8099 2e0a 0a1f 0a46 696c 653a tch........File: │ │ │ │ +0000e3b0: 2073 6b65 7463 682e 696e 666f 2c20 204e sketch.info, N │ │ │ │ +0000e3c0: 6f64 653a 2050 6f6c 7967 6f6e 732c 2020 ode: Polygons, │ │ │ │ +0000e3d0: 4e65 7874 3a20 5370 6563 6961 6c73 2c20 Next: Specials, │ │ │ │ +0000e3e0: 2050 7265 763a 2043 7572 7665 732c 2020 Prev: Curves, │ │ │ │ +0000e3f0: 5570 3a20 4472 6177 6162 6c65 730a 0a33 Up: Drawables..3 │ │ │ │ +0000e400: 2e32 2e34 2050 6f6c 7967 6f6e 730a 2d2d .2.4 Polygons.-- │ │ │ │ +0000e410: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 0a0a 2a53 ------------..*S │ │ │ │ +0000e420: 796e 7461 783a 2a0a 2020 2020 2070 6f6c yntax:*. pol │ │ │ │ +0000e430: 7967 6f6e 5b4f 5054 494f 4e53 5d20 504f ygon[OPTIONS] PO │ │ │ │ +0000e440: 494e 545f 4c49 5354 0a54 6869 7320 636f INT_LIST.This co │ │ │ │ +0000e450: 6d6d 616e 6420 6973 2074 6865 2074 6872 mmand is the thr │ │ │ │ +0000e460: 6565 2d64 696d 656e 7369 6f6e 616c 2065 ee-dimensional e │ │ │ │ +0000e470: 7175 6976 616c 656e 7420 6f66 2074 6865 quivalent of the │ │ │ │ +0000e480: 20e2 8098 5053 5472 6963 6b73 e280 990a ...PSTricks.... │ │ │ │ +0000e490: 636f 6d6d 616e 6420 e280 985c 7073 706f command ...\pspo │ │ │ │ +0000e4a0: 6c79 676f 6ee2 8099 2e20 2054 6865 20e2 lygon.... The . │ │ │ │ +0000e4b0: 8098 736b 6574 6368 e280 9920 6869 6464 ..sketch... hidd │ │ │ │ +0000e4c0: 656e 2073 7572 6661 6365 2061 6c67 6f72 en surface algor │ │ │ │ +0000e4d0: 6974 686d 2061 7373 756d 6573 0a74 6861 ithm assumes.tha │ │ │ │ +0000e4e0: 7420 706f 6c79 676f 6e73 2061 7265 2063 t polygons are c │ │ │ │ +0000e4f0: 6f6e 7665 7820 616e 6420 706c 616e 6172 onvex and planar │ │ │ │ +0000e500: 2e20 2049 6e20 7072 6163 7469 6365 2c20 . In practice, │ │ │ │ +0000e510: 6472 6177 696e 6773 206d 6179 2077 656c drawings may wel │ │ │ │ +0000e520: 6c0a 7475 726e 206f 7574 2063 6f72 7265 l.turn out corre │ │ │ │ +0000e530: 6374 6c79 2065 7665 6e20 6966 2074 6865 ctly even if the │ │ │ │ +0000e540: 7365 2061 7373 756d 7074 696f 6e73 2061 se assumptions a │ │ │ │ +0000e550: 7265 2076 696f 6c61 7465 642e 0a0a 1f0a re violated..... │ │ │ │ +0000e560: 4669 6c65 3a20 736b 6574 6368 2e69 6e66 File: sketch.inf │ │ │ │ +0000e570: 6f2c 2020 4e6f 6465 3a20 5370 6563 6961 o, Node: Specia │ │ │ │ +0000e580: 6c73 2c20 204e 6578 743a 2053 7765 6570 ls, Next: Sweep │ │ │ │ +0000e590: 732c 2020 5072 6576 3a20 506f 6c79 676f s, Prev: Polygo │ │ │ │ +0000e5a0: 6e73 2c20 2055 703a 2044 7261 7761 626c ns, Up: Drawabl │ │ │ │ +0000e5b0: 6573 0a0a 332e 322e 3520 5370 6563 6961 es..3.2.5 Specia │ │ │ │ +0000e5c0: 6c73 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ls.------------- │ │ │ │ +0000e5d0: 2d0a 0a2a 5379 6e74 6178 3a2a 0a20 2020 -..*Syntax:*. │ │ │ │ +0000e5e0: 2020 7370 6563 6961 6c20 2452 4157 5f54 special $RAW_T │ │ │ │ +0000e5f0: 4558 5424 5b4f 5054 494f 4e53 5d20 4152 EXT$[OPTIONS] AR │ │ │ │ +0000e600: 475f 4c49 5354 0a48 6572 6520 e280 9824 G_LIST.Here ...$ │ │ │ │ +0000e610: e280 9920 6361 6e20 6265 2061 6e79 2063 ... can be any c │ │ │ │ +0000e620: 6861 7261 6374 6572 2061 6e64 2069 7320 haracter and is │ │ │ │ +0000e630: 7573 6564 2074 6f20 6465 6c69 6d69 7420 used to delimit │ │ │ │ +0000e640: 7468 6520 7374 6172 7420 616e 6420 656e the start and en │ │ │ │ +0000e650: 640a 6f66 2052 4157 5f54 4558 542e 2020 d.of RAW_TEXT. │ │ │ │ +0000e660: 5468 6520 636f 6d6d 616e 6420 656d 6265 The command embe │ │ │ │ +0000e670: 6473 2052 4157 5f54 4558 5420 696e 2074 ds RAW_TEXT in t │ │ │ │ +0000e680: 6865 20e2 8098 736b 6574 6368 e280 9920 he ...sketch... │ │ │ │ +0000e690: 6f75 7470 7574 2061 6674 6572 0a70 6572 output after.per │ │ │ │ +0000e6a0: 666f 726d 696e 6720 7375 6273 7469 7475 forming substitu │ │ │ │ +0000e6b0: 7469 6f6e 7320 6173 2066 6f6c 6c6f 7773 tions as follows │ │ │ │ +0000e6c0: 2e0a 2020 20e2 80a2 20e2 8098 2349 e280 .. ... ...#I.. │ │ │ │ +0000e6d0: 9920 7768 6572 6520 4920 6973 2061 2070 . where I is a p │ │ │ │ +0000e6e0: 6f73 6974 6976 6520 696e 7465 6765 7220 ositive integer │ │ │ │ +0000e6f0: 6973 2072 6570 6c61 6365 6420 6279 2074 is replaced by t │ │ │ │ +0000e700: 6865 2049 2774 6820 7661 6c75 6520 696e he I'th value in │ │ │ │ +0000e710: 0a20 2020 2020 4152 475f 4c49 5354 2e20 . ARG_LIST. │ │ │ │ +0000e720: 2050 6f69 6e74 2061 6e64 2076 6563 746f Point and vecto │ │ │ │ +0000e730: 7220 6172 6775 6d65 6e74 7320 6265 636f r arguments beco │ │ │ │ +0000e740: 6d65 2074 776f 2d64 696d 656e 7369 6f6e me two-dimension │ │ │ │ +0000e750: 616c 0a20 2020 2020 706f 696e 7473 2c20 al. points, │ │ │ │ +0000e760: 7768 6963 6820 6172 6520 7468 6520 7472 which are the tr │ │ │ │ +0000e770: 616e 7366 6f72 6d65 6420 3364 2061 7267 ansformed 3d arg │ │ │ │ +0000e780: 756d 656e 7473 2070 726f 6a65 6374 6564 uments projected │ │ │ │ +0000e790: 206f 6e74 6f20 7468 650a 2020 2020 2058 onto the. X │ │ │ │ +0000e7a0: 2d59 2070 6c61 6e65 2e20 2054 6869 7320 -Y plane. This │ │ │ │ +0000e7b0: 616c 6c6f 7773 2074 776f 2d64 696d 656e allows two-dimen │ │ │ │ +0000e7c0: 7469 6f6e 616c 206f 7574 7075 7420 656c tional output el │ │ │ │ +0000e7d0: 656d 656e 7473 2073 7563 6820 6173 0a20 ements such as. │ │ │ │ +0000e7e0: 2020 2020 6c61 6265 6c73 2074 6f20 6265 labels to be │ │ │ │ +0000e7f0: 2065 6173 696c 7920 706f 7369 7469 6f6e easily position │ │ │ │ +0000e800: 6564 2077 6974 6820 7265 7370 6563 7420 ed with respect │ │ │ │ +0000e810: 746f 2074 6872 6565 2d64 696d 656e 7369 to three-dimensi │ │ │ │ +0000e820: 6f6e 616c 0a20 2020 2020 6665 6174 7572 onal. featur │ │ │ │ +0000e830: 6573 2069 6e20 7468 6520 6472 6177 696e es in the drawin │ │ │ │ +0000e840: 672e 2020 5363 616c 6172 2061 7267 756d g. Scalar argum │ │ │ │ +0000e850: 656e 7473 2061 7265 2073 7562 7369 7475 ents are subsitu │ │ │ │ +0000e860: 7465 6420 6469 7265 6374 6c79 2e0a 2020 ted directly.. │ │ │ │ +0000e870: 2020 204e 6f20 7472 616e 7366 6f72 6d61 No transforma │ │ │ │ +0000e880: 7469 6f6e 2069 7320 6170 706c 6965 642e tion is applied. │ │ │ │ +0000e890: 0a20 2020 e280 a220 e280 9823 7b49 7de2 . ... ...#{I}. │ │ │ │ +0000e8a0: 8099 2069 7320 616c 736f 2072 6570 6c61 .. is also repla │ │ │ │ +0000e8b0: 6365 6420 6173 2061 626f 7665 2e0a 2020 ced as above.. │ │ │ │ +0000e8c0: 20e2 80a2 20e2 8098 2349 2732 e280 9920 ... ...#I'2... │ │ │ │ +0000e8d0: 6973 2072 6570 6c61 6365 6420 6173 2061 is replaced as a │ │ │ │ +0000e8e0: 626f 7665 2066 6f72 2070 6f69 6e74 7320 bove for points │ │ │ │ +0000e8f0: 6f72 2076 6563 746f 7273 2e20 2049 7420 or vectors. It │ │ │ │ +0000e900: 6973 2061 6e20 6572 726f 720a 2020 2020 is an error. │ │ │ │ +0000e910: 2066 6f72 2074 6865 2049 2774 6820 6172 for the I'th ar │ │ │ │ +0000e920: 6775 6d65 6e74 2074 6f20 6265 2061 2073 gument to be a s │ │ │ │ +0000e930: 6361 6c61 722e 0a20 2020 e280 a220 e280 calar.. ... .. │ │ │ │ +0000e940: 9823 4927 78e2 8099 2c20 e280 9823 4927 .#I'x..., ...#I' │ │ │ │ +0000e950: 79e2 8099 2c20 6f72 20e2 8098 2349 277a y..., or ...#I'z │ │ │ │ +0000e960: e280 9920 6973 2072 6570 6c61 6365 642c ... is replaced, │ │ │ │ +0000e970: 2072 6573 7065 6374 6976 656c 792c 2062 respectively, b │ │ │ │ +0000e980: 7920 7468 6520 7363 616c 6172 0a20 2020 y the scalar. │ │ │ │ +0000e990: 2020 582c 2059 2c20 6f72 205a 2d63 6f6f X, Y, or Z-coo │ │ │ │ +0000e9a0: 7264 696e 6174 6520 6f66 2074 6865 2061 rdinate of the a │ │ │ │ +0000e9b0: 7267 756d 656e 7420 706f 696e 7420 6f72 rgument point or │ │ │ │ +0000e9c0: 2076 6563 746f 722e 2020 4974 2069 7320 vector. It is │ │ │ │ +0000e9d0: 616e 0a20 2020 2020 6572 726f 7220 666f an. error fo │ │ │ │ +0000e9e0: 7220 7468 6520 4927 7468 2061 7267 756d r the I'th argum │ │ │ │ +0000e9f0: 656e 7420 746f 2062 6520 6120 7363 616c ent to be a scal │ │ │ │ +0000ea00: 6172 2e0a 2020 20e2 80a2 20e2 8098 2349 ar.. ... ...#I │ │ │ │ +0000ea10: 2733 e280 9920 6973 2072 6570 6c61 6365 '3... is replace │ │ │ │ +0000ea20: 6420 6279 2074 6865 2074 6872 6565 2d64 d by the three-d │ │ │ │ +0000ea30: 696d 656e 7369 6f6e 616c 2074 7261 6e73 imensional trans │ │ │ │ +0000ea40: 666f 726d 6564 2061 7267 756d 656e 742e formed argument. │ │ │ │ +0000ea50: 0a20 2020 2020 4e6f 7465 2074 6861 7420 . Note that │ │ │ │ +0000ea60: 6966 2061 2070 6572 7370 6563 7469 7665 if a perspective │ │ │ │ +0000ea70: 2074 7261 6e73 666f 726d 6174 696f 6e20 transformation │ │ │ │ +0000ea80: 6861 7320 6265 656e 2061 7070 6c69 6564 has been applied │ │ │ │ +0000ea90: 2c20 7468 650a 2020 2020 205a 2d63 6f6f , the. Z-coo │ │ │ │ +0000eaa0: 7264 696e 6174 6520 6861 7320 6c69 7474 rdinate has litt │ │ │ │ +0000eab0: 6c65 2067 656f 6d65 7472 6963 2073 6967 le geometric sig │ │ │ │ +0000eac0: 6e69 6669 6361 6e63 652c 2074 686f 7567 nificance, thoug │ │ │ │ +0000ead0: 6820 6974 0a20 2020 2020 6163 6375 7261 h it. accura │ │ │ │ +0000eae0: 7465 6c79 2069 6e64 6963 6174 6573 2072 tely indicates r │ │ │ │ +0000eaf0: 656c 6174 6976 6520 6465 7074 682e 0a20 elative depth.. │ │ │ │ +0000eb00: 2020 e280 a220 e280 9823 492d 4ae2 8099 ... ...#I-J... │ │ │ │ +0000eb10: 2077 6865 7265 2049 2061 6e64 204a 2061 where I and J a │ │ │ │ +0000eb20: 7265 2070 6f73 6974 6976 6520 696e 7465 re positive inte │ │ │ │ +0000eb30: 6765 7273 2069 7320 7265 706c 6163 6564 gers is replaced │ │ │ │ +0000eb40: 2062 7920 6120 7374 7269 6e67 0a20 2020 by a string. │ │ │ │ +0000eb50: 2020 e280 987b 414e 474c 457d e280 9920 ...{ANGLE}... │ │ │ │ +0000eb60: 7768 6572 6520 414e 474c 4520 6973 2074 where ANGLE is t │ │ │ │ +0000eb70: 6865 2070 6f6c 6172 2061 6e67 6c65 206f he polar angle o │ │ │ │ +0000eb80: 6620 6120 7665 6374 6f72 2066 726f 6d20 f a vector from │ │ │ │ +0000eb90: 7468 6520 4927 7468 0a20 2020 2020 706f the I'th. po │ │ │ │ +0000eba0: 696e 7420 696e 2050 4f49 4e54 5f4c 4953 int in POINT_LIS │ │ │ │ +0000ebb0: 5420 746f 2074 6865 204a 2774 6820 706f T to the J'th po │ │ │ │ +0000ebc0: 696e 7420 7072 6f6a 6563 7465 6420 696e int projected in │ │ │ │ +0000ebd0: 746f 2074 6865 2078 2d79 2070 6c61 6e65 to the x-y plane │ │ │ │ +0000ebe0: 2e0a 2020 2020 2049 7420 6973 2061 6e20 .. It is an │ │ │ │ +0000ebf0: 6572 726f 7220 666f 7220 7468 6520 4927 error for the I' │ │ │ │ +0000ec00: 7468 206f 7220 4a27 7468 2061 7267 756d th or J'th argum │ │ │ │ +0000ec10: 656e 7420 746f 2062 6520 6120 7363 616c ent to be a scal │ │ │ │ +0000ec20: 6172 206f 7220 610a 2020 2020 2076 6563 ar or a. vec │ │ │ │ +0000ec30: 746f 722e 0a20 2020 e280 a220 e280 9823 tor.. ... ...# │ │ │ │ +0000ec40: 7b49 2d4a 7de2 8099 2069 7320 616c 736f {I-J}... is also │ │ │ │ +0000ec50: 2072 6570 6c61 6365 6420 6173 2061 626f replaced as abo │ │ │ │ +0000ec60: 7665 2e0a 2020 20e2 80a2 20e2 8098 2323 ve.. ... ...## │ │ │ │ +0000ec70: e280 9920 6973 2072 6570 6c61 6365 6420 ... is replaced │ │ │ │ +0000ec80: 7769 7468 20e2 8098 23e2 8099 2e0a 5468 with ...#.....Th │ │ │ │ +0000ec90: 6520 666f 726d 7320 7769 7468 2062 7261 e forms with bra │ │ │ │ +0000eca0: 6365 7320 e280 987b 207d e280 9920 6172 ces ...{ }... ar │ │ │ │ +0000ecb0: 6520 7573 6566 756c 2077 6865 6e20 7468 e useful when th │ │ │ │ +0000ecc0: 6520 6172 6775 6d65 6e74 2069 7320 696d e argument is im │ │ │ │ +0000ecd0: 6d65 6469 6174 656c 790a 666f 6c6c 6f77 mediately.follow │ │ │ │ +0000ece0: 6564 2062 7920 6120 6469 6769 7420 6f72 ed by a digit or │ │ │ │ +0000ecf0: 2061 2074 6963 6b20 6368 6172 6163 7465 a tick characte │ │ │ │ +0000ed00: 7220 7468 6174 2069 7320 7061 7274 206f r that is part o │ │ │ │ +0000ed10: 6620 7468 6520 5465 5820 636f 6465 2e0a f the TeX code.. │ │ │ │ +0000ed20: 0a20 2020 5468 6520 6f6e 6c79 2075 7365 . The only use │ │ │ │ +0000ed30: 6675 6c20 6f70 7469 6f6e 206f 6620 e280 ful option of .. │ │ │ │ +0000ed40: 9873 7065 6369 616c e280 9920 6973 20e2 .special... is . │ │ │ │ +0000ed50: 8098 6c61 79e2 8099 2c20 7768 6963 6820 ..lay..., which │ │ │ │ +0000ed60: 6465 7465 726d 696e 6573 2069 6620 7468 determines if th │ │ │ │ +0000ed70: 650a 7375 6273 7469 7475 6564 2072 6177 e.substitued raw │ │ │ │ +0000ed80: 2074 6578 7420 6973 2065 6d69 7474 6564 text is emitted │ │ │ │ +0000ed90: 2062 6566 6f72 652c 2061 6674 6572 2c20 before, after, │ │ │ │ +0000eda0: 6f72 2075 7369 6e67 2074 6865 2066 6972 or using the fir │ │ │ │ +0000edb0: 7374 2070 6f69 6e74 0a69 6e20 504f 494e st point.in POIN │ │ │ │ +0000edc0: 545f 4c49 5354 2061 7320 616e 2069 6e64 T_LIST as an ind │ │ │ │ +0000edd0: 6963 6174 6f72 206f 6620 6465 7074 682e icator of depth. │ │ │ │ +0000ede0: 2020 5468 6573 6520 6f63 6375 722c 2072 These occur, r │ │ │ │ +0000edf0: 6573 7065 6374 6976 656c 792c 2077 6974 espectively, wit │ │ │ │ +0000ee00: 680a e280 986c 6179 3d75 6e64 6572 e280 h....lay=under.. │ │ │ │ +0000ee10: 992c 20e2 8098 6c61 793d 6f76 6572 e280 ., ...lay=over.. │ │ │ │ +0000ee20: 992c 2061 6e64 20e2 8098 6c61 793d 696e ., and ...lay=in │ │ │ │ +0000ee30: e280 992e 2020 5365 6520 2a6e 6f74 6520 .... See *note │ │ │ │ +0000ee40: 5370 6563 6961 6c20 6f62 6a65 6374 733a Special objects: │ │ │ │ +0000ee50: 3a20 616e 640a 2a6e 6f74 6520 5469 6b5a : and.*note TikZ │ │ │ │ +0000ee60: 2f50 4746 2075 7365 722d 6465 6669 6e65 /PGF user-define │ │ │ │ +0000ee70: 6420 7374 796c 6573 3a3a 2066 6f72 2065 d styles:: for e │ │ │ │ +0000ee80: 7861 6d70 6c65 732e 2020 2a4e 6f74 6520 xamples. *Note │ │ │ │ +0000ee90: 496e 7465 726e 616c 0a6f 7074 696f 6e73 Internal.options │ │ │ │ +0000eea0: 3a3a 2e0a 0a1f 0a46 696c 653a 2073 6b65 ::.....File: ske │ │ │ │ +0000eeb0: 7463 682e 696e 666f 2c20 204e 6f64 653a tch.info, Node: │ │ │ │ +0000eec0: 2053 7765 6570 732c 2020 4e65 7874 3a20 Sweeps, Next: │ │ │ │ +0000eed0: 426c 6f63 6b73 2c20 2050 7265 763a 2053 Blocks, Prev: S │ │ │ │ +0000eee0: 7065 6369 616c 732c 2020 5570 3a20 4472 pecials, Up: Dr │ │ │ │ +0000eef0: 6177 6162 6c65 730a 0a33 2e32 2e36 2053 awables..3.2.6 S │ │ │ │ +0000ef00: 7765 6570 730a 2d2d 2d2d 2d2d 2d2d 2d2d weeps.---------- │ │ │ │ +0000ef10: 2d2d 0a0a 2a53 796e 7461 783a 2a0a 2020 --..*Syntax:*. │ │ │ │ +0000ef20: 2020 2073 7765 6570 207b 204e 2c20 545f sweep { N, T_ │ │ │ │ +0000ef30: 312c 2054 5f32 2c20 2e2e 2e2c 2054 5f52 1, T_2, ..., T_R │ │ │ │ +0000ef40: 207d 5b4f 5054 494f 4e53 5d20 5357 4550 }[OPTIONS] SWEP │ │ │ │ +0000ef50: 545f 4f42 4a45 4354 0a20 2020 2020 7377 T_OBJECT. sw │ │ │ │ +0000ef60: 6565 7020 7b20 4e3c 3e2c 2054 5f31 2c20 eep { N<>, T_1, │ │ │ │ +0000ef70: 545f 322c 202e 2e2e 2c20 545f 5220 7d5b T_2, ..., T_R }[ │ │ │ │ +0000ef80: 4f50 5449 4f4e 535d 2053 5745 5054 5f4f OPTIONS] SWEPT_O │ │ │ │ +0000ef90: 424a 4543 540a 5468 6520 7377 6565 7020 BJECT.The sweep │ │ │ │ +0000efa0: 636f 6e6e 6563 7473 204e 2028 6f72 2070 connects N (or p │ │ │ │ +0000efb0: 6572 6861 7073 204e 2b31 2920 636f 7069 erhaps N+1) copi │ │ │ │ +0000efc0: 6573 206f 6620 5357 4550 545f 4f42 4a45 es of SWEPT_OBJE │ │ │ │ +0000efd0: 4354 2069 6e20 6f72 6465 7220 746f 0a63 CT in order to.c │ │ │ │ +0000efe0: 7265 6174 6520 6120 6e65 7720 6f62 6a65 reate a new obje │ │ │ │ +0000eff0: 6374 206f 6620 6869 6768 6572 2064 696d ct of higher dim │ │ │ │ +0000f000: 656e 7369 6f6e 2e20 2054 6865 2054 5f49 ension. The T_I │ │ │ │ +0000f010: 2028 666f 7220 6920 6265 7477 6565 6e20 (for i between │ │ │ │ +0000f020: 3120 616e 640a 7229 2061 7265 2074 7261 1 and.r) are tra │ │ │ │ +0000f030: 6e73 666f 726d 732e 2020 5468 6520 6b27 nsforms. The k' │ │ │ │ +0000f040: 7468 2063 6f70 7920 6f66 2053 5745 5054 th copy of SWEPT │ │ │ │ +0000f050: 5f4f 424a 4543 5420 6973 2070 726f 6475 _OBJECT is produ │ │ │ │ +0000f060: 6365 6420 6279 0a61 7070 6c79 696e 6720 ced by.applying │ │ │ │ +0000f070: 7468 6520 666f 6c6c 6f77 696e 6720 7472 the following tr │ │ │ │ +0000f080: 616e 7366 6f72 6d20 746f 2074 6865 206f ansform to the o │ │ │ │ +0000f090: 7269 6769 6e61 6c2e 0a20 2020 2020 545f riginal.. T_ │ │ │ │ +0000f0a0: 315e 6b20 7468 656e 2054 5f32 5e6b 2074 1^k then T_2^k t │ │ │ │ +0000f0b0: 6865 6e20 2e2e 2e20 7468 656e 2054 5f52 hen ... then T_R │ │ │ │ +0000f0c0: 5e6b 0a48 6572 6520 545e 6b20 6d65 616e ^k.Here T^k mean │ │ │ │ +0000f0d0: 7320 2274 7261 6e73 666f 726d 2054 2061 s "transform T a │ │ │ │ +0000f0e0: 7070 6c69 6564 206b 2074 696d 6573 2e22 pplied k times." │ │ │ │ +0000f0f0: 2020 5468 6520 6f72 6967 696e 616c 206f The original o │ │ │ │ +0000f100: 626a 6563 7420 6973 0a74 6865 207a 6572 bject is.the zer │ │ │ │ +0000f110: 6f27 7468 2063 6f70 792c 2077 6974 6820 o'th copy, with │ │ │ │ +0000f120: 6b3d 3020 616e 6420 6566 6665 6374 6976 k=0 and effectiv │ │ │ │ +0000f130: 656c 7920 6e6f 2074 7261 6e73 666f 726d ely no transform │ │ │ │ +0000f140: 2061 7070 6c69 6564 2028 545e 303d 492c applied (T^0=I, │ │ │ │ +0000f150: 0a74 6865 2069 6465 6e74 6974 7920 7472 .the identity tr │ │ │ │ +0000f160: 616e 7366 6f72 6d29 2e0a 0a20 2020 5468 ansform)... Th │ │ │ │ +0000f170: 6520 6d65 7468 6f64 206f 6620 636f 6e6e e method of conn │ │ │ │ +0000f180: 6563 7469 6e67 2074 6865 2063 6f70 6965 ecting the copie │ │ │ │ +0000f190: 7320 6465 7065 6e64 7320 6f6e 2074 6865 s depends on the │ │ │ │ +0000f1a0: 2074 7970 6520 6f66 0a53 5745 5054 5f4f type of.SWEPT_O │ │ │ │ +0000f1b0: 424a 4543 5420 616e 6420 6f6e 2077 6865 BJECT and on whe │ │ │ │ +0000f1c0: 7468 6572 2074 6865 2063 6c6f 7375 7265 ther the closure │ │ │ │ +0000f1d0: 2074 6167 20e2 8098 3c3e e280 9920 6973 tag ...<>... is │ │ │ │ +0000f1e0: 2070 7265 7365 6e74 206f 7220 6e6f 742e present or not. │ │ │ │ +0000f1f0: 0a0a 2020 2041 6e20 6578 616d 706c 6520 .. An example │ │ │ │ +0000f200: 6f66 2061 2073 7765 6570 2077 6865 7265 of a sweep where │ │ │ │ +0000f210: 2072 3d32 2069 7320 7468 6520 4d6f 6269 r=2 is the Mobi │ │ │ │ +0000f220: 7573 2066 6967 7572 6520 6174 202a 6e6f us figure at *no │ │ │ │ +0000f230: 7465 204d 6f72 6520 746f 0a6c 6561 726e te More to.learn │ │ │ │ +0000f240: 3a3a 2e0a 0a2a 204d 656e 753a 0a0a 2a20 ::...* Menu:..* │ │ │ │ +0000f250: 5377 6570 7420 706f 696e 7473 3a3a 2020 Swept points:: │ │ │ │ +0000f260: 2020 2020 2020 2020 2020 2020 2020 5377 Sw │ │ │ │ +0000f270: 6570 7420 706f 696e 7473 206d 616b 6520 ept points make │ │ │ │ +0000f280: 6c69 6e65 7320 6f72 2070 6f6c 7967 6f6e lines or polygon │ │ │ │ +0000f290: 732e 0a2a 2053 7765 7074 206c 696e 6573 s..* Swept lines │ │ │ │ +0000f2a0: 3a3a 2020 2020 2020 2020 2020 2020 2020 :: │ │ │ │ +0000f2b0: 2020 2053 7765 7074 206c 696e 6573 206d Swept lines m │ │ │ │ +0000f2c0: 616b 6520 6f70 656e 206f 7220 636c 6f73 ake open or clos │ │ │ │ +0000f2d0: 6564 2073 7572 6661 6365 732e 0a2a 2053 ed surfaces..* S │ │ │ │ +0000f2e0: 7765 7074 2070 6f6c 7967 6f6e 733a 3a20 wept polygons:: │ │ │ │ +0000f2f0: 2020 2020 2020 2020 2020 2020 2053 7765 Swe │ │ │ │ +0000f300: 7074 2070 6f6c 7967 6f6e 7320 6d61 6b65 pt polygons make │ │ │ │ +0000f310: 2063 6c6f 7365 6420 7375 7266 6163 6573 closed surfaces │ │ │ │ +0000f320: 2e0a 2a20 5377 6570 7420 626c 6f63 6b73 ..* Swept blocks │ │ │ │ +0000f330: 3a3a 2020 2020 2020 2020 2020 2020 2020 :: │ │ │ │ +0000f340: 2020 5377 6570 7420 626c 6f63 6b20 e289 Swept block .. │ │ │ │ +0000f350: a120 626c 6f63 6b20 6f66 2073 7765 6570 . block of sweep │ │ │ │ +0000f360: 732e 0a2a 2053 7765 6570 2066 6163 6520 s..* Sweep face │ │ │ │ +0000f370: 7370 6c69 7474 696e 673a 3a20 2020 2020 splitting:: │ │ │ │ +0000f380: 2020 2046 6978 696e 6720 7761 7270 6564 Fixing warped │ │ │ │ +0000f390: 2066 6163 6573 2077 6974 6820 7472 6961 faces with tria │ │ │ │ +0000f3a0: 6e67 6c65 732e 0a0a 1f0a 4669 6c65 3a20 ngles.....File: │ │ │ │ +0000f3b0: 736b 6574 6368 2e69 6e66 6f2c 2020 4e6f sketch.info, No │ │ │ │ +0000f3c0: 6465 3a20 5377 6570 7420 706f 696e 7473 de: Swept points │ │ │ │ +0000f3d0: 2c20 204e 6578 743a 2053 7765 7074 206c , Next: Swept l │ │ │ │ +0000f3e0: 696e 6573 2c20 2050 7265 763a 2053 7765 ines, Prev: Swe │ │ │ │ +0000f3f0: 6570 732c 2020 5570 3a20 5377 6565 7073 eps, Up: Sweeps │ │ │ │ +0000f400: 0a0a 332e 322e 362e 3120 5377 6570 7420 ..3.2.6.1 Swept │ │ │ │ +0000f410: 706f 696e 7473 0a2e 2e2e 2e2e 2e2e 2e2e points.......... │ │ │ │ +0000f420: 2e2e 2e2e 2e2e 2e2e 2e2e 2e0a 0a49 6620 .............If │ │ │ │ +0000f430: 5357 4550 545f 4f42 4a45 4354 2069 7320 SWEPT_OBJECT is │ │ │ │ +0000f440: 6120 706f 696e 7420 6c69 7374 2061 6e64 a point list and │ │ │ │ +0000f450: 2074 6865 7265 2069 7320 6e6f 2063 6c6f there is no clo │ │ │ │ +0000f460: 7375 7265 2074 6167 2c20 7468 656e 0ae2 sure tag, then.. │ │ │ │ +0000f470: 8098 7377 6565 70e2 8099 2063 6f6e 6e65 ..sweep... conne │ │ │ │ +0000f480: 6374 7320 4e2b 3120 7375 6363 6573 7369 cts N+1 successi │ │ │ │ +0000f490: 7665 2063 6f70 6965 7320 6f66 2065 6163 ve copies of eac │ │ │ │ +0000f4a0: 6820 706f 696e 7420 2869 6e63 6c75 6469 h point (includi │ │ │ │ +0000f4b0: 6e67 2074 6865 0a6f 7269 6769 6e61 6c29 ng the.original) │ │ │ │ +0000f4c0: 2077 6974 6820 7374 7261 6967 6874 206c with straight l │ │ │ │ +0000f4d0: 696e 6520 7365 676d 656e 7473 2074 6f20 ine segments to │ │ │ │ +0000f4e0: 666f 726d 2061 2070 6f6c 796c 696e 652e form a polyline. │ │ │ │ +0000f4f0: 2020 4966 2074 6865 7265 2061 7265 0a6d If there are.m │ │ │ │ +0000f500: 2070 6f69 6e74 7320 696e 2074 6865 206f points in the o │ │ │ │ +0000f510: 7269 6769 6e61 6c20 706f 696e 7420 6c69 riginal point li │ │ │ │ +0000f520: 7374 2c20 7468 656e 206d 2070 6f6c 796c st, then m polyl │ │ │ │ +0000f530: 696e 6573 2077 6974 6820 4e20 7365 676d ines with N segm │ │ │ │ +0000f540: 656e 7473 0a65 6163 6820 6172 6520 666f ents.each are fo │ │ │ │ +0000f550: 726d 6564 2062 7920 7468 6520 7377 6565 rmed by the swee │ │ │ │ +0000f560: 702e 2020 496e 2074 6869 7320 6d61 6e6e p. In this mann │ │ │ │ +0000f570: 6572 2c20 e280 9873 7765 6570 e280 9920 er, ...sweep... │ │ │ │ +0000f580: 666f 726d 7320 6120 7365 7420 6f66 0a6f forms a set of.o │ │ │ │ +0000f590: 6e65 2d64 696d 656e 7369 6f6e 616c 206f ne-dimensional o │ │ │ │ +0000f5a0: 626a 6563 7473 2028 706f 6c79 6c69 6e65 bjects (polyline │ │ │ │ +0000f5b0: 7329 2066 726f 6d20 7a65 726f 2d64 696d s) from zero-dim │ │ │ │ +0000f5c0: 656e 7369 6f6e 616c 206f 6e65 7320 2870 ensional ones (p │ │ │ │ +0000f5d0: 6f69 6e74 7329 2e0a 0a20 2020 5768 656e oints)... When │ │ │ │ +0000f5e0: 2074 6865 7265 205f 6973 5f20 6120 636c there _is_ a cl │ │ │ │ +0000f5f0: 6f73 7572 6520 7461 672c 20e2 8098 7377 osure tag, ...sw │ │ │ │ +0000f600: 6565 70e2 8099 2063 6f6e 6e65 6374 7320 eep... connects │ │ │ │ +0000f610: 4e20 7375 6363 6573 7369 7665 2063 6f70 N successive cop │ │ │ │ +0000f620: 6965 730a 6f66 2065 6163 6820 706f 696e ies.of each poin │ │ │ │ +0000f630: 7420 2869 6e63 6c75 6469 6e67 2074 6865 t (including the │ │ │ │ +0000f640: 206f 7269 6769 6e61 6c29 2077 6974 6820 original) with │ │ │ │ +0000f650: 7374 7261 6967 6874 206c 696e 6520 7365 straight line se │ │ │ │ +0000f660: 676d 656e 7473 2061 6e64 0a66 696e 616c gments and.final │ │ │ │ +0000f670: 6c79 2063 6f6e 6e65 6374 7320 7468 6520 ly connects the │ │ │ │ +0000f680: 6c61 7374 2063 6f70 7920 6261 636b 2074 last copy back t │ │ │ │ +0000f690: 6f20 7468 6520 6f72 6967 696e 616c 2074 o the original t │ │ │ │ +0000f6a0: 6f20 666f 726d 2061 2070 6f6c 7967 6f6e o form a polygon │ │ │ │ +0000f6b0: 0a77 6974 6820 4e20 7369 6465 732e 2020 .with N sides. │ │ │ │ +0000f6c0: 4966 2074 6865 7265 2061 7265 206d 2070 If there are m p │ │ │ │ +0000f6d0: 6f69 6e74 7320 696e 2074 6865 206f 7269 oints in the ori │ │ │ │ +0000f6e0: 6769 6e61 6c20 706f 696e 7420 6c69 7374 ginal point list │ │ │ │ +0000f6f0: 2c20 7468 656e 206d 0a70 6f6c 7967 6f6e , then m.polygon │ │ │ │ +0000f700: 7320 7769 7468 204e 2073 6964 6573 2065 s with N sides e │ │ │ │ +0000f710: 6163 6820 6172 6520 666f 726d 6564 2062 ach are formed b │ │ │ │ +0000f720: 7920 7468 6520 7377 6565 702e 2020 496e y the sweep. In │ │ │ │ +0000f730: 2074 6869 7320 6d61 6e6e 6572 2c0a e280 this manner,... │ │ │ │ +0000f740: 9873 7765 6570 e280 9920 666f 726d 7320 .sweep... forms │ │ │ │ +0000f750: 6120 7365 7420 6f66 2074 776f 2d64 696d a set of two-dim │ │ │ │ +0000f760: 656e 7369 6f6e 616c 206f 626a 6563 7473 ensional objects │ │ │ │ +0000f770: 2028 706f 6c79 676f 6e73 2920 6672 6f6d (polygons) from │ │ │ │ +0000f780: 0a7a 6572 6f2d 6469 6d65 6e73 696f 6e61 .zero-dimensiona │ │ │ │ +0000f790: 6c20 6f6e 6573 2028 706f 696e 7473 292e l ones (points). │ │ │ │ +0000f7a0: 0a0a 2020 204f 7074 696f 6e73 206f 6620 .. Options of │ │ │ │ +0000f7b0: 7468 6520 e280 9873 7765 6570 e280 9920 the ...sweep... │ │ │ │ +0000f7c0: 6172 6520 636f 7069 6564 2064 6972 6563 are copied direc │ │ │ │ +0000f7d0: 746c 7920 746f 2074 6865 2072 6573 756c tly to the resul │ │ │ │ +0000f7e0: 7469 6e67 0a70 6f6c 796c 696e 6528 7329 ting.polyline(s) │ │ │ │ +0000f7f0: 2e0a 0a1f 0a46 696c 653a 2073 6b65 7463 .....File: sketc │ │ │ │ +0000f800: 682e 696e 666f 2c20 204e 6f64 653a 2053 h.info, Node: S │ │ │ │ +0000f810: 7765 7074 206c 696e 6573 2c20 204e 6578 wept lines, Nex │ │ │ │ +0000f820: 743a 2053 7765 7074 2070 6f6c 7967 6f6e t: Swept polygon │ │ │ │ +0000f830: 732c 2020 5072 6576 3a20 5377 6570 7420 s, Prev: Swept │ │ │ │ +0000f840: 706f 696e 7473 2c20 2055 703a 2053 7765 points, Up: Swe │ │ │ │ +0000f850: 6570 730a 0a33 2e32 2e36 2e32 2053 7765 eps..3.2.6.2 Swe │ │ │ │ +0000f860: 7074 206c 696e 6573 0a2e 2e2e 2e2e 2e2e pt lines........ │ │ │ │ +0000f870: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 0a0a 4966 ..............If │ │ │ │ +0000f880: 2053 5745 5054 5f4f 424a 4543 5420 6973 SWEPT_OBJECT is │ │ │ │ +0000f890: 2061 2070 6f6c 796c 696e 6520 616e 6420 a polyline and │ │ │ │ +0000f8a0: 7468 6572 6520 6973 206e 6f20 636c 6f73 there is no clos │ │ │ │ +0000f8b0: 7572 6520 7461 672c 2074 6865 6e20 e280 ure tag, then .. │ │ │ │ +0000f8c0: 9873 7765 6570 e280 990a 636f 6e6e 6563 .sweep....connec │ │ │ │ +0000f8d0: 7473 204e 2b31 2073 7563 6365 7373 6976 ts N+1 successiv │ │ │ │ +0000f8e0: 6520 636f 7069 6573 206f 6620 7468 6520 e copies of the │ │ │ │ +0000f8f0: 706f 6c79 6c69 6e65 2028 696e 636c 7564 polyline (includ │ │ │ │ +0000f900: 696e 6720 7468 6520 6f72 6967 696e 616c ing the original │ │ │ │ +0000f910: 290a 7769 7468 2066 6f75 722d 7369 6465 ).with four-side │ │ │ │ +0000f920: 6420 706f 6c79 676f 6e73 2c20 6561 6368 d polygons, each │ │ │ │ +0000f930: 2070 6169 7220 6f66 2063 6f70 6965 7320 pair of copies │ │ │ │ +0000f940: 6769 7669 6e67 2072 6973 6520 746f 2061 giving rise to a │ │ │ │ +0000f950: 2022 706f 6c79 676f 6e0a 7374 7269 702e "polygon.strip. │ │ │ │ +0000f960: 2220 2049 6620 7468 6572 6520 6172 6520 " If there are │ │ │ │ +0000f970: 6d20 706f 696e 7473 2069 6e20 7468 6520 m points in the │ │ │ │ +0000f980: 6f72 6967 696e 616c 2070 6f6c 796c 696e original polylin │ │ │ │ +0000f990: 652c 2074 6865 6e20 286d 2d31 294e 0a70 e, then (m-1)N.p │ │ │ │ +0000f9a0: 6f6c 7967 6f6e 7320 6172 6520 666f 726d olygons are form │ │ │ │ +0000f9b0: 6564 2062 7920 7468 6520 7377 6565 702e ed by the sweep. │ │ │ │ +0000f9c0: 2020 5765 2063 616c 6c20 7468 6573 6520 We call these │ │ │ │ +0000f9d0: e280 9c62 6f64 7920 706f 6c79 676f 6e73 ...body polygons │ │ │ │ +0000f9e0: e280 9d2e 2020 496e 0a74 6869 7320 6d61 .... In.this ma │ │ │ │ +0000f9f0: 6e6e 6572 2c20 e280 9873 7765 6570 e280 nner, ...sweep.. │ │ │ │ +0000fa00: 9920 666f 726d 7320 6120 7477 6f2d 6469 . forms a two-di │ │ │ │ +0000fa10: 6d65 6e73 696f 6e61 6c20 7375 7266 6163 mensional surfac │ │ │ │ +0000fa20: 6520 6672 6f6d 2066 726f 6d20 610a 6f6e e from from a.on │ │ │ │ +0000fa30: 652d 6469 6d65 6e73 696f 6e61 6c20 706f e-dimensional po │ │ │ │ +0000fa40: 6c79 6c69 6e65 2e0a 0a20 2020 5468 6520 lyline... The │ │ │ │ +0000fa50: 6f72 6465 7220 6f66 2076 6572 7469 6365 order of vertice │ │ │ │ +0000fa60: 7320 7072 6f64 7563 6564 2062 7920 e280 s produced by .. │ │ │ │ +0000fa70: 9873 7765 6570 e280 9920 6973 2069 6d70 .sweep... is imp │ │ │ │ +0000fa80: 6f72 7461 6e74 2e20 2049 6620 610a 706f ortant. If a.po │ │ │ │ +0000fa90: 6c79 676f 6e27 7320 7665 7274 6963 6573 lygon's vertices │ │ │ │ +0000faa0: 2064 6f20 6e6f 7420 6170 7065 6172 2069 do not appear i │ │ │ │ +0000fab0: 6e20 636f 756e 7465 722d 636c 6f63 6b77 n counter-clockw │ │ │ │ +0000fac0: 6973 6520 6f72 6465 7220 696e 2074 6865 ise order in the │ │ │ │ +0000fad0: 2066 696e 616c 0a69 6d61 6765 2c20 7468 final.image, th │ │ │ │ +0000fae0: 6520 706f 6c79 676f 6e20 7769 6c6c 2062 e polygon will b │ │ │ │ +0000faf0: 6520 6375 6c6c 6564 2028 756e 6c65 7373 e culled (unless │ │ │ │ +0000fb00: 20e2 8098 6375 6c6c 3d66 616c 7365 e280 ...cull=false.. │ │ │ │ +0000fb10: 9920 6973 2073 6574 292e 2020 4966 2074 . is set). If t │ │ │ │ +0000fb20: 6865 0a70 6f69 6e74 7320 696e 2074 6865 he.points in the │ │ │ │ +0000fb30: 206b 2774 6820 636f 7079 206f 6620 7468 k'th copy of th │ │ │ │ +0000fb40: 6520 706f 6c79 6c69 6e65 2061 7265 2050 e polyline are P │ │ │ │ +0000fb50: 5f31 2c20 505f 322c 202e 2e2e 2c20 505f _1, P_2, ..., P_ │ │ │ │ +0000fb60: 6d2c 2061 6e64 2074 6865 0a70 6f69 6e74 m, and the.point │ │ │ │ +0000fb70: 7320 696e 2074 6865 206e 6578 7420 636f s in the next co │ │ │ │ +0000fb80: 7079 2c20 7468 6520 286b 2b31 2973 742c py, the (k+1)st, │ │ │ │ +0000fb90: 2061 7265 2050 5f31 272c 2050 5f32 272c are P_1', P_2', │ │ │ │ +0000fba0: 202e 2e2e 2c20 505f 6d27 2c20 7468 656e ..., P_m', then │ │ │ │ +0000fbb0: 0a74 6865 2076 6572 7465 7820 6f72 6465 .the vertex orde │ │ │ │ +0000fbc0: 7220 6f66 2074 6865 2067 656e 6572 6174 r of the generat │ │ │ │ +0000fbd0: 6564 2070 6f6c 7967 6f6e 7320 6973 0a20 ed polygons is. │ │ │ │ +0000fbe0: 2020 2020 426f 6479 2070 6f6c 7967 6f6e Body polygon │ │ │ │ +0000fbf0: 2031 3a20 505f 3220 505f 3120 505f 3127 1: P_2 P_1 P_1' │ │ │ │ +0000fc00: 2050 5f32 270a 2020 2020 2042 6f64 7920 P_2'. Body │ │ │ │ +0000fc10: 706f 6c79 676f 6e20 323a 2050 5f33 2050 polygon 2: P_3 P │ │ │ │ +0000fc20: 5f32 2050 5f32 2720 505f 3327 0a20 2020 _2 P_2' P_3'. │ │ │ │ +0000fc30: 2020 2e2e 2e0a 2020 2020 2042 6f64 7920 .... Body │ │ │ │ +0000fc40: 706f 6c79 676f 6e20 6d2d 313a 2050 5f6d polygon m-1: P_m │ │ │ │ +0000fc50: 2050 5f7b 6d2d 317d 2050 5f7b 6d2d 317d P_{m-1} P_{m-1} │ │ │ │ +0000fc60: 2720 505f 6d27 0a0a 2020 204f 7074 696f ' P_m'.. Optio │ │ │ │ +0000fc70: 6e73 206f 6620 756e 636c 6f73 6564 206c ns of unclosed l │ │ │ │ +0000fc80: 696e 6520 7377 6565 7073 2061 7265 2063 ine sweeps are c │ │ │ │ +0000fc90: 6f70 6965 6420 746f 2065 6163 6820 6f75 opied to each ou │ │ │ │ +0000fca0: 7470 7574 2070 6f6c 7967 6f6e 2e0a 4f70 tput polygon..Op │ │ │ │ +0000fcb0: 7469 6f6e 7320 6f66 2074 6865 2073 7765 tions of the swe │ │ │ │ +0000fcc0: 7074 206c 696e 6520 6172 6520 6967 6e6f pt line are igno │ │ │ │ +0000fcd0: 7265 642e 0a0a 2020 2057 6865 6e20 7468 red... When th │ │ │ │ +0000fce0: 6572 6520 5f69 735f 2061 2063 6c6f 7375 ere _is_ a closu │ │ │ │ +0000fcf0: 7265 2074 6167 2c20 7468 656e 20e2 8098 re tag, then ... │ │ │ │ +0000fd00: 7377 6565 70e2 8099 2063 6f6e 6e65 6374 sweep... connect │ │ │ │ +0000fd10: 7320 4e20 7375 6363 6573 7369 7665 0a63 s N successive.c │ │ │ │ +0000fd20: 6f70 6965 7320 6f66 2074 6865 2070 6f6c opies of the pol │ │ │ │ +0000fd30: 796c 696e 6520 2869 6e63 6c75 6469 6e67 yline (including │ │ │ │ +0000fd40: 2074 6865 206f 7269 6769 6e61 6c29 2077 the original) w │ │ │ │ +0000fd50: 6974 6820 666f 7572 2d73 6964 6564 2062 ith four-sided b │ │ │ │ +0000fd60: 6f64 790a 706f 6c79 676f 6e73 206a 7573 ody.polygons jus │ │ │ │ +0000fd70: 7420 6173 2074 6865 2063 6173 6520 7769 t as the case wi │ │ │ │ +0000fd80: 7468 206e 6f20 636c 6f73 7572 6520 7461 th no closure ta │ │ │ │ +0000fd90: 672e 2020 4974 2074 6865 6e20 636f 6e6e g. It then conn │ │ │ │ +0000fda0: 6563 7473 2074 6865 0a6c 6173 7420 636f ects the.last co │ │ │ │ +0000fdb0: 7079 2062 6163 6b20 746f 2074 6865 206f py back to the o │ │ │ │ +0000fdc0: 7269 6769 6e61 6c20 746f 2066 6f72 6d20 riginal to form │ │ │ │ +0000fdd0: 6120 7269 6262 6f6e 2d73 6861 7065 6420 a ribbon-shaped │ │ │ │ +0000fde0: 7375 7266 6163 6520 7468 6174 0a63 6c6f surface that.clo │ │ │ │ +0000fdf0: 7365 7320 6f6e 2069 7473 656c 6620 7769 ses on itself wi │ │ │ │ +0000fe00: 7468 2074 776f 2068 6f6c 6573 2072 656d th two holes rem │ │ │ │ +0000fe10: 6169 6e69 6e67 2e0a 0a20 2020 4669 6e61 aining... Fina │ │ │ │ +0000fe20: 6c6c 792c 2074 6865 2073 7765 6570 2061 lly, the sweep a │ │ │ │ +0000fe30: 6464 7320 7477 6f20 6d6f 7265 2070 6f6c dds two more pol │ │ │ │ +0000fe40: 7967 6f6e 7320 746f 2073 6561 6c20 7468 ygons to seal th │ │ │ │ +0000fe50: 6520 686f 6c65 7320 616e 6420 666f 726d e holes and form │ │ │ │ +0000fe60: 0a61 2063 6c6f 7365 6420 7375 7266 6163 .a closed surfac │ │ │ │ +0000fe70: 6520 7468 6174 2c20 6465 7065 6e64 696e e that, dependin │ │ │ │ +0000fe80: 6720 6f6e 2074 6865 2073 7765 6570 2074 g on the sweep t │ │ │ │ +0000fe90: 7261 6e73 666f 726d 732c 206d 6179 2072 ransforms, may r │ │ │ │ +0000fea0: 6570 7265 7365 6e74 0a74 6865 2062 6f75 epresent.the bou │ │ │ │ +0000feb0: 6e64 6172 7920 6f66 2061 2073 6f6c 6964 ndary of a solid │ │ │ │ +0000fec0: 2e20 2049 6e20 7468 6973 206d 616e 6e65 . In this manne │ │ │ │ +0000fed0: 722c 20e2 8098 7377 6565 70e2 8099 2066 r, ...sweep... f │ │ │ │ +0000fee0: 6f72 6d73 2074 6865 2062 6f75 6e64 6172 orms the boundar │ │ │ │ +0000fef0: 7920 6f66 0a61 2074 6872 6565 2d64 696d y of.a three-dim │ │ │ │ +0000ff00: 656e 7369 6f6e 616c 206f 626a 6563 7420 ensional object │ │ │ │ +0000ff10: 6672 6f6d 2061 206f 6e65 2d64 696d 656e from a one-dimen │ │ │ │ +0000ff20: 7369 6f6e 616c 2070 6f6c 796c 696e 652e sional polyline. │ │ │ │ +0000ff30: 2020 5765 2063 616c 6c0a 7468 6573 6520 We call.these │ │ │ │ +0000ff40: 686f 6c65 2d66 696c 6c69 6e67 2070 6f6c hole-filling pol │ │ │ │ +0000ff50: 7967 6f6e 7320 e280 9c65 6e64 73e2 809d ygons ...ends... │ │ │ │ +0000ff60: 2e0a 0a20 2020 5468 6520 6f72 6465 7220 ... The order │ │ │ │ +0000ff70: 6f66 2076 6572 7469 6365 7320 6f66 2065 of vertices of e │ │ │ │ +0000ff80: 6e64 2070 6f6c 7967 6f6e 7320 6973 2069 nd polygons is i │ │ │ │ +0000ff90: 6d70 6f72 7461 6e74 2066 6f72 2063 6f72 mportant for cor │ │ │ │ +0000ffa0: 7265 6374 0a63 756c 6c69 6e67 2061 7320 rect.culling as │ │ │ │ +0000ffb0: 6465 7363 7269 6265 6420 6162 6f76 652e described above. │ │ │ │ +0000ffc0: 2020 4966 2050 5f31 5e31 2c20 505f 315e If P_1^1, P_1^ │ │ │ │ +0000ffd0: 322c 202e 2e2e 2c20 505f 315e 6e20 6172 2, ..., P_1^n ar │ │ │ │ +0000ffe0: 6520 7468 6520 4e0a 636f 7069 6573 206f e the N.copies o │ │ │ │ +0000fff0: 6620 7468 6520 6669 7273 7420 706f 6c79 f the first poly │ │ │ │ +00010000: 6c69 6e65 2070 6f69 6e74 2061 6e64 2050 line point and P │ │ │ │ +00010010: 5f6d 5e31 2c20 505f 6d5e 322c 202e 2e2e _m^1, P_m^2, ... │ │ │ │ +00010020: 202c 505f 6d5e 6e20 6172 6520 7468 650a ,P_m^n are the. │ │ │ │ +00010030: 4e20 636f 7069 6573 206f 6620 7468 6520 N copies of the │ │ │ │ +00010040: 6c61 7374 2070 6f6c 796c 696e 6520 706f last polyline po │ │ │ │ +00010050: 696e 742c 2074 6865 6e20 7468 6520 656e int, then the en │ │ │ │ +00010060: 6420 706f 6c79 676f 6e20 7665 7274 6578 d polygon vertex │ │ │ │ +00010070: 206f 7264 6572 0a69 730a 2020 2020 2045 order.is. E │ │ │ │ +00010080: 6e64 2070 6f6c 7967 6f6e 2031 3a20 505f nd polygon 1: P_ │ │ │ │ +00010090: 315e 6e2c 2050 5f31 5e7b 6e2d 317d 2c20 1^n, P_1^{n-1}, │ │ │ │ +000100a0: 2e2e 2e20 2c50 5f31 5e31 0a20 2020 2020 ... ,P_1^1. │ │ │ │ +000100b0: 456e 6420 706f 6c79 676f 6e20 323a 2050 End polygon 2: P │ │ │ │ +000100c0: 5f6d 5e31 2c20 505f 6d5e 322c 202e 2e2e _m^1, P_m^2, ... │ │ │ │ +000100d0: 202c 505f 6d5e 6e0a 0a20 2020 4966 2074 ,P_m^n.. If t │ │ │ │ +000100e0: 6865 7265 2061 7265 206e 6f20 6f70 7469 here are no opti │ │ │ │ +000100f0: 6f6e 7320 6f6e 2074 6865 2073 7765 7074 ons on the swept │ │ │ │ +00010100: 206c 696e 652c 2074 6865 6e20 7468 6520 line, then the │ │ │ │ +00010110: e280 9873 7765 6570 e280 9920 6f70 7469 ...sweep... opti │ │ │ │ +00010120: 6f6e 730a 6172 6520 636f 7069 6564 2074 ons.are copied t │ │ │ │ +00010130: 6f20 6561 6368 206f 7574 7075 7420 706f o each output po │ │ │ │ +00010140: 6c79 676f 6e2e 2020 4966 2074 6865 2073 lygon. If the s │ │ │ │ +00010150: 7765 7074 206c 696e 6520 646f 6573 2068 wept line does h │ │ │ │ +00010160: 6176 6520 6f70 7469 6f6e 732c 0a74 6865 ave options,.the │ │ │ │ +00010170: 7365 2061 7265 2063 6f70 6965 6420 746f se are copied to │ │ │ │ +00010180: 2063 6f72 7265 7370 6f6e 6469 6e67 2062 corresponding b │ │ │ │ +00010190: 6f64 7920 706f 6c79 676f 6e73 3b20 7468 ody polygons; th │ │ │ │ +000101a0: 6520 7377 6565 7020 6f70 7469 6f6e 7320 e sweep options │ │ │ │ +000101b0: 6172 650a 636f 7069 6564 2074 6f20 7468 are.copied to th │ │ │ │ +000101c0: 6520 656e 6420 706f 6c79 676f 6e73 2e20 e end polygons. │ │ │ │ +000101d0: 2049 6e20 7468 6973 206d 616e 6e65 722c In this manner, │ │ │ │ +000101e0: 2062 6f64 7920 616e 6420 656e 6473 206d body and ends m │ │ │ │ +000101f0: 6179 2062 6520 6472 6177 6e0a 7769 7468 ay be drawn.with │ │ │ │ +00010200: 2064 6966 6665 7265 6e74 2063 6861 7261 different chara │ │ │ │ +00010210: 6374 6572 6973 7469 6373 2073 7563 6820 cteristics such │ │ │ │ +00010220: 6173 20e2 8098 6669 6c6c 636f 6c6f 72e2 as ...fillcolor. │ │ │ │ +00010230: 8099 2e0a 0a1f 0a46 696c 653a 2073 6b65 .......File: ske │ │ │ │ +00010240: 7463 682e 696e 666f 2c20 204e 6f64 653a tch.info, Node: │ │ │ │ +00010250: 2053 7765 7074 2070 6f6c 7967 6f6e 732c Swept polygons, │ │ │ │ +00010260: 2020 4e65 7874 3a20 5377 6570 7420 626c Next: Swept bl │ │ │ │ +00010270: 6f63 6b73 2c20 2050 7265 763a 2053 7765 ocks, Prev: Swe │ │ │ │ +00010280: 7074 206c 696e 6573 2c20 2055 703a 2053 pt lines, Up: S │ │ │ │ +00010290: 7765 6570 730a 0a33 2e32 2e36 2e33 2053 weeps..3.2.6.3 S │ │ │ │ +000102a0: 7765 7074 2070 6f6c 7967 6f6e 730a 2e2e wept polygons... │ │ │ │ +000102b0: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e ................ │ │ │ │ +000102c0: 2e2e 2e2e 0a0a 4966 2053 5745 5054 5f4f ......If SWEPT_O │ │ │ │ +000102d0: 424a 4543 5420 6973 2061 2070 6f6c 7967 BJECT is a polyg │ │ │ │ +000102e0: 6f6e 2c20 7468 6520 e280 9873 7765 6570 on, the ...sweep │ │ │ │ +000102f0: e280 9920 636f 6e6e 6563 7473 204e 2b31 ... connects N+1 │ │ │ │ +00010300: 2073 7563 6365 7373 6976 6520 636f 7069 successive copi │ │ │ │ +00010310: 6573 0a6f 6620 7468 6520 636c 6f73 6564 es.of the closed │ │ │ │ +00010320: 2070 6f6c 796c 696e 6520 626f 7264 6572 polyline border │ │ │ │ +00010330: 206f 6620 7468 6520 706f 6c79 676f 6e20 of the polygon │ │ │ │ +00010340: 746f 2066 6f72 6d20 626f 6479 2070 6f6c to form body pol │ │ │ │ +00010350: 7967 6f6e 730a 6578 6163 746c 7920 6173 ygons.exactly as │ │ │ │ +00010360: 2074 686f 7567 6820 7468 6520 626f 7264 though the bord │ │ │ │ +00010370: 6572 2077 6572 6520 6120 7377 6570 7420 er were a swept │ │ │ │ +00010380: 706f 6c79 6c69 6e65 2061 7320 6465 7363 polyline as desc │ │ │ │ +00010390: 7269 6265 6420 696e 202a 6e6f 7465 0a53 ribed in *note.S │ │ │ │ +000103a0: 7765 7074 206c 696e 6573 3a3a 2e20 2049 wept lines::. I │ │ │ │ +000103b0: 6620 7468 6572 6520 6172 6520 6d20 706f f there are m po │ │ │ │ +000103c0: 696e 7473 2069 6e20 7468 6520 6f72 6967 ints in the orig │ │ │ │ +000103d0: 696e 616c 2070 6f6c 7967 6f6e 2c20 7468 inal polygon, th │ │ │ │ +000103e0: 656e 206d 4e0a 626f 6479 2070 6f6c 7967 en mN.body polyg │ │ │ │ +000103f0: 6f6e 7320 6172 6520 666f 726d 6564 2062 ons are formed b │ │ │ │ +00010400: 7920 7468 6973 2073 7765 6570 2e20 2054 y this sweep. T │ │ │ │ +00010410: 6865 2062 6f64 7920 706f 6c79 676f 6e73 he body polygons │ │ │ │ +00010420: 2066 6f72 6d20 616e 0ae2 809c 6578 7472 form an....extr │ │ │ │ +00010430: 7573 696f 6ee2 809d 206f 6620 7468 6520 usion... of the │ │ │ │ +00010440: 626f 756e 6461 7279 206f 6620 7468 6520 boundary of the │ │ │ │ +00010450: 6f72 6967 696e 616c 2070 6f6c 7967 6f6e original polygon │ │ │ │ +00010460: 2077 6974 6820 7477 6f20 686f 6c65 7320 with two holes │ │ │ │ +00010470: 6174 0a74 6865 206f 7065 6e20 656e 6473 at.the open ends │ │ │ │ +00010480: 2e0a 0a20 2020 4669 6e61 6c6c 792c 2074 ... Finally, t │ │ │ │ +00010490: 6865 2073 7765 6570 2061 6464 7320 7477 he sweep adds tw │ │ │ │ +000104a0: 6f20 636f 7069 6573 206f 6620 7468 6520 o copies of the │ │ │ │ +000104b0: 6f72 6967 696e 616c 2070 6f6c 7967 6f6e original polygon │ │ │ │ +000104c0: 2074 6f20 636f 7665 720a 7468 6520 686f to cover.the ho │ │ │ │ +000104d0: 6c65 732e 2020 5765 2063 616c 6c20 7468 les. We call th │ │ │ │ +000104e0: 6573 6520 686f 6c65 2d66 696c 6c69 6e67 ese hole-filling │ │ │ │ +000104f0: 2070 6f6c 7967 6f6e 7320 e280 9c65 6e64 polygons ...end │ │ │ │ +00010500: 73e2 809d 2e20 2049 6e20 7468 6973 206d s.... In this m │ │ │ │ +00010510: 616e 6e65 722c 0ae2 8098 7377 6565 70e2 anner,....sweep. │ │ │ │ +00010520: 8099 2066 6f72 6d73 2074 6865 2062 6f75 .. forms the bou │ │ │ │ +00010530: 6e64 6172 7920 6f66 2061 2074 6872 6565 ndary of a three │ │ │ │ +00010540: 2d64 696d 656e 7369 6f6e 616c 206f 626a -dimensional obj │ │ │ │ +00010550: 6563 7420 6672 6f6d 2061 0a74 776f 2d64 ect from a.two-d │ │ │ │ +00010560: 696d 656e 7369 6f6e 616c 2070 6f6c 7967 imensional polyg │ │ │ │ +00010570: 6f6e 2e0a 0a20 2020 5468 6520 6f72 6465 on... The orde │ │ │ │ +00010580: 7220 6f66 2076 6572 7469 6365 7320 6f66 r of vertices of │ │ │ │ +00010590: 2065 6e64 2070 6f6c 7967 6f6e 7320 6973 end polygons is │ │ │ │ +000105a0: 2069 6d70 6f72 7461 6e74 2066 6f72 2063 important for c │ │ │ │ +000105b0: 6f72 7265 6374 0a63 756c 6c69 6e67 2061 orrect.culling a │ │ │ │ +000105c0: 7320 6465 7363 7269 6265 6420 6162 6f76 s described abov │ │ │ │ +000105d0: 652e 2020 416e 2065 7861 6374 2063 6f70 e. An exact cop │ │ │ │ +000105e0: 7920 6f66 2074 6865 206f 7269 6769 6e61 y of the origina │ │ │ │ +000105f0: 6c20 706f 6c79 676f 6e20 7769 7468 0a76 l polygon with.v │ │ │ │ +00010600: 6572 7465 7820 6f72 6465 7220 696e 7461 ertex order inta │ │ │ │ +00010610: 6374 2066 6f72 6d73 2074 6865 2066 6972 ct forms the fir │ │ │ │ +00010620: 7374 2065 6e64 2070 6f6c 7967 6f6e 2e20 st end polygon. │ │ │ │ +00010630: 2054 6865 206f 7468 6572 2065 6e64 2070 The other end p │ │ │ │ +00010640: 6f6c 7967 6f6e 0a72 6573 756c 7473 2066 olygon.results f │ │ │ │ +00010650: 726f 6d20 7472 616e 7366 6f72 6d69 6e67 rom transforming │ │ │ │ +00010660: 2061 6e64 2074 6865 2072 6576 6572 7369 and the reversi │ │ │ │ +00010670: 6e67 2074 6865 206f 7264 6572 206f 6620 ng the order of │ │ │ │ +00010680: 7665 7274 6963 6573 2069 6e20 7468 650a vertices in the. │ │ │ │ +00010690: 6f72 6967 696e 616c 2e20 2054 6865 2074 original. The t │ │ │ │ +000106a0: 7261 6e73 666f 726d 2070 6c61 6365 7320 ransform places │ │ │ │ +000106b0: 7468 6520 6f72 6967 696e 616c 2070 6f6c the original pol │ │ │ │ +000106c0: 7967 6f6e 2061 7420 7468 6520 756e 636f ygon at the unco │ │ │ │ +000106d0: 7665 7265 640a 686f 6c65 3b20 6974 2069 vered.hole; it i │ │ │ │ +000106e0: 730a 2020 2020 2054 5f31 5e6e 2074 6865 s. T_1^n the │ │ │ │ +000106f0: 6e20 545f 325e 6e20 7468 656e 202e 2e2e n T_2^n then ... │ │ │ │ +00010700: 2074 6865 6e20 545f 525e 6e2e 0a49 6620 then T_R^n..If │ │ │ │ +00010710: 7468 6572 6520 6172 6520 6e6f 206f 7074 there are no opt │ │ │ │ +00010720: 696f 6e73 206f 6e20 7468 6520 7377 6570 ions on the swep │ │ │ │ +00010730: 7420 706f 6c79 676f 6e2c 2074 6865 6e20 t polygon, then │ │ │ │ +00010740: 7468 6520 e280 9873 7765 6570 e280 9920 the ...sweep... │ │ │ │ +00010750: 6f70 7469 6f6e 730a 6172 6520 636f 7069 options.are copi │ │ │ │ +00010760: 6564 2074 6f20 6561 6368 206f 7574 7075 ed to each outpu │ │ │ │ +00010770: 7420 706f 6c79 676f 6e2e 2020 4966 2074 t polygon. If t │ │ │ │ +00010780: 6865 2073 7765 7074 2070 6f6c 7967 6f6e he swept polygon │ │ │ │ +00010790: 2064 6f65 7320 6861 7665 0a6f 7074 696f does have.optio │ │ │ │ +000107a0: 6e73 2c20 7468 6573 6520 6172 6520 636f ns, these are co │ │ │ │ +000107b0: 7069 6564 2074 6f20 7468 6520 656e 6473 pied to the ends │ │ │ │ +000107c0: 3b20 7468 6520 7377 6565 7020 6f70 7469 ; the sweep opti │ │ │ │ +000107d0: 6f6e 7320 6172 6520 636f 7069 6564 2074 ons are copied t │ │ │ │ +000107e0: 6f0a 7468 6520 626f 6479 2070 6f6c 7967 o.the body polyg │ │ │ │ +000107f0: 6f6e 732e 2020 496e 2074 6869 7320 6d61 ons. In this ma │ │ │ │ +00010800: 6e6e 6572 2c20 626f 6479 2061 6e64 2065 nner, body and e │ │ │ │ +00010810: 6e64 7320 6d61 7920 6265 2064 7261 776e nds may be drawn │ │ │ │ +00010820: 2077 6974 680a 6469 6666 6572 656e 7420 with.different │ │ │ │ +00010830: 6368 6172 6163 7465 7269 7374 6963 7320 characteristics │ │ │ │ +00010840: 7375 6368 2061 7320 e280 9866 696c 6c63 such as ...fillc │ │ │ │ +00010850: 6f6c 6f72 e280 992e 0a0a 1f0a 4669 6c65 olor........File │ │ │ │ +00010860: 3a20 736b 6574 6368 2e69 6e66 6f2c 2020 : sketch.info, │ │ │ │ +00010870: 4e6f 6465 3a20 5377 6570 7420 626c 6f63 Node: Swept bloc │ │ │ │ +00010880: 6b73 2c20 204e 6578 743a 2053 7765 6570 ks, Next: Sweep │ │ │ │ +00010890: 2066 6163 6520 7370 6c69 7474 696e 672c face splitting, │ │ │ │ +000108a0: 2020 5072 6576 3a20 5377 6570 7420 706f Prev: Swept po │ │ │ │ +000108b0: 6c79 676f 6e73 2c20 2055 703a 2053 7765 lygons, Up: Swe │ │ │ │ +000108c0: 6570 730a 0a33 2e32 2e36 2e34 2053 7765 eps..3.2.6.4 Swe │ │ │ │ +000108d0: 7074 2062 6c6f 636b 730a 2e2e 2e2e 2e2e pt blocks....... │ │ │ │ +000108e0: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 0a0a ................ │ │ │ │ +000108f0: 5468 6520 7377 6570 7420 6f62 6a65 6374 The swept object │ │ │ │ +00010900: 2053 5745 5054 5f4f 424a 4543 5420 6d61 SWEPT_OBJECT ma │ │ │ │ +00010910: 7920 616c 736f 2062 6520 616e 7920 636f y also be any co │ │ │ │ +00010920: 6c6c 6563 7469 6f6e 206f 6620 706f 6c79 llection of poly │ │ │ │ +00010930: 6c69 6e65 730a 616e 6420 706f 6c79 676f lines.and polygo │ │ │ │ +00010940: 6e73 2e20 2054 6869 7320 6d61 7920 6265 ns. This may be │ │ │ │ +00010950: 2061 2062 6c6f 636b 2063 6f6d 706f 7365 a block compose │ │ │ │ +00010960: 6420 6f66 20e2 8098 6c69 6e65 e280 9920 d of ...line... │ │ │ │ +00010970: 616e 642f 6f72 20e2 8098 706f 6c79 676f and/or ...polygo │ │ │ │ +00010980: 6ee2 8099 0a63 6f6d 6d61 6e64 7320 696e n....commands in │ │ │ │ +00010990: 2062 7261 6365 7320 e280 987b 207d e280 braces ...{ }.. │ │ │ │ +000109a0: 992c 206f 7220 6974 206d 6179 2062 6520 ., or it may be │ │ │ │ +000109b0: 7468 6520 7265 7375 6c74 206f 6620 6120 the result of a │ │ │ │ +000109c0: e280 9872 6570 6561 74e2 8099 2c20 616e ...repeat..., an │ │ │ │ +000109d0: 6f74 6865 720a e280 9873 7765 6570 e280 other....sweep.. │ │ │ │ +000109e0: 992c 2065 7463 2e20 2054 6865 2073 7765 ., etc. The swe │ │ │ │ +000109f0: 6570 2061 6374 7320 696e 6465 7065 6e64 ep acts independ │ │ │ │ +00010a00: 656e 746c 7920 6f6e 2065 6163 6820 6f62 ently on each ob │ │ │ │ +00010a10: 6a65 6374 2069 6e20 7468 6520 626c 6f63 ject in the bloc │ │ │ │ +00010a20: 6b0a 6578 6163 746c 7920 6173 2069 6620 k.exactly as if │ │ │ │ +00010a30: 6974 2077 6572 6520 6120 7369 6e67 6c65 it were a single │ │ │ │ +00010a40: 2073 7765 7074 206f 626a 6563 7420 6465 swept object de │ │ │ │ +00010a50: 7363 7269 6265 6420 6162 6f76 6520 696e scribed above in │ │ │ │ +00010a60: 202a 6e6f 7465 0a53 7765 7074 206c 696e *note.Swept lin │ │ │ │ +00010a70: 6573 3a3a 2061 6e64 202a 6e6f 7465 2053 es:: and *note S │ │ │ │ +00010a80: 7765 7074 2070 6f6c 7967 6f6e 733a 3a2e wept polygons::. │ │ │ │ +00010a90: 0a0a 1f0a 4669 6c65 3a20 736b 6574 6368 ....File: sketch │ │ │ │ +00010aa0: 2e69 6e66 6f2c 2020 4e6f 6465 3a20 5377 .info, Node: Sw │ │ │ │ +00010ab0: 6565 7020 6661 6365 2073 706c 6974 7469 eep face splitti │ │ │ │ +00010ac0: 6e67 2c20 2050 7265 763a 2053 7765 7074 ng, Prev: Swept │ │ │ │ +00010ad0: 2062 6c6f 636b 732c 2020 5570 3a20 5377 blocks, Up: Sw │ │ │ │ +00010ae0: 6565 7073 0a0a 332e 322e 362e 3520 5377 eeps..3.2.6.5 Sw │ │ │ │ +00010af0: 6565 7020 6661 6365 2073 706c 6974 7469 eep face splitti │ │ │ │ +00010b00: 6e67 0a2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e ng.............. │ │ │ │ +00010b10: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e0a ................ │ │ │ │ +00010b20: 0a42 6566 6f72 6520 7365 6e64 696e 6720 .Before sending │ │ │ │ +00010b30: 6561 6368 2066 6f75 722d 7369 6465 6420 each four-sided │ │ │ │ +00010b40: 626f 6479 2070 6f6c 7967 6f6e 206f 6620 body polygon of │ │ │ │ +00010b50: 6120 e280 9873 7765 6570 e280 9920 746f a ...sweep... to │ │ │ │ +00010b60: 2074 6865 206f 7574 7075 742c 0ae2 8098 the output,.... │ │ │ │ +00010b70: 736b 6574 6368 e280 9920 7465 7374 7320 sketch... tests │ │ │ │ +00010b80: 746f 2073 6565 2069 6620 6974 2069 7320 to see if it is │ │ │ │ +00010b90: 726f 7567 686c 7920 706c 616e 6172 2e20 roughly planar. │ │ │ │ +00010ba0: 2053 696e 6365 2070 6c61 6e61 7269 7479 Since planarity │ │ │ │ +00010bb0: 2069 730a 6e65 6365 7373 6172 7920 666f is.necessary fo │ │ │ │ +00010bc0: 7220 7072 6f70 6572 2066 756e 6374 696f r proper functio │ │ │ │ +00010bd0: 6e69 6e67 206f 6620 7468 6520 6869 6464 ning of the hidd │ │ │ │ +00010be0: 656e 2073 7572 6661 6365 2061 6c67 6f72 en surface algor │ │ │ │ +00010bf0: 6974 686d 2c0a 2277 6172 7065 6422 2070 ithm,."warped" p │ │ │ │ +00010c00: 6f6c 7967 6f6e 7320 6172 6520 6175 746f olygons are auto │ │ │ │ +00010c10: 6d61 7469 6361 6c6c 7920 7370 6c69 7420 matically split │ │ │ │ +00010c20: 696e 746f 2074 776f 2074 7269 616e 676c into two triangl │ │ │ │ +00010c30: 6573 2e0a 0a20 2020 486f 6c65 2d66 696c es... Hole-fil │ │ │ │ +00010c40: 6c69 6e67 2070 6f6c 7967 6f6e 7320 7072 ling polygons pr │ │ │ │ +00010c50: 6f64 7563 6564 2062 7920 636c 6f73 7572 oduced by closur │ │ │ │ +00010c60: 652d 7461 6767 6564 206c 696e 6520 7377 e-tagged line sw │ │ │ │ +00010c70: 6565 7073 2061 7265 206e 6f74 0a73 706c eeps are not.spl │ │ │ │ +00010c80: 6974 2e20 204e 6f72 2061 7265 206f 7269 it. Nor are ori │ │ │ │ +00010c90: 6769 6e61 6c20 706f 6c79 676f 6e73 2069 ginal polygons i │ │ │ │ +00010ca0: 6e20 706f 6c79 676f 6e20 7377 6565 7073 n polygon sweeps │ │ │ │ +00010cb0: 2e20 2049 7420 6973 2074 6865 2075 7365 . It is the use │ │ │ │ +00010cc0: 7227 730a 7265 7370 6f6e 7369 6269 6c69 r's.responsibili │ │ │ │ +00010cd0: 7479 2074 6f20 656e 7375 7265 2074 6865 ty to ensure the │ │ │ │ +00010ce0: 7365 2061 7265 2070 6c61 6e61 722e 0a0a se are planar... │ │ │ │ +00010cf0: 1f0a 4669 6c65 3a20 736b 6574 6368 2e69 ..File: sketch.i │ │ │ │ +00010d00: 6e66 6f2c 2020 4e6f 6465 3a20 426c 6f63 nfo, Node: Bloc │ │ │ │ +00010d10: 6b73 2c20 204e 6578 743a 2052 6570 6561 ks, Next: Repea │ │ │ │ +00010d20: 7473 2c20 2050 7265 763a 2053 7765 6570 ts, Prev: Sweep │ │ │ │ +00010d30: 732c 2020 5570 3a20 4472 6177 6162 6c65 s, Up: Drawable │ │ │ │ +00010d40: 730a 0a33 2e32 2e37 2042 6c6f 636b 730a s..3.2.7 Blocks. │ │ │ │ +00010d50: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 0a0a 416e ------------..An │ │ │ │ +00010d60: 7920 7365 7175 656e 6365 206f 6620 6472 y sequence of dr │ │ │ │ +00010d70: 6177 6162 6c65 7320 6d61 7920 6265 2067 awables may be g │ │ │ │ +00010d80: 726f 7570 6564 2069 6e20 6120 e280 9c62 rouped in a ...b │ │ │ │ +00010d90: 6c6f 636b e280 9d20 6d65 7265 6c79 2062 lock... merely b │ │ │ │ +00010da0: 790a 656e 636c 6f73 696e 6720 7468 656d y.enclosing them │ │ │ │ +00010db0: 2069 6e20 6272 6163 6573 20e2 8098 7b20 in braces ...{ │ │ │ │ +00010dc0: 7de2 8099 2e20 2041 2062 6c6f 636b 2069 }.... A block i │ │ │ │ +00010dd0: 7320 6974 7365 6c66 2064 7261 7761 626c s itself drawabl │ │ │ │ +00010de0: 652e 2020 4120 6b65 7920 7573 650a 6f66 e. A key use.of │ │ │ │ +00010df0: 2062 6c6f 636b 7320 6973 2074 6f20 6578 blocks is to ex │ │ │ │ +00010e00: 7465 6e64 2074 6865 2065 6666 6563 7420 tend the effect │ │ │ │ +00010e10: 6f66 2061 2073 696e 676c 6520 e280 9864 of a single ...d │ │ │ │ +00010e20: 6566 e280 992c 202a 6e6f 7465 0a44 6566 ef..., *note.Def │ │ │ │ +00010e30: 696e 6974 696f 6e73 3a3a 2c20 e280 9870 initions::, ...p │ │ │ │ +00010e40: 7574 e280 9920 2a6e 6f74 6520 5075 7473 ut... *note Puts │ │ │ │ +00010e50: 3a3a 2c20 e280 9873 7765 6570 e280 9920 ::, ...sweep... │ │ │ │ +00010e60: 2a6e 6f74 6520 5377 6565 7073 3a3a 2c20 *note Sweeps::, │ │ │ │ +00010e70: 6f72 20e2 8098 7265 7065 6174 e280 990a or ...repeat.... │ │ │ │ +00010e80: 2a6e 6f74 6520 5265 7065 6174 733a 3a20 *note Repeats:: │ │ │ │ +00010e90: 746f 2069 6e63 6c75 6465 2073 6576 6572 to include sever │ │ │ │ +00010ea0: 616c 206f 626a 6563 7473 2072 6174 6865 al objects rathe │ │ │ │ +00010eb0: 7220 7468 616e 206f 6e65 2e0a 0a20 2020 r than one... │ │ │ │ +00010ec0: 4465 6669 6e69 7469 6f6e 7320 282a 4e6f Definitions (*No │ │ │ │ +00010ed0: 7465 2044 6566 696e 6974 696f 6e73 3a3a te Definitions:: │ │ │ │ +00010ee0: 2e29 2020 696e 7369 6465 2061 2062 6c6f .) inside a blo │ │ │ │ +00010ef0: 636b 2068 6176 6520 e280 9c6c 6578 6963 ck have ...lexic │ │ │ │ +00010f00: 616c 0a73 636f 7065 e280 9d20 6578 7465 al.scope... exte │ │ │ │ +00010f10: 6e64 696e 6720 6672 6f6d 2074 6865 2070 nding from the p │ │ │ │ +00010f20: 6c61 6365 206f 6620 6465 6669 6e69 7469 lace of definiti │ │ │ │ +00010f30: 6f6e 2074 6f20 7468 6520 656e 6420 6f66 on to the end of │ │ │ │ +00010f40: 2074 6865 2062 6c6f 636b 2e0a 0a1f 0a46 the block.....F │ │ │ │ +00010f50: 696c 653a 2073 6b65 7463 682e 696e 666f ile: sketch.info │ │ │ │ +00010f60: 2c20 204e 6f64 653a 2052 6570 6561 7473 , Node: Repeats │ │ │ │ +00010f70: 2c20 204e 6578 743a 2050 7574 732c 2020 , Next: Puts, │ │ │ │ +00010f80: 5072 6576 3a20 426c 6f63 6b73 2c20 2055 Prev: Blocks, U │ │ │ │ +00010f90: 703a 2044 7261 7761 626c 6573 0a0a 332e p: Drawables..3. │ │ │ │ +00010fa0: 322e 3820 5265 7065 6174 730a 2d2d 2d2d 2.8 Repeats.---- │ │ │ │ +00010fb0: 2d2d 2d2d 2d2d 2d2d 2d0a 0a2a 5379 6e74 ---------..*Synt │ │ │ │ +00010fc0: 6178 3a2a 0a20 2020 2020 7265 7065 6174 ax:*. repeat │ │ │ │ +00010fd0: 207b 204e 2c20 545f 312c 2054 5f32 2c20 { N, T_1, T_2, │ │ │ │ +00010fe0: 2e2e 2e2c 2054 5f52 207d 2052 4550 4541 ..., T_R } REPEA │ │ │ │ +00010ff0: 5445 445f 4f42 4a45 4354 0a54 6865 2072 TED_OBJECT.The r │ │ │ │ +00011000: 6570 6561 7420 6d61 6b65 7320 4e20 7472 epeat makes N tr │ │ │ │ +00011010: 616e 7366 6f72 6d65 6420 636f 7069 6573 ansformed copies │ │ │ │ +00011020: 206f 6620 5245 5045 4154 4544 5f4f 424a of REPEATED_OBJ │ │ │ │ +00011030: 4543 5420 2869 6e63 6c75 6469 6e67 2074 ECT (including t │ │ │ │ +00011040: 6865 0a6f 7269 6769 6e61 6c29 2e20 2054 he.original). T │ │ │ │ +00011050: 6865 2054 5f49 2061 7265 2074 7261 6e73 he T_I are trans │ │ │ │ +00011060: 666f 726d 732e 2020 5468 6520 6b27 7468 forms. The k'th │ │ │ │ +00011070: 2063 6f70 7920 6f66 2074 6865 0a52 4550 copy of the.REP │ │ │ │ +00011080: 4541 5445 445f 4f42 4a45 4354 2028 666f EATED_OBJECT (fo │ │ │ │ +00011090: 7220 6b3d 302c 312c 2e2e 2e2c 6e2d 3129 r k=0,1,...,n-1) │ │ │ │ +000110a0: 2069 7320 7072 6f64 7563 6564 2069 6e20 is produced in │ │ │ │ +000110b0: 7468 6520 7361 6d65 206d 616e 6e65 7220 the same manner │ │ │ │ +000110c0: 6173 0a66 6f72 20e2 8098 7377 6565 70e2 as.for ...sweep. │ │ │ │ +000110d0: 8099 7320 6465 7363 7269 6265 6420 696e ..s described in │ │ │ │ +000110e0: 202a 6e6f 7465 2053 7765 6570 733a 3a2e *note Sweeps::. │ │ │ │ +000110f0: 2020 5468 6973 2069 7320 7265 7065 6174 This is repeat │ │ │ │ +00011100: 6564 2068 6572 6520 286e 6f20 7075 6e0a ed here (no pun. │ │ │ │ +00011110: 696e 7465 6e64 6564 2920 666f 7220 636f intended) for co │ │ │ │ +00011120: 6e76 656e 6965 6e63 652e 2020 546f 206d nvenience. To m │ │ │ │ +00011130: 616b 6520 7468 6520 6b27 7468 2063 6f70 ake the k'th cop │ │ │ │ +00011140: 792c 2074 6865 2066 6f6c 6c6f 7769 6e67 y, the following │ │ │ │ +00011150: 0a74 7261 6e73 666f 726d 2069 7320 6170 .transform is ap │ │ │ │ +00011160: 706c 6965 6420 746f 2074 6865 206f 7269 plied to the ori │ │ │ │ +00011170: 6769 6e61 6c20 6f62 6a65 6374 2e0a 2020 ginal object.. │ │ │ │ +00011180: 2020 2054 5f31 5e6b 2074 6865 6e20 545f T_1^k then T_ │ │ │ │ +00011190: 325e 6b20 7468 656e 202e 2e2e 2074 6865 2^k then ... the │ │ │ │ +000111a0: 6e20 545f 525e 6b0a 4865 7265 2054 5e6b n T_R^k.Here T^k │ │ │ │ +000111b0: 206d 6561 6e73 2022 7472 616e 7366 6f72 means "transfor │ │ │ │ +000111c0: 6d20 5420 6170 706c 6965 6420 6b20 7469 m T applied k ti │ │ │ │ +000111d0: 6d65 732e 220a 0a1f 0a46 696c 653a 2073 mes."....File: s │ │ │ │ +000111e0: 6b65 7463 682e 696e 666f 2c20 204e 6f64 ketch.info, Nod │ │ │ │ +000111f0: 653a 2050 7574 732c 2020 5072 6576 3a20 e: Puts, Prev: │ │ │ │ +00011200: 5265 7065 6174 732c 2020 5570 3a20 4472 Repeats, Up: Dr │ │ │ │ +00011210: 6177 6162 6c65 730a 0a33 2e32 2e39 2050 awables..3.2.9 P │ │ │ │ +00011220: 7574 730a 2d2d 2d2d 2d2d 2d2d 2d2d 0a0a uts.----------.. │ │ │ │ +00011230: 2a53 796e 7461 783a 2a0a 2020 2020 2070 *Syntax:*. p │ │ │ │ +00011240: 7574 207b 2054 207d 2050 5554 5f4f 424a ut { T } PUT_OBJ │ │ │ │ +00011250: 4543 540a 5075 7420 6d65 7265 6c79 2061 ECT.Put merely a │ │ │ │ +00011260: 7070 6c69 6573 2074 7261 6e73 666f 726d pplies transform │ │ │ │ +00011270: 2054 2074 6f20 7468 6520 6472 6177 6162 T to the drawab │ │ │ │ +00011280: 6c65 2050 5554 5f4f 424a 4543 542e 0a0a le PUT_OBJECT... │ │ │ │ +00011290: 1f0a 4669 6c65 3a20 736b 6574 6368 2e69 ..File: sketch.i │ │ │ │ +000112a0: 6e66 6f2c 2020 4e6f 6465 3a20 4465 6669 nfo, Node: Defi │ │ │ │ +000112b0: 6e69 7469 6f6e 732c 2020 4e65 7874 3a20 nitions, Next: │ │ │ │ +000112c0: 476c 6f62 616c 2065 6e76 6972 6f6e 6d65 Global environme │ │ │ │ +000112d0: 6e74 2c20 2050 7265 763a 2044 7261 7761 nt, Prev: Drawa │ │ │ │ +000112e0: 626c 6573 2c20 2055 703a 2049 6e70 7574 bles, Up: Input │ │ │ │ +000112f0: 206c 616e 6775 6167 650a 0a33 2e33 2044 language..3.3 D │ │ │ │ +00011300: 6566 696e 6974 696f 6e73 0a3d 3d3d 3d3d efinitions.===== │ │ │ │ +00011310: 3d3d 3d3d 3d3d 3d3d 3d3d 0a0a 4465 6669 ==========..Defi │ │ │ │ +00011320: 6e69 7469 6f6e 7320 6769 7665 206e 616d nitions give nam │ │ │ │ +00011330: 6573 2074 6f20 e280 9873 6b65 7463 68e2 es to ...sketch. │ │ │ │ +00011340: 8099 206f 626a 6563 7473 2e20 2044 6566 .. objects. Def │ │ │ │ +00011350: 696e 6974 696f 6e73 2061 6c6f 6e65 2061 initions alone a │ │ │ │ +00011360: 7265 0a62 656e 6967 6e2e 2020 4120 e280 re.benign. A .. │ │ │ │ +00011370: 9873 6b65 7463 68e2 8099 2069 6e70 7574 .sketch... input │ │ │ │ +00011380: 2066 696c 6520 636f 6e73 6973 7469 6e67 file consisting │ │ │ │ +00011390: 2065 6e74 6972 656c 7920 6f66 2064 6566 entirely of def │ │ │ │ +000113a0: 696e 6974 696f 6e73 2077 696c 6c0a 6765 initions will.ge │ │ │ │ +000113b0: 6e65 7261 7465 206e 6f20 6472 6177 696e nerate no drawin │ │ │ │ +000113c0: 672e 2020 4f6e 6c79 2077 6865 6e20 6465 g. Only when de │ │ │ │ +000113d0: 6669 6e69 7469 6f6e 7320 6172 6520 e280 finitions are .. │ │ │ │ +000113e0: 9c72 6566 6572 656e 6365 64e2 809d 2064 .referenced... d │ │ │ │ +000113f0: 6f20 7468 6579 0a70 6f74 656e 7469 616c o they.potential │ │ │ │ +00011400: 6c79 206c 6561 6420 746f 2069 6e6b 206f ly lead to ink o │ │ │ │ +00011410: 6e20 7468 6520 6472 6177 696e 672e 0a0a n the drawing... │ │ │ │ +00011420: 2020 2054 6865 2069 6e74 656e 7420 6f66 The intent of │ │ │ │ +00011430: 2064 6566 696e 6974 696f 6e73 2069 7320 definitions is │ │ │ │ +00011440: 746f 206d 616b 6520 e280 9873 6b65 7463 to make ...sketc │ │ │ │ +00011450: 68e2 8099 2063 6f64 6520 6d6f 7265 2063 h... code more c │ │ │ │ +00011460: 6f6e 6369 7365 2061 6e64 0a72 6561 6461 oncise and.reada │ │ │ │ +00011470: 626c 652e 2020 5468 6572 6520 6973 206e ble. There is n │ │ │ │ +00011480: 6f20 696e 7075 7420 6669 6c65 2065 6d70 o input file emp │ │ │ │ +00011490: 6c6f 7969 6e67 2064 6566 696e 6974 696f loying definitio │ │ │ │ +000114a0: 6e73 2074 6861 7420 636f 756c 6420 6e6f ns that could no │ │ │ │ +000114b0: 740a 6265 2072 652d 7772 6974 7465 6e20 t.be re-written │ │ │ │ +000114c0: 7769 7468 6f75 7420 7468 656d 2e0a 0a20 without them... │ │ │ │ +000114d0: 2020 4465 6669 6e61 626c 6520 6f62 6a65 Definable obje │ │ │ │ +000114e0: 6374 7320 696e 636c 7564 6520 616e 7920 cts include any │ │ │ │ +000114f0: 7265 7375 6c74 206f 6620 616e 2061 6666 result of an aff │ │ │ │ +00011500: 696e 6520 6172 6974 686d 6574 6963 0a65 ine arithmetic.e │ │ │ │ +00011510: 7870 7265 7373 696f 6e20 2873 6361 6c61 xpression (scala │ │ │ │ +00011520: 722c 2070 6f69 6e74 2c20 7665 6374 6f72 r, point, vector │ │ │ │ +00011530: 2c20 6f72 2074 7261 6e73 666f 726d 292c , or transform), │ │ │ │ +00011540: 2061 6e79 2064 7261 7761 626c 6520 6f62 any drawable ob │ │ │ │ +00011550: 6a65 6374 0a28 646f 7473 2c20 6c69 6e65 ject.(dots, line │ │ │ │ +00011560: 2c20 6375 7276 652c 2070 6f6c 7967 6f6e , curve, polygon │ │ │ │ +00011570: 2c20 626c 6f63 6b2c 2073 7765 6570 2c20 , block, sweep, │ │ │ │ +00011580: 7075 742c 2072 6570 6561 742c 206f 7220 put, repeat, or │ │ │ │ +00011590: 7370 6563 6961 6c29 2c20 616e 640a 6f70 special), and.op │ │ │ │ +000115a0: 7469 6f6e 2073 7472 696e 6773 2e20 2049 tion strings. I │ │ │ │ +000115b0: 6e20 6164 6469 7469 6f6e 2c20 e280 9c74 n addition, ...t │ │ │ │ +000115c0: 6167 2064 6566 696e 6974 696f 6e73 e280 ag definitions.. │ │ │ │ +000115d0: 9d2c 2077 6869 6368 2068 6176 6520 6e6f ., which have no │ │ │ │ +000115e0: 0a61 7373 6f63 6961 7465 6420 6f62 6a65 .associated obje │ │ │ │ +000115f0: 6374 2061 7420 616c 6c2c 2061 6c6c 6f77 ct at all, allow │ │ │ │ +00011600: 2074 6865 206d 6561 6e69 6e67 206f 6620 the meaning of │ │ │ │ +00011610: 6f74 6865 7220 6465 6669 6e69 7469 6f6e other definition │ │ │ │ +00011620: 7320 746f 2062 650a 7365 6c65 6374 6564 s to be.selected │ │ │ │ +00011630: 2066 726f 6d20 6120 7365 7420 6f66 2061 from a set of a │ │ │ │ +00011640: 6c74 6572 6e61 7469 7665 732e 2020 5369 lternatives. Si │ │ │ │ +00011650: 6e63 6520 7461 6773 206d 6179 2062 6520 nce tags may be │ │ │ │ +00011660: 6465 6669 6e65 6420 2861 6e64 0a75 6e64 defined (and.und │ │ │ │ +00011670: 6566 696e 6564 2920 696e 2074 6865 2063 efined) in the c │ │ │ │ +00011680: 6f6d 6d61 6e64 206c 696e 6520 6f66 20e2 ommand line of . │ │ │ │ +00011690: 8098 736b 6574 6368 e280 992c 2074 6865 ..sketch..., the │ │ │ │ +000116a0: 7920 6361 6e20 6265 2061 6e20 6169 6420 y can be an aid │ │ │ │ +000116b0: 696e 2074 6865 0a73 6372 6970 742d 6472 in the.script-dr │ │ │ │ +000116c0: 6976 656e 2070 7265 7061 7261 7469 6f6e iven preparation │ │ │ │ +000116d0: 206f 6620 646f 6375 6d65 6e74 732e 0a0a of documents... │ │ │ │ +000116e0: 2a20 4d65 6e75 3a0a 0a2a 2046 6f72 6d73 * Menu:..* Forms │ │ │ │ +000116f0: 206f 6620 6465 6669 6e69 7469 6f6e 733a of definitions: │ │ │ │ +00011700: 3a20 2020 2020 2020 2044 6966 6665 7265 : Differe │ │ │ │ +00011710: 6e74 2064 6566 7320 666f 7220 6469 6666 nt defs for diff │ │ │ │ +00011720: 6572 656e 7420 7075 7270 6f73 6573 2e0a erent purposes.. │ │ │ │ +00011730: 2a20 466f 726d 7320 6f66 2072 6566 6572 * Forms of refer │ │ │ │ +00011740: 656e 6365 733a 3a20 2020 2020 2020 2020 ences:: │ │ │ │ +00011750: 486f 7720 7265 6665 7265 6e63 6573 2064 How references d │ │ │ │ +00011760: 656e 6f74 6520 7479 7065 732e 0a0a 1f0a enote types..... │ │ │ │ +00011770: 4669 6c65 3a20 736b 6574 6368 2e69 6e66 File: sketch.inf │ │ │ │ +00011780: 6f2c 2020 4e6f 6465 3a20 466f 726d 7320 o, Node: Forms │ │ │ │ +00011790: 6f66 2064 6566 696e 6974 696f 6e73 2c20 of definitions, │ │ │ │ +000117a0: 204e 6578 743a 2046 6f72 6d73 206f 6620 Next: Forms of │ │ │ │ +000117b0: 7265 6665 7265 6e63 6573 2c20 2050 7265 references, Pre │ │ │ │ +000117c0: 763a 2044 6566 696e 6974 696f 6e73 2c20 v: Definitions, │ │ │ │ +000117d0: 2055 703a 2044 6566 696e 6974 696f 6e73 Up: Definitions │ │ │ │ +000117e0: 0a0a 332e 332e 3120 466f 726d 7320 6f66 ..3.3.1 Forms of │ │ │ │ +000117f0: 2064 6566 696e 6974 696f 6e73 0a2d 2d2d definitions.--- │ │ │ │ +00011800: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ +00011810: 2d2d 2d2d 2d2d 2d0a 0a44 6566 696e 6974 -------..Definit │ │ │ │ +00011820: 696f 6e73 2068 6176 6520 7468 7265 6520 ions have three │ │ │ │ +00011830: 706f 7373 6962 6c65 2066 6f72 6d73 2c20 possible forms, │ │ │ │ +00011840: e280 9c73 696d 706c 65e2 809d 2c20 e280 ...simple..., .. │ │ │ │ +00011850: 9c77 6974 6820 616c 7465 726e 6174 6976 .with alternativ │ │ │ │ +00011860: 6573 e280 9d2c 0a61 6e64 20e2 809c 7461 es...,.and ...ta │ │ │ │ +00011870: 67e2 809d 2061 7320 7368 6f77 6e20 6865 g... as shown he │ │ │ │ +00011880: 7265 2069 6e20 6f72 6465 722e 0a0a 2a53 re in order...*S │ │ │ │ +00011890: 796e 7461 783a 2a0a 2020 2020 2064 6566 yntax:*. def │ │ │ │ +000118a0: 2049 4420 4f42 4a45 4354 2020 2520 7369 ID OBJECT % si │ │ │ │ +000118b0: 6d70 6c65 2064 6566 0a20 2020 2020 6465 mple def. de │ │ │ │ +000118c0: 6620 4944 203c 5441 475f 313e 204f 424a f ID OBJ │ │ │ │ +000118d0: 4543 545f 3120 2025 2064 6566 2077 6974 ECT_1 % def wit │ │ │ │ +000118e0: 6820 616c 7465 726e 6174 6976 6573 0a20 h alternatives. │ │ │ │ +000118f0: 2020 2020 2020 2020 2020 203c 5441 475f OBJECT_2. │ │ │ │ +00011910: 2020 2020 2020 2020 2e2e 2e0a 2020 2020 .... │ │ │ │ +00011920: 2020 2020 2020 2020 3c3e 2044 4546 4155 <> DEFAU │ │ │ │ +00011930: 4c54 5f4f 424a 4543 540a 2020 2020 2064 LT_OBJECT. d │ │ │ │ +00011940: 6566 2049 4420 3c3e 2020 2520 7461 6720 ef ID <> % tag │ │ │ │ +00011950: 6465 660a 5468 6520 7369 6d70 6c65 2064 def.The simple d │ │ │ │ +00011960: 6566 696e 6974 696f 6e20 6d65 7265 6c79 efinition merely │ │ │ │ +00011970: 2061 7373 6f63 6961 7465 7320 4f42 4a45 associates OBJE │ │ │ │ +00011980: 4354 2077 6974 6820 7468 6520 6964 656e CT with the iden │ │ │ │ +00011990: 7469 6669 6572 2049 442e 0a0a 2020 2054 tifier ID... T │ │ │ │ +000119a0: 6865 2064 6566 696e 6974 696f 6e20 7769 he definition wi │ │ │ │ +000119b0: 7468 2061 6c74 6572 6e61 7469 7665 7320 th alternatives │ │ │ │ +000119c0: 6173 736f 6369 6174 6573 204f 424a 4543 associates OBJEC │ │ │ │ +000119d0: 545f 4920 7769 7468 2049 442c 2077 6865 T_I with ID, whe │ │ │ │ +000119e0: 7265 0a54 4147 5f49 2069 7320 7468 6520 re.TAG_I is the │ │ │ │ +000119f0: 6669 7273 7420 6465 6669 6e65 6420 7461 first defined ta │ │ │ │ +00011a00: 6720 696e 2074 6865 206c 6973 7420 6f66 g in the list of │ │ │ │ +00011a10: 2061 6c74 6572 6e61 7469 7665 2074 6167 alternative tag │ │ │ │ +00011a20: 0a72 6566 6572 656e 6365 732e 2020 4966 .references. If │ │ │ │ +00011a30: 206e 6f20 7461 6720 696e 2074 6865 206c no tag in the l │ │ │ │ +00011a40: 6973 7420 6973 2064 6566 696e 6564 2c20 ist is defined, │ │ │ │ +00011a50: 7468 656e 2044 4546 4155 4c54 5f4f 424a then DEFAULT_OBJ │ │ │ │ +00011a60: 4543 5420 6973 0a61 7373 6f63 6961 7465 ECT is.associate │ │ │ │ +00011a70: 6420 7769 7468 2069 6465 6e74 6966 6965 d with identifie │ │ │ │ +00011a80: 7220 4944 2e0a 0a20 2020 5468 6520 6669 r ID... The fi │ │ │ │ +00011a90: 6e61 6c20 666f 726d 2064 6566 696e 6573 nal form defines │ │ │ │ +00011aa0: 2049 4420 6173 2061 2074 6167 2e20 2041 ID as a tag. A │ │ │ │ +00011ab0: 6e6f 7468 6572 2077 6179 2074 6f20 6465 nother way to de │ │ │ │ +00011ac0: 6669 6e65 2061 2074 6167 2069 730a 7769 fine a tag is.wi │ │ │ │ +00011ad0: 7468 2074 6865 20e2 8098 2d44 e280 9920 th the ...-D... │ │ │ │ +00011ae0: 636f 6d6d 616e 6420 6c69 6e65 206f 7074 command line opt │ │ │ │ +00011af0: 696f 6e2e 2020 2a4e 6f74 6520 436f 6d6d ion. *Note Comm │ │ │ │ +00011b00: 616e 6420 6c69 6e65 3a3a 2e0a 0a1f 0a46 and line::.....F │ │ │ │ +00011b10: 696c 653a 2073 6b65 7463 682e 696e 666f ile: sketch.info │ │ │ │ +00011b20: 2c20 204e 6f64 653a 2046 6f72 6d73 206f , Node: Forms o │ │ │ │ +00011b30: 6620 7265 6665 7265 6e63 6573 2c20 2050 f references, P │ │ │ │ +00011b40: 7265 763a 2046 6f72 6d73 206f 6620 6465 rev: Forms of de │ │ │ │ +00011b50: 6669 6e69 7469 6f6e 732c 2020 5570 3a20 finitions, Up: │ │ │ │ +00011b60: 4465 6669 6e69 7469 6f6e 730a 0a33 2e33 Definitions..3.3 │ │ │ │ +00011b70: 2e32 2046 6f72 6d73 206f 6620 7265 6665 .2 Forms of refe │ │ │ │ +00011b80: 7265 6e63 6573 0a2d 2d2d 2d2d 2d2d 2d2d rences.--------- │ │ │ │ 00011b90: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ -00011ba0: 2d2d 2d2d 2d2d 2d2d 0a0a 5265 6665 7265 --------..Refere │ │ │ │ -00011bb0: 6e63 6573 2074 6f20 6465 6669 6e65 6420 nces to defined │ │ │ │ -00011bc0: 6e61 6d65 7320 6172 6520 656e 636c 6f73 names are enclos │ │ │ │ -00011bd0: 6564 2069 6e20 6272 6163 6b65 7469 6e67 ed in bracketing │ │ │ │ -00011be0: 2064 656c 696d 6974 6572 732e 2020 5468 delimiters. Th │ │ │ │ -00011bf0: 650a 6465 6c69 6d69 7465 7220 6368 6172 e.delimiter char │ │ │ │ -00011c00: 6163 7465 7273 2069 6d70 6c79 2074 6865 acters imply the │ │ │ │ -00011c10: 2074 7970 6520 6f66 2074 6865 2061 7373 type of the ass │ │ │ │ -00011c20: 6f63 6961 7465 6420 7661 6c75 6520 6173 ociated value as │ │ │ │ -00011c30: 2073 686f 776e 2069 6e0a 7468 6520 7461 shown in.the ta │ │ │ │ -00011c40: 626c 6520 6265 6c6f 772e 2020 4120 7479 ble below. A ty │ │ │ │ -00011c50: 7065 2065 7272 6f72 2069 7320 7261 6973 pe error is rais │ │ │ │ -00011c60: 6564 2069 6620 7468 6520 7479 7065 206f ed if the type o │ │ │ │ -00011c70: 6620 6120 7265 6665 7265 6e63 6520 646f f a reference do │ │ │ │ -00011c80: 6573 0a6e 6f74 206d 6174 6368 2074 6865 es.not match the │ │ │ │ -00011c90: 2074 7970 6520 6f66 2074 6865 2064 6566 type of the def │ │ │ │ -00011ca0: 696e 6564 2076 616c 7565 2e20 2054 6865 ined value. The │ │ │ │ -00011cb0: 2069 6e74 656e 7420 6f66 2074 6869 7320 intent of this │ │ │ │ -00011cc0: 6d65 6368 616e 6973 6d0a 6973 2c20 6167 mechanism.is, ag │ │ │ │ -00011cd0: 6169 6e2c 2074 6f20 6d61 6b65 20e2 8098 ain, to make ... │ │ │ │ -00011ce0: 736b 6574 6368 e280 9920 696e 7075 7420 sketch... input │ │ │ │ -00011cf0: 6669 6c65 7320 6d6f 7265 2072 6561 6461 files more reada │ │ │ │ -00011d00: 626c 652e 0a54 7970 6520 2020 2020 2020 ble..Type │ │ │ │ -00011d10: 2052 6566 6572 656e 6365 0a2d 2d2d 2d2d Reference.----- │ │ │ │ +00011ba0: 0a0a 5265 6665 7265 6e63 6573 2074 6f20 ..References to │ │ │ │ +00011bb0: 6465 6669 6e65 6420 6e61 6d65 7320 6172 defined names ar │ │ │ │ +00011bc0: 6520 656e 636c 6f73 6564 2069 6e20 6272 e enclosed in br │ │ │ │ +00011bd0: 6163 6b65 7469 6e67 2064 656c 696d 6974 acketing delimit │ │ │ │ +00011be0: 6572 732e 2020 5468 650a 6465 6c69 6d69 ers. The.delimi │ │ │ │ +00011bf0: 7465 7220 6368 6172 6163 7465 7273 2069 ter characters i │ │ │ │ +00011c00: 6d70 6c79 2074 6865 2074 7970 6520 6f66 mply the type of │ │ │ │ +00011c10: 2074 6865 2061 7373 6f63 6961 7465 6420 the associated │ │ │ │ +00011c20: 7661 6c75 6520 6173 2073 686f 776e 2069 value as shown i │ │ │ │ +00011c30: 6e0a 7468 6520 7461 626c 6520 6265 6c6f n.the table belo │ │ │ │ +00011c40: 772e 2020 4120 7479 7065 2065 7272 6f72 w. A type error │ │ │ │ +00011c50: 2069 7320 7261 6973 6564 2069 6620 7468 is raised if th │ │ │ │ +00011c60: 6520 7479 7065 206f 6620 6120 7265 6665 e type of a refe │ │ │ │ +00011c70: 7265 6e63 6520 646f 6573 0a6e 6f74 206d rence does.not m │ │ │ │ +00011c80: 6174 6368 2074 6865 2074 7970 6520 6f66 atch the type of │ │ │ │ +00011c90: 2074 6865 2064 6566 696e 6564 2076 616c the defined val │ │ │ │ +00011ca0: 7565 2e20 2054 6865 2069 6e74 656e 7420 ue. The intent │ │ │ │ +00011cb0: 6f66 2074 6869 7320 6d65 6368 616e 6973 of this mechanis │ │ │ │ +00011cc0: 6d0a 6973 2c20 6167 6169 6e2c 2074 6f20 m.is, again, to │ │ │ │ +00011cd0: 6d61 6b65 20e2 8098 736b 6574 6368 e280 make ...sketch.. │ │ │ │ +00011ce0: 9920 696e 7075 7420 6669 6c65 7320 6d6f . input files mo │ │ │ │ +00011cf0: 7265 2072 6561 6461 626c 652e 0a54 7970 re readable..Typ │ │ │ │ +00011d00: 6520 2020 2020 2020 2052 6566 6572 656e e Referen │ │ │ │ +00011d10: 6365 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ce.------------- │ │ │ │ 00011d20: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ -00011d30: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ -00011d40: 2d2d 2d2d 2d0a 7363 616c 6172 2020 2020 -----.scalar │ │ │ │ -00011d50: 2020 e280 9849 44e2 8099 0a70 6f69 6e74 ...ID....point │ │ │ │ -00011d60: 2020 2020 2020 20e2 8098 2849 4429 e280 ...(ID).. │ │ │ │ -00011d70: 990a 7665 6374 6f72 2020 2020 2020 e280 ..vector .. │ │ │ │ -00011d80: 985b 4944 5de2 8099 0a74 7261 6e73 666f .[ID]....transfo │ │ │ │ -00011d90: 726d 2020 20e2 8098 5b5b 4944 5d5d e280 rm ...[[ID]].. │ │ │ │ -00011da0: 990a 6472 6177 6162 6c65 2020 2020 e280 ..drawable .. │ │ │ │ -00011db0: 987b 4944 7de2 8099 0a6f 7074 696f 6e73 .{ID}....options │ │ │ │ -00011dc0: 2020 2020 20e2 8098 5b49 445d e280 9920 ...[ID]... │ │ │ │ -00011dd0: 6f72 20e2 8098 5b49 4431 2c2e 2e2e 2c49 or ...[ID1,...,I │ │ │ │ -00011de0: 444e 5de2 8099 0a74 6167 2020 2020 2020 DN]....tag │ │ │ │ -00011df0: 2020 20e2 8098 3c49 443e e280 990a 0a4e ........N │ │ │ │ -00011e00: 6f74 6520 7468 6174 2073 7175 6172 6520 ote that square │ │ │ │ -00011e10: 6272 6163 6b65 7473 20e2 8098 5b20 5de2 brackets ...[ ]. │ │ │ │ -00011e20: 8099 2061 7265 2075 7365 6420 626f 7468 .. are used both │ │ │ │ -00011e30: 2066 6f72 2076 6563 746f 7220 616e 6420 for vector and │ │ │ │ -00011e40: 666f 7220 6f70 7469 6f6e 730a 7265 6665 for options.refe │ │ │ │ -00011e50: 7265 6e63 6573 2e20 2044 6574 6169 6c73 rences. Details │ │ │ │ -00011e60: 206f 6620 e280 9873 6b65 7463 68e2 8099 of ...sketch... │ │ │ │ -00011e70: 2073 796e 7461 7820 6d61 6b65 2069 7420 syntax make it │ │ │ │ -00011e80: 696d 706f 7373 6962 6c65 2066 6f72 2074 impossible for t │ │ │ │ -00011e90: 6865 7365 2074 776f 0a72 6566 6572 656e hese two.referen │ │ │ │ -00011ea0: 6365 2074 7970 6573 2074 6f20 6265 2063 ce types to be c │ │ │ │ -00011eb0: 6f6e 6675 7365 642e 2020 5468 6520 7370 onfused. The sp │ │ │ │ -00011ec0: 6563 6961 6c20 6d75 6c74 6970 6c65 2072 ecial multiple r │ │ │ │ -00011ed0: 6566 6572 656e 6365 0ae2 8098 5b49 4431 eference....[ID1 │ │ │ │ -00011ee0: 2c49 4432 2c2e 2e2e 2c49 444e 5de2 8099 ,ID2,...,IDN]... │ │ │ │ -00011ef0: 2061 6374 7320 6173 2069 6620 7468 6520 acts as if the │ │ │ │ -00011f00: 7265 7370 6563 7469 7665 206c 6973 7473 respective lists │ │ │ │ -00011f10: 206f 6620 6f70 7469 6f6e 7320 7765 7265 of options were │ │ │ │ -00011f20: 0a63 6f6e 6361 7465 6e61 7465 642e 0a0a .concatenated... │ │ │ │ -00011f30: 1f0a 4669 6c65 3a20 736b 6574 6368 2e69 ..File: sketch.i │ │ │ │ -00011f40: 6e66 6f2c 2020 4e6f 6465 3a20 476c 6f62 nfo, Node: Glob │ │ │ │ -00011f50: 616c 2065 6e76 6972 6f6e 6d65 6e74 2c20 al environment, │ │ │ │ -00011f60: 2050 7265 763a 2044 6566 696e 6974 696f Prev: Definitio │ │ │ │ -00011f70: 6e73 2c20 2055 703a 2049 6e70 7574 206c ns, Up: Input l │ │ │ │ -00011f80: 616e 6775 6167 650a 0a33 2e34 2047 6c6f anguage..3.4 Glo │ │ │ │ -00011f90: 6261 6c20 656e 7669 726f 6e6d 656e 740a bal environment. │ │ │ │ -00011fa0: 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d ================ │ │ │ │ -00011fb0: 3d3d 3d3d 3d3d 0a0a 416e 206f 7074 696f ======..An optio │ │ │ │ -00011fc0: 6e61 6c20 676c 6f62 616c 2065 6e76 6972 nal global envir │ │ │ │ -00011fd0: 6f6e 6d65 6e74 2062 6c6f 636b 2070 726f onment block pro │ │ │ │ -00011fe0: 7669 6465 7320 6120 6665 7720 7761 7973 vides a few ways │ │ │ │ -00011ff0: 2074 6f20 6166 6665 6374 2074 6865 0a65 to affect the.e │ │ │ │ -00012000: 6e74 6972 6520 7363 656e 652e 2020 5468 ntire scene. Th │ │ │ │ -00012010: 6520 626c 6f63 6b20 6d75 7374 2061 7070 e block must app │ │ │ │ -00012020: 6561 7220 6173 2074 6865 206c 6173 7420 ear as the last │ │ │ │ -00012030: 7465 7874 2069 6e20 7468 6520 e280 9873 text in the ...s │ │ │ │ -00012040: 6b65 7463 68e2 8099 0a69 6e70 7574 2066 ketch....input f │ │ │ │ -00012050: 696c 652e 2020 4974 206d 6179 2069 6e63 ile. It may inc │ │ │ │ -00012060: 6c75 6465 2064 6566 696e 6974 696f 6e73 lude definitions │ │ │ │ -00012070: 2c20 6275 7420 6e6f 7465 2074 6861 7420 , but note that │ │ │ │ -00012080: 7072 6576 696f 7573 0a64 6566 696e 6974 previous.definit │ │ │ │ -00012090: 696f 6e73 2061 7420 7468 6520 746f 7020 ions at the top │ │ │ │ -000120a0: 6c65 7665 6c20 286e 6f74 206e 6573 7465 level (not neste │ │ │ │ -000120b0: 6420 696e 7369 6465 2062 6c6f 636b 7329 d inside blocks) │ │ │ │ -000120c0: 2061 7265 2061 6c73 6f0a 6176 6169 6c61 are also.availa │ │ │ │ -000120d0: 626c 652e 0a0a 2a53 796e 7461 783a 2a0a ble...*Syntax:*. │ │ │ │ -000120e0: 2020 2020 2067 6c6f 6261 6c20 7b20 454e global { EN │ │ │ │ -000120f0: 5649 524f 4e4d 454e 545f 5345 5454 494e VIRONMENT_SETTIN │ │ │ │ -00012100: 4753 207d 0a54 6865 2063 6f6e 7465 6e74 GS }.The content │ │ │ │ -00012110: 7320 6f66 2045 4e56 4952 4f4e 4d45 4e54 s of ENVIRONMENT │ │ │ │ -00012120: 5f53 4554 5449 4e47 5320 6172 6520 6469 _SETTINGS are di │ │ │ │ -00012130: 7363 7573 7365 6420 696e 2074 6865 2073 scussed in the s │ │ │ │ -00012140: 6563 7469 6f6e 7320 7468 6174 0a66 6f6c ections that.fol │ │ │ │ -00012150: 6c6f 772e 0a0a 2a20 4d65 6e75 3a0a 0a2a low...* Menu:..* │ │ │ │ -00012160: 2047 6c6f 6261 6c20 6f70 7469 6f6e 733a Global options: │ │ │ │ -00012170: 3a20 2020 2020 2020 2020 2020 2020 2041 : A │ │ │ │ -00012180: 7474 7269 6275 7465 7320 6f66 2074 6865 ttributes of the │ │ │ │ -00012190: 2065 6e74 6972 6520 6472 6177 696e 672e entire drawing. │ │ │ │ -000121a0: 0a2a 2043 616d 6572 613a 3a20 2020 2020 .* Camera:: │ │ │ │ -000121b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000121c0: 2041 2066 696e 616c 2063 616d 6572 6120 A final camera │ │ │ │ -000121d0: 7472 616e 7366 6f72 6d61 7469 6f6e 206f transformation o │ │ │ │ -000121e0: 6620 7468 6520 7363 656e 652e 0a2a 2050 f the scene..* P │ │ │ │ -000121f0: 6963 7475 7265 2062 6f78 3a3a 2020 2020 icture box:: │ │ │ │ -00012200: 2020 2020 2020 2020 2020 2020 2053 6574 Set │ │ │ │ -00012210: 7469 6e67 2074 6865 2062 6f75 6e64 696e ting the boundin │ │ │ │ -00012220: 6720 626f 7820 616e 6420 3264 2063 6c69 g box and 2d cli │ │ │ │ -00012230: 7070 696e 672e 0a2a 2046 7261 6d65 3a3a pping..* Frame:: │ │ │ │ -00012240: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00012250: 2020 2020 2020 2041 6464 696e 6720 6120 Adding a │ │ │ │ -00012260: 626f 7820 6172 6f75 6e64 2074 6865 2064 box around the d │ │ │ │ -00012270: 7261 7769 6e67 2e0a 2a20 4c61 6e67 7561 rawing..* Langua │ │ │ │ -00012280: 6765 3a3a 2020 2020 2020 2020 2020 2020 ge:: │ │ │ │ -00012290: 2020 2020 2020 2020 5365 7474 696e 6720 Setting │ │ │ │ -000122a0: 7468 6520 6f75 7470 7574 206c 616e 6775 the output langu │ │ │ │ -000122b0: 6167 652e 0a0a 1f0a 4669 6c65 3a20 736b age.....File: sk │ │ │ │ -000122c0: 6574 6368 2e69 6e66 6f2c 2020 4e6f 6465 etch.info, Node │ │ │ │ -000122d0: 3a20 476c 6f62 616c 206f 7074 696f 6e73 : Global options │ │ │ │ -000122e0: 2c20 204e 6578 743a 2043 616d 6572 612c , Next: Camera, │ │ │ │ -000122f0: 2020 5072 6576 3a20 476c 6f62 616c 2065 Prev: Global e │ │ │ │ -00012300: 6e76 6972 6f6e 6d65 6e74 2c20 2055 703a nvironment, Up: │ │ │ │ -00012310: 2047 6c6f 6261 6c20 656e 7669 726f 6e6d Global environm │ │ │ │ -00012320: 656e 740a 0a33 2e34 2e31 2047 6c6f 6261 ent..3.4.1 Globa │ │ │ │ -00012330: 6c20 6f70 7469 6f6e 730a 2d2d 2d2d 2d2d l options.------ │ │ │ │ -00012340: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 0a0a --------------.. │ │ │ │ -00012350: 2a53 796e 7461 783a 2a0a 2020 2020 2073 *Syntax:*. s │ │ │ │ -00012360: 6574 205b 204f 5054 494f 4e53 205d 0a54 et [ OPTIONS ].T │ │ │ │ -00012370: 6865 2063 6f6e 7465 6e74 7320 6f66 204f he contents of O │ │ │ │ -00012380: 5054 494f 4e53 2c20 6578 6365 7074 2066 PTIONS, except f │ │ │ │ -00012390: 6f72 20e2 8098 736b 6574 6368 e280 9920 or ...sketch... │ │ │ │ -000123a0: 696e 7465 726e 616c 206f 7074 696f 6e73 internal options │ │ │ │ -000123b0: 2c20 6172 650a 636f 7069 6564 2061 732d , are.copied as- │ │ │ │ -000123c0: 6973 2074 6f20 6120 5c70 7373 6574 2074 is to a \psset t │ │ │ │ -000123d0: 6861 7420 6170 7065 6172 7320 6265 666f hat appears befo │ │ │ │ -000123e0: 7265 2061 6e79 7468 696e 6720 656c 7365 re anything else │ │ │ │ -000123f0: 2069 6e20 7468 6520 6f75 7470 7574 0a66 in the output.f │ │ │ │ -00012400: 696c 652e 2020 5468 6973 2069 7320 6120 ile. This is a │ │ │ │ -00012410: 676f 6f64 2070 6c61 6365 2074 6f20 7365 good place to se │ │ │ │ -00012420: 7420 e280 9875 6e69 74e2 8099 2c20 6120 t ...unit..., a │ │ │ │ -00012430: 6465 6661 756c 7420 e280 986c 696e 6577 default ...linew │ │ │ │ -00012440: 6964 7468 e280 992c 2065 7463 2e0a 0a20 idth..., etc... │ │ │ │ -00012450: 2020 496e 7465 726e 616c 206f 7074 696f Internal optio │ │ │ │ -00012460: 6e73 2077 6f72 6b20 6f6e 2061 6c6c 206f ns work on all o │ │ │ │ -00012470: 626a 6563 7473 2077 6865 7265 2074 6865 bjects where the │ │ │ │ -00012480: 7920 6d61 6b65 2073 656e 7365 2e20 2054 y make sense. T │ │ │ │ -00012490: 6869 730a 696e 636c 7564 6573 20e2 8098 his.includes ... │ │ │ │ -000124a0: 6375 6c6c e280 9920 616e 6420 e280 9873 cull... and ...s │ │ │ │ -000124b0: 706c 6974 e280 9920 2862 7574 206e 6f74 plit... (but not │ │ │ │ -000124c0: 20e2 8098 6c61 79e2 8099 292e 2020 2a4e ...lay...). *N │ │ │ │ -000124d0: 6f74 6520 496e 7465 726e 616c 206f 7074 ote Internal opt │ │ │ │ -000124e0: 696f 6e73 3a3a 2e0a 0a1f 0a46 696c 653a ions::.....File: │ │ │ │ -000124f0: 2073 6b65 7463 682e 696e 666f 2c20 204e sketch.info, N │ │ │ │ -00012500: 6f64 653a 2043 616d 6572 612c 2020 4e65 ode: Camera, Ne │ │ │ │ -00012510: 7874 3a20 5069 6374 7572 6520 626f 782c xt: Picture box, │ │ │ │ -00012520: 2020 5072 6576 3a20 476c 6f62 616c 206f Prev: Global o │ │ │ │ -00012530: 7074 696f 6e73 2c20 2055 703a 2047 6c6f ptions, Up: Glo │ │ │ │ -00012540: 6261 6c20 656e 7669 726f 6e6d 656e 740a bal environment. │ │ │ │ -00012550: 0a33 2e34 2e32 2043 616d 6572 610a 2d2d .3.4.2 Camera.-- │ │ │ │ -00012560: 2d2d 2d2d 2d2d 2d2d 2d2d 0a0a 2a53 796e ----------..*Syn │ │ │ │ -00012570: 7461 783a 2a0a 2020 2020 2063 616d 6572 tax:*. camer │ │ │ │ -00012580: 6120 5452 414e 5346 4f52 4d5f 4558 5052 a TRANSFORM_EXPR │ │ │ │ -00012590: 4553 5349 4f4e 0a20 2020 5468 6520 5452 ESSION. The TR │ │ │ │ -000125a0: 414e 5346 4f52 4d5f 4558 5052 4553 5349 ANSFORM_EXPRESSI │ │ │ │ -000125b0: 4f4e 2069 7320 6170 706c 6965 6420 6166 ON is applied af │ │ │ │ -000125c0: 7465 7220 616c 6c20 6f74 6865 7220 7472 ter all other tr │ │ │ │ -000125d0: 616e 7366 6f72 6d61 7469 6f6e 730a 6f66 ansformations.of │ │ │ │ -000125e0: 2074 6865 2073 6365 6e65 2e20 2054 6869 the scene. Thi │ │ │ │ -000125f0: 7320 6973 2063 7572 7265 6e74 6c79 206f s is currently o │ │ │ │ -00012600: 6e6c 7920 7573 6566 756c 2066 6f72 2074 nly useful for t │ │ │ │ -00012610: 7261 6e73 666f 726d 696e 6720 7468 650a ransforming the. │ │ │ │ -00012620: 626f 756e 6469 6e67 2062 6f78 2e20 202a bounding box. * │ │ │ │ -00012630: 4e6f 7465 2050 6963 7475 7265 2062 6f78 Note Picture box │ │ │ │ -00012640: 3a3a 2e20 2049 7420 7769 6c6c 2070 6c61 ::. It will pla │ │ │ │ -00012650: 7920 6120 726f 6c65 2069 6e20 616e 7920 y a role in any │ │ │ │ -00012660: 6675 7475 7265 0a69 6d70 6c65 6d65 6e74 future.implement │ │ │ │ -00012670: 6174 696f 6e20 6f66 2063 6c69 7070 696e ation of clippin │ │ │ │ -00012680: 672e 0a0a 1f0a 4669 6c65 3a20 736b 6574 g.....File: sket │ │ │ │ -00012690: 6368 2e69 6e66 6f2c 2020 4e6f 6465 3a20 ch.info, Node: │ │ │ │ -000126a0: 5069 6374 7572 6520 626f 782c 2020 4e65 Picture box, Ne │ │ │ │ -000126b0: 7874 3a20 4672 616d 652c 2020 5072 6576 xt: Frame, Prev │ │ │ │ -000126c0: 3a20 4361 6d65 7261 2c20 2055 703a 2047 : Camera, Up: G │ │ │ │ -000126d0: 6c6f 6261 6c20 656e 7669 726f 6e6d 656e lobal environmen │ │ │ │ -000126e0: 740a 0a33 2e34 2e33 2050 6963 7475 7265 t..3.4.3 Picture │ │ │ │ -000126f0: 2062 6f78 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d box.----------- │ │ │ │ -00012700: 2d2d 2d2d 2d2d 0a0a 2a53 796e 7461 783a ------..*Syntax: │ │ │ │ -00012710: 2a0a 2020 2020 2070 6963 7475 7265 626f *. picturebo │ │ │ │ -00012720: 785b 4241 5345 4c49 4e45 5d0a 2020 2020 x[BASELINE]. │ │ │ │ -00012730: 2070 6963 7475 7265 626f 785b 4241 5345 picturebox[BASE │ │ │ │ -00012740: 4c49 4e45 5d20 2850 3129 2850 3229 0a54 LINE] (P1)(P2).T │ │ │ │ -00012750: 6865 2066 6972 7374 2066 6f72 6d20 6f66 he first form of │ │ │ │ -00012760: 20e2 8098 7069 6374 7572 6562 6f78 e280 ...picturebox.. │ │ │ │ -00012770: 9920 6361 7573 6573 2061 2073 6361 6c61 . causes a scala │ │ │ │ -00012780: 7220 4241 5345 4c49 4e45 2066 7261 6374 r BASELINE fract │ │ │ │ -00012790: 696f 6e20 746f 2062 650a 656d 6974 7465 ion to be.emitte │ │ │ │ -000127a0: 6420 696e 2074 6865 20e2 8098 7073 7069 d in the ...pspi │ │ │ │ -000127b0: 6374 7572 65e2 8099 2065 6e76 6972 6f6e cture... environ │ │ │ │ -000127c0: 6d65 6e74 206f 6620 7468 6520 6f75 7470 ment of the outp │ │ │ │ -000127d0: 7574 2e20 2053 6565 20e2 8098 5053 5472 ut. See ...PSTr │ │ │ │ -000127e0: 6963 6b73 e280 990a 646f 6375 6d65 6e74 icks....document │ │ │ │ -000127f0: 6174 696f 6e20 666f 7220 e280 9870 7370 ation for ...psp │ │ │ │ -00012800: 6963 7475 7265 e280 992e 0a0a 2020 2049 icture...... I │ │ │ │ -00012810: 6e20 7468 6520 7365 636f 6e64 2066 6f72 n the second for │ │ │ │ -00012820: 6d2c 2074 6865 2042 4153 454c 494e 4520 m, the BASELINE │ │ │ │ -00012830: 6672 6163 7469 6f6e 2069 7320 6f70 7469 fraction is opti │ │ │ │ -00012840: 6f6e 616c 2c20 616e 6420 7468 6520 7477 onal, and the tw │ │ │ │ -00012850: 6f0a 706f 696e 7473 2074 6861 7420 666f o.points that fo │ │ │ │ -00012860: 6c6c 6f77 2064 6566 696e 6520 7468 6520 llow define the │ │ │ │ -00012870: 6469 6167 6f6e 616c 206f 6620 6120 7468 diagonal of a th │ │ │ │ -00012880: 7265 652d 6469 6d65 6e73 696f 6e61 6c20 ree-dimensional │ │ │ │ -00012890: 626f 756e 6469 6e67 0a62 6f78 2066 6f72 bounding.box for │ │ │ │ -000128a0: 2074 6865 2063 6f6d 706c 6574 6564 2073 the completed s │ │ │ │ -000128b0: 6365 6e65 2e20 2054 6865 2070 6172 616c cene. The paral │ │ │ │ -000128c0: 6c65 6c20 7072 6f6a 6563 7469 6f6e 206f lel projection o │ │ │ │ -000128d0: 6620 7468 6520 626f 756e 6469 6e67 0a62 f the bounding.b │ │ │ │ -000128e0: 6f78 2064 6574 6572 6d69 6e65 7320 7468 ox determines th │ │ │ │ -000128f0: 6520 636f 726e 6572 7320 6f66 2074 6865 e corners of the │ │ │ │ -00012900: 2064 7261 7769 6e67 2773 20e2 8098 7073 drawing's ...ps │ │ │ │ -00012910: 7069 6374 7572 652a e280 9920 656e 7669 picture*... envi │ │ │ │ -00012920: 726f 6e6d 656e 742c 0a77 6869 6368 2069 ronment,.which i │ │ │ │ -00012930: 7320 7573 6564 2069 6e20 706c 6163 6520 s used in place │ │ │ │ -00012940: 6f66 20e2 8098 7073 7069 6374 7572 65e2 of ...pspicture. │ │ │ │ -00012950: 8099 2e20 2054 6869 7320 6361 7573 6573 ... This causes │ │ │ │ -00012960: 2050 6f73 7453 6372 6970 7420 746f 2063 PostScript to c │ │ │ │ -00012970: 6c69 700a 7468 6520 6669 6e61 6c20 6472 lip.the final dr │ │ │ │ -00012980: 6177 696e 6720 746f 2074 6865 2062 6f75 awing to the bou │ │ │ │ -00012990: 6e64 696e 6720 626f 7820 696e 2032 642e nding box in 2d. │ │ │ │ -000129a0: 2020 4966 2074 6865 7265 2069 7320 6120 If there is a │ │ │ │ -000129b0: e280 9863 616d 6572 61e2 8099 0a73 7065 ...camera....spe │ │ │ │ -000129c0: 6369 6669 6564 2c20 7468 6520 6361 6d65 cified, the came │ │ │ │ -000129d0: 7261 2074 7261 6e66 6f72 6d61 7469 6f6e ra tranformation │ │ │ │ -000129e0: 2069 7320 6170 706c 6965 6420 746f 2074 is applied to t │ │ │ │ -000129f0: 6865 2062 6f75 6e64 696e 6720 626f 782c he bounding box, │ │ │ │ -00012a00: 2061 6e64 0a74 6865 20e2 8098 7073 7069 and.the ...pspi │ │ │ │ -00012a10: 6374 7572 65e2 8099 2069 7320 7365 7420 cture... is set │ │ │ │ -00012a20: 6a75 7374 206c 6172 6765 2065 6e6f 7567 just large enoug │ │ │ │ -00012a30: 6820 746f 2069 6e63 6c75 6465 2074 6865 h to include the │ │ │ │ -00012a40: 2074 7261 6e73 666f 726d 6564 2062 6f78 transformed box │ │ │ │ -00012a50: 2e0a 0a20 2020 5768 656e 206e 6f20 626f ... When no bo │ │ │ │ -00012a60: 756e 6469 6e67 2062 6f78 2069 7320 6769 unding box is gi │ │ │ │ -00012a70: 7665 6e2c 20e2 8098 736b 6574 6368 e280 ven, ...sketch.. │ │ │ │ -00012a80: 9920 636f 6d70 7574 6573 206f 6e65 2061 . computes one a │ │ │ │ -00012a90: 7574 6f6d 6174 6963 616c 6c79 2e0a 0a1f utomatically.... │ │ │ │ -00012aa0: 0a46 696c 653a 2073 6b65 7463 682e 696e .File: sketch.in │ │ │ │ -00012ab0: 666f 2c20 204e 6f64 653a 2046 7261 6d65 fo, Node: Frame │ │ │ │ -00012ac0: 2c20 204e 6578 743a 204c 616e 6775 6167 , Next: Languag │ │ │ │ -00012ad0: 652c 2020 5072 6576 3a20 5069 6374 7572 e, Prev: Pictur │ │ │ │ -00012ae0: 6520 626f 782c 2020 5570 3a20 476c 6f62 e box, Up: Glob │ │ │ │ -00012af0: 616c 2065 6e76 6972 6f6e 6d65 6e74 0a0a al environment.. │ │ │ │ -00012b00: 332e 342e 3420 4672 616d 650a 2d2d 2d2d 3.4.4 Frame.---- │ │ │ │ -00012b10: 2d2d 2d2d 2d2d 2d0a 0a2a 5379 6e74 6178 -------..*Syntax │ │ │ │ -00012b20: 3a2a 0a20 2020 2020 6672 616d 6520 5b4f :*. frame [O │ │ │ │ -00012b30: 5054 494f 4e53 5d0a 4361 7573 6573 2061 PTIONS].Causes a │ │ │ │ -00012b40: 205c 7073 6672 616d 6562 6f78 2074 6f20 \psframebox to │ │ │ │ -00012b50: 7375 7272 6f75 6e64 2074 6865 20e2 8098 surround the ... │ │ │ │ -00012b60: 7073 7069 6374 7572 65e2 8099 2065 6e76 pspicture... env │ │ │ │ -00012b70: 6972 6f6e 6d65 6e74 2069 6e20 7468 650a ironment in the. │ │ │ │ -00012b80: 6f75 7470 7574 2e20 2049 6620 4f50 5449 output. If OPTI │ │ │ │ -00012b90: 4f4e 5320 6172 6520 7072 6573 656e 742c ONS are present, │ │ │ │ -00012ba0: 2074 6865 7920 6172 6520 636f 7069 6564 they are copied │ │ │ │ -00012bb0: 2061 732d 6973 2e20 204e 6f72 6d61 6c6c as-is. Normall │ │ │ │ -00012bc0: 7920 6f6e 650a 776f 756c 6420 7761 6e74 y one.would want │ │ │ │ -00012bd0: 2074 6f20 7365 7420 e280 986c 696e 6577 to set ...linew │ │ │ │ -00012be0: 6964 7468 e280 992c 20e2 8098 6c69 6e65 idth..., ...line │ │ │ │ -00012bf0: 7374 796c 65e2 8099 2c20 e280 986c 696e style..., ...lin │ │ │ │ -00012c00: 6563 6f6c 6f72 e280 992c 2065 7463 2e20 ecolor..., etc. │ │ │ │ -00012c10: 2049 660a 6f6d 6974 7465 642c 2074 6865 If.omitted, the │ │ │ │ -00012c20: 6e20 e280 9866 7261 6d65 7365 703d 3070 n ...framesep=0p │ │ │ │ -00012c30: 74e2 8099 2069 7320 6164 6465 6420 736f t... is added so │ │ │ │ -00012c40: 2074 6861 7420 7468 6520 6672 616d 6520 that the frame │ │ │ │ -00012c50: 7469 6768 746c 7920 6875 6773 2074 6865 tightly hugs the │ │ │ │ -00012c60: 0ae2 8098 7073 7069 6374 7572 65e2 8099 ....pspicture... │ │ │ │ -00012c70: 2e0a 0a1f 0a46 696c 653a 2073 6b65 7463 .....File: sketc │ │ │ │ -00012c80: 682e 696e 666f 2c20 204e 6f64 653a 204c h.info, Node: L │ │ │ │ -00012c90: 616e 6775 6167 652c 2020 5072 6576 3a20 anguage, Prev: │ │ │ │ -00012ca0: 4672 616d 652c 2020 5570 3a20 476c 6f62 Frame, Up: Glob │ │ │ │ -00012cb0: 616c 2065 6e76 6972 6f6e 6d65 6e74 0a0a al environment.. │ │ │ │ -00012cc0: 332e 342e 3520 4c61 6e67 7561 6765 0a2d 3.4.5 Language.- │ │ │ │ -00012cd0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a 0a20 -------------.. │ │ │ │ -00012ce0: 2020 2020 6c61 6e67 7561 6765 2074 696b language tik │ │ │ │ -00012cf0: 7a0a 2020 2020 206c 616e 6775 6167 6520 z. language │ │ │ │ -00012d00: 7469 6b7a 2c20 636f 6e74 6578 740a 2020 tikz, context. │ │ │ │ -00012d10: 2020 206c 616e 6775 6167 6520 7073 7472 language pstr │ │ │ │ -00012d20: 6963 6b73 0a20 2020 2020 6c61 6e67 7561 icks. langua │ │ │ │ -00012d30: 6765 2070 7374 7269 636b 732c 206c 6174 ge pstricks, lat │ │ │ │ -00012d40: 6578 0a53 6574 7320 7468 6520 6f75 7470 ex.Sets the outp │ │ │ │ -00012d50: 7574 206c 616e 6775 6167 6520 6765 6e65 ut language gene │ │ │ │ -00012d60: 7261 7465 6420 6279 20e2 8098 736b 6574 rated by ...sket │ │ │ │ -00012d70: 6368 e280 992e 2020 5468 6520 7365 7420 ch.... The set │ │ │ │ -00012d80: 6f66 206f 7074 696f 6e73 0a75 6e64 6572 of options.under │ │ │ │ -00012d90: 7374 6f6f 6420 6279 2073 6b65 7463 6820 stood by sketch │ │ │ │ -00012da0: 616c 736f 2063 6861 6e67 6573 2e20 2046 also changes. F │ │ │ │ -00012db0: 6f72 2065 7861 6d70 6c65 2c20 7468 6520 or example, the │ │ │ │ -00012dc0: e280 9850 5354 7269 636b 73e2 8099 206f ...PSTricks... o │ │ │ │ -00012dd0: 7074 696f 6e0a e280 986c 696e 6577 6964 ption....linewid │ │ │ │ -00012de0: 7468 e280 9920 7769 6c6c 206e 6f74 2062 th... will not b │ │ │ │ -00012df0: 6520 7072 6f70 6572 6c79 2068 616e 646c e properly handl │ │ │ │ -00012e00: 6564 2069 6620 e280 986c 616e 6775 6167 ed if ...languag │ │ │ │ -00012e10: 65e2 8099 2069 7320 7365 7420 746f 20e2 e... is set to . │ │ │ │ -00012e20: 8098 7469 6b7a e280 992e 0a53 696d 696c ..tikz.....Simil │ │ │ │ -00012e30: 6172 6c79 2c20 7468 6520 e280 9854 696b arly, the ...Tik │ │ │ │ -00012e40: 5ae2 8099 206f 7074 696f 6e20 e280 986c Z... option ...l │ │ │ │ -00012e50: 696e 6520 7374 796c 65e2 8099 2028 6e6f ine style... (no │ │ │ │ -00012e60: 7465 2074 6865 2073 7061 6365 2920 7769 te the space) wi │ │ │ │ -00012e70: 6c6c 206e 6f74 2062 650a 7072 6f70 6572 ll not be.proper │ │ │ │ -00012e80: 6c79 2068 616e 646c 6564 2069 6620 e280 ly handled if .. │ │ │ │ -00012e90: 986c 616e 6775 6167 65e2 8099 2069 7320 .language... is │ │ │ │ -00012ea0: 7365 7420 746f 20e2 8098 7073 7472 6963 set to ...pstric │ │ │ │ -00012eb0: 6b73 e280 992e 2020 4966 206e 6f20 6c61 ks.... If no la │ │ │ │ -00012ec0: 6e67 7561 6765 2069 730a 7370 6563 6966 nguage is.specif │ │ │ │ -00012ed0: 6965 642c 2074 6865 2064 6566 6175 6c74 ied, the default │ │ │ │ -00012ee0: 20e2 8098 7073 7472 6963 6b73 e280 9920 ...pstricks... │ │ │ │ -00012ef0: 6973 2075 7365 642e 0a0a 2020 2041 6e20 is used... An │ │ │ │ -00012f00: 6f70 7469 6f6e 616c 2063 6f6d 6d61 2066 optional comma f │ │ │ │ -00012f10: 6f6c 6c6f 7765 6420 6279 20e2 8098 6c61 ollowed by ...la │ │ │ │ -00012f20: 7465 78e2 8099 206f 7220 e280 9863 6f6e tex... or ...con │ │ │ │ -00012f30: 7465 7874 e280 9920 7370 6563 6966 6965 text... specifie │ │ │ │ -00012f40: 7320 7468 650a 6d61 6372 6f20 7061 636b s the.macro pack │ │ │ │ -00012f50: 6167 6520 7468 6174 2074 6865 206f 7574 age that the out │ │ │ │ -00012f60: 7075 7420 7368 6f75 6c64 2061 7373 756d put should assum │ │ │ │ -00012f70: 652e 2020 5468 6973 2061 6666 6563 7473 e. This affects │ │ │ │ -00012f80: 2074 6865 20e2 8098 7069 6374 7572 65e2 the ...picture. │ │ │ │ -00012f90: 8099 0a65 6e76 6972 6f6e 6d65 6e74 2063 ...environment c │ │ │ │ -00012fa0: 6f6d 6d61 6e64 7320 656d 6974 7465 6420 ommands emitted │ │ │ │ -00012fb0: 616e 6420 7468 6520 646f 6375 6d65 6e74 and the document │ │ │ │ -00012fc0: 2074 656d 706c 6174 6520 7573 6564 2077 template used w │ │ │ │ -00012fd0: 6974 6820 7468 650a e280 982d 54e2 8099 ith the....-T... │ │ │ │ -00012fe0: 206f 7074 696f 6e2e 2020 2a4e 6f74 6520 option. *Note │ │ │ │ -00012ff0: 436f 6d6d 616e 6420 6c69 6e65 3a3a 2e20 Command line::. │ │ │ │ -00013000: 204e 6f74 6520 7468 6174 2061 7420 7468 Note that at th │ │ │ │ -00013010: 6520 7469 6d65 2074 6869 7320 6d61 6e75 e time this manu │ │ │ │ -00013020: 616c 0a77 6173 2067 656e 6572 6174 6564 al.was generated │ │ │ │ -00013030: 2c20 e280 9850 5354 7269 636b 73e2 8099 , ...PSTricks... │ │ │ │ -00013040: 2077 6173 206e 6f74 2073 7570 706f 7274 was not support │ │ │ │ -00013050: 6564 2062 7920 4c61 5465 5820 6f72 2062 ed by LaTeX or b │ │ │ │ -00013060: 7920 e280 9843 6f6e 5465 5874 e280 992e y ...ConTeXt.... │ │ │ │ -00013070: 0a0a 1f0a 4669 6c65 3a20 736b 6574 6368 ....File: sketch │ │ │ │ -00013080: 2e69 6e66 6f2c 2020 4e6f 6465 3a20 4275 .info, Node: Bu │ │ │ │ -00013090: 696c 6469 6e67 2061 2064 7261 7769 6e67 ilding a drawing │ │ │ │ -000130a0: 2c20 204e 6578 743a 2043 6f6d 6d61 6e64 , Next: Command │ │ │ │ -000130b0: 206c 696e 652c 2020 5072 6576 3a20 496e line, Prev: In │ │ │ │ -000130c0: 7075 7420 6c61 6e67 7561 6765 2c20 2055 put language, U │ │ │ │ -000130d0: 703a 2054 6f70 0a0a 3420 4275 696c 6469 p: Top..4 Buildi │ │ │ │ -000130e0: 6e67 2061 2064 7261 7769 6e67 0a2a 2a2a ng a drawing.*** │ │ │ │ -000130f0: 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a **************** │ │ │ │ -00013100: 2a0a 0a53 7563 6365 7373 6675 6c20 6472 *..Successful dr │ │ │ │ -00013110: 6177 696e 6773 2077 6974 6820 e280 9873 awings with ...s │ │ │ │ -00013120: 6b65 7463 68e2 8099 2061 6e64 2077 6974 ketch... and wit │ │ │ │ -00013130: 6820 616e 7920 7363 656e 6520 6465 7363 h any scene desc │ │ │ │ -00013140: 7269 7074 696f 6e0a 6c61 6e67 7561 6765 ription.language │ │ │ │ -00013150: 2072 6571 7569 7265 2074 6861 7420 7468 require that th │ │ │ │ -00013160: 6520 7573 6572 2064 6576 656c 6f70 2061 e user develop a │ │ │ │ -00013170: 6e20 6163 6375 7261 7465 206d 656e 7461 n accurate menta │ │ │ │ -00013180: 6c20 7069 6374 7572 6520 6f66 2068 6572 l picture of her │ │ │ │ -00013190: 0a63 6f64 6520 616e 6420 6974 7320 6d65 .code and its me │ │ │ │ -000131a0: 616e 696e 672e 2020 5468 6973 2069 6d61 aning. This ima │ │ │ │ -000131b0: 6765 2069 7320 6265 7374 2062 7569 6c74 ge is best built │ │ │ │ -000131c0: 2069 6e20 736d 616c 6c20 7069 6563 6573 in small pieces │ │ │ │ -000131d0: 2e0a 5468 6572 6566 6f72 652c 20e2 8098 ..Therefore, ... │ │ │ │ -000131e0: 736b 6574 6368 e280 9920 696e 7075 7473 sketch... inputs │ │ │ │ -000131f0: 2061 7265 2062 6573 7420 6372 6561 7465 are best create │ │ │ │ -00013200: 6420 696e 2073 6d61 6c6c 2069 6e63 7265 d in small incre │ │ │ │ -00013210: 6d65 6e74 7320 7769 7468 0a66 7265 7175 ments with.frequ │ │ │ │ -00013220: 656e 7420 7061 7573 6573 2074 6f20 636f ent pauses to co │ │ │ │ -00013230: 6d70 696c 6520 616e 6420 7669 6577 2074 mpile and view t │ │ │ │ -00013240: 6865 2072 6573 756c 7473 2e20 2043 6172 he results. Car │ │ │ │ -00013250: 6566 756c 2063 6f6d 6d65 6e74 7320 696e eful comments in │ │ │ │ -00013260: 0a74 6865 2069 6e70 7574 206f 6674 656e .the input often │ │ │ │ -00013270: 2068 656c 7020 6173 2061 2073 6365 6e65 help as a scene │ │ │ │ -00013280: 2067 726f 7773 2069 6e20 636f 6d70 6c65 grows in comple │ │ │ │ -00013290: 7869 7479 2e0a 0a2a 204d 656e 753a 0a0a xity...* Menu:.. │ │ │ │ -000132a0: 2a20 4f76 6572 7669 6577 3a3a 2020 2020 * Overview:: │ │ │ │ -000132b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000132c0: 4275 696c 6469 6e67 2061 2073 7562 7374 Building a subst │ │ │ │ -000132d0: 616e 7469 616c 2064 7261 7769 6e67 2e0a antial drawing.. │ │ │ │ -000132e0: 2a20 4120 7465 6368 6e69 6361 6c20 6472 * A technical dr │ │ │ │ -000132f0: 6177 696e 673a 3a20 2020 2020 2020 2020 awing:: │ │ │ │ -00013300: 416e 2065 7861 6d70 6c65 2077 6974 6820 An example with │ │ │ │ -00013310: 6669 6e65 2070 6c61 6365 6d65 6e74 2e0a fine placement.. │ │ │ │ -00013320: 2a20 4120 6869 6572 6172 6368 6963 616c * A hierarchical │ │ │ │ -00013330: 206d 6f64 656c 3a3a 2020 2020 2020 2020 model:: │ │ │ │ -00013340: 416e 2065 7861 6d70 6c65 2077 6974 6820 An example with │ │ │ │ -00013350: 7377 6565 7073 2061 6e64 2070 7574 732e sweeps and puts. │ │ │ │ -00013360: 0a2a 2043 6176 6561 7473 3a3a 2020 2020 .* Caveats:: │ │ │ │ -00013370: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00013380: 2057 6865 7265 2074 726f 7562 6c65 2063 Where trouble c │ │ │ │ -00013390: 616e 206f 6363 7572 2e0a 0a1f 0a46 696c an occur.....Fil │ │ │ │ -000133a0: 653a 2073 6b65 7463 682e 696e 666f 2c20 e: sketch.info, │ │ │ │ -000133b0: 204e 6f64 653a 204f 7665 7276 6965 772c Node: Overview, │ │ │ │ -000133c0: 2020 4e65 7874 3a20 4120 7465 6368 6e69 Next: A techni │ │ │ │ -000133d0: 6361 6c20 6472 6177 696e 672c 2020 5072 cal drawing, Pr │ │ │ │ -000133e0: 6576 3a20 4275 696c 6469 6e67 2061 2064 ev: Building a d │ │ │ │ -000133f0: 7261 7769 6e67 2c20 2055 703a 2042 7569 rawing, Up: Bui │ │ │ │ -00013400: 6c64 696e 6720 6120 6472 6177 696e 670a lding a drawing. │ │ │ │ -00013410: 0a34 2e31 204f 7665 7276 6965 770a 3d3d .4.1 Overview.== │ │ │ │ -00013420: 3d3d 3d3d 3d3d 3d3d 3d3d 0a0a 4173 2061 ==========..As a │ │ │ │ -00013430: 6e20 6f76 6572 7669 6577 2c20 6c65 7427 n overview, let' │ │ │ │ -00013440: 7320 6465 7665 6c6f 7020 6120 6469 6167 s develop a diag │ │ │ │ -00013450: 7261 6d20 7468 6174 2073 686f 7773 2068 ram that shows h │ │ │ │ -00013460: 6f77 2061 2070 6572 7370 6563 7469 7665 ow a perspective │ │ │ │ -00013470: 0a70 726f 6a65 6374 696f 6e20 7472 616e .projection tran │ │ │ │ -00013480: 7366 6f72 6d20 776f 726b 732e 2020 5765 sform works. We │ │ │ │ -00013490: 276c 6c20 7374 6172 7420 7769 7468 2074 'll start with t │ │ │ │ -000134a0: 6865 2074 7261 6469 7469 6f6e 616c 2072 he traditional r │ │ │ │ -000134b0: 6566 6572 656e 6365 0a6f 626a 6563 7420 eference.object │ │ │ │ -000134c0: 7573 6564 2069 6e20 636f 6d70 7574 6572 used in computer │ │ │ │ -000134d0: 2067 7261 7068 6963 7320 7465 7874 626f graphics textbo │ │ │ │ -000134e0: 6f6b 732c 2061 2068 6f75 7365 2d73 6861 oks, a house-sha │ │ │ │ -000134f0: 7065 6420 7072 6973 6d2e 2020 4265 6769 ped prism. Begi │ │ │ │ -00013500: 6e0a 6279 2064 6566 696e 696e 6720 7468 n.by defining th │ │ │ │ -00013510: 6520 706f 696e 7473 206f 6620 7468 6520 e points of the │ │ │ │ -00013520: 686f 7573 652e 2020 5261 7468 6572 2074 house. Rather t │ │ │ │ -00013530: 6861 6e20 6465 6669 6e69 6e67 2074 6865 han defining the │ │ │ │ -00013540: 2066 6163 6573 206f 660a 7468 6520 686f faces of.the ho │ │ │ │ -00013550: 7573 6520 6173 2070 6f6c 7967 6f6e 7320 use as polygons │ │ │ │ -00013560: 616e 6420 7472 616e 7366 6f72 6d69 6e67 and transforming │ │ │ │ -00013570: 2074 686f 7365 2c20 7765 2061 7265 2067 those, we are g │ │ │ │ -00013580: 6f69 6e67 2074 6f20 7472 616e 7366 6f72 oing to transfor │ │ │ │ -00013590: 6d0a 7468 6520 706f 696e 7473 2074 6865 m.the points the │ │ │ │ -000135a0: 6d73 656c 7665 7320 7769 7468 20e2 8098 mselves with ... │ │ │ │ -000135b0: 736b 6574 6368 e280 9920 6172 6974 686d sketch... arithm │ │ │ │ -000135c0: 6574 6963 2073 6f20 7468 6174 2077 6520 etic so that we │ │ │ │ -000135d0: 6861 7665 206e 616d 6573 2066 6f72 0a74 have names for.t │ │ │ │ -000135e0: 6865 2074 7261 6e73 666f 726d 6564 2070 he transformed p │ │ │ │ -000135f0: 6f69 6e74 7320 6c61 7465 722e 0a20 2025 oints later.. % │ │ │ │ -00013600: 2072 6967 6874 2073 6964 6520 286f 7574 right side (out │ │ │ │ -00013610: 7369 6465 2074 6f20 7269 6768 7429 0a20 side to right). │ │ │ │ -00013620: 2064 6566 2052 3120 2831 2c31 2c31 2920 def R1 (1,1,1) │ │ │ │ -00013630: 6465 6620 5232 2028 312c 2d31 2c31 2920 def R2 (1,-1,1) │ │ │ │ -00013640: 6465 6620 5233 2028 312c 2d31 2c2d 3129 def R3 (1,-1,-1) │ │ │ │ -00013650: 2064 6566 2052 3420 2831 2c31 2c2d 3129 def R4 (1,1,-1) │ │ │ │ -00013660: 0a20 2064 6566 2052 3520 2831 2c31 2e35 . def R5 (1,1.5 │ │ │ │ -00013670: 2c30 290a 0a20 2025 206c 6566 7420 7369 ,0).. % left si │ │ │ │ -00013680: 6465 2028 6f75 7473 6964 6520 746f 2072 de (outside to r │ │ │ │ -00013690: 6967 6874 2d2d 6261 636b 7761 7264 290a ight--backward). │ │ │ │ -000136a0: 2020 6465 6620 5720 205b 322c 302c 305d def W [2,0,0] │ │ │ │ -000136b0: 0a20 2064 6566 204c 3120 2852 3129 2d5b . def L1 (R1)-[ │ │ │ │ -000136c0: 575d 2064 6566 204c 3220 2852 3229 2d5b W] def L2 (R2)-[ │ │ │ │ -000136d0: 575d 2064 6566 204c 3320 2852 3329 2d5b W] def L3 (R3)-[ │ │ │ │ -000136e0: 575d 2064 6566 204c 3420 2852 3429 2d5b W] def L4 (R4)-[ │ │ │ │ -000136f0: 575d 0a20 2064 6566 204c 3520 2852 3529 W]. def L5 (R5) │ │ │ │ -00013700: 2d5b 575d 0a54 6f20 6164 6420 6120 646f -[W].To add a do │ │ │ │ -00013710: 6f72 2074 6f20 7468 6520 686f 7573 652c or to the house, │ │ │ │ -00013720: 2077 6520 7573 6520 6120 706f 6c79 676f we use a polygo │ │ │ │ -00013730: 6e20 736c 6967 6874 6c79 2069 6e20 6672 n slightly in fr │ │ │ │ -00013740: 6f6e 7420 6f66 2074 6865 0a66 6f72 656d ont of the.forem │ │ │ │ -00013750: 6f73 7420 6661 6365 206f 6620 7468 6520 ost face of the │ │ │ │ -00013760: 686f 7573 652e 0a20 2025 2064 6f6f 720a house.. % door. │ │ │ │ -00013770: 2020 6465 6620 6520 2e30 310a 2020 6465 def e .01. de │ │ │ │ -00013780: 6620 4431 2028 302c 2d31 2c31 2b65 2920 f D1 (0,-1,1+e) │ │ │ │ -00013790: 6465 6620 4432 2028 2e35 2c2d 312c 312b def D2 (.5,-1,1+ │ │ │ │ -000137a0: 6529 2064 6566 2044 3320 282e 352c 302c e) def D3 (.5,0, │ │ │ │ -000137b0: 312b 6529 2064 6566 2044 3420 2830 2c30 1+e) def D4 (0,0 │ │ │ │ -000137c0: 2c31 2b65 290a 4e6f 7720 6c65 7427 7320 ,1+e).Now let's │ │ │ │ -000137d0: 6372 6561 7465 2061 206e 6577 2073 6574 create a new set │ │ │ │ -000137e0: 206f 6620 706f 696e 7473 2074 6861 7420 of points that │ │ │ │ -000137f0: 6172 6520 6120 746f 2d62 652d 6465 7465 are a to-be-dete │ │ │ │ -00013800: 726d 696e 6564 0a74 7261 6e73 666f 726d rmined.transform │ │ │ │ -00013810: 206f 6620 7468 6520 6f72 6967 696e 616c of the original │ │ │ │ -00013820: 732e 0a20 2064 6566 2068 7020 7363 616c s.. def hp scal │ │ │ │ -00013830: 6528 3129 2025 2068 6f75 7365 2070 6f73 e(1) % house pos │ │ │ │ -00013840: 6974 696f 6e65 720a 2020 6465 6620 7052 itioner. def pR │ │ │ │ -00013850: 3120 5b5b 6870 5d5d 2a28 5231 2920 6465 1 [[hp]]*(R1) de │ │ │ │ -00013860: 6620 7052 3220 5b5b 6870 5d5d 2a28 5232 f pR2 [[hp]]*(R2 │ │ │ │ -00013870: 2920 6465 6620 7052 3320 5b5b 6870 5d5d ) def pR3 [[hp]] │ │ │ │ -00013880: 2a28 5233 290a 2020 6465 6620 7052 3420 *(R3). def pR4 │ │ │ │ -00013890: 5b5b 6870 5d5d 2a28 5234 2920 6465 6620 [[hp]]*(R4) def │ │ │ │ -000138a0: 7052 3520 5b5b 6870 5d5d 2a28 5235 290a pR5 [[hp]]*(R5). │ │ │ │ -000138b0: 2020 6465 6620 704c 3120 5b5b 6870 5d5d def pL1 [[hp]] │ │ │ │ -000138c0: 2a28 4c31 2920 6465 6620 704c 3220 5b5b *(L1) def pL2 [[ │ │ │ │ -000138d0: 6870 5d5d 2a28 4c32 2920 6465 6620 704c hp]]*(L2) def pL │ │ │ │ -000138e0: 3320 5b5b 6870 5d5d 2a28 4c33 290a 2020 3 [[hp]]*(L3). │ │ │ │ -000138f0: 6465 6620 704c 3420 5b5b 6870 5d5d 2a28 def pL4 [[hp]]*( │ │ │ │ -00013900: 4c34 2920 6465 6620 704c 3520 5b5b 6870 L4) def pL5 [[hp │ │ │ │ -00013910: 5d5d 2a28 4c35 290a 2020 6465 6620 7044 ]]*(L5). def pD │ │ │ │ -00013920: 3120 5b5b 6870 5d5d 2a28 4431 2920 6465 1 [[hp]]*(D1) de │ │ │ │ -00013930: 6620 7044 3220 5b5b 6870 5d5d 2a28 4432 f pD2 [[hp]]*(D2 │ │ │ │ -00013940: 2920 6465 6620 7044 3320 5b5b 6870 5d5d ) def pD3 [[hp]] │ │ │ │ -00013950: 2a28 4433 290a 2020 6465 6620 7044 3420 *(D3). def pD4 │ │ │ │ -00013960: 5b5b 6870 5d5d 2a28 4434 2920 0a4e 6f74 [[hp]]*(D4) .Not │ │ │ │ -00013970: 6520 7468 6520 7573 6520 6f66 2061 20e2 e the use of a . │ │ │ │ -00013980: 809c 7472 616e 7366 6f72 6d20 6465 6669 ..transform defi │ │ │ │ -00013990: 6e69 7469 6f6e e280 9d20 616e 6420 e280 nition... and .. │ │ │ │ -000139a0: 9c74 7261 6e73 666f 726d 2072 6566 6572 .transform refer │ │ │ │ -000139b0: 656e 6365 73e2 809d 2e0a 4e6f 7720 6465 ences.....Now de │ │ │ │ -000139c0: 6669 6e65 2074 6865 2073 6576 656e 2070 fine the seven p │ │ │ │ -000139d0: 6f6c 7967 6f6e 616c 2066 6163 6573 206f olygonal faces o │ │ │ │ -000139e0: 6620 7468 6520 686f 7573 6520 616e 6420 f the house and │ │ │ │ -000139f0: 7468 6520 646f 6f72 2075 7369 6e67 2074 the door using t │ │ │ │ -00013a00: 6865 0a74 7261 6e73 666f 726d 6564 2070 he.transformed p │ │ │ │ -00013a10: 6f69 6e74 7320 6173 2076 6572 7469 6365 oints as vertice │ │ │ │ -00013a20: 732e 2020 4265 2063 6172 6566 756c 2077 s. Be careful w │ │ │ │ -00013a30: 6974 6820 7665 7274 6578 206f 7264 6572 ith vertex order │ │ │ │ -00013a40: 210a 2020 6465 6620 7267 7420 706f 6c79 !. def rgt poly │ │ │ │ -00013a50: 676f 6e20 2870 5231 2928 7052 3229 2870 gon (pR1)(pR2)(p │ │ │ │ -00013a60: 5233 2928 7052 3429 2870 5235 290a 2020 R3)(pR4)(pR5). │ │ │ │ -00013a70: 6465 6620 6c66 7420 706f 6c79 676f 6e20 def lft polygon │ │ │ │ -00013a80: 2870 4c35 2928 704c 3429 2870 4c33 2928 (pL5)(pL4)(pL3)( │ │ │ │ -00013a90: 704c 3229 2870 4c31 290a 2020 6465 6620 pL2)(pL1). def │ │ │ │ -00013aa0: 6672 7420 706f 6c79 676f 6e20 2870 5232 frt polygon (pR2 │ │ │ │ -00013ab0: 2928 7052 3129 2870 4c31 2928 704c 3229 )(pR1)(pL1)(pL2) │ │ │ │ -00013ac0: 0a20 2064 6566 2062 636b 2070 6f6c 7967 . def bck polyg │ │ │ │ -00013ad0: 6f6e 2028 7052 3429 2870 5233 2928 704c on (pR4)(pR3)(pL │ │ │ │ -00013ae0: 3329 2870 4c34 290a 2020 6465 6620 7466 3)(pL4). def tf │ │ │ │ -00013af0: 7220 706f 6c79 676f 6e20 2870 5231 2928 r polygon (pR1)( │ │ │ │ -00013b00: 7052 3529 2870 4c35 2928 704c 3129 0a20 pR5)(pL5)(pL1). │ │ │ │ -00013b10: 2064 6566 2074 626b 2070 6f6c 7967 6f6e def tbk polygon │ │ │ │ -00013b20: 2028 7052 3529 2870 5234 2928 704c 3429 (pR5)(pR4)(pL4) │ │ │ │ -00013b30: 2870 4c35 290a 2020 6465 6620 626f 7420 (pL5). def bot │ │ │ │ -00013b40: 706f 6c79 676f 6e20 2870 5232 2928 704c polygon (pR2)(pL │ │ │ │ -00013b50: 3229 2870 4c33 2928 7052 3329 0a20 2064 2)(pL3)(pR3). d │ │ │ │ -00013b60: 6566 2064 6f6f 7220 706f 6c79 676f 6e5b ef door polygon[ │ │ │ │ -00013b70: 6669 6c6c 636f 6c6f 723d 6272 6f77 6e5d fillcolor=brown] │ │ │ │ -00013b80: 2028 7044 3129 2870 4432 2928 7044 3329 (pD1)(pD2)(pD3) │ │ │ │ -00013b90: 2870 4434 290a 2020 6465 6620 686f 7573 (pD4). def hous │ │ │ │ -00013ba0: 6520 7b20 7b72 6774 7d7b 6c66 747d 7b66 e { {rgt}{lft}{f │ │ │ │ -00013bb0: 7274 7d7b 6263 6b7d 7b74 6672 7d7b 7462 rt}{bck}{tfr}{tb │ │ │ │ -00013bc0: 6b7d 7b62 6f74 7d7b 646f 6f72 7d20 7d0a k}{bot}{door} }. │ │ │ │ -00013bd0: 2020 2054 696d 6520 666f 7220 6120 7361 Time for a sa │ │ │ │ -00013be0: 6e69 7479 2063 6865 636b 2e20 2041 6464 nity check. Add │ │ │ │ -00013bf0: 2074 6865 206c 696e 650a 2020 7b68 6f75 the line. {hou │ │ │ │ -00013c00: 7365 7d0a 616e 6420 7468 6973 2069 7320 se}.and this is │ │ │ │ -00013c10: 7768 6174 2077 6520 6765 742e 0a0a 0008 what we get..... │ │ │ │ -00013c20: 5b69 6d61 6765 2073 7263 3d22 6578 3133 [image src="ex13 │ │ │ │ -00013c30: 302e 706e 6722 2074 6578 743d 2249 6d61 0.png" text="Ima │ │ │ │ -00013c40: 6765 2065 7831 3330 206f 6d69 7474 6564 ge ex130 omitted │ │ │ │ -00013c50: 2069 6e20 7465 7874 2076 6572 7369 6f6e in text version │ │ │ │ -00013c60: 206f 6620 7468 6973 2064 6f63 756d 656e of this documen │ │ │ │ -00013c70: 742e 2200 085d 0a0a 5468 6973 2069 7320 t."..]..This is │ │ │ │ -00013c80: 636f 7272 6563 742c 2062 7574 2064 6f65 correct, but doe │ │ │ │ -00013c90: 7320 6e6f 7420 7265 7665 616c 2076 6572 s not reveal ver │ │ │ │ -00013ca0: 7920 6d75 6368 2e20 2043 6f6d 6d6f 6e20 y much. Common │ │ │ │ -00013cb0: 6572 726f 7273 2061 7265 0a6d 6973 706c errors are.mispl │ │ │ │ -00013cc0: 6163 6564 2076 6572 7469 6365 7320 616e aced vertices an │ │ │ │ -00013cd0: 6420 706f 6c79 676f 6e73 206d 6973 7369 d polygons missi │ │ │ │ -00013ce0: 6e67 2065 6e74 6972 656c 7920 6475 6520 ng entirely due │ │ │ │ -00013cf0: 746f 2069 6e63 6f72 7265 6374 2076 6572 to incorrect ver │ │ │ │ -00013d00: 7465 780a 6f72 6465 722e 2020 546f 2072 tex.order. To r │ │ │ │ -00013d10: 756c 6520 7468 6573 6520 6f75 742c 206c ule these out, l │ │ │ │ -00013d20: 6574 2773 2069 6e73 7065 6374 2061 6c6c et's inspect all │ │ │ │ -00013d30: 2073 6964 6573 206f 6620 7468 6520 686f sides of the ho │ │ │ │ -00013d40: 7573 652e 2020 5468 6973 0a69 7320 6e6f use. This.is no │ │ │ │ -00013d50: 7420 6861 7264 2e20 204d 6572 656c 7920 t hard. Merely │ │ │ │ -00013d60: 7265 706c 6163 6520 7468 6520 7265 6665 replace the refe │ │ │ │ -00013d70: 7265 6e63 6520 7b68 6f75 7365 7d20 7769 rence {house} wi │ │ │ │ -00013d80: 7468 2061 20e2 8098 7265 7065 6174 e280 th a ...repeat.. │ │ │ │ -00013d90: 992e 0a2a 4e6f 7465 2052 6570 6561 7473 ...*Note Repeats │ │ │ │ -00013da0: 3a3a 2e0a 2020 7265 7065 6174 207b 2031 ::.. repeat { 1 │ │ │ │ -00013db0: 332c 2072 6f74 6174 6528 3330 2c20 5b31 3, rotate(30, [1 │ │ │ │ -00013dc0: 2c32 2c33 5d29 2c20 7472 616e 736c 6174 ,2,3]), translat │ │ │ │ -00013dd0: 6528 5b33 2c30 2c30 5d29 207d 207b 686f e([3,0,0]) } {ho │ │ │ │ -00013de0: 7573 657d 0a00 085b 696d 6167 6520 7372 use}...[image sr │ │ │ │ -00013df0: 633d 2265 7831 3430 2e70 6e67 2220 7465 c="ex140.png" te │ │ │ │ -00013e00: 7874 3d22 496d 6167 6520 6578 3134 3020 xt="Image ex140 │ │ │ │ -00013e10: 6f6d 6974 7465 6420 696e 2074 6578 7420 omitted in text │ │ │ │ -00013e20: 7665 7273 696f 6e20 6f66 2074 6869 7320 version of this │ │ │ │ -00013e30: 646f 6375 6d65 6e74 2e22 0008 5d0a 0a41 document."..]..A │ │ │ │ -00013e40: 6761 696e 2074 6869 6e67 7320 6c6f 6f6b gain things look │ │ │ │ -00013e50: 2063 6f72 7265 6374 2e20 204e 6f74 6520 correct. Note │ │ │ │ -00013e60: 7468 6174 2074 6865 2068 6964 6465 6e20 that the hidden │ │ │ │ -00013e70: 7375 7266 6163 6520 616c 676f 7269 7468 surface algorith │ │ │ │ -00013e80: 6d0a 6861 6e64 6c65 7320 696e 7465 7273 m.handles inters │ │ │ │ -00013e90: 6563 7469 6e67 2070 6f6c 7967 6f6e 7320 ecting polygons │ │ │ │ -00013ea0: 636f 7272 6563 746c 7920 7768 6572 6520 correctly where │ │ │ │ -00013eb0: 736f 6d65 2063 6f70 6965 7320 6f66 2074 some copies of t │ │ │ │ -00013ec0: 6865 2068 6f75 7365 0a6f 7665 726c 6170 he house.overlap │ │ │ │ -00013ed0: 2e0a 0a20 2020 4c65 7427 7320 6c61 7920 ... Let's lay │ │ │ │ -00013ee0: 6f75 7420 7468 6520 6765 6f6d 6574 7279 out the geometry │ │ │ │ -00013ef0: 206f 6620 7065 7273 7065 6374 6976 6520 of perspective │ │ │ │ -00013f00: 7072 6f6a 6563 7469 6f6e 206f 6620 7468 projection of th │ │ │ │ -00013f10: 6520 686f 7573 650a 6f6e 746f 2061 2070 e house.onto a p │ │ │ │ -00013f20: 6c61 6e65 2077 6974 6820 7261 7973 2070 lane with rays p │ │ │ │ -00013f30: 6173 7369 6e67 2074 6872 6f75 6768 2074 assing through t │ │ │ │ -00013f40: 6865 206f 7269 6769 6e2e 2020 4265 6769 he origin. Begi │ │ │ │ -00013f50: 6e20 6279 2070 6f73 6974 696f 6e69 6e67 n by positioning │ │ │ │ -00013f60: 0a74 6865 2068 6f75 7365 2074 7765 6c76 .the house twelv │ │ │ │ -00013f70: 6520 756e 6974 7320 6261 636b 206f 6e20 e units back on │ │ │ │ -00013f80: 7468 6520 6e65 6761 7469 7665 207a 2d61 the negative z-a │ │ │ │ -00013f90: 7869 7320 616e 6420 6164 6469 6e67 2061 xis and adding a │ │ │ │ -00013fa0: 2073 6574 206f 660a 636f 6f72 6469 6e61 set of.coordina │ │ │ │ -00013fb0: 7465 2061 7865 732e 2020 546f 206d 6f76 te axes. To mov │ │ │ │ -00013fc0: 6520 7468 6520 686f 7573 6520 7765 206e e the house we n │ │ │ │ -00013fd0: 6565 6420 6f6e 6c79 2063 6861 6e67 6520 eed only change │ │ │ │ -00013fe0: 7468 6520 2268 6f75 7365 0a70 6f73 6974 the "house.posit │ │ │ │ -00013ff0: 696f 6e69 6e67 2220 7472 616e 7366 6f72 ioning" transfor │ │ │ │ -00014000: 6d20 6465 6669 6e65 6420 6561 726c 6965 m defined earlie │ │ │ │ -00014010: 722e 0a20 2064 6566 2068 7020 726f 7461 r.. def hp rota │ │ │ │ -00014020: 7465 282d 3430 2c20 5b30 2c31 2c30 5d29 te(-40, [0,1,0]) │ │ │ │ -00014030: 2074 6865 6e20 7472 616e 736c 6174 6528 then translate( │ │ │ │ -00014040: 5b30 2c30 2c2d 3132 5d29 0a20 2064 6566 [0,0,-12]). def │ │ │ │ -00014050: 2061 7865 7320 7b0a 2020 2020 6465 6620 axes {. def │ │ │ │ -00014060: 737a 2031 0a20 2020 206c 696e 6520 5b61 sz 1. line [a │ │ │ │ -00014070: 7272 6f77 733d 3c2d 3e5d 2028 737a 2c30 rrows=<->] (sz,0 │ │ │ │ -00014080: 2c30 2928 4f29 2830 2c73 7a2c 3029 0a20 ,0)(O)(0,sz,0). │ │ │ │ -00014090: 2020 206c 696e 6520 5b61 7272 6f77 733d line [arrows= │ │ │ │ -000140a0: 2d3e 5d20 2028 4f29 2830 2c30 2c73 7a29 ->] (O)(0,0,sz) │ │ │ │ -000140b0: 0a20 2020 206c 696e 6520 5b6c 696e 6577 . line [linew │ │ │ │ -000140c0: 6964 7468 3d2e 3270 742c 6c69 6e65 636f idth=.2pt,lineco │ │ │ │ -000140d0: 6c6f 723d 626c 7565 2c6c 696e 6573 7479 lor=blue,linesty │ │ │ │ -000140e0: 6c65 3d64 6173 6865 645d 2028 4f29 2830 le=dashed] (O)(0 │ │ │ │ -000140f0: 2c30 2c2d 3130 290a 2020 2020 7370 6563 ,0,-10). spec │ │ │ │ -00014100: 6961 6c20 7c5c 7570 7574 5b72 5d23 317b ial |\uput[r]#1{ │ │ │ │ -00014110: 2478 247d 5c75 7075 745b 755d 2332 7b24 $x$}\uput[u]#2{$ │ │ │ │ -00014120: 7924 7d5c 7570 7574 5b6c 5d23 337b 247a y$}\uput[l]#3{$z │ │ │ │ -00014130: 247d 7c0a 2020 2020 2020 2873 7a2c 302c $}|. (sz,0, │ │ │ │ -00014140: 3029 2830 2c73 7a2c 3029 2830 2c30 2c73 0)(0,sz,0)(0,0,s │ │ │ │ -00014150: 7a29 0a20 207d 0a0a 2020 2054 696d 6520 z). }.. Time │ │ │ │ -00014160: 666f 7220 616e 6f74 6865 7220 7465 7374 for another test │ │ │ │ -00014170: 2e20 204c 6574 2773 2062 7569 6c64 2061 . Let's build a │ │ │ │ -00014180: 2072 6561 6c20 7669 6577 2074 7261 6e73 real view trans │ │ │ │ -00014190: 666f 726d 2c20 6372 6561 7469 6e67 2061 form, creating a │ │ │ │ -000141a0: 0ae2 809c 7669 7274 7561 6c20 6361 6d65 ....virtual came │ │ │ │ -000141b0: 7261 e280 9d20 746f 206c 6f6f 6b20 6174 ra... to look at │ │ │ │ -000141c0: 2074 6865 2073 6365 6e65 2077 6520 6172 the scene we ar │ │ │ │ -000141d0: 6520 636f 6e73 7472 7563 7469 6e67 2e20 e constructing. │ │ │ │ -000141e0: 2052 6570 6c61 6365 2074 6865 0ae2 8098 Replace the.... │ │ │ │ -000141f0: 7265 7065 6174 e280 9920 7769 7468 0a20 repeat... with. │ │ │ │ -00014200: 2064 6566 2065 7965 2028 3130 2c34 2c31 def eye (10,4,1 │ │ │ │ -00014210: 3029 0a20 2064 6566 206c 6f6f 6b5f 6174 0). def look_at │ │ │ │ -00014220: 2028 302c 302c 2d35 290a 2020 7075 7420 (0,0,-5). put │ │ │ │ -00014230: 7b20 7669 6577 2828 6579 6529 2c20 286c { view((eye), (l │ │ │ │ -00014240: 6f6f 6b5f 6174 2929 207d 207b 207b 686f ook_at)) } { {ho │ │ │ │ -00014250: 7573 657d 7b61 7865 737d 207d 0a20 2020 use}{axes} }. │ │ │ │ -00014260: 5468 6520 e280 9c76 6965 7720 7472 616e The ...view tran │ │ │ │ -00014270: 7366 6f72 6de2 809d 2072 6570 6f73 6974 sform... reposit │ │ │ │ -00014280: 696f 6e73 2074 6865 2073 6365 6e65 2073 ions the scene s │ │ │ │ -00014290: 6f20 7468 6174 2074 6865 2070 6f69 6e74 o that the point │ │ │ │ -000142a0: 20e2 8098 6579 65e2 8099 2069 730a 6174 ...eye... is.at │ │ │ │ -000142b0: 2074 6865 206f 7269 6769 6e20 616e 6420 the origin and │ │ │ │ -000142c0: 7468 6520 6469 7265 6374 696f 6e20 6672 the direction fr │ │ │ │ -000142d0: 6f6d 20e2 8098 6579 65e2 8099 2074 6f20 om ...eye... to │ │ │ │ -000142e0: e280 986c 6f6f 6b5f 6174 e280 9920 6973 ...look_at... is │ │ │ │ -000142f0: 2074 6865 206e 6567 6174 6976 650a 7a2d the negative.z- │ │ │ │ -00014300: 6178 6973 2e20 2054 6869 7320 7265 7175 axis. This requ │ │ │ │ -00014310: 6972 6573 2061 2072 6f74 6174 696f 6e20 ires a rotation │ │ │ │ -00014320: 616e 6420 6120 7472 616e 736c 6174 696f and a translatio │ │ │ │ -00014330: 6e20 7468 6174 2061 7265 2061 6c6c 2070 n that are all p │ │ │ │ -00014340: 6163 6b65 640a 696e 746f 2074 6865 2063 acked.into the c │ │ │ │ -00014350: 6f6e 7374 7275 6374 6f72 20e2 8098 7669 onstructor ...vi │ │ │ │ -00014360: 6577 e280 992e 0a0a 0008 5b69 6d61 6765 ew........[image │ │ │ │ -00014370: 2073 7263 3d22 6578 3135 302e 706e 6722 src="ex150.png" │ │ │ │ -00014380: 2074 6578 743d 2249 6d61 6765 2065 7831 text="Image ex1 │ │ │ │ -00014390: 3530 206f 6d69 7474 6564 2069 6e20 7465 50 omitted in te │ │ │ │ -000143a0: 7874 2076 6572 7369 6f6e 206f 6620 7468 xt version of th │ │ │ │ -000143b0: 6973 2064 6f63 756d 656e 742e 2200 085d is document."..] │ │ │ │ -000143c0: 0a0a 5468 6973 2069 7320 7374 6172 7469 ..This is starti │ │ │ │ -000143d0: 6e67 2074 6f20 6c6f 6f6b 2067 6f6f 6421 ng to look good! │ │ │ │ -000143e0: 2020 4164 6420 7468 6520 7072 6f6a 6563 Add the projec │ │ │ │ -000143f0: 7469 6f6e 2070 6c61 6e65 2068 616c 6620 tion plane half │ │ │ │ -00014400: 7761 790a 6265 7477 6565 6e20 7468 6520 way.between the │ │ │ │ -00014410: 6f72 6967 696e 2061 6e64 2074 6865 2068 origin and the h │ │ │ │ -00014420: 6f75 7365 2061 7420 7a3d 2d35 2e20 2057 ouse at z=-5. W │ │ │ │ -00014430: 6527 6c6c 2074 7279 2074 6865 2061 6e67 e'll try the ang │ │ │ │ -00014440: 6c65 2061 7267 756d 656e 740a 6665 6174 le argument.feat │ │ │ │ -00014450: 7572 6520 6f66 20e2 8098 7370 6563 6961 ure of ...specia │ │ │ │ -00014460: 6ce2 8099 2074 6f20 706f 7369 7469 6f6e l... to position │ │ │ │ -00014470: 2061 206c 6162 656c 2e0a 2020 6465 6620 a label.. def │ │ │ │ -00014480: 7020 3520 2520 7072 6f6a 6563 7469 6f6e p 5 % projection │ │ │ │ -00014490: 2064 6973 7461 6e63 6520 2870 6c61 6e65 distance (plane │ │ │ │ -000144a0: 2061 7420 7a3d 2d70 290a 2020 6465 6620 at z=-p). def │ │ │ │ -000144b0: 7072 6f6a 6563 7469 6f6e 5f70 6c61 6e65 projection_plane │ │ │ │ -000144c0: 207b 0a20 2020 2064 6566 2073 7a20 312e {. def sz 1. │ │ │ │ -000144d0: 350a 2020 2020 706f 6c79 676f 6e20 282d 5. polygon (- │ │ │ │ -000144e0: 737a 2c2d 737a 2c2d 7029 2873 7a2c 2d73 sz,-sz,-p)(sz,-s │ │ │ │ -000144f0: 7a2c 2d70 2928 737a 2c73 7a2c 2d70 2928 z,-p)(sz,sz,-p)( │ │ │ │ -00014500: 2d73 7a2c 737a 2c2d 7029 0a20 2020 2073 -sz,sz,-p). s │ │ │ │ -00014510: 7065 6369 616c 207c 5c72 7075 745b 625d pecial |\rput[b] │ │ │ │ -00014520: 2331 2d32 2333 7b5c 666f 6f74 6e6f 7465 #1-2#3{\footnote │ │ │ │ -00014530: 7369 7a65 5c73 6620 7072 6f6a 6563 7469 size\sf projecti │ │ │ │ -00014540: 6f6e 2070 6c61 6e65 7d7c 200a 2020 2020 on plane}| . │ │ │ │ -00014550: 2020 282d 737a 2c2d 737a 2c2d 7029 2873 (-sz,-sz,-p)(s │ │ │ │ -00014560: 7a2c 2d73 7a2c 2d70 2928 302c 2d73 7a2b z,-sz,-p)(0,-sz+ │ │ │ │ -00014570: 2e31 2c2d 7029 0a20 207d 0a41 6464 207b .1,-p). }.Add { │ │ │ │ -00014580: 7072 6f6a 6563 7469 6f6e 5f70 6c61 6e65 projection_plane │ │ │ │ -00014590: 7d20 746f 2074 6865 206c 6973 7420 6f66 } to the list of │ │ │ │ -000145a0: 206f 626a 6563 7473 2069 6e20 7468 6520 objects in the │ │ │ │ -000145b0: e280 9870 7574 e280 9920 6162 6f76 652e ...put... above. │ │ │ │ -000145c0: 0a0a 0008 5b69 6d61 6765 2073 7263 3d22 ....[image src=" │ │ │ │ -000145d0: 6578 3136 302e 706e 6722 2074 6578 743d ex160.png" text= │ │ │ │ -000145e0: 2249 6d61 6765 2065 7831 3630 206f 6d69 "Image ex160 omi │ │ │ │ -000145f0: 7474 6564 2069 6e20 7465 7874 2076 6572 tted in text ver │ │ │ │ -00014600: 7369 6f6e 206f 6620 7468 6973 2064 6f63 sion of this doc │ │ │ │ -00014610: 756d 656e 742e 2200 085d 0a0a 2020 2054 ument."..].. T │ │ │ │ -00014620: 6865 2077 6179 2077 6520 636f 6e73 7472 he way we constr │ │ │ │ -00014630: 7563 7465 6420 7468 6520 706f 696e 7473 ucted the points │ │ │ │ -00014640: 206f 6620 7468 6520 686f 7573 6520 6e6f of the house no │ │ │ │ -00014650: 7720 6d61 6b65 7320 6974 2065 6173 7920 w makes it easy │ │ │ │ -00014660: 746f 0a64 7261 7720 7261 7973 206f 6620 to.draw rays of │ │ │ │ -00014670: 7072 6f6a 6563 7469 6f6e 2e20 2057 6527 projection. We' │ │ │ │ -00014680: 6c6c 2063 6173 7420 6f6e 6520 7261 7920 ll cast one ray │ │ │ │ -00014690: 6672 6f6d 2065 7665 7279 2076 6973 6962 from every visib │ │ │ │ -000146a0: 6c65 2076 6572 7465 780a 6f66 2074 6865 le vertex.of the │ │ │ │ -000146b0: 2068 6f75 7365 2061 6e64 2064 6566 696e house and defin │ │ │ │ -000146c0: 6520 6f70 7469 6f6e 7320 736f 2074 6865 e options so the │ │ │ │ -000146d0: 2061 7070 6561 7261 6e63 6520 6f66 2061 appearance of a │ │ │ │ -000146e0: 6c6c 2072 6179 7320 6361 6e20 6265 0a63 ll rays can be.c │ │ │ │ -000146f0: 6861 6e67 6564 2061 7420 7468 6520 7361 hanged at the sa │ │ │ │ -00014700: 6d65 2074 696d 652e 0a20 2064 6566 2070 me time.. def p │ │ │ │ -00014710: 726f 6a65 6374 696f 6e5f 7261 7973 207b rojection_rays { │ │ │ │ -00014720: 0a20 2020 2064 6566 2072 6179 6f70 7420 . def rayopt │ │ │ │ -00014730: 5b6c 696e 6577 6964 7468 3d2e 3370 742c [linewidth=.3pt, │ │ │ │ -00014740: 6c69 6e65 636f 6c6f 723d 6c69 6768 7467 linecolor=lightg │ │ │ │ -00014750: 7261 795d 0a20 2020 206c 696e 6520 5b72 ray]. line [r │ │ │ │ -00014760: 6179 6f70 745d 284f 2928 7052 3129 206c ayopt](O)(pR1) l │ │ │ │ -00014770: 696e 6520 5b72 6179 6f70 745d 284f 2928 ine [rayopt](O)( │ │ │ │ -00014780: 7052 3229 206c 696e 655b 7261 796f 7074 pR2) line[rayopt │ │ │ │ -00014790: 5d28 4f29 2870 5233 290a 2020 2020 6c69 ](O)(pR3). li │ │ │ │ -000147a0: 6e65 205b 7261 796f 7074 5d28 4f29 2870 ne [rayopt](O)(p │ │ │ │ -000147b0: 5234 2920 6c69 6e65 205b 7261 796f 7074 R4) line [rayopt │ │ │ │ -000147c0: 5d28 4f29 2870 5235 290a 2020 2020 6c69 ](O)(pR5). li │ │ │ │ -000147d0: 6e65 205b 7261 796f 7074 5d28 4f29 2870 ne [rayopt](O)(p │ │ │ │ -000147e0: 4c31 2920 6c69 6e65 205b 7261 796f 7074 L1) line [rayopt │ │ │ │ -000147f0: 5d28 4f29 2870 4c32 2920 6c69 6e65 5b72 ](O)(pL2) line[r │ │ │ │ -00014800: 6179 6f70 745d 284f 2928 704c 3529 0a20 ayopt](O)(pL5). │ │ │ │ -00014810: 2020 206c 696e 6520 5b72 6179 6f70 745d line [rayopt] │ │ │ │ -00014820: 284f 2928 7044 3129 206c 696e 6520 5b72 (O)(pD1) line [r │ │ │ │ -00014830: 6179 6f70 745d 284f 2928 7044 3229 200a ayopt](O)(pD2) . │ │ │ │ -00014840: 2020 2020 6c69 6e65 205b 7261 796f 7074 line [rayopt │ │ │ │ -00014850: 5d28 4f29 2870 4433 2920 6c69 6e65 205b ](O)(pD3) line [ │ │ │ │ -00014860: 7261 796f 7074 5d28 4f29 2870 4434 2920 rayopt](O)(pD4) │ │ │ │ -00014870: 0a20 207d 0a54 6865 2072 6573 756c 7420 . }.The result │ │ │ │ -00014880: 6973 2073 686f 776e 2068 6572 652e 0a0a is shown here... │ │ │ │ -00014890: 0008 5b69 6d61 6765 2073 7263 3d22 6578 ..[image src="ex │ │ │ │ -000148a0: 3137 302e 706e 6722 2074 6578 743d 2249 170.png" text="I │ │ │ │ -000148b0: 6d61 6765 2065 7831 3730 206f 6d69 7474 mage ex170 omitt │ │ │ │ -000148c0: 6564 2069 6e20 7465 7874 2076 6572 7369 ed in text versi │ │ │ │ -000148d0: 6f6e 206f 6620 7468 6973 2064 6f63 756d on of this docum │ │ │ │ -000148e0: 656e 742e 2200 085d 0a0a 5468 6520 7261 ent."..]..The ra │ │ │ │ -000148f0: 7973 2070 6965 7263 6520 7468 6520 7072 ys pierce the pr │ │ │ │ -00014900: 6f6a 6563 7469 6f6e 2070 6c61 6e65 2061 ojection plane a │ │ │ │ -00014910: 7420 7468 6520 636f 7272 6573 706f 6e64 t the correspond │ │ │ │ -00014920: 696e 6720 706f 696e 7473 206f 6e20 7468 ing points on th │ │ │ │ -00014930: 650a 7065 7273 7065 6374 6976 6520 696d e.perspective im │ │ │ │ -00014940: 6167 6520 7765 2061 7265 2074 7279 696e age we are tryin │ │ │ │ -00014950: 6720 746f 2064 7261 772e 2020 416c 6272 g to draw. Albr │ │ │ │ -00014960: 6563 6874 2044 c3bc 7265 7220 616e 6420 echt D..rer and │ │ │ │ -00014970: 6869 730a 5265 6e61 6973 7361 6e63 6520 his.Renaissance │ │ │ │ -00014980: 636f 6e74 656d 706f 7261 7269 6573 2068 contemporaries h │ │ │ │ -00014990: 6164 2074 6865 2073 616d 6520 6964 6561 ad the same idea │ │ │ │ -000149a0: 2069 6e20 7468 6520 6561 726c 7920 3135 in the early 15 │ │ │ │ -000149b0: 3030 2773 2e0a 0a00 085b 696d 6167 6520 00's.....[image │ │ │ │ -000149c0: 7372 633d 2264 7565 7265 722e 706e 6722 src="duerer.png" │ │ │ │ -000149d0: 2074 6578 743d 2249 6d61 6765 206f 6620 text="Image of │ │ │ │ -000149e0: 4475 6572 6572 2773 2070 6572 7370 6563 Duerer's perspec │ │ │ │ -000149f0: 7469 7665 2063 6f6d 7075 7465 7220 6f6d tive computer om │ │ │ │ -00014a00: 6974 7465 6420 696e 2074 6578 7420 7665 itted in text ve │ │ │ │ -00014a10: 7273 696f 6e20 6f66 2074 6869 7320 646f rsion of this do │ │ │ │ -00014a20: 6375 6d65 6e74 2e22 0008 5d0a 0a20 2020 cument."..].. │ │ │ │ -00014a30: 416c 6c20 7468 6174 2773 206c 6566 7420 All that's left │ │ │ │ -00014a40: 6973 2074 6f20 6669 6e64 2061 2077 6179 is to find a way │ │ │ │ -00014a50: 2074 6f20 636f 6e6e 6563 7420 7468 6520 to connect the │ │ │ │ -00014a60: 706f 696e 7473 206f 6620 7468 6520 686f points of the ho │ │ │ │ -00014a70: 7573 650a 6f6e 2074 6865 2070 726f 6a65 use.on the proje │ │ │ │ -00014a80: 6374 696f 6e20 706c 616e 652e 2020 5765 ction plane. We │ │ │ │ -00014a90: 2063 6f75 6c64 2070 756c 6c20 6f75 7420 could pull out │ │ │ │ -00014aa0: 6120 676f 6f64 2063 6f6d 7075 7465 7220 a good computer │ │ │ │ -00014ab0: 6772 6170 6869 6373 0a74 6578 742c 2066 graphics.text, f │ │ │ │ -00014ac0: 696e 6420 7468 6520 6e65 6365 7373 6172 ind the necessar │ │ │ │ -00014ad0: 7920 6d61 7472 6978 2c20 616e 6420 656e y matrix, and en │ │ │ │ -00014ae0: 7465 7220 6974 206f 7572 7365 6c76 6573 ter it ourselves │ │ │ │ -00014af0: 2061 7320 6120 7472 616e 7366 6f72 6d0a as a transform. │ │ │ │ -00014b00: 6c69 7465 7261 6c2e 2020 2a4e 6f74 6520 literal. *Note │ │ │ │ -00014b10: 5472 616e 7366 6f72 6d20 6c69 7465 7261 Transform litera │ │ │ │ -00014b20: 6c73 3a3a 2e20 2054 6861 7420 776f 726b ls::. That work │ │ │ │ -00014b30: 2069 7320 616c 7265 6164 7920 646f 6e65 is already done │ │ │ │ -00014b40: 2c0a 686f 7765 7665 722e 2020 5765 2063 ,.however. We c │ │ │ │ -00014b50: 616e 2075 7365 2074 6865 20e2 8098 7072 an use the ...pr │ │ │ │ -00014b60: 6f6a 6563 7428 7029 e280 9920 636f 6e73 oject(p)... cons │ │ │ │ -00014b70: 7472 7563 746f 722e 0a0a 2020 2054 6865 tructor... The │ │ │ │ -00014b80: 7265 2061 7265 2073 7469 6c6c 2073 6f6d re are still som │ │ │ │ -00014b90: 6520 6465 7461 696c 7320 7468 6174 2072 e details that r │ │ │ │ -00014ba0: 6571 7569 7265 2063 6172 652e 2020 5072 equire care. Pr │ │ │ │ -00014bb0: 6f6a 6563 7469 6f6e 2077 696c 6c0a 666c ojection will.fl │ │ │ │ -00014bc0: 6174 7465 6e20 7768 6174 6576 6572 2069 atten whatever i │ │ │ │ -00014bd0: 7320 7472 616e 7366 6f72 6d65 6420 6f6e s transformed on │ │ │ │ -00014be0: 746f 2074 6865 2070 6c61 6e65 207a 3d2d to the plane z=- │ │ │ │ -00014bf0: 702e 2020 5468 6572 6566 6f72 6520 616e p. Therefore an │ │ │ │ -00014c00: 7920 7061 7274 0a6f 6620 7468 6520 686f y part.of the ho │ │ │ │ -00014c10: 7573 6520 636f 756c 6420 6469 7361 7070 use could disapp │ │ │ │ -00014c20: 6561 7220 6265 6869 6e64 2074 6865 2070 ear behind the p │ │ │ │ -00014c30: 726f 6a65 6374 696f 6e20 706c 616e 6520 rojection plane │ │ │ │ -00014c40: 2874 6865 2068 6964 6465 6e0a 7375 7266 (the hidden.surf │ │ │ │ -00014c50: 6163 6520 616c 676f 7269 7468 6d20 6f72 ace algorithm or │ │ │ │ -00014c60: 6465 7273 206f 626a 6563 7473 2061 7420 ders objects at │ │ │ │ -00014c70: 7468 6520 7361 6d65 2064 6570 7468 2061 the same depth a │ │ │ │ -00014c80: 7262 6974 7261 7269 6c79 292e 2020 5468 rbitrarily). Th │ │ │ │ -00014c90: 650a 646f 6f72 206d 6179 2061 6c73 6f20 e.door may also │ │ │ │ -00014ca0: 6469 7361 7070 6561 7220 6265 6869 6e64 disappear behind │ │ │ │ -00014cb0: 2074 6865 2066 726f 6e74 206f 6620 7468 the front of th │ │ │ │ -00014cc0: 6520 686f 7573 652e 2020 546f 206d 616b e house. To mak │ │ │ │ -00014cd0: 6520 7375 7265 0a65 7665 7279 7468 696e e sure.everythin │ │ │ │ -00014ce0: 6720 7265 6d61 696e 7320 7669 7369 626c g remains visibl │ │ │ │ -00014cf0: 652c 2077 6527 6c6c 2070 6c61 6365 2074 e, we'll place t │ │ │ │ -00014d00: 6865 2068 6f75 7365 2061 2074 696e 7920 he house a tiny │ │ │ │ -00014d10: 6269 7420 696e 2066 726f 6e74 206f 660a bit in front of. │ │ │ │ -00014d20: 7468 6520 7072 6f6a 6563 7469 6f6e 2070 the projection p │ │ │ │ -00014d30: 6c61 6e65 2061 6e64 2061 2073 6563 6f6e lane and a secon │ │ │ │ -00014d40: 6420 636f 7079 206f 6620 7468 6520 646f d copy of the do │ │ │ │ -00014d50: 6f72 2069 6e20 6672 6f6e 7420 6f66 2074 or in front of t │ │ │ │ -00014d60: 6865 0a68 6f75 7365 2e0a 2020 6465 6620 he.house.. def │ │ │ │ -00014d70: 7072 6f6a 6563 7469 6f6e 207b 0a20 2020 projection {. │ │ │ │ -00014d80: 2025 2065 2069 7320 6120 736d 616c 6c20 % e is a small │ │ │ │ -00014d90: 6e75 6d62 6572 2064 6566 696e 6564 2061 number defined a │ │ │ │ -00014da0: 626f 7665 0a20 2020 2070 7574 207b 2070 bove. put { p │ │ │ │ -00014db0: 726f 6a65 6374 2870 2920 7468 656e 2074 roject(p) then t │ │ │ │ -00014dc0: 7261 6e73 6c61 7465 285b 302c 302c 312a ranslate([0,0,1* │ │ │ │ -00014dd0: 655d 2920 7d20 7b68 6f75 7365 7d0a 2020 e]) } {house}. │ │ │ │ -00014de0: 2020 7075 7420 7b20 7072 6f6a 6563 7428 put { project( │ │ │ │ -00014df0: 7029 2074 6865 6e20 7472 616e 736c 6174 p) then translat │ │ │ │ -00014e00: 6528 5b30 2c30 2c32 2a65 5d29 207d 207b e([0,0,2*e]) } { │ │ │ │ -00014e10: 646f 6f72 7d0a 2020 7d0a 0a00 085b 696d door}. }....[im │ │ │ │ -00014e20: 6167 6520 7372 633d 2265 7831 3830 2e70 age src="ex180.p │ │ │ │ -00014e30: 6e67 2220 7465 7874 3d22 496d 6167 6520 ng" text="Image │ │ │ │ -00014e40: 6578 3138 3020 6f6d 6974 7465 6420 696e ex180 omitted in │ │ │ │ -00014e50: 2074 6578 7420 7665 7273 696f 6e20 6f66 text version of │ │ │ │ -00014e60: 2074 6869 7320 646f 6375 6d65 6e74 2e22 this document." │ │ │ │ -00014e70: 0008 5d0a 0a20 2020 4966 2079 6f75 2068 ..].. If you h │ │ │ │ -00014e80: 6176 6520 7374 7564 6965 6420 616e 6420 ave studied and │ │ │ │ -00014e90: 756e 6465 7273 7461 6e64 2061 6c6c 2074 understand all t │ │ │ │ -00014ea0: 6869 732c 2079 6f75 2061 7265 2077 656c his, you are wel │ │ │ │ -00014eb0: 6c20 6f6e 2074 6865 2077 6179 0a74 6f20 l on the way.to │ │ │ │ -00014ec0: 7375 6363 6573 7320 7769 7468 20e2 8098 success with ... │ │ │ │ -00014ed0: 736b 6574 6368 e280 992e 2020 4e6f 7420 sketch.... Not │ │ │ │ -00014ee0: 7368 6f77 6e20 6172 6520 7468 6520 3230 shown are the 20 │ │ │ │ -00014ef0: 206f 7220 736f 2069 7465 7261 7469 6f6e or so iteration │ │ │ │ -00014f00: 7320 7468 6174 0a77 6572 6520 7265 7175 s that.were requ │ │ │ │ -00014f10: 6972 6564 2074 6f20 6669 6e64 2061 2072 ired to find a r │ │ │ │ -00014f20: 6561 736f 6e61 626c 6520 7669 6577 696e easonable viewin │ │ │ │ -00014f30: 6720 616e 676c 6520 616e 6420 686f 7573 g angle and hous │ │ │ │ -00014f40: 6520 706f 7369 7469 6f6e 2c0a 6574 632e e position,.etc. │ │ │ │ -00014f50: 2020 4e6f 6e65 7468 656c 6573 732c 2074 Nonetheless, t │ │ │ │ -00014f60: 6869 7320 6472 6177 696e 6720 7761 7320 his drawing was │ │ │ │ -00014f70: 636f 6d70 6c65 7465 6420 696e 2061 626f completed in abo │ │ │ │ -00014f80: 7574 2061 6e20 686f 7572 2e20 2057 6869 ut an hour. Whi │ │ │ │ -00014f90: 6c65 2061 0a47 5549 2074 6f6f 6c20 6d61 le a.GUI tool ma │ │ │ │ -00014fa0: 7920 6861 7665 2062 6565 6e20 6120 6c69 y have been a li │ │ │ │ -00014fb0: 7474 6c65 2066 6173 7465 722c 2069 7420 ttle faster, it │ │ │ │ -00014fc0: 6973 2075 6e6c 696b 656c 7920 7468 6174 is unlikely that │ │ │ │ -00014fd0: 2061 206e 6577 0a64 7261 7769 6e67 2c20 a new.drawing, │ │ │ │ -00014fe0: 6974 7365 6c66 2061 2070 6572 7370 6563 itself a perspec │ │ │ │ -00014ff0: 7469 7665 2070 726f 6a65 6374 696f 6e20 tive projection │ │ │ │ -00015000: 6f66 2074 6865 2073 6365 6e65 2c20 636f of the scene, co │ │ │ │ -00015010: 756c 6420 6265 0a67 656e 6572 6174 6564 uld be.generated │ │ │ │ -00015020: 2077 6974 6820 7477 6f20 6d6f 7265 206d with two more m │ │ │ │ -00015030: 696e 7574 6573 2720 776f 726b 2120 204a inutes' work! J │ │ │ │ -00015040: 7573 7420 6368 616e 6765 2074 6865 2076 ust change the v │ │ │ │ -00015050: 6965 7720 7472 616e 7366 6f72 6d0a 746f iew transform.to │ │ │ │ -00015060: 0a20 2070 7574 207b 2076 6965 7728 2865 . put { view((e │ │ │ │ -00015070: 7965 292c 2028 6c6f 6f6b 5f61 7429 2920 ye), (look_at)) │ │ │ │ -00015080: 7468 656e 2070 6572 7370 6563 7469 7665 then perspective │ │ │ │ -00015090: 2839 2920 7d20 7b20 2e2e 2e0a 616e 6420 (9) } { ....and │ │ │ │ -000150a0: 7072 6f64 7563 6520 7468 6973 2e0a 0a00 produce this.... │ │ │ │ -000150b0: 085b 696d 6167 6520 7372 633d 2265 7831 .[image src="ex1 │ │ │ │ -000150c0: 3930 2e70 6e67 2220 7465 7874 3d22 496d 90.png" text="Im │ │ │ │ -000150d0: 6167 6520 6578 3139 3020 6f6d 6974 7465 age ex190 omitte │ │ │ │ -000150e0: 6420 696e 2074 6578 7420 7665 7273 696f d in text versio │ │ │ │ -000150f0: 6e20 6f66 2074 6869 7320 646f 6375 6d65 n of this docume │ │ │ │ -00015100: 6e74 2e22 0008 5d0a 0a1f 0a46 696c 653a nt."..]....File: │ │ │ │ -00015110: 2073 6b65 7463 682e 696e 666f 2c20 204e sketch.info, N │ │ │ │ -00015120: 6f64 653a 2041 2074 6563 686e 6963 616c ode: A technical │ │ │ │ -00015130: 2064 7261 7769 6e67 2c20 204e 6578 743a drawing, Next: │ │ │ │ -00015140: 2041 2068 6965 7261 7263 6869 6361 6c20 A hierarchical │ │ │ │ -00015150: 6d6f 6465 6c2c 2020 5072 6576 3a20 4f76 model, Prev: Ov │ │ │ │ -00015160: 6572 7669 6577 2c20 2055 703a 2042 7569 erview, Up: Bui │ │ │ │ -00015170: 6c64 696e 6720 6120 6472 6177 696e 670a lding a drawing. │ │ │ │ -00015180: 0a34 2e32 2041 2074 6563 686e 6963 616c .4.2 A technical │ │ │ │ -00015190: 2064 7261 7769 6e67 0a3d 3d3d 3d3d 3d3d drawing.======= │ │ │ │ -000151a0: 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d ================ │ │ │ │ -000151b0: 0a0a 4c65 7427 7320 6c6f 6f6b 2061 7420 ..Let's look at │ │ │ │ -000151c0: 6120 6472 6177 696e 6720 7468 6174 2072 a drawing that r │ │ │ │ -000151d0: 6570 7265 7365 6e74 7320 7468 6520 6b69 epresents the ki │ │ │ │ -000151e0: 6e64 206f 6620 7072 6f62 6c65 6d20 e280 nd of problem .. │ │ │ │ -000151f0: 9873 6b65 7463 68e2 8099 2077 6173 0a6d .sketch... was.m │ │ │ │ -00015200: 6561 6e74 2074 6f20 736f 6c76 652d 2d61 eant to solve--a │ │ │ │ -00015210: 2070 6169 7220 6f66 2074 6578 7462 6f6f pair of textboo │ │ │ │ -00015220: 6b20 6669 6775 7265 7320 7265 6761 7264 k figures regard │ │ │ │ -00015230: 696e 6720 6120 706f 6c79 676f 6e61 6c0a ing a polygonal. │ │ │ │ -00015240: 6170 7072 6f78 696d 6174 696f 6e20 6f66 approximation of │ │ │ │ -00015250: 2061 2074 7275 6e63 6174 6564 2063 6f6e a truncated con │ │ │ │ -00015260: 652e 2020 4865 7265 2061 7265 2074 6865 e. Here are the │ │ │ │ -00015270: 2070 6963 7475 7265 7320 7765 2077 696c pictures we wil │ │ │ │ -00015280: 6c0a 7072 6f64 7563 652e 0a0a 0008 5b69 l.produce.....[i │ │ │ │ -00015290: 6d61 6765 2073 7263 3d22 6578 3235 302e mage src="ex250. │ │ │ │ -000152a0: 706e 6722 2074 6578 743d 2249 6d61 6765 png" text="Image │ │ │ │ -000152b0: 2065 7832 3530 206f 6d69 7474 6564 2069 ex250 omitted i │ │ │ │ -000152c0: 6e20 7465 7874 2076 6572 7369 6f6e 206f n text version o │ │ │ │ -000152d0: 6620 7468 6973 2064 6f63 756d 656e 742e f this document. │ │ │ │ -000152e0: 2200 085d 2020 2020 2000 085b 696d 6167 "..] ..[imag │ │ │ │ -000152f0: 6520 7372 633d 2265 7832 3630 2e70 6e67 e src="ex260.png │ │ │ │ -00015300: 2220 7465 7874 3d22 496d 6167 6520 6578 " text="Image ex │ │ │ │ -00015310: 3236 3020 6f6d 6974 7465 6420 696e 2074 260 omitted in t │ │ │ │ -00015320: 6578 7420 7665 7273 696f 6e20 6f66 2074 ext version of t │ │ │ │ -00015330: 6869 7320 646f 6375 6d65 6e74 2e22 0008 his document.".. │ │ │ │ -00015340: 5d0a 0a20 2020 5468 6520 636f 6e65 2073 ].. The cone s │ │ │ │ -00015350: 6861 7065 2069 7320 6a75 7374 2061 2073 hape is just a s │ │ │ │ -00015360: 7765 7074 206c 696e 6520 7769 7468 206e wept line with n │ │ │ │ -00015370: 6f20 636c 6f73 7572 6520 7461 6720 616e o closure tag an │ │ │ │ -00015380: 6420 6375 6c6c 696e 670a 7475 726e 6564 d culling.turned │ │ │ │ -00015390: 206f 6666 2e20 2042 6567 696e 2062 7920 off. Begin by │ │ │ │ -000153a0: 7365 7474 696e 6720 7570 2073 6f6d 6520 setting up some │ │ │ │ -000153b0: 7573 6566 756c 2063 6f6e 7374 616e 7473 useful constants │ │ │ │ -000153c0: 2e0a 2020 6465 6620 4f20 2830 2c30 2c30 .. def O (0,0,0 │ │ │ │ -000153d0: 2920 6465 6620 4920 5b31 2c30 2c30 5d20 ) def I [1,0,0] │ │ │ │ -000153e0: 6465 6620 4a20 5b30 2c31 2c30 5d20 6465 def J [0,1,0] de │ │ │ │ -000153f0: 6620 4b20 5b30 2c30 2c31 5d0a 2020 6465 f K [0,0,1]. de │ │ │ │ -00015400: 6620 7030 2028 312c 3229 2064 6566 2070 f p0 (1,2) def p │ │ │ │ -00015410: 3120 2831 2e35 2c30 2920 6465 6620 4e20 1 (1.5,0) def N │ │ │ │ -00015420: 380a 2020 6465 6620 7365 675f 726f 7420 8. def seg_rot │ │ │ │ -00015430: 726f 7461 7465 2833 3630 202f 204e 2c20 rotate(360 / N, │ │ │ │ -00015440: 5b4a 5d29 0a54 6865 2070 6f69 6e74 7320 [J]).The points │ │ │ │ -00015450: e280 9870 30e2 8099 2061 6e64 20e2 8098 ...p0... and ... │ │ │ │ -00015460: 7031 e280 9920 6172 6520 7468 6520 656e p1... are the en │ │ │ │ -00015470: 6420 706f 696e 7473 206f 6620 7468 6520 d points of the │ │ │ │ -00015480: 6c69 6e65 2074 6f20 6265 2073 7765 7074 line to be swept │ │ │ │ -00015490: 2e0a 5468 6520 6465 6669 6e69 7469 6f6e ..The definition │ │ │ │ -000154a0: 20e2 8098 7365 675f 726f 74e2 8099 2069 ...seg_rot... i │ │ │ │ -000154b0: 7320 7468 6520 7377 6565 7020 7472 616e s the sweep tran │ │ │ │ -000154c0: 7366 6f72 6d61 7469 6f6e 2e20 2057 6974 sformation. Wit │ │ │ │ -000154d0: 6820 7468 6573 652c 2074 6865 0a63 6f6e h these, the.con │ │ │ │ -000154e0: 6520 6974 7365 6c66 2069 7320 7369 6d70 e itself is simp │ │ │ │ -000154f0: 6c65 2e0a 2020 7377 6565 705b 6375 6c6c le.. sweep[cull │ │ │ │ -00015500: 3d66 616c 7365 5d20 7b20 4e2c 205b 5b73 =false] { N, [[s │ │ │ │ -00015510: 6567 5f72 6f74 5d5d 207d 206c 696e 6528 eg_rot]] } line( │ │ │ │ -00015520: 7030 2928 7031 290a 0a20 2020 5468 6520 p0)(p1).. The │ │ │ │ -00015530: 6178 6573 2061 7265 206e 6578 7420 616e axes are next an │ │ │ │ -00015540: 6420 696e 636c 7564 6520 616e 2069 6e74 d include an int │ │ │ │ -00015550: 6572 6573 696e 6720 7472 6963 6b20 7468 eresing trick th │ │ │ │ -00015560: 6174 2073 686f 7773 2074 6865 0a68 6964 at shows the.hid │ │ │ │ -00015570: 6465 6e20 7061 7274 7320 6173 2064 6f74 den parts as dot │ │ │ │ -00015580: 7465 6420 6c69 6e65 732e 2020 5468 6520 ted lines. The │ │ │ │ -00015590: 7365 6372 6574 2069 7320 6472 6177 2074 secret is draw t │ │ │ │ -000155a0: 6865 2061 7865 7320 7477 6963 652d 2d73 he axes twice--s │ │ │ │ -000155b0: 6f6c 6964 0a6c 696e 6573 2077 6974 6820 olid.lines with │ │ │ │ -000155c0: 7468 6520 6e6f 726d 616c 2068 6964 6465 the normal hidde │ │ │ │ -000155d0: 6e20 7375 7266 6163 6520 616c 676f 7269 n surface algori │ │ │ │ -000155e0: 7468 6d20 696e 2065 6666 6563 742c 2061 thm in effect, a │ │ │ │ -000155f0: 6e64 2074 6865 6e0a 646f 7474 6564 2077 nd then.dotted w │ │ │ │ -00015600: 6974 6820 7468 6520 6f70 7469 6f6e 20e2 ith the option . │ │ │ │ -00015610: 8098 6c61 793d 6f76 6572 e280 9920 736f ..lay=over... so │ │ │ │ -00015620: 2074 6861 7420 6e6f 2070 6f6c 7967 6f6e that no polygon │ │ │ │ -00015630: 7320 6361 6e20 6869 6465 2074 6865 6d2e s can hide them. │ │ │ │ -00015640: 0a20 2064 6566 2061 7820 2864 782c 302c . def ax (dx,0, │ │ │ │ -00015650: 3029 2025 2074 6970 7320 6f66 2074 6865 0) % tips of the │ │ │ │ -00015660: 2061 7865 730a 2020 6465 6620 6179 2028 axes. def ay ( │ │ │ │ -00015670: 302c 6479 2c30 290a 2020 6465 6620 617a 0,dy,0). def az │ │ │ │ -00015680: 2028 302c 302c 647a 290a 2020 6c69 6e65 (0,0,dz). line │ │ │ │ -00015690: 5b61 7272 6f77 733d 3c2d 3e2c 6c69 6e65 [arrows=<->,line │ │ │ │ -000156a0: 7769 6474 683d 2e34 7074 5d28 6178 2928 width=.4pt](ax)( │ │ │ │ -000156b0: 4f29 2861 7929 0a20 206c 696e 655b 6172 O)(ay). line[ar │ │ │ │ -000156c0: 726f 7773 3d2d 3e2c 6c69 6e65 7769 6474 rows=->,linewidt │ │ │ │ -000156d0: 683d 2e34 7074 5d28 4f29 2861 7a29 0a20 h=.4pt](O)(az). │ │ │ │ -000156e0: 2025 2072 6570 6561 7420 646f 7474 6564 % repeat dotted │ │ │ │ -000156f0: 2061 7320 616e 206f 7665 726c 6179 2074 as an overlay t │ │ │ │ -00015700: 6f20 6869 6e74 2061 7420 7468 6520 6869 o hint at the hi │ │ │ │ -00015710: 6464 656e 206c 696e 6573 0a20 206c 696e dden lines. lin │ │ │ │ -00015720: 655b 6c61 793d 6f76 6572 2c6c 696e 6573 e[lay=over,lines │ │ │ │ -00015730: 7479 6c65 3d64 6f74 7465 642c 6c69 6e65 tyle=dotted,line │ │ │ │ -00015740: 7769 6474 683d 2e34 7074 5d28 6178 2928 width=.4pt](ax)( │ │ │ │ -00015750: 4f29 2861 7929 0a20 206c 696e 655b 6c61 O)(ay). line[la │ │ │ │ -00015760: 793d 6f76 6572 2c6c 696e 6573 7479 6c65 y=over,linestyle │ │ │ │ -00015770: 3d64 6f74 7465 642c 6c69 6e65 7769 6474 =dotted,linewidt │ │ │ │ -00015780: 683d 2e34 7074 5d28 4f29 2861 7a29 0a20 h=.4pt](O)(az). │ │ │ │ -00015790: 2073 7065 6369 616c 7c5c 666f 6f74 6e6f special|\footno │ │ │ │ -000157a0: 7465 7369 7a65 0a20 2020 2020 2020 2020 tesize. │ │ │ │ -000157b0: 205c 7570 7574 5b64 5d23 317b 2478 247d \uput[d]#1{$x$} │ │ │ │ -000157c0: 5c75 7075 745b 755d 2332 7b24 7924 7d5c \uput[u]#2{$y$}\ │ │ │ │ -000157d0: 7570 7574 5b6c 5d23 337b 247a 247d 7c0a uput[l]#3{$z$}|. │ │ │ │ -000157e0: 2020 2020 2861 7829 2861 7929 2861 7a29 (ax)(ay)(az) │ │ │ │ -000157f0: 0a54 6865 206c 6162 656c 7320 6172 6520 .The labels are │ │ │ │ -00015800: 6170 706c 6965 6420 7769 7468 20e2 8098 applied with ... │ │ │ │ -00015810: 5053 5472 6963 6b73 e280 9920 7370 6563 PSTricks... spec │ │ │ │ -00015820: 6961 6c20 6f62 6a65 6374 7320 6173 2075 ial objects as u │ │ │ │ -00015830: 7375 616c 2e0a 0a20 2020 466f 7220 7468 sual... For th │ │ │ │ -00015840: 6520 6865 6967 6874 2064 696d 656e 7369 e height dimensi │ │ │ │ -00015850: 6f6e 206d 6172 6b2c 2074 6865 2070 6f77 on mark, the pow │ │ │ │ -00015860: 6572 206f 6620 6166 6669 6e65 2061 7269 er of affine ari │ │ │ │ -00015870: 7468 6574 6963 2069 7320 7665 7279 0a68 thetic is very.h │ │ │ │ -00015880: 656c 7066 756c 2e0a 2020 6465 6620 6864 elpful.. def hd │ │ │ │ -00015890: 696d 5f72 6566 2075 6e69 7428 2870 3129 im_ref unit((p1) │ │ │ │ -000158a0: 202d 2028 4f29 2920 7468 656e 205b 5b73 - (O)) then [[s │ │ │ │ -000158b0: 6567 5f72 6f74 5d5d 5e32 0a20 2064 6566 eg_rot]]^2. def │ │ │ │ -000158c0: 2063 3020 2870 3029 2074 6865 6e20 7363 c0 (p0) then sc │ │ │ │ -000158d0: 616c 6528 5b4a 5d29 0a20 2064 6566 2068 ale([J]). def h │ │ │ │ -000158e0: 3030 2028 6330 2920 2b20 312e 3120 2a20 00 (c0) + 1.1 * │ │ │ │ -000158f0: 5b68 6469 6d5f 7265 665d 0a20 2064 6566 [hdim_ref]. def │ │ │ │ -00015900: 2068 3031 2028 6330 2920 2b20 312e 3920 h01 (c0) + 1.9 │ │ │ │ -00015910: 2a20 5b68 6469 6d5f 7265 665d 0a20 2064 * [hdim_ref]. d │ │ │ │ -00015920: 6566 2068 3032 2028 6330 2920 2b20 312e ef h02 (c0) + 1. │ │ │ │ -00015930: 3820 2a20 5b68 6469 6d5f 7265 665d 0a20 8 * [hdim_ref]. │ │ │ │ -00015940: 206c 696e 6528 6830 3029 2868 3031 290a line(h00)(h01). │ │ │ │ -00015950: 2020 6465 6620 6831 3020 284f 2920 2b20 def h10 (O) + │ │ │ │ -00015960: 312e 3620 2a20 5b68 6469 6d5f 7265 665d 1.6 * [hdim_ref] │ │ │ │ -00015970: 0a20 2064 6566 2068 3131 2028 4f29 202b . def h11 (O) + │ │ │ │ -00015980: 2031 2e39 202a 205b 6864 696d 5f72 6566 1.9 * [hdim_ref │ │ │ │ -00015990: 5d0a 2020 6465 6620 6831 3220 284f 2920 ]. def h12 (O) │ │ │ │ -000159a0: 2b20 312e 3820 2a20 5b68 6469 6d5f 7265 + 1.8 * [hdim_re │ │ │ │ -000159b0: 665d 0a20 206c 696e 6528 6831 3029 2868 f]. line(h10)(h │ │ │ │ -000159c0: 3131 290a 2020 6c69 6e65 5b61 7272 6f77 11). line[arrow │ │ │ │ -000159d0: 733d 3c2d 3e5d 2868 3032 2928 6831 3229 s=<->](h02)(h12) │ │ │ │ -000159e0: 0a20 2064 6566 2068 6d32 2028 2868 3032 . def hm2 ((h02 │ │ │ │ -000159f0: 2920 2d20 284f 2920 2b20 2868 3132 2920 ) - (O) + (h12) │ │ │ │ -00015a00: 2d20 284f 2929 202f 2032 202b 2028 4f29 - (O)) / 2 + (O) │ │ │ │ -00015a10: 0a20 2073 7065 6369 616c 7c5c 666f 6f74 . special|\foot │ │ │ │ -00015a20: 6e6f 7465 7369 7a65 5c72 7075 742a 2331 notesize\rput*#1 │ │ │ │ -00015a30: 7b24 6824 7d7c 2868 6d32 290a 2020 2054 {$h$}|(hm2). T │ │ │ │ -00015a40: 6865 2067 656e 6572 616c 2069 6465 6120 he general idea │ │ │ │ -00015a50: 656d 706c 6f79 6564 2068 6572 6520 6973 employed here is │ │ │ │ -00015a60: 2074 6f20 636f 6d70 7574 6520 6120 756e to compute a un │ │ │ │ -00015a70: 6974 2022 7265 6665 7265 6e63 650a 7665 it "reference.ve │ │ │ │ -00015a80: 6374 6f72 2220 7061 7261 6c6c 656c 2074 ctor" parallel t │ │ │ │ -00015a90: 6f20 7468 6520 787a 2d70 6c61 6e65 2069 o the xz-plane i │ │ │ │ -00015aa0: 6e20 7468 6520 6465 7369 7265 6420 6469 n the desired di │ │ │ │ -00015ab0: 7265 6374 696f 6e20 6f66 2074 6865 0a64 rection of the.d │ │ │ │ -00015ac0: 696d 656e 7369 6f6e 2066 726f 6d20 7468 imension from th │ │ │ │ -00015ad0: 6520 6f72 6967 696e 2e20 2054 6865 2074 e origin. The t │ │ │ │ -00015ae0: 7261 6e73 666f 726d 6174 696f 6e20 e280 ransformation .. │ │ │ │ -00015af0: 985b 5b73 6567 5f72 6f74 5d5d 5e32 e280 .[[seg_rot]]^2.. │ │ │ │ -00015b00: 9920 726f 7461 7465 730a 7477 6f20 7365 . rotates.two se │ │ │ │ -00015b10: 676d 656e 7473 2061 626f 7574 2074 6865 gments about the │ │ │ │ -00015b20: 2079 2d61 7869 732e 2020 5768 656e 2061 y-axis. When a │ │ │ │ -00015b30: 7070 6c69 6564 2074 6f20 e280 9828 7031 pplied to ...(p1 │ │ │ │ -00015b40: 2920 2d20 284f 29e2 8099 2c20 7468 650a ) - (O)..., the. │ │ │ │ -00015b50: 7265 7375 6c74 696e 6720 7665 6374 6f72 resulting vector │ │ │ │ -00015b60: 2070 6f69 6e74 7320 746f 2074 6865 2072 points to the r │ │ │ │ -00015b70: 6967 6874 2061 7320 7368 6f77 6e2e 2020 ight as shown. │ │ │ │ -00015b80: 496e 2074 6869 7320 6d61 6e6e 6572 2c20 In this manner, │ │ │ │ -00015b90: 7765 2063 616e 0a70 6963 6b20 616e 7920 we can.pick any │ │ │ │ -00015ba0: 7665 7274 6578 2061 7320 7468 6520 6c6f vertex as the lo │ │ │ │ -00015bb0: 6361 7469 6f6e 206f 6620 7468 6520 6865 cation of the he │ │ │ │ -00015bc0: 6967 6874 2064 696d 656e 7369 6f6e 206c ight dimension l │ │ │ │ -00015bd0: 696e 6573 2062 7920 7661 7279 696e 670a ines by varying. │ │ │ │ -00015be0: 7468 6520 6578 706f 6e65 6e74 206f 6620 the exponent of │ │ │ │ -00015bf0: e280 985b 5b73 6567 5f72 6f74 5d5d e280 ...[[seg_rot]].. │ │ │ │ -00015c00: 992e 2020 5468 6973 2069 7320 6f6e 6c79 .. This is only │ │ │ │ -00015c10: 206f 6e65 206f 6620 6d61 6e79 2070 6f73 one of many pos │ │ │ │ -00015c20: 7369 626c 650a 7374 7261 7465 6769 6573 sible.strategies │ │ │ │ -00015c30: 2e0a 0a20 2020 5468 6520 636f 6d70 7574 ... The comput │ │ │ │ -00015c40: 6174 696f 6e20 6f66 20e2 8098 686d 32e2 ation of ...hm2. │ │ │ │ -00015c50: 8099 2069 7320 6120 7573 6566 756c 2069 .. is a useful i │ │ │ │ -00015c60: 6469 6f6d 2066 6f72 2066 696e 6469 6e67 diom for finding │ │ │ │ -00015c70: 2074 6865 2063 656e 7472 6f69 640a 6f66 the centroid.of │ │ │ │ -00015c80: 2061 2073 6574 206f 6620 706f 696e 7473 a set of points │ │ │ │ -00015c90: 2e0a 0a20 2020 5468 6520 7477 6f20 7261 ... The two ra │ │ │ │ -00015ca0: 6469 7573 206d 6172 6b73 2061 7265 2064 dius marks are d │ │ │ │ -00015cb0: 6f6e 6520 7369 6d69 6c61 726c 792c 2073 one similarly, s │ │ │ │ -00015cc0: 6f20 7765 2070 7265 7365 6e74 2074 6865 o we present the │ │ │ │ -00015cd0: 2063 6f64 650a 7769 7468 6f75 7420 636f code.without co │ │ │ │ -00015ce0: 6d6d 656e 742e 0a20 2025 2072 6164 6975 mment.. % radiu │ │ │ │ -00015cf0: 7320 6d65 6173 7572 656d 656e 7420 6d61 s measurement ma │ │ │ │ -00015d00: 726b 730a 2020 6465 6620 6761 7020 5b30 rks. def gap [0 │ │ │ │ -00015d10: 2c2e 322c 305d 2020 2520 7573 6564 2074 ,.2,0] % used t │ │ │ │ -00015d20: 6f20 6372 6561 7465 2073 6d61 6c6c 2076 o create small v │ │ │ │ -00015d30: 6572 7469 6361 6c20 6761 7073 0a0a 2020 ertical gaps.. │ │ │ │ -00015d40: 2520 6669 7273 7420 7231 0a20 2064 6566 % first r1. def │ │ │ │ -00015d50: 2075 7031 205b 302c 332e 312c 305d 2025 up1 [0,3.1,0] % │ │ │ │ -00015d60: 2074 6963 6b20 7269 7365 7320 6162 6f76 tick rises abov │ │ │ │ -00015d70: 6520 6469 6d65 6e73 696f 6e20 6120 6c69 e dimension a li │ │ │ │ -00015d80: 7474 6c65 0a20 2064 6566 2072 3120 2828 ttle. def r1 (( │ │ │ │ -00015d90: 7031 2920 7468 656e 205b 5b73 6567 5f72 p1) then [[seg_r │ │ │ │ -00015da0: 6f74 5d5d 5e2d 3229 202b 205b 7570 315d ot]]^-2) + [up1] │ │ │ │ -00015db0: 0a20 2064 6566 2072 3163 2028 7231 2920 . def r1c (r1) │ │ │ │ -00015dc0: 7468 656e 2073 6361 6c65 285b 4a5d 290a then scale([J]). │ │ │ │ -00015dd0: 2020 6465 6620 7231 7420 2872 3129 202b def r1t (r1) + │ │ │ │ -00015de0: 205b 6761 705d 0a20 2064 6566 2072 3162 [gap]. def r1b │ │ │ │ -00015df0: 2028 2872 3174 2920 7468 656e 2073 6361 ((r1t) then sca │ │ │ │ -00015e00: 6c65 285b 312c 302c 315d 2929 202b 205b le([1,0,1])) + [ │ │ │ │ -00015e10: 6761 705d 0a20 206c 696e 655b 6172 726f gap]. line[arro │ │ │ │ -00015e20: 7773 3d3c 2d3e 5d28 7231 6329 2872 3129 ws=<->](r1c)(r1) │ │ │ │ -00015e30: 2020 2520 6469 6d65 6e73 696f 6e20 6c69 % dimension li │ │ │ │ -00015e40: 6e65 0a20 206c 696e 6528 7231 6229 2872 ne. line(r1b)(r │ │ │ │ -00015e50: 3174 2920 2020 2020 2020 2020 2020 2020 1t) │ │ │ │ -00015e60: 2520 7469 636b 0a20 2064 6566 2072 316d % tick. def r1m │ │ │ │ -00015e70: 2028 2872 3129 202d 2028 4f29 202b 2028 ((r1) - (O) + ( │ │ │ │ -00015e80: 7231 6329 202d 2028 4f29 2920 2f20 3220 r1c) - (O)) / 2 │ │ │ │ -00015e90: 2b20 284f 2920 2520 6c61 6265 6c20 706f + (O) % label po │ │ │ │ -00015ea0: 7369 7469 6f6e 0a20 2073 7065 6369 616c sition. special │ │ │ │ -00015eb0: 207c 5c66 6f6f 746e 6f74 6573 697a 655c |\footnotesize\ │ │ │ │ -00015ec0: 7270 7574 2a23 317b 2472 5f31 247d 7c28 rput*#1{$r_1$}|( │ │ │ │ -00015ed0: 7231 6d29 2020 2520 6c61 6265 6c0a 0a20 r1m) % label.. │ │ │ │ -00015ee0: 2025 2073 616d 6520 6472 696c 6c20 666f % same drill fo │ │ │ │ -00015ef0: 7220 7230 2c20 6275 7420 6d75 7374 2070 r r0, but must p │ │ │ │ -00015f00: 726f 6a65 6374 2064 6f77 6e20 6669 7273 roject down firs │ │ │ │ -00015f10: 740a 2020 6465 6620 7570 3020 5b30 2c32 t. def up0 [0,2 │ │ │ │ -00015f20: 2e37 2c30 5d0a 2020 6465 6620 7230 2028 .7,0]. def r0 ( │ │ │ │ -00015f30: 2870 3029 2074 6865 6e20 7363 616c 6528 (p0) then scale( │ │ │ │ -00015f40: 5b31 2c30 2c31 5d29 2074 6865 6e20 5b5b [1,0,1]) then [[ │ │ │ │ -00015f50: 7365 675f 726f 745d 5d5e 2d32 2920 2b20 seg_rot]]^-2) + │ │ │ │ -00015f60: 5b75 7030 5d0a 2020 6465 6620 7230 6320 [up0]. def r0c │ │ │ │ -00015f70: 2872 3029 2074 6865 6e20 7363 616c 6528 (r0) then scale( │ │ │ │ -00015f80: 5b4a 5d29 0a20 2064 6566 2072 3074 2028 [J]). def r0t ( │ │ │ │ -00015f90: 7230 2920 2b20 5b67 6170 5d0a 2020 6465 r0) + [gap]. de │ │ │ │ -00015fa0: 6620 7230 6220 2828 7030 2920 7468 656e f r0b ((p0) then │ │ │ │ -00015fb0: 205b 5b73 6567 5f72 6f74 5d5d 5e2d 3229 [[seg_rot]]^-2) │ │ │ │ -00015fc0: 202b 205b 6761 705d 0a20 206c 696e 655b + [gap]. line[ │ │ │ │ -00015fd0: 6172 726f 7773 3d3c 2d3e 5d28 7230 6329 arrows=<->](r0c) │ │ │ │ -00015fe0: 2872 3029 0a20 206c 696e 6528 7230 6229 (r0). line(r0b) │ │ │ │ -00015ff0: 2872 3074 290a 2020 6465 6620 7230 6d20 (r0t). def r0m │ │ │ │ -00016000: 2828 7230 2920 2d20 284f 2920 2b20 2872 ((r0) - (O) + (r │ │ │ │ -00016010: 3063 2920 2d20 284f 2929 202f 2032 202b 0c) - (O)) / 2 + │ │ │ │ -00016020: 2028 4f29 0a20 2073 7065 6369 616c 207c (O). special | │ │ │ │ -00016030: 5c66 6f6f 746e 6f74 6573 697a 655c 7270 \footnotesize\rp │ │ │ │ -00016040: 7574 2a23 317b 2472 5f30 247d 7c28 7230 ut*#1{$r_0$}|(r0 │ │ │ │ -00016050: 6d29 0a0a 2020 2054 6865 2073 6563 6f6e m).. The secon │ │ │ │ -00016060: 6420 6472 6177 696e 6720 7573 6573 2074 d drawing uses t │ │ │ │ -00016070: 6865 2073 616d 6520 7465 6368 6e69 7175 he same techniqu │ │ │ │ -00016080: 6573 2e20 204f 6e6c 7920 7468 6520 6d65 es. Only the me │ │ │ │ -00016090: 7468 6f64 2066 6f72 0a64 7261 7769 6e67 thod for.drawing │ │ │ │ -000160a0: 2074 6865 2065 6c6c 6970 7469 6361 6c20 the elliptical │ │ │ │ -000160b0: 6172 6320 6973 206e 6577 2e20 2048 6572 arc is new. Her │ │ │ │ -000160c0: 6520 6973 2074 6865 2063 6f64 652e 0a20 e is the code.. │ │ │ │ -000160d0: 2064 6566 206d 6964 2028 2870 3030 292d def mid ((p00)- │ │ │ │ -000160e0: 284f 292b 2870 3130 292d 284f 292b 2870 (O)+(p10)-(O)+(p │ │ │ │ -000160f0: 3131 292d 284f 292b 2870 3031 292d 284f 11)-(O)+(p01)-(O │ │ │ │ -00016100: 2929 2f34 2b28 4f29 0a20 2073 7065 6369 ))/4+(O). speci │ │ │ │ -00016110: 616c 7c5c 7270 7574 2331 7b5c 7073 6375 al|\rput#1{\pscu │ │ │ │ -00016120: 7374 6f6d 7b0a 2020 2020 5c73 6361 6c65 stom{. \scale │ │ │ │ -00016130: 7b31 2031 2e33 7d0a 2020 2020 5c70 7361 {1 1.3}. \psa │ │ │ │ -00016140: 7263 5b61 7272 6f77 6c65 6e67 7468 3d2e rc[arrowlength=. │ │ │ │ -00016150: 355d 7b2d 3e7d 7b2e 3235 7d7b 2d36 307d 5]{->}{.25}{-60} │ │ │ │ -00016160: 7b32 3430 7d7d 7d7c 0a20 2020 205b 6c61 {240}}}|. [la │ │ │ │ -00016170: 793d 6f76 6572 5d28 6d69 6429 0a57 6520 y=over](mid).We │ │ │ │ -00016180: 636f 756c 6420 6861 7665 2073 7765 7074 could have swept │ │ │ │ -00016190: 2061 2070 6f69 6e74 2074 6f20 6d61 6b65 a point to make │ │ │ │ -000161a0: 2074 6865 2061 7263 2077 6974 6820 e280 the arc with .. │ │ │ │ -000161b0: 9873 6b65 7463 68e2 8099 2c20 6275 7420 .sketch..., but │ │ │ │ -000161c0: 7573 696e 6720 610a e280 9850 5354 7269 using a....PSTri │ │ │ │ -000161d0: 636b 73e2 8099 2063 7573 746f 6d20 6772 cks... custom gr │ │ │ │ -000161e0: 6170 6869 6320 7761 7320 7369 6d70 6c65 aphic was simple │ │ │ │ -000161f0: 722e 2020 4167 6169 6e20 7765 2063 6f6d r. Again we com │ │ │ │ -00016200: 7075 7465 6420 7468 6520 6365 6e74 726f puted the centro │ │ │ │ -00016210: 6964 0a6f 6620 7468 6520 7175 6164 7269 id.of the quadri │ │ │ │ -00016220: 6c61 7465 7261 6c20 6279 2061 7665 7261 lateral by avera │ │ │ │ -00016230: 6769 6e67 2070 6f69 6e74 732e 2020 4e6f ging points. No │ │ │ │ -00016240: 7465 2074 6861 7420 7363 616c 696e 6720 te that scaling │ │ │ │ -00016250: 696e 0a50 6f73 7473 6372 6970 7420 6469 in.Postscript di │ │ │ │ -00016260: 7374 6f72 7473 2074 6865 2061 7272 6f77 storts the arrow │ │ │ │ -00016270: 6865 6164 2c20 6275 7420 696e 2074 6869 head, but in thi │ │ │ │ -00016280: 7320 6361 7365 2074 6865 2064 6973 746f s case the disto │ │ │ │ -00016290: 7274 696f 6e0a 6163 7475 616c 6c79 206c rtion.actually l │ │ │ │ -000162a0: 6f6f 6b73 2062 6574 7465 7220 696e 2074 ooks better in t │ │ │ │ -000162b0: 6865 2070 726f 6a65 6374 696f 6e20 6f66 he projection of │ │ │ │ -000162c0: 2074 6865 2073 6c61 6e74 6564 2066 6163 the slanted fac │ │ │ │ -000162d0: 652e 2020 4120 e280 9873 6b65 7463 68e2 e. A ...sketch. │ │ │ │ -000162e0: 8099 0a61 7272 6f77 6865 6164 2077 6f75 ...arrowhead wou │ │ │ │ -000162f0: 6c64 206e 6f74 2068 6176 6520 6265 656e ld not have been │ │ │ │ -00016300: 2064 6973 746f 7274 6564 2e0a 0a20 2020 distorted... │ │ │ │ -00016310: 5468 6520 636f 6d70 6c65 7465 2063 6f64 The complete cod │ │ │ │ -00016320: 6520 666f 7220 7468 6973 2065 7861 6d70 e for this examp │ │ │ │ -00016330: 6c65 2c20 7768 6963 6820 6472 6177 7320 le, which draws │ │ │ │ -00016340: 6569 7468 6572 2066 6967 7572 650a 6465 either figure.de │ │ │ │ -00016350: 7065 6e64 696e 6720 6f6e 2074 6865 2064 pending on the d │ │ │ │ -00016360: 6566 696e 6974 696f 6e20 6f66 2074 6865 efinition of the │ │ │ │ -00016370: 2074 6167 20e2 8098 3c6c 6162 656c 6564 tag ......, is include │ │ │ │ -00016390: 6420 696e 2074 6865 0ae2 8098 736b 6574 d in the....sket │ │ │ │ -000163a0: 6368 e280 9920 6469 7374 7269 6275 7469 ch... distributi │ │ │ │ -000163b0: 6f6e 2069 6e20 7468 6520 6669 6c65 20e2 on in the file . │ │ │ │ -000163c0: 8098 7472 756e 6361 7465 6463 6f6e 652e ..truncatedcone. │ │ │ │ -000163d0: 736b e280 992e 0a0a 1f0a 4669 6c65 3a20 sk........File: │ │ │ │ -000163e0: 736b 6574 6368 2e69 6e66 6f2c 2020 4e6f sketch.info, No │ │ │ │ -000163f0: 6465 3a20 4120 6869 6572 6172 6368 6963 de: A hierarchic │ │ │ │ -00016400: 616c 206d 6f64 656c 2c20 204e 6578 743a al model, Next: │ │ │ │ -00016410: 2043 6176 6561 7473 2c20 2050 7265 763a Caveats, Prev: │ │ │ │ -00016420: 2041 2074 6563 686e 6963 616c 2064 7261 A technical dra │ │ │ │ -00016430: 7769 6e67 2c20 2055 703a 2042 7569 6c64 wing, Up: Build │ │ │ │ -00016440: 696e 6720 6120 6472 6177 696e 670a 0a34 ing a drawing..4 │ │ │ │ -00016450: 2e33 2041 2068 6965 7261 7263 6869 6361 .3 A hierarchica │ │ │ │ -00016460: 6c20 6d6f 6465 6c0a 3d3d 3d3d 3d3d 3d3d l model.======== │ │ │ │ -00016470: 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d ================ │ │ │ │ -00016480: 0a0a 5768 696c 6520 e280 9873 6b65 7463 ..While ...sketc │ │ │ │ -00016490: 68e2 8099 2077 6173 206e 6576 6572 206d h... was never m │ │ │ │ -000164a0: 6561 6e74 2074 6f20 6265 2061 2067 656f eant to be a geo │ │ │ │ -000164b0: 6d65 7472 6963 206d 6f64 656c 696e 6720 metric modeling │ │ │ │ -000164c0: 6c61 6e67 7561 6765 2c20 6974 0a63 6f6d language, it.com │ │ │ │ -000164d0: 6573 2066 6169 726c 7920 636c 6f73 652e es fairly close. │ │ │ │ -000164e0: 2020 5468 6520 666f 6c6c 6f77 696e 6720 The following │ │ │ │ -000164f0: 6578 616d 706c 6520 7075 7473 2061 6c6c example puts all │ │ │ │ -00016500: 2077 6520 6861 7665 2073 6565 6e20 746f we have seen to │ │ │ │ -00016510: 2077 6f72 6b0a 696e 2061 2076 6572 7920 work.in a very │ │ │ │ -00016520: 7369 6d70 6c65 206d 6f64 656c 206f 6620 simple model of │ │ │ │ -00016530: 7468 6520 6875 6d61 6e20 6861 6e64 2e20 the human hand. │ │ │ │ -00016540: 2053 7461 7274 2062 7920 7377 6565 7069 Start by sweepi │ │ │ │ -00016550: 6e67 2061 206c 696e 6520 746f 0a6d 616b ng a line to.mak │ │ │ │ -00016560: 6520 6120 7472 756e 6361 7465 6420 636f e a truncated co │ │ │ │ -00016570: 6e65 2c20 7768 6963 6820 7769 6c6c 2062 ne, which will b │ │ │ │ -00016580: 6520 636f 7069 6564 206f 7665 7220 616e e copied over an │ │ │ │ -00016590: 6420 6f76 6572 2061 6761 696e 2074 6f20 d over again to │ │ │ │ -000165a0: 6d61 6b65 0a74 6865 2073 6567 6d65 6e74 make.the segment │ │ │ │ -000165b0: 7320 6f66 2066 696e 6765 7273 2e0a 2020 s of fingers.. │ │ │ │ -000165c0: 6465 6620 4f20 2830 2c30 2c30 2920 2520 def O (0,0,0) % │ │ │ │ -000165d0: 6f72 6967 696e 0a20 2064 6566 2049 205b origin. def I [ │ │ │ │ -000165e0: 312c 302c 305d 2064 6566 204a 205b 302c 1,0,0] def J [0, │ │ │ │ -000165f0: 312c 305d 2064 6566 204b 205b 302c 302c 1,0] def K [0,0, │ │ │ │ -00016600: 315d 2025 2063 616e 6f6e 6963 616c 2075 1] % canonical u │ │ │ │ -00016610: 6e69 7420 7665 6374 6f72 730a 2020 6465 nit vectors. de │ │ │ │ -00016620: 6620 7365 676d 656e 7420 7b0a 2020 2020 f segment {. │ │ │ │ -00016630: 6465 6620 6e5f 6661 6365 7320 380a 2020 def n_faces 8. │ │ │ │ -00016640: 2020 7377 6565 7020 7b20 6e5f 6661 6365 sweep { n_face │ │ │ │ -00016650: 733c 3e2c 2072 6f74 6174 6528 3336 3020 s<>, rotate(360 │ │ │ │ -00016660: 2f20 6e5f 6661 6365 732c 205b 4a5d 2920 / n_faces, [J]) │ │ │ │ -00016670: 7d20 0a20 2020 2020 206c 696e 6528 7072 } . line(pr │ │ │ │ -00016680: 6f78 696d 616c 5f72 6164 2c20 3029 2864 oximal_rad, 0)(d │ │ │ │ -00016690: 6973 7461 6c5f 7261 642c 2064 6973 7461 istal_rad, dista │ │ │ │ -000166a0: 6c5f 6c65 6e29 0a20 207d 0a49 6e20 6861 l_len). }.In ha │ │ │ │ -000166b0: 6e64 2061 6e61 746f 6d79 2c20 5f64 6973 nd anatomy, _dis │ │ │ │ -000166c0: 7461 6c5f 2069 7320 2261 7420 7468 6520 tal_ is "at the │ │ │ │ -000166d0: 7469 7022 2061 6e64 205f 7072 6f78 696d tip" and _proxim │ │ │ │ -000166e0: 616c 5f20 6973 2022 696e 2074 6865 2061 al_ is "in the a │ │ │ │ -000166f0: 7265 610a 6f66 2074 6865 2070 616c 6d2e rea.of the palm. │ │ │ │ -00016700: 2220 2057 6520 6861 7665 206f 6d69 7474 " We have omitt │ │ │ │ -00016710: 6564 2061 6c6c 2074 6865 2073 6361 6c61 ed all the scala │ │ │ │ -00016720: 7220 636f 6e73 7461 6e74 732e 2020 596f r constants. Yo │ │ │ │ -00016730: 7520 6361 6e20 6669 6e64 0a74 6865 6d20 u can find.them │ │ │ │ -00016740: 696e 20e2 8098 6861 6e64 2e73 6be2 8099 in ...hand.sk... │ │ │ │ -00016750: 2c20 7768 6963 6820 6973 2070 726f 7669 , which is provi │ │ │ │ -00016760: 6465 6420 696e 2074 6865 20e2 8098 736b ded in the ...sk │ │ │ │ -00016770: 6574 6368 e280 9920 6469 7374 7269 6275 etch... distribu │ │ │ │ -00016780: 7469 6f6e 2e0a 0a20 2020 5765 2061 6c73 tion... We als │ │ │ │ -00016790: 6f20 6e65 6564 2061 2070 726f 746f 7479 o need a prototy │ │ │ │ -000167a0: 7069 6361 6c20 7370 6865 7265 2074 6f20 pical sphere to │ │ │ │ -000167b0: 7573 6520 666f 7220 7468 6520 6a6f 696e use for the join │ │ │ │ -000167c0: 7473 2074 6865 6d73 656c 7665 732e 0a20 ts themselves.. │ │ │ │ -000167d0: 2064 6566 206a 6f69 6e74 5f73 7068 6572 def joint_spher │ │ │ │ -000167e0: 6520 7b0a 2020 2020 6465 6620 6e5f 6a6f e {. def n_jo │ │ │ │ -000167f0: 696e 745f 6661 6365 7320 380a 2020 2020 int_faces 8. │ │ │ │ -00016800: 7377 6565 7020 5b66 696c 6c63 6f6c 6f72 sweep [fillcolor │ │ │ │ -00016810: 3d72 6564 5d20 7b20 6e5f 6a6f 696e 745f =red] { n_joint_ │ │ │ │ -00016820: 6661 6365 732c 2072 6f74 6174 6528 3336 faces, rotate(36 │ │ │ │ -00016830: 3020 2f20 6e5f 6a6f 696e 745f 6661 6365 0 / n_joint_face │ │ │ │ -00016840: 732c 205b 4a5d 2920 7d0a 2020 2020 2020 s, [J]) }. │ │ │ │ -00016850: 7377 6565 7020 7b20 6e5f 6a6f 696e 745f sweep { n_joint_ │ │ │ │ -00016860: 6661 6365 732c 2072 6f74 6174 6528 3138 faces, rotate(18 │ │ │ │ -00016870: 3020 2f20 6e5f 6a6f 696e 745f 6661 6365 0 / n_joint_face │ │ │ │ -00016880: 7329 207d 200a 2020 2020 2020 2020 2830 s) } . (0 │ │ │ │ -00016890: 2c20 2d6a 6f69 6e74 5f72 6164 290a 2020 , -joint_rad). │ │ │ │ -000168a0: 7d0a 0a20 2020 5765 276c 6c20 6e6f 7720 }.. We'll now │ │ │ │ -000168b0: 6465 7369 676e 2074 6865 2069 6e64 6578 design the index │ │ │ │ -000168c0: 2066 696e 6765 7220 286e 756d 6265 7220 finger (number │ │ │ │ -000168d0: 3120 696e 206f 7572 206e 6f74 6174 696f 1 in our notatio │ │ │ │ -000168e0: 6e61 6c0a 636f 6e76 656e 7469 6f6e 3b20 nal.convention; │ │ │ │ -000168f0: 6669 6e67 6572 2030 2069 7320 7468 6520 finger 0 is the │ │ │ │ -00016900: 7468 756d 6229 2e20 2054 6865 2064 6973 thumb). The dis │ │ │ │ -00016910: 7461 6c20 726f 7461 7469 6f6e 2066 6f72 tal rotation for │ │ │ │ -00016920: 2074 6865 2066 696e 6765 720a 6170 706c the finger.appl │ │ │ │ -00016930: 6965 7320 6f6e 6c79 2074 6f20 7468 6520 ies only to the │ │ │ │ -00016940: 7469 702c 2073 6f20 7765 2064 6566 696e tip, so we defin │ │ │ │ -00016950: 6520 7468 6520 666f 6c6c 6f77 696e 672e e the following. │ │ │ │ -00016960: 0a20 2064 6566 2064 6973 7461 6c5f 3120 . def distal_1 │ │ │ │ -00016970: 7b0a 2020 2020 7075 7420 7b20 7472 616e {. put { tran │ │ │ │ -00016980: 736c 6174 6528 6a6f 696e 745f 6761 7020 slate(joint_gap │ │ │ │ -00016990: 2a20 6a6f 696e 745f 7261 6420 2a20 5b4a * joint_rad * [J │ │ │ │ -000169a0: 5d29 200a 2020 2020 2020 2020 2020 7468 ]) . th │ │ │ │ -000169b0: 656e 2072 6f74 6174 6528 6469 7374 616c en rotate(distal │ │ │ │ -000169c0: 5f31 5f72 6f74 2c20 5b49 5d29 200a 2020 _1_rot, [I]) . │ │ │ │ -000169d0: 2020 2020 2020 2020 7468 656e 2074 7261 then tra │ │ │ │ -000169e0: 6e73 6c61 7465 2828 6469 7374 616c 5f6c nslate((distal_l │ │ │ │ -000169f0: 656e 202b 206a 6f69 6e74 5f67 6170 202a en + joint_gap * │ │ │ │ -00016a00: 206a 6f69 6e74 5f72 6164 2920 2a20 5b4a joint_rad) * [J │ │ │ │ -00016a10: 5d29 207d 0a20 2020 2020 207b 7365 676d ]) }. {segm │ │ │ │ -00016a20: 656e 747d 0a20 2020 2070 7574 207b 2072 ent}. put { r │ │ │ │ -00016a30: 6f74 6174 6528 6469 7374 616c 5f31 5f72 otate(distal_1_r │ │ │ │ -00016a40: 6f74 202f 2032 2c20 5b49 5d29 0a20 2020 ot / 2, [I]). │ │ │ │ -00016a50: 2020 2020 2020 2074 6865 6e20 7472 616e then tran │ │ │ │ -00016a60: 736c 6174 6528 2864 6973 7461 6c5f 6c65 slate((distal_le │ │ │ │ -00016a70: 6e20 2b20 6a6f 696e 745f 6761 7020 2a20 n + joint_gap * │ │ │ │ -00016a80: 6a6f 696e 745f 7261 6429 202a 205b 4a5d joint_rad) * [J] │ │ │ │ -00016a90: 2920 7d20 0a20 2020 2020 207b 6a6f 696e ) } . {join │ │ │ │ -00016aa0: 745f 7370 6865 7265 7d0a 2020 2020 7075 t_sphere}. pu │ │ │ │ -00016ab0: 7420 7b20 7363 616c 6528 205b 4a5d 202b t { scale( [J] + │ │ │ │ -00016ac0: 2070 726f 7869 6d61 6c5f 6469 7374 616c proximal_distal │ │ │ │ -00016ad0: 5f72 6174 696f 202a 2028 5b49 5d2b 5b4b _ratio * ([I]+[K │ │ │ │ -00016ae0: 5d29 2029 207d 0a20 2020 2020 207b 7365 ]) ) }. {se │ │ │ │ -00016af0: 676d 656e 747d 0a20 207d 2020 0a54 6865 gment}. } .The │ │ │ │ -00016b00: 2069 6465 6e74 6966 6965 7273 2068 6572 identifiers her │ │ │ │ -00016b10: 6520 6172 6520 666f 7220 7369 7a65 2061 e are for size a │ │ │ │ -00016b20: 6e64 206c 6f63 6174 696f 6e20 636f 6e73 nd location cons │ │ │ │ -00016b30: 7461 6e74 732e 2020 5468 6520 6578 6365 tants. The exce │ │ │ │ -00016b40: 7074 696f 6e0a 6973 20e2 8098 6469 7374 ption.is ...dist │ │ │ │ -00016b50: 616c 5f72 6f74 5f31 e280 992e 2020 5468 al_rot_1.... Th │ │ │ │ -00016b60: 6973 2072 6f74 6174 696f 6e20 7061 7261 is rotation para │ │ │ │ -00016b70: 6d65 7465 7220 6d6f 6465 6c73 2074 6865 meter models the │ │ │ │ -00016b80: 2066 6c65 7869 6e67 206f 6620 7468 650a flexing of the. │ │ │ │ -00016b90: 6669 6e67 6572 2074 6970 2e20 2054 6865 finger tip. The │ │ │ │ -00016ba0: 2066 6972 7374 20e2 8098 7075 74e2 8099 first ...put... │ │ │ │ -00016bb0: 206d 616b 6573 2061 2063 6f70 7920 6f66 makes a copy of │ │ │ │ -00016bc0: 2074 6865 2066 696e 6765 7220 7365 676d the finger segm │ │ │ │ -00016bd0: 656e 7420 7468 6174 2069 730a 7472 616e ent that is.tran │ │ │ │ -00016be0: 736c 6174 6564 2075 7077 6172 6420 6a75 slated upward ju │ │ │ │ -00016bf0: 7374 2066 6172 2065 6e6f 7567 6820 746f st far enough to │ │ │ │ -00016c00: 206d 616b 6520 726f 6f6d 2066 6f72 2074 make room for t │ │ │ │ -00016c10: 6865 2073 7068 6572 6963 616c 206a 6f69 he spherical joi │ │ │ │ -00016c20: 6e74 2e0a 5468 656e 2069 7420 6170 706c nt..Then it appl │ │ │ │ -00016c30: 6965 7320 7468 6520 6469 7374 616c 2072 ies the distal r │ │ │ │ -00016c40: 6f74 6174 696f 6e2e 2020 4669 6e61 6c6c otation. Finall │ │ │ │ -00016c50: 7920 6974 2074 7261 6e73 6c61 7465 7320 y it translates │ │ │ │ -00016c60: 7468 6520 7768 6f6c 650a 6173 7365 6d62 the whole.assemb │ │ │ │ -00016c70: 6c79 2075 7077 6172 6420 6167 6169 6e20 ly upward again │ │ │ │ -00016c80: 746f 206d 616b 6520 726f 6f6d 2066 6f72 to make room for │ │ │ │ -00016c90: 2074 6865 206d 6964 646c 6520 7068 6c61 the middle phla │ │ │ │ -00016ca0: 6e67 6573 2028 7468 6520 6e65 7874 0a62 nges (the next.b │ │ │ │ -00016cb0: 6f6e 6520 746f 7761 7264 2074 6865 2070 one toward the p │ │ │ │ -00016cc0: 616c 6d29 2e20 2054 6865 2073 6563 6f6e alm). The secon │ │ │ │ -00016cd0: 6420 e280 9870 7574 e280 9920 706f 7369 d ...put... posi │ │ │ │ -00016ce0: 7469 6f6e 7320 7468 6520 7370 6865 7265 tions the sphere │ │ │ │ -00016cf0: 2e20 2054 6865 7265 2069 730a 6120 726f . There is.a ro │ │ │ │ -00016d00: 7461 7469 6f6e 2074 6f20 706c 6163 6520 tation to place │ │ │ │ -00016d10: 7468 6520 6772 6964 206f 6e20 7468 6520 the grid on the │ │ │ │ -00016d20: 7370 6865 7265 2073 7572 6661 6365 2061 sphere surface a │ │ │ │ -00016d30: 7420 616e 206e 6963 6520 616e 676c 652c t an nice angle, │ │ │ │ -00016d40: 0a74 6865 6e20 6120 7472 616e 736c 6174 .then a translat │ │ │ │ -00016d50: 696f 6e20 746f 2074 6865 2062 6173 6520 ion to the base │ │ │ │ -00016d60: 6f66 2074 6865 2064 6973 7461 6c20 7068 of the distal ph │ │ │ │ -00016d70: 6c61 6e67 6573 2c20 7768 6963 6820 6973 langes, which is │ │ │ │ -00016d80: 2061 6c73 6f0a 6365 6e74 6572 206f 6620 also.center of │ │ │ │ -00016d90: 6974 7320 726f 7461 7469 6f6e 2e20 2046 its rotation. F │ │ │ │ -00016da0: 696e 616c 6c79 2c20 7468 6520 6c61 7374 inally, the last │ │ │ │ -00016db0: 20e2 8098 7075 74e2 8099 2070 6f73 6974 ...put... posit │ │ │ │ -00016dc0: 696f 6e73 2074 6865 206d 6964 646c 650a ions the middle. │ │ │ │ -00016dd0: 7365 676d 656e 7420 6974 7365 6c66 2e0a segment itself.. │ │ │ │ -00016de0: 0a20 2020 5468 6520 6d69 6464 6c65 206a . The middle j │ │ │ │ -00016df0: 6f69 6e74 2069 7320 7468 6520 6e65 7874 oint is the next │ │ │ │ -00016e00: 206f 6e65 2064 6f77 6e2c 2077 6974 6820 one down, with │ │ │ │ -00016e10: 726f 7461 7469 6f6e 2061 6e67 6c65 0ae2 rotation angle.. │ │ │ │ -00016e20: 8098 6d69 6464 6c65 5f72 6f74 5f31 e280 ..middle_rot_1.. │ │ │ │ -00016e30: 992e 2020 5768 656e 2074 6869 7320 616e .. When this an │ │ │ │ -00016e40: 676c 6520 6368 616e 6765 732c 2077 6520 gle changes, we │ │ │ │ -00016e50: 6e65 6564 2061 6c6c 2074 6865 206f 626a need all the obj │ │ │ │ -00016e60: 6563 7473 2069 6e0a e280 9864 6973 7461 ects in....dista │ │ │ │ -00016e70: 6c5f 31e2 8099 2074 6f20 726f 7461 7465 l_1... to rotate │ │ │ │ -00016e80: 2061 7320 6120 756e 6974 2e20 2054 6869 as a unit. Thi │ │ │ │ -00016e90: 7320 6973 2074 6865 2072 6561 736f 6e69 s is the reasoni │ │ │ │ -00016ea0: 6e67 2062 6568 696e 6420 7468 6520 6e65 ng behind the ne │ │ │ │ -00016eb0: 7874 0a64 6566 696e 6974 696f 6e2e 0a20 xt.definition.. │ │ │ │ -00016ec0: 2064 6566 2066 696e 6765 725f 3120 7b0a def finger_1 {. │ │ │ │ -00016ed0: 2020 2020 7075 7420 7b20 7472 616e 736c put { transl │ │ │ │ -00016ee0: 6174 6528 6a6f 696e 745f 6761 7020 2a20 ate(joint_gap * │ │ │ │ -00016ef0: 6a6f 696e 745f 7261 6420 2a20 5b4a 5d29 joint_rad * [J]) │ │ │ │ -00016f00: 0a20 2020 2020 2020 2020 2074 6865 6e20 . then │ │ │ │ -00016f10: 726f 7461 7465 286d 6964 646c 655f 315f rotate(middle_1_ │ │ │ │ -00016f20: 726f 742c 205b 495d 290a 2020 2020 2020 rot, [I]). │ │ │ │ -00016f30: 2020 2020 7468 656e 2074 7261 6e73 6c61 then transla │ │ │ │ -00016f40: 7465 2828 6d69 6464 6c65 5f72 6174 696f te((middle_ratio │ │ │ │ -00016f50: 202a 2064 6973 7461 6c5f 6c65 6e20 2b20 * distal_len + │ │ │ │ -00016f60: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ -00016f70: 2020 2020 2020 2020 2020 206a 6f69 6e74 joint │ │ │ │ -00016f80: 5f67 6170 202a 206a 6f69 6e74 5f72 6164 _gap * joint_rad │ │ │ │ -00016f90: 2920 2a20 5b4a 5d29 207d 0a20 2020 2020 ) * [J]) }. │ │ │ │ -00016fa0: 207b 6469 7374 616c 5f31 7d0a 2020 2020 {distal_1}. │ │ │ │ -00016fb0: 7075 7420 7b20 7363 616c 6528 7072 6f78 put { scale(prox │ │ │ │ -00016fc0: 696d 616c 5f64 6973 7461 6c5f 7261 7469 imal_distal_rati │ │ │ │ -00016fd0: 6f29 0a20 2020 2020 2020 2020 2074 6865 o). the │ │ │ │ -00016fe0: 6e20 726f 7461 7465 286d 6964 646c 655f n rotate(middle_ │ │ │ │ -00016ff0: 315f 726f 7420 2f20 322c 205b 495d 290a 1_rot / 2, [I]). │ │ │ │ -00017000: 2020 2020 2020 2020 2020 7468 656e 2074 then t │ │ │ │ -00017010: 7261 6e73 6c61 7465 2828 6d69 6464 6c65 ranslate((middle │ │ │ │ -00017020: 5f72 6174 696f 202a 2064 6973 7461 6c5f _ratio * distal_ │ │ │ │ -00017030: 6c65 6e20 2b20 0a20 2020 2020 2020 2020 len + . │ │ │ │ -00017040: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00017050: 206a 6f69 6e74 5f67 6170 202a 206a 6f69 joint_gap * joi │ │ │ │ -00017060: 6e74 5f72 6164 2920 2a20 5b4a 5d29 207d nt_rad) * [J]) } │ │ │ │ -00017070: 200a 2020 2020 2020 7b6a 6f69 6e74 5f73 . {joint_s │ │ │ │ -00017080: 7068 6572 657d 0a20 2020 2070 7574 207b phere}. put { │ │ │ │ -00017090: 2073 6361 6c65 2820 6d69 6464 6c65 5f72 scale( middle_r │ │ │ │ -000170a0: 6174 696f 202a 205b 4a5d 202b 200a 2020 atio * [J] + . │ │ │ │ -000170b0: 2020 2020 2020 2020 2020 2020 2020 2070 p │ │ │ │ -000170c0: 726f 7869 6d61 6c5f 6469 7374 616c 5f72 roximal_distal_r │ │ │ │ -000170d0: 6174 696f 5e32 202a 2028 5b49 5d2b 5b4b atio^2 * ([I]+[K │ │ │ │ -000170e0: 5d29 2029 207d 0a20 2020 2020 207b 7365 ]) ) }. {se │ │ │ │ -000170f0: 676d 656e 747d 0a20 207d 0a54 6869 7320 gment}. }.This │ │ │ │ -00017100: 6c6f 6f6b 7320 7665 7279 2073 696d 696c looks very simil │ │ │ │ -00017110: 6172 2074 6f20 7468 6520 7072 6576 696f ar to the previo │ │ │ │ -00017120: 7573 2064 6566 696e 6974 696f 6e2c 2061 us definition, a │ │ │ │ -00017130: 6e64 2069 7420 6973 2e20 2054 6865 0a69 nd it is. The.i │ │ │ │ -00017140: 6d70 6f72 7461 6e74 2064 6966 6665 7265 mportant differe │ │ │ │ -00017150: 6e63 6520 6973 2074 6861 7420 7261 7468 nce is that rath │ │ │ │ -00017160: 6572 2074 6861 6e20 706f 7369 7469 6f6e er than position │ │ │ │ -00017170: 696e 6720 616e 6420 726f 7461 7469 6e67 ing and rotating │ │ │ │ -00017180: 2061 0a73 696e 676c 6520 7365 676d 656e a.single segmen │ │ │ │ -00017190: 742c 2077 6520 706f 7369 7469 6f6e 2061 t, we position a │ │ │ │ -000171a0: 6e64 2072 6f74 6174 6520 7468 6520 656e nd rotate the en │ │ │ │ -000171b0: 7469 7265 2022 6173 7365 6d62 6c79 2220 tire "assembly" │ │ │ │ -000171c0: 6465 6669 6e65 6420 6173 0ae2 8098 6469 defined as....di │ │ │ │ -000171d0: 7374 616c 5f31 e280 992e 2020 5468 6520 stal_1.... The │ │ │ │ -000171e0: 7265 7374 2069 7320 6a75 7374 2061 7269 rest is just ari │ │ │ │ -000171f0: 7468 6d65 7469 6320 746f 2063 6f6d 7075 thmetic to compu │ │ │ │ -00017200: 7465 2073 697a 6573 2061 6e64 2070 6f73 te sizes and pos │ │ │ │ -00017210: 6974 696f 6e73 0a74 6861 7420 6c6f 6f6b itions.that look │ │ │ │ -00017220: 206e 6963 652e 2020 5468 6520 6c61 7374 nice. The last │ │ │ │ -00017230: 20e2 8098 7075 74e2 8099 2070 6c61 6365 ...put... place │ │ │ │ -00017240: 7320 616e 2061 7070 726f 7072 6961 7465 s an appropriate │ │ │ │ -00017250: 6c79 2073 6861 7065 6420 7365 676d 656e ly shaped segmen │ │ │ │ -00017260: 740a 7468 6174 2069 7320 7468 6520 5f70 t.that is the _p │ │ │ │ -00017270: 726f 7869 6d61 6c20 7068 6c61 6e67 6573 roximal phlanges │ │ │ │ -00017280: 5f2c 2074 6865 2062 6f6e 6520 7468 6174 _, the bone that │ │ │ │ -00017290: 206a 6f69 6e73 2074 6865 2070 616c 6d20 joins the palm │ │ │ │ -000172a0: 6f66 2074 6865 0a68 616e 642e 2020 5468 of the.hand. Th │ │ │ │ -000172b0: 6973 2063 6f6d 706c 6574 6573 2074 6865 is completes the │ │ │ │ -000172c0: 2066 696e 6765 7220 6974 7365 6c66 2e0a finger itself.. │ │ │ │ -000172d0: 0a20 2020 416c 6c20 7468 6520 6f74 6865 . All the othe │ │ │ │ -000172e0: 7220 6669 6e67 6572 7320 6172 6520 6465 r fingers are de │ │ │ │ -000172f0: 7363 7269 6265 6420 6964 656e 7469 6361 scribed identica │ │ │ │ -00017300: 6c6c 7920 746f 2074 6869 7320 6f6e 652e lly to this one. │ │ │ │ -00017310: 2020 5765 0a61 6363 6f75 6e74 2066 6f72 We.account for │ │ │ │ -00017320: 2074 6865 2066 6163 7420 7468 6174 2072 the fact that r │ │ │ │ -00017330: 6561 6c20 6669 6e67 6572 7320 6172 6520 eal fingers are │ │ │ │ -00017340: 6469 6666 6572 656e 7420 7369 7a65 7320 different sizes │ │ │ │ -00017350: 696e 2074 6865 206e 6578 740a 7374 6570 in the next.step │ │ │ │ -00017360: 2c20 7768 6963 6820 6973 2074 6f20 6275 , which is to bu │ │ │ │ -00017370: 696c 6420 7468 6520 656e 7469 7265 2068 ild the entire h │ │ │ │ -00017380: 616e 642e 0a0a 2020 2054 6865 20e2 8098 and... The ... │ │ │ │ -00017390: 6861 6e64 e280 9920 6465 6669 6e69 7469 hand... definiti │ │ │ │ -000173a0: 6f6e 2074 6861 7420 666f 6c6c 6f77 7320 on that follows │ │ │ │ -000173b0: 696e 636c 7564 6573 2061 2073 6563 7469 includes a secti │ │ │ │ -000173c0: 6f6e 2066 6f72 2065 6163 680a 6669 6e67 on for each.fing │ │ │ │ -000173d0: 6572 2e20 2057 6527 6c6c 2063 6f6e 7469 er. We'll conti │ │ │ │ -000173e0: 6e75 6520 7769 7468 2066 696e 6765 7220 nue with finger │ │ │ │ -000173f0: 3120 616e 6420 6f6d 6974 2061 6c6c 2074 1 and omit all t │ │ │ │ -00017400: 6865 206f 7468 6572 732e 2020 284f 6620 he others. (Of │ │ │ │ -00017410: 6e6f 7465 0a69 7320 7468 6174 2074 6865 note.is that the │ │ │ │ -00017420: 2074 6875 6d62 206e 6565 6473 2073 6c69 thumb needs sli │ │ │ │ -00017430: 6768 746c 7920 7370 6563 6961 6c20 7472 ghtly special tr │ │ │ │ -00017440: 6561 746d 656e 742d 2d61 6e20 6578 7472 eatment--an extr │ │ │ │ -00017450: 6120 726f 7461 7469 6f6e 2074 6f0a 6163 a rotation to.ac │ │ │ │ -00017460: 636f 756e 7420 666f 7220 6974 7320 6f70 count for its op │ │ │ │ -00017470: 706f 7369 6e67 2061 6e67 6c65 2e20 2054 posing angle. T │ │ │ │ -00017480: 6869 7320 6973 2063 6c65 6172 2069 6e20 his is clear in │ │ │ │ -00017490: 7468 6520 6675 6c6c 2073 6f75 7263 6520 the full source │ │ │ │ -000174a0: 636f 6465 2e29 0a4e 6f74 2073 7572 7072 code.).Not surpr │ │ │ │ -000174b0: 6973 696e 676c 792c 2074 6865 20e2 8098 isingly, the ... │ │ │ │ -000174c0: 6861 6e64 e280 9920 6465 6669 6e69 7469 hand... definiti │ │ │ │ -000174d0: 6f6e 206c 6f6f 6b73 2076 6572 7920 6d75 on looks very mu │ │ │ │ -000174e0: 6368 206c 696b 6520 7468 650a 7072 6576 ch like the.prev │ │ │ │ -000174f0: 696f 7573 2074 776f 2e20 2049 7420 7368 ious two. It sh │ │ │ │ -00017500: 6f75 6c64 2062 6520 6e6f 2073 7572 7072 ould be no surpr │ │ │ │ -00017510: 6973 6520 7468 6174 2077 6865 6e20 7468 ise that when th │ │ │ │ -00017520: 6520 726f 7461 7469 6f6e 2070 6172 616d e rotation param │ │ │ │ -00017530: 6574 6572 0ae2 8098 6d65 7461 5f31 5f72 eter....meta_1_r │ │ │ │ -00017540: 6f74 e280 9920 6368 616e 6765 732c 2074 ot... changes, t │ │ │ │ -00017550: 6865 2065 6e74 6972 6520 6669 6e67 6572 he entire finger │ │ │ │ -00017560: 2072 6f74 6174 6573 2120 2054 6865 7265 rotates! There │ │ │ │ -00017570: 2069 7320 616e 2061 6464 6974 696f 6e61 is an additiona │ │ │ │ -00017580: 6c0a 726f 7461 7469 6f6e 2074 6861 7420 l.rotation that │ │ │ │ -00017590: 616c 6c6f 7773 2074 6865 2066 696e 6765 allows the finge │ │ │ │ -000175a0: 7273 2074 6f20 7370 7265 6164 206c 6174 rs to spread lat │ │ │ │ -000175b0: 6572 616c 6c79 2e20 2057 6520 7361 7920 erally. We say │ │ │ │ -000175c0: 7468 6573 650a 6a6f 696e 7473 206f 6620 these.joints of │ │ │ │ -000175d0: 7468 6520 7072 6f78 696d 616c 2070 686c the proximal phl │ │ │ │ -000175e0: 616e 6765 7320 6861 7665 2074 776f 205f anges have two _ │ │ │ │ -000175f0: 6465 6772 6565 7320 6f66 2066 7265 6564 degrees of freed │ │ │ │ -00017600: 6f6d 5f2e 2020 5468 650a 6a6f 696e 7473 om_. The.joints │ │ │ │ -00017610: 2068 6967 6865 7220 6f6e 2074 6865 2066 higher on the f │ │ │ │ -00017620: 696e 6765 7220 6861 7665 206f 6e6c 7920 inger have only │ │ │ │ -00017630: 6f6e 652e 2020 4669 6e61 6c6c 792c 2065 one. Finally, e │ │ │ │ -00017640: 6163 6820 6669 6e67 6572 2069 730a 7363 ach finger is.sc │ │ │ │ -00017650: 616c 6564 2062 7920 6120 6661 6374 6f72 aled by a factor │ │ │ │ -00017660: 2074 6f20 6c65 6e64 2069 7420 7072 6f70 to lend it prop │ │ │ │ -00017670: 6f72 7469 6f6e 2e0a 2020 6465 6620 6861 ortion.. def ha │ │ │ │ -00017680: 6e64 207b 0a20 2020 2025 2066 696e 6765 nd {. % finge │ │ │ │ -00017690: 7220 3120 5b61 6c6c 206f 7468 6572 2066 r 1 [all other f │ │ │ │ -000176a0: 696e 6765 7273 206f 6d69 7474 6564 5d0a ingers omitted]. │ │ │ │ -000176b0: 2020 2020 6465 6620 7363 616c 655f 3120 def scale_1 │ │ │ │ -000176c0: 2e38 350a 2020 2020 7075 7420 7b20 7363 .85. put { sc │ │ │ │ -000176d0: 616c 6528 7363 616c 655f 3129 200a 2020 ale(scale_1) . │ │ │ │ -000176e0: 2020 2020 2020 2020 7468 656e 2074 7261 then tra │ │ │ │ -000176f0: 6e73 6c61 7465 2828 6a6f 696e 745f 6761 nslate((joint_ga │ │ │ │ -00017700: 7020 2a20 6a6f 696e 745f 7261 6429 202a p * joint_rad) * │ │ │ │ -00017710: 205b 4a5d 290a 0920 2074 6865 6e20 726f [J]).. then ro │ │ │ │ -00017720: 7461 7465 286d 6574 615f 315f 726f 742c tate(meta_1_rot, │ │ │ │ -00017730: 205b 495d 290a 2020 2020 2020 2020 2020 [I]). │ │ │ │ -00017740: 7468 656e 2072 6f74 6174 6528 2d73 7072 then rotate(-spr │ │ │ │ -00017750: 6561 645f 726f 742c 205b 4b5d 290a 2020 ead_rot, [K]). │ │ │ │ -00017760: 2020 2020 2020 2020 7468 656e 2074 7261 then tra │ │ │ │ -00017770: 6e73 6c61 7465 2828 7072 6f78 696d 616c nslate((proximal │ │ │ │ -00017780: 5f31 5f6c 6f63 2920 2d20 284f 2929 207d _1_loc) - (O)) } │ │ │ │ -00017790: 200a 2020 2020 2020 7b66 696e 6765 725f . {finger_ │ │ │ │ -000177a0: 317d 0a20 2020 2070 7574 207b 2073 6361 1}. put { sca │ │ │ │ -000177b0: 6c65 2873 6361 6c65 5f31 202a 2070 726f le(scale_1 * pro │ │ │ │ -000177c0: 7869 6d61 6c5f 6469 7374 616c 5f72 6174 ximal_distal_rat │ │ │ │ -000177d0: 696f 5e32 290a 2020 2020 2020 2020 2020 io^2). │ │ │ │ -000177e0: 7468 656e 2072 6f74 6174 6528 6d65 7461 then rotate(meta │ │ │ │ -000177f0: 5f31 5f72 6f74 202f 2032 2c20 5b49 5d29 _1_rot / 2, [I]) │ │ │ │ -00017800: 0a20 2020 2020 2020 2020 2074 6865 6e20 . then │ │ │ │ -00017810: 726f 7461 7465 282d 7370 7265 6164 5f72 rotate(-spread_r │ │ │ │ -00017820: 6f74 2c20 5b4b 5d29 0a20 2020 2020 2020 ot, [K]). │ │ │ │ -00017830: 2020 2074 6865 6e20 7472 616e 736c 6174 then translat │ │ │ │ -00017840: 6528 2870 726f 7869 6d61 6c5f 315f 6c6f e((proximal_1_lo │ │ │ │ -00017850: 6329 202d 2028 4f29 2920 7d20 0a20 2020 c) - (O)) } . │ │ │ │ -00017860: 2020 207b 6a6f 696e 745f 7370 6865 7265 {joint_sphere │ │ │ │ -00017870: 7d0a 0a20 2020 2025 2070 616c 6d0a 2020 }.. % palm. │ │ │ │ -00017880: 2020 7377 6565 7020 7b20 312c 2072 6f74 sweep { 1, rot │ │ │ │ -00017890: 6174 6528 362c 2028 302c 3135 2c30 292c ate(6, (0,15,0), │ │ │ │ -000178a0: 205b 495d 2920 7d0a 2020 2020 2020 7075 [I]) }. pu │ │ │ │ -000178b0: 7420 7b20 726f 7461 7465 282d 332c 2028 t { rotate(-3, ( │ │ │ │ -000178c0: 302c 3135 2c30 292c 205b 495d 2920 7d20 0,15,0), [I]) } │ │ │ │ -000178d0: 7b0a 2020 2020 2020 2020 706f 6c79 676f {. polygo │ │ │ │ -000178e0: 6e28 7072 6f78 696d 616c 5f31 5f6c 6f63 n(proximal_1_loc │ │ │ │ -000178f0: 2928 7072 6f78 696d 616c 5f32 5f6c 6f63 )(proximal_2_loc │ │ │ │ -00017900: 290a 2020 2020 2020 2020 2020 2020 2020 ). │ │ │ │ -00017910: 2028 7072 6f78 696d 616c 5f33 5f6c 6f63 (proximal_3_loc │ │ │ │ -00017920: 2928 7072 6f78 696d 616c 5f34 5f6c 6f63 )(proximal_4_loc │ │ │ │ -00017930: 290a 2020 2020 2020 2020 2020 2020 2020 ). │ │ │ │ -00017940: 2028 6835 2928 6836 2928 6836 6129 2868 (h5)(h6)(h6a)(h │ │ │ │ -00017950: 3929 2868 3130 290a 2020 2020 2020 2020 9)(h10). │ │ │ │ -00017960: 706f 6c79 676f 6e28 6836 6129 2868 3729 polygon(h6a)(h7) │ │ │ │ -00017970: 2868 3829 2868 3929 0a20 2020 7d20 207d (h8)(h9). } } │ │ │ │ -00017980: 0a54 6865 206c 6173 7420 7365 6374 696f .The last sectio │ │ │ │ -00017990: 6e20 6f66 2074 6865 2064 6566 696e 6974 n of the definit │ │ │ │ -000179a0: 696f 6e20 6372 6561 7465 7320 7468 6520 ion creates the │ │ │ │ -000179b0: 706f 6c79 746f 7065 2066 6f72 2074 6865 polytope for the │ │ │ │ -000179c0: 2070 616c 6d20 6f66 0a74 6865 2068 616e palm of.the han │ │ │ │ -000179d0: 6420 6279 20e2 8098 7377 6565 70e2 8099 d by ...sweep... │ │ │ │ -000179e0: 696e 6720 6120 3130 2d73 6964 6564 2070 ing a 10-sided p │ │ │ │ -000179f0: 6f6c 7967 6f6e 2074 6872 6f75 6768 2061 olygon through a │ │ │ │ -00017a00: 2076 6572 7920 7368 6f72 7420 6172 630a very short arc. │ │ │ │ -00017a10: 2839 2064 6567 7265 6573 292e 2020 5468 (9 degrees). Th │ │ │ │ -00017a20: 6973 2070 726f 7669 6465 7320 6120 7765 is provides a we │ │ │ │ -00017a30: 6467 652d 7368 6170 6564 2070 726f 6669 dge-shaped profi │ │ │ │ -00017a40: 6c65 2077 6865 6e20 7669 6577 6564 2066 le when viewed f │ │ │ │ -00017a50: 726f 6d20 7468 650a 7369 6465 2e20 2054 rom the.side. T │ │ │ │ -00017a60: 6865 2074 6869 636b 2065 6e64 206f 6620 he thick end of │ │ │ │ -00017a70: 7468 6520 7765 6467 6520 6973 2074 6865 the wedge is the │ │ │ │ -00017a80: 2077 7269 7374 2e20 2042 6563 6175 7365 wrist. Because │ │ │ │ -00017a90: 2074 6865 2070 6f6c 7967 6f6e 2069 730a the polygon is. │ │ │ │ -00017aa0: 636f 6e63 6176 652c 2069 7420 6973 2073 concave, it is s │ │ │ │ -00017ab0: 706c 6974 2069 6e74 6f20 696e 746f 2074 plit into into t │ │ │ │ -00017ac0: 776f 2063 6f6e 7665 7820 7368 6170 6573 wo convex shapes │ │ │ │ -00017ad0: 2077 6974 6820 6e69 6e65 2061 6e64 2066 with nine and f │ │ │ │ -00017ae0: 6f75 720a 7665 7274 6963 6573 2e0a 0a20 our.vertices... │ │ │ │ -00017af0: 2020 5765 2063 616e 206e 6f77 2068 6176 We can now hav │ │ │ │ -00017b00: 6520 6675 6e20 706f 7369 7469 6f6e 696e e fun positionin │ │ │ │ -00017b10: 6720 7468 6520 6861 6e64 2062 7920 6164 g the hand by ad │ │ │ │ -00017b20: 6a75 7374 696e 6720 7468 6520 7661 7269 justing the vari │ │ │ │ -00017b30: 6f75 730a 726f 7461 7469 6f6e 2061 6e67 ous.rotation ang │ │ │ │ -00017b40: 6c65 732e 2020 5468 6520 636f 6d70 6c65 les. The comple │ │ │ │ -00017b50: 7465 2073 6f75 7263 6520 696e 636c 7564 te source includ │ │ │ │ -00017b60: 6573 2064 6566 696e 6974 696f 6e73 2077 es definitions w │ │ │ │ -00017b70: 6974 680a 616c 7465 726e 6174 6976 6573 ith.alternatives │ │ │ │ -00017b80: 2074 6861 7420 696e 636c 7564 6520 7468 that include th │ │ │ │ -00017b90: 6520 666f 6c6c 6f77 696e 6720 7669 6577 e following view │ │ │ │ -00017ba0: 7320 616e 6420 6d6f 7265 2e0a 0a00 085b s and more.....[ │ │ │ │ -00017bb0: 696d 6167 6520 7372 633d 2265 7832 3130 image src="ex210 │ │ │ │ -00017bc0: 2e70 6e67 2220 7465 7874 3d22 496d 6167 .png" text="Imag │ │ │ │ -00017bd0: 6520 6578 3231 3020 6f6d 6974 7465 6420 e ex210 omitted │ │ │ │ -00017be0: 696e 2074 6578 7420 7665 7273 696f 6e20 in text version │ │ │ │ -00017bf0: 6f66 2074 6869 7320 646f 6375 6d65 6e74 of this document │ │ │ │ -00017c00: 2e22 0008 5d00 085b 696d 6167 6520 7372 ."..]..[image sr │ │ │ │ -00017c10: 633d 2265 7832 3230 2e70 6e67 2220 7465 c="ex220.png" te │ │ │ │ -00017c20: 7874 3d22 496d 6167 6520 6578 3232 3020 xt="Image ex220 │ │ │ │ -00017c30: 6f6d 6974 7465 6420 696e 2074 6578 7420 omitted in text │ │ │ │ -00017c40: 7665 7273 696f 6e20 6f66 2074 6869 7320 version of this │ │ │ │ -00017c50: 646f 6375 6d65 6e74 2e22 0008 5d00 085b document."..]..[ │ │ │ │ -00017c60: 696d 6167 6520 7372 633d 2265 7832 3330 image src="ex230 │ │ │ │ -00017c70: 2e70 6e67 2220 7465 7874 3d22 496d 6167 .png" text="Imag │ │ │ │ -00017c80: 6520 6578 3233 3020 6f6d 6974 7465 6420 e ex230 omitted │ │ │ │ -00017c90: 696e 2074 6578 7420 7665 7273 696f 6e20 in text version │ │ │ │ -00017ca0: 6f66 2074 6869 7320 646f 6375 6d65 6e74 of this document │ │ │ │ -00017cb0: 2e22 0008 5d00 085b 696d 6167 6520 7372 ."..]..[image sr │ │ │ │ -00017cc0: 633d 2265 7832 3430 2e70 6e67 2220 7465 c="ex240.png" te │ │ │ │ -00017cd0: 7874 3d22 496d 6167 6520 6578 3234 3020 xt="Image ex240 │ │ │ │ -00017ce0: 6f6d 6974 7465 6420 696e 2074 6578 7420 omitted in text │ │ │ │ -00017cf0: 7665 7273 696f 6e20 6f66 2074 6869 7320 version of this │ │ │ │ -00017d00: 646f 6375 6d65 6e74 2e22 0008 5d0a 0a1f document."..]... │ │ │ │ -00017d10: 0a46 696c 653a 2073 6b65 7463 682e 696e .File: sketch.in │ │ │ │ -00017d20: 666f 2c20 204e 6f64 653a 2043 6176 6561 fo, Node: Cavea │ │ │ │ -00017d30: 7473 2c20 2050 7265 763a 2041 2068 6965 ts, Prev: A hie │ │ │ │ -00017d40: 7261 7263 6869 6361 6c20 6d6f 6465 6c2c rarchical model, │ │ │ │ -00017d50: 2020 5570 3a20 4275 696c 6469 6e67 2061 Up: Building a │ │ │ │ -00017d60: 2064 7261 7769 6e67 0a0a 342e 3420 4361 drawing..4.4 Ca │ │ │ │ -00017d70: 7665 6174 730a 3d3d 3d3d 3d3d 3d3d 3d3d veats.========== │ │ │ │ -00017d80: 3d0a 0ae2 8098 536b 6574 6368 e280 9920 =.....Sketch... │ │ │ │ -00017d90: 6973 2061 2066 6169 726c 7920 706f 7765 is a fairly powe │ │ │ │ -00017da0: 7266 756c 2074 6f6f 6c20 666f 7220 6472 rful tool for dr │ │ │ │ -00017db0: 6177 696e 672c 2062 7574 2c20 6a75 7374 awing, but, just │ │ │ │ -00017dc0: 2061 7320 7769 7468 2054 6558 2c0a 7468 as with TeX,.th │ │ │ │ -00017dd0: 6520 706f 7765 7220 746f 2063 7265 6174 e power to creat │ │ │ │ -00017de0: 6520 6265 6175 7469 6675 6c20 7265 7375 e beautiful resu │ │ │ │ -00017df0: 6c74 7320 636f 6d65 7320 616c 6f6e 6720 lts comes along │ │ │ │ -00017e00: 7769 7468 2074 6865 2070 6f77 6572 2074 with the power t │ │ │ │ -00017e10: 6f20 6d61 6b65 0a6d 6973 7461 6b65 732e o make.mistakes. │ │ │ │ -00017e20: 2020 5468 6520 666f 6c6c 6f77 696e 6720 The following │ │ │ │ -00017e30: 6172 6520 736f 6d65 2070 6f69 6e74 7320 are some points │ │ │ │ -00017e40: 7768 6572 6520 6361 7265 2069 7320 6e65 where care is ne │ │ │ │ -00017e50: 6365 7373 6172 7920 616e 640a 7768 6572 cessary and.wher │ │ │ │ -00017e60: 6520 7468 6520 6375 7272 656e 7420 7665 e the current ve │ │ │ │ -00017e70: 7273 696f 6e20 6f66 20e2 8098 736b 6574 rsion of ...sket │ │ │ │ -00017e80: 6368 e280 9920 6973 206c 696d 6974 6564 ch... is limited │ │ │ │ -00017e90: 206f 7220 6861 7320 6b6e 6f77 6e20 6275 or has known bu │ │ │ │ -00017ea0: 6773 2e0a 0a2a 204d 656e 753a 0a0a 2a20 gs...* Menu:..* │ │ │ │ -00017eb0: 4c69 6d69 7473 206f 6e20 6572 726f 7220 Limits on error │ │ │ │ -00017ec0: 6465 7465 6374 696f 6e3a 3a20 2020 5768 detection:: Wh │ │ │ │ -00017ed0: 6174 2073 6b65 7463 6820 646f 6573 6e27 at sketch doesn' │ │ │ │ -00017ee0: 7420 646f 2e0a 2a20 436c 6970 7069 6e67 t do..* Clipping │ │ │ │ -00017ef0: 3a3a 2020 2020 2020 2020 2020 2020 2020 :: │ │ │ │ -00017f00: 2020 2020 2020 4e6f 2063 6c69 7070 696e No clippin │ │ │ │ -00017f10: 6720 6174 2070 7265 7365 6e74 2e0a 2a20 g at present..* │ │ │ │ -00017f20: 4869 6464 656e 2073 7572 6661 6365 2072 Hidden surface r │ │ │ │ -00017f30: 656d 6f76 616c 3a3a 2020 2020 2020 496d emoval:: Im │ │ │ │ -00017f40: 7065 7266 6563 7469 6f6e 7320 746f 2066 perfections to f │ │ │ │ -00017f50: 6978 2e0a 0a1f 0a46 696c 653a 2073 6b65 ix.....File: ske │ │ │ │ -00017f60: 7463 682e 696e 666f 2c20 204e 6f64 653a tch.info, Node: │ │ │ │ -00017f70: 204c 696d 6974 7320 6f6e 2065 7272 6f72 Limits on error │ │ │ │ -00017f80: 2064 6574 6563 7469 6f6e 2c20 204e 6578 detection, Nex │ │ │ │ -00017f90: 743a 2043 6c69 7070 696e 672c 2020 5072 t: Clipping, Pr │ │ │ │ -00017fa0: 6576 3a20 4361 7665 6174 732c 2020 5570 ev: Caveats, Up │ │ │ │ -00017fb0: 3a20 4361 7665 6174 730a 0a34 2e34 2e31 : Caveats..4.4.1 │ │ │ │ -00017fc0: 204c 696d 6974 7320 6f6e 20e2 8098 736b Limits on ...sk │ │ │ │ -00017fd0: 6574 6368 e280 9920 6572 726f 7220 6465 etch... error de │ │ │ │ -00017fe0: 7465 6374 696f 6e0a 2d2d 2d2d 2d2d 2d2d tection.-------- │ │ │ │ +00011d30: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a 7363 -------------.sc │ │ │ │ +00011d40: 616c 6172 2020 2020 2020 e280 9849 44e2 alar ...ID. │ │ │ │ +00011d50: 8099 0a70 6f69 6e74 2020 2020 2020 20e2 ...point . │ │ │ │ +00011d60: 8098 2849 4429 e280 990a 7665 6374 6f72 ..(ID)....vector │ │ │ │ +00011d70: 2020 2020 2020 e280 985b 4944 5de2 8099 ...[ID]... │ │ │ │ +00011d80: 0a74 7261 6e73 666f 726d 2020 20e2 8098 .transform ... │ │ │ │ +00011d90: 5b5b 4944 5d5d e280 990a 6472 6177 6162 [[ID]]....drawab │ │ │ │ +00011da0: 6c65 2020 2020 e280 987b 4944 7de2 8099 le ...{ID}... │ │ │ │ +00011db0: 0a6f 7074 696f 6e73 2020 2020 20e2 8098 .options ... │ │ │ │ +00011dc0: 5b49 445d e280 9920 6f72 20e2 8098 5b49 [ID]... or ...[I │ │ │ │ +00011dd0: 4431 2c2e 2e2e 2c49 444e 5de2 8099 0a74 D1,...,IDN]....t │ │ │ │ +00011de0: 6167 2020 2020 2020 2020 20e2 8098 3c49 ag ........Note that │ │ │ │ +00011e00: 2073 7175 6172 6520 6272 6163 6b65 7473 square brackets │ │ │ │ +00011e10: 20e2 8098 5b20 5de2 8099 2061 7265 2075 ...[ ]... are u │ │ │ │ +00011e20: 7365 6420 626f 7468 2066 6f72 2076 6563 sed both for vec │ │ │ │ +00011e30: 746f 7220 616e 6420 666f 7220 6f70 7469 tor and for opti │ │ │ │ +00011e40: 6f6e 730a 7265 6665 7265 6e63 6573 2e20 ons.references. │ │ │ │ +00011e50: 2044 6574 6169 6c73 206f 6620 e280 9873 Details of ...s │ │ │ │ +00011e60: 6b65 7463 68e2 8099 2073 796e 7461 7820 ketch... syntax │ │ │ │ +00011e70: 6d61 6b65 2069 7420 696d 706f 7373 6962 make it impossib │ │ │ │ +00011e80: 6c65 2066 6f72 2074 6865 7365 2074 776f le for these two │ │ │ │ +00011e90: 0a72 6566 6572 656e 6365 2074 7970 6573 .reference types │ │ │ │ +00011ea0: 2074 6f20 6265 2063 6f6e 6675 7365 642e to be confused. │ │ │ │ +00011eb0: 2020 5468 6520 7370 6563 6961 6c20 6d75 The special mu │ │ │ │ +00011ec0: 6c74 6970 6c65 2072 6566 6572 656e 6365 ltiple reference │ │ │ │ +00011ed0: 0ae2 8098 5b49 4431 2c49 4432 2c2e 2e2e ....[ID1,ID2,... │ │ │ │ +00011ee0: 2c49 444e 5de2 8099 2061 6374 7320 6173 ,IDN]... acts as │ │ │ │ +00011ef0: 2069 6620 7468 6520 7265 7370 6563 7469 if the respecti │ │ │ │ +00011f00: 7665 206c 6973 7473 206f 6620 6f70 7469 ve lists of opti │ │ │ │ +00011f10: 6f6e 7320 7765 7265 0a63 6f6e 6361 7465 ons were.concate │ │ │ │ +00011f20: 6e61 7465 642e 0a0a 1f0a 4669 6c65 3a20 nated.....File: │ │ │ │ +00011f30: 736b 6574 6368 2e69 6e66 6f2c 2020 4e6f sketch.info, No │ │ │ │ +00011f40: 6465 3a20 476c 6f62 616c 2065 6e76 6972 de: Global envir │ │ │ │ +00011f50: 6f6e 6d65 6e74 2c20 2050 7265 763a 2044 onment, Prev: D │ │ │ │ +00011f60: 6566 696e 6974 696f 6e73 2c20 2055 703a efinitions, Up: │ │ │ │ +00011f70: 2049 6e70 7574 206c 616e 6775 6167 650a Input language. │ │ │ │ +00011f80: 0a33 2e34 2047 6c6f 6261 6c20 656e 7669 .3.4 Global envi │ │ │ │ +00011f90: 726f 6e6d 656e 740a 3d3d 3d3d 3d3d 3d3d ronment.======== │ │ │ │ +00011fa0: 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 0a0a ==============.. │ │ │ │ +00011fb0: 416e 206f 7074 696f 6e61 6c20 676c 6f62 An optional glob │ │ │ │ +00011fc0: 616c 2065 6e76 6972 6f6e 6d65 6e74 2062 al environment b │ │ │ │ +00011fd0: 6c6f 636b 2070 726f 7669 6465 7320 6120 lock provides a │ │ │ │ +00011fe0: 6665 7720 7761 7973 2074 6f20 6166 6665 few ways to affe │ │ │ │ +00011ff0: 6374 2074 6865 0a65 6e74 6972 6520 7363 ct the.entire sc │ │ │ │ +00012000: 656e 652e 2020 5468 6520 626c 6f63 6b20 ene. The block │ │ │ │ +00012010: 6d75 7374 2061 7070 6561 7220 6173 2074 must appear as t │ │ │ │ +00012020: 6865 206c 6173 7420 7465 7874 2069 6e20 he last text in │ │ │ │ +00012030: 7468 6520 e280 9873 6b65 7463 68e2 8099 the ...sketch... │ │ │ │ +00012040: 0a69 6e70 7574 2066 696c 652e 2020 4974 .input file. It │ │ │ │ +00012050: 206d 6179 2069 6e63 6c75 6465 2064 6566 may include def │ │ │ │ +00012060: 696e 6974 696f 6e73 2c20 6275 7420 6e6f initions, but no │ │ │ │ +00012070: 7465 2074 6861 7420 7072 6576 696f 7573 te that previous │ │ │ │ +00012080: 0a64 6566 696e 6974 696f 6e73 2061 7420 .definitions at │ │ │ │ +00012090: 7468 6520 746f 7020 6c65 7665 6c20 286e the top level (n │ │ │ │ +000120a0: 6f74 206e 6573 7465 6420 696e 7369 6465 ot nested inside │ │ │ │ +000120b0: 2062 6c6f 636b 7329 2061 7265 2061 6c73 blocks) are als │ │ │ │ +000120c0: 6f0a 6176 6169 6c61 626c 652e 0a0a 2a53 o.available...*S │ │ │ │ +000120d0: 796e 7461 783a 2a0a 2020 2020 2067 6c6f yntax:*. glo │ │ │ │ +000120e0: 6261 6c20 7b20 454e 5649 524f 4e4d 454e bal { ENVIRONMEN │ │ │ │ +000120f0: 545f 5345 5454 494e 4753 207d 0a54 6865 T_SETTINGS }.The │ │ │ │ +00012100: 2063 6f6e 7465 6e74 7320 6f66 2045 4e56 contents of ENV │ │ │ │ +00012110: 4952 4f4e 4d45 4e54 5f53 4554 5449 4e47 IRONMENT_SETTING │ │ │ │ +00012120: 5320 6172 6520 6469 7363 7573 7365 6420 S are discussed │ │ │ │ +00012130: 696e 2074 6865 2073 6563 7469 6f6e 7320 in the sections │ │ │ │ +00012140: 7468 6174 0a66 6f6c 6c6f 772e 0a0a 2a20 that.follow...* │ │ │ │ +00012150: 4d65 6e75 3a0a 0a2a 2047 6c6f 6261 6c20 Menu:..* Global │ │ │ │ +00012160: 6f70 7469 6f6e 733a 3a20 2020 2020 2020 options:: │ │ │ │ +00012170: 2020 2020 2020 2041 7474 7269 6275 7465 Attribute │ │ │ │ +00012180: 7320 6f66 2074 6865 2065 6e74 6972 6520 s of the entire │ │ │ │ +00012190: 6472 6177 696e 672e 0a2a 2043 616d 6572 drawing..* Camer │ │ │ │ +000121a0: 613a 3a20 2020 2020 2020 2020 2020 2020 a:: │ │ │ │ +000121b0: 2020 2020 2020 2020 2041 2066 696e 616c A final │ │ │ │ +000121c0: 2063 616d 6572 6120 7472 616e 7366 6f72 camera transfor │ │ │ │ +000121d0: 6d61 7469 6f6e 206f 6620 7468 6520 7363 mation of the sc │ │ │ │ +000121e0: 656e 652e 0a2a 2050 6963 7475 7265 2062 ene..* Picture b │ │ │ │ +000121f0: 6f78 3a3a 2020 2020 2020 2020 2020 2020 ox:: │ │ │ │ +00012200: 2020 2020 2053 6574 7469 6e67 2074 6865 Setting the │ │ │ │ +00012210: 2062 6f75 6e64 696e 6720 626f 7820 616e bounding box an │ │ │ │ +00012220: 6420 3264 2063 6c69 7070 696e 672e 0a2a d 2d clipping..* │ │ │ │ +00012230: 2046 7261 6d65 3a3a 2020 2020 2020 2020 Frame:: │ │ │ │ +00012240: 2020 2020 2020 2020 2020 2020 2020 2041 A │ │ │ │ +00012250: 6464 696e 6720 6120 626f 7820 6172 6f75 dding a box arou │ │ │ │ +00012260: 6e64 2074 6865 2064 7261 7769 6e67 2e0a nd the drawing.. │ │ │ │ +00012270: 2a20 4c61 6e67 7561 6765 3a3a 2020 2020 * Language:: │ │ │ │ +00012280: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00012290: 5365 7474 696e 6720 7468 6520 6f75 7470 Setting the outp │ │ │ │ +000122a0: 7574 206c 616e 6775 6167 652e 0a0a 1f0a ut language..... │ │ │ │ +000122b0: 4669 6c65 3a20 736b 6574 6368 2e69 6e66 File: sketch.inf │ │ │ │ +000122c0: 6f2c 2020 4e6f 6465 3a20 476c 6f62 616c o, Node: Global │ │ │ │ +000122d0: 206f 7074 696f 6e73 2c20 204e 6578 743a options, Next: │ │ │ │ +000122e0: 2043 616d 6572 612c 2020 5072 6576 3a20 Camera, Prev: │ │ │ │ +000122f0: 476c 6f62 616c 2065 6e76 6972 6f6e 6d65 Global environme │ │ │ │ +00012300: 6e74 2c20 2055 703a 2047 6c6f 6261 6c20 nt, Up: Global │ │ │ │ +00012310: 656e 7669 726f 6e6d 656e 740a 0a33 2e34 environment..3.4 │ │ │ │ +00012320: 2e31 2047 6c6f 6261 6c20 6f70 7469 6f6e .1 Global option │ │ │ │ +00012330: 730a 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d s.-------------- │ │ │ │ +00012340: 2d2d 2d2d 2d2d 0a0a 2a53 796e 7461 783a ------..*Syntax: │ │ │ │ +00012350: 2a0a 2020 2020 2073 6574 205b 204f 5054 *. set [ OPT │ │ │ │ +00012360: 494f 4e53 205d 0a54 6865 2063 6f6e 7465 IONS ].The conte │ │ │ │ +00012370: 6e74 7320 6f66 204f 5054 494f 4e53 2c20 nts of OPTIONS, │ │ │ │ +00012380: 6578 6365 7074 2066 6f72 20e2 8098 736b except for ...sk │ │ │ │ +00012390: 6574 6368 e280 9920 696e 7465 726e 616c etch... internal │ │ │ │ +000123a0: 206f 7074 696f 6e73 2c20 6172 650a 636f options, are.co │ │ │ │ +000123b0: 7069 6564 2061 732d 6973 2074 6f20 6120 pied as-is to a │ │ │ │ +000123c0: 5c70 7373 6574 2074 6861 7420 6170 7065 \psset that appe │ │ │ │ +000123d0: 6172 7320 6265 666f 7265 2061 6e79 7468 ars before anyth │ │ │ │ +000123e0: 696e 6720 656c 7365 2069 6e20 7468 6520 ing else in the │ │ │ │ +000123f0: 6f75 7470 7574 0a66 696c 652e 2020 5468 output.file. Th │ │ │ │ +00012400: 6973 2069 7320 6120 676f 6f64 2070 6c61 is is a good pla │ │ │ │ +00012410: 6365 2074 6f20 7365 7420 e280 9875 6e69 ce to set ...uni │ │ │ │ +00012420: 74e2 8099 2c20 6120 6465 6661 756c 7420 t..., a default │ │ │ │ +00012430: e280 986c 696e 6577 6964 7468 e280 992c ...linewidth..., │ │ │ │ +00012440: 2065 7463 2e0a 0a20 2020 496e 7465 726e etc... Intern │ │ │ │ +00012450: 616c 206f 7074 696f 6e73 2077 6f72 6b20 al options work │ │ │ │ +00012460: 6f6e 2061 6c6c 206f 626a 6563 7473 2077 on all objects w │ │ │ │ +00012470: 6865 7265 2074 6865 7920 6d61 6b65 2073 here they make s │ │ │ │ +00012480: 656e 7365 2e20 2054 6869 730a 696e 636c ense. This.incl │ │ │ │ +00012490: 7564 6573 20e2 8098 6375 6c6c e280 9920 udes ...cull... │ │ │ │ +000124a0: 616e 6420 e280 9873 706c 6974 e280 9920 and ...split... │ │ │ │ +000124b0: 2862 7574 206e 6f74 20e2 8098 6c61 79e2 (but not ...lay. │ │ │ │ +000124c0: 8099 292e 2020 2a4e 6f74 6520 496e 7465 ..). *Note Inte │ │ │ │ +000124d0: 726e 616c 206f 7074 696f 6e73 3a3a 2e0a rnal options::.. │ │ │ │ +000124e0: 0a1f 0a46 696c 653a 2073 6b65 7463 682e ...File: sketch. │ │ │ │ +000124f0: 696e 666f 2c20 204e 6f64 653a 2043 616d info, Node: Cam │ │ │ │ +00012500: 6572 612c 2020 4e65 7874 3a20 5069 6374 era, Next: Pict │ │ │ │ +00012510: 7572 6520 626f 782c 2020 5072 6576 3a20 ure box, Prev: │ │ │ │ +00012520: 476c 6f62 616c 206f 7074 696f 6e73 2c20 Global options, │ │ │ │ +00012530: 2055 703a 2047 6c6f 6261 6c20 656e 7669 Up: Global envi │ │ │ │ +00012540: 726f 6e6d 656e 740a 0a33 2e34 2e32 2043 ronment..3.4.2 C │ │ │ │ +00012550: 616d 6572 610a 2d2d 2d2d 2d2d 2d2d 2d2d amera.---------- │ │ │ │ +00012560: 2d2d 0a0a 2a53 796e 7461 783a 2a0a 2020 --..*Syntax:*. │ │ │ │ +00012570: 2020 2063 616d 6572 6120 5452 414e 5346 camera TRANSF │ │ │ │ +00012580: 4f52 4d5f 4558 5052 4553 5349 4f4e 0a20 ORM_EXPRESSION. │ │ │ │ +00012590: 2020 5468 6520 5452 414e 5346 4f52 4d5f The TRANSFORM_ │ │ │ │ +000125a0: 4558 5052 4553 5349 4f4e 2069 7320 6170 EXPRESSION is ap │ │ │ │ +000125b0: 706c 6965 6420 6166 7465 7220 616c 6c20 plied after all │ │ │ │ +000125c0: 6f74 6865 7220 7472 616e 7366 6f72 6d61 other transforma │ │ │ │ +000125d0: 7469 6f6e 730a 6f66 2074 6865 2073 6365 tions.of the sce │ │ │ │ +000125e0: 6e65 2e20 2054 6869 7320 6973 2063 7572 ne. This is cur │ │ │ │ +000125f0: 7265 6e74 6c79 206f 6e6c 7920 7573 6566 rently only usef │ │ │ │ +00012600: 756c 2066 6f72 2074 7261 6e73 666f 726d ul for transform │ │ │ │ +00012610: 696e 6720 7468 650a 626f 756e 6469 6e67 ing the.bounding │ │ │ │ +00012620: 2062 6f78 2e20 202a 4e6f 7465 2050 6963 box. *Note Pic │ │ │ │ +00012630: 7475 7265 2062 6f78 3a3a 2e20 2049 7420 ture box::. It │ │ │ │ +00012640: 7769 6c6c 2070 6c61 7920 6120 726f 6c65 will play a role │ │ │ │ +00012650: 2069 6e20 616e 7920 6675 7475 7265 0a69 in any future.i │ │ │ │ +00012660: 6d70 6c65 6d65 6e74 6174 696f 6e20 6f66 mplementation of │ │ │ │ +00012670: 2063 6c69 7070 696e 672e 0a0a 1f0a 4669 clipping.....Fi │ │ │ │ +00012680: 6c65 3a20 736b 6574 6368 2e69 6e66 6f2c le: sketch.info, │ │ │ │ +00012690: 2020 4e6f 6465 3a20 5069 6374 7572 6520 Node: Picture │ │ │ │ +000126a0: 626f 782c 2020 4e65 7874 3a20 4672 616d box, Next: Fram │ │ │ │ +000126b0: 652c 2020 5072 6576 3a20 4361 6d65 7261 e, Prev: Camera │ │ │ │ +000126c0: 2c20 2055 703a 2047 6c6f 6261 6c20 656e , Up: Global en │ │ │ │ +000126d0: 7669 726f 6e6d 656e 740a 0a33 2e34 2e33 vironment..3.4.3 │ │ │ │ +000126e0: 2050 6963 7475 7265 2062 6f78 0a2d 2d2d Picture box.--- │ │ │ │ +000126f0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 0a0a --------------.. │ │ │ │ +00012700: 2a53 796e 7461 783a 2a0a 2020 2020 2070 *Syntax:*. p │ │ │ │ +00012710: 6963 7475 7265 626f 785b 4241 5345 4c49 icturebox[BASELI │ │ │ │ +00012720: 4e45 5d0a 2020 2020 2070 6963 7475 7265 NE]. picture │ │ │ │ +00012730: 626f 785b 4241 5345 4c49 4e45 5d20 2850 box[BASELINE] (P │ │ │ │ +00012740: 3129 2850 3229 0a54 6865 2066 6972 7374 1)(P2).The first │ │ │ │ +00012750: 2066 6f72 6d20 6f66 20e2 8098 7069 6374 form of ...pict │ │ │ │ +00012760: 7572 6562 6f78 e280 9920 6361 7573 6573 urebox... causes │ │ │ │ +00012770: 2061 2073 6361 6c61 7220 4241 5345 4c49 a scalar BASELI │ │ │ │ +00012780: 4e45 2066 7261 6374 696f 6e20 746f 2062 NE fraction to b │ │ │ │ +00012790: 650a 656d 6974 7465 6420 696e 2074 6865 e.emitted in the │ │ │ │ +000127a0: 20e2 8098 7073 7069 6374 7572 65e2 8099 ...pspicture... │ │ │ │ +000127b0: 2065 6e76 6972 6f6e 6d65 6e74 206f 6620 environment of │ │ │ │ +000127c0: 7468 6520 6f75 7470 7574 2e20 2053 6565 the output. See │ │ │ │ +000127d0: 20e2 8098 5053 5472 6963 6b73 e280 990a ...PSTricks.... │ │ │ │ +000127e0: 646f 6375 6d65 6e74 6174 696f 6e20 666f documentation fo │ │ │ │ +000127f0: 7220 e280 9870 7370 6963 7475 7265 e280 r ...pspicture.. │ │ │ │ +00012800: 992e 0a0a 2020 2049 6e20 7468 6520 7365 .... In the se │ │ │ │ +00012810: 636f 6e64 2066 6f72 6d2c 2074 6865 2042 cond form, the B │ │ │ │ +00012820: 4153 454c 494e 4520 6672 6163 7469 6f6e ASELINE fraction │ │ │ │ +00012830: 2069 7320 6f70 7469 6f6e 616c 2c20 616e is optional, an │ │ │ │ +00012840: 6420 7468 6520 7477 6f0a 706f 696e 7473 d the two.points │ │ │ │ +00012850: 2074 6861 7420 666f 6c6c 6f77 2064 6566 that follow def │ │ │ │ +00012860: 696e 6520 7468 6520 6469 6167 6f6e 616c ine the diagonal │ │ │ │ +00012870: 206f 6620 6120 7468 7265 652d 6469 6d65 of a three-dime │ │ │ │ +00012880: 6e73 696f 6e61 6c20 626f 756e 6469 6e67 nsional bounding │ │ │ │ +00012890: 0a62 6f78 2066 6f72 2074 6865 2063 6f6d .box for the com │ │ │ │ +000128a0: 706c 6574 6564 2073 6365 6e65 2e20 2054 pleted scene. T │ │ │ │ +000128b0: 6865 2070 6172 616c 6c65 6c20 7072 6f6a he parallel proj │ │ │ │ +000128c0: 6563 7469 6f6e 206f 6620 7468 6520 626f ection of the bo │ │ │ │ +000128d0: 756e 6469 6e67 0a62 6f78 2064 6574 6572 unding.box deter │ │ │ │ +000128e0: 6d69 6e65 7320 7468 6520 636f 726e 6572 mines the corner │ │ │ │ +000128f0: 7320 6f66 2074 6865 2064 7261 7769 6e67 s of the drawing │ │ │ │ +00012900: 2773 20e2 8098 7073 7069 6374 7572 652a 's ...pspicture* │ │ │ │ +00012910: e280 9920 656e 7669 726f 6e6d 656e 742c ... environment, │ │ │ │ +00012920: 0a77 6869 6368 2069 7320 7573 6564 2069 .which is used i │ │ │ │ +00012930: 6e20 706c 6163 6520 6f66 20e2 8098 7073 n place of ...ps │ │ │ │ +00012940: 7069 6374 7572 65e2 8099 2e20 2054 6869 picture.... Thi │ │ │ │ +00012950: 7320 6361 7573 6573 2050 6f73 7453 6372 s causes PostScr │ │ │ │ +00012960: 6970 7420 746f 2063 6c69 700a 7468 6520 ipt to clip.the │ │ │ │ +00012970: 6669 6e61 6c20 6472 6177 696e 6720 746f final drawing to │ │ │ │ +00012980: 2074 6865 2062 6f75 6e64 696e 6720 626f the bounding bo │ │ │ │ +00012990: 7820 696e 2032 642e 2020 4966 2074 6865 x in 2d. If the │ │ │ │ +000129a0: 7265 2069 7320 6120 e280 9863 616d 6572 re is a ...camer │ │ │ │ +000129b0: 61e2 8099 0a73 7065 6369 6669 6564 2c20 a....specified, │ │ │ │ +000129c0: 7468 6520 6361 6d65 7261 2074 7261 6e66 the camera tranf │ │ │ │ +000129d0: 6f72 6d61 7469 6f6e 2069 7320 6170 706c ormation is appl │ │ │ │ +000129e0: 6965 6420 746f 2074 6865 2062 6f75 6e64 ied to the bound │ │ │ │ +000129f0: 696e 6720 626f 782c 2061 6e64 0a74 6865 ing box, and.the │ │ │ │ +00012a00: 20e2 8098 7073 7069 6374 7572 65e2 8099 ...pspicture... │ │ │ │ +00012a10: 2069 7320 7365 7420 6a75 7374 206c 6172 is set just lar │ │ │ │ +00012a20: 6765 2065 6e6f 7567 6820 746f 2069 6e63 ge enough to inc │ │ │ │ +00012a30: 6c75 6465 2074 6865 2074 7261 6e73 666f lude the transfo │ │ │ │ +00012a40: 726d 6564 2062 6f78 2e0a 0a20 2020 5768 rmed box... Wh │ │ │ │ +00012a50: 656e 206e 6f20 626f 756e 6469 6e67 2062 en no bounding b │ │ │ │ +00012a60: 6f78 2069 7320 6769 7665 6e2c 20e2 8098 ox is given, ... │ │ │ │ +00012a70: 736b 6574 6368 e280 9920 636f 6d70 7574 sketch... comput │ │ │ │ +00012a80: 6573 206f 6e65 2061 7574 6f6d 6174 6963 es one automatic │ │ │ │ +00012a90: 616c 6c79 2e0a 0a1f 0a46 696c 653a 2073 ally.....File: s │ │ │ │ +00012aa0: 6b65 7463 682e 696e 666f 2c20 204e 6f64 ketch.info, Nod │ │ │ │ +00012ab0: 653a 2046 7261 6d65 2c20 204e 6578 743a e: Frame, Next: │ │ │ │ +00012ac0: 204c 616e 6775 6167 652c 2020 5072 6576 Language, Prev │ │ │ │ +00012ad0: 3a20 5069 6374 7572 6520 626f 782c 2020 : Picture box, │ │ │ │ +00012ae0: 5570 3a20 476c 6f62 616c 2065 6e76 6972 Up: Global envir │ │ │ │ +00012af0: 6f6e 6d65 6e74 0a0a 332e 342e 3420 4672 onment..3.4.4 Fr │ │ │ │ +00012b00: 616d 650a 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a ame.-----------. │ │ │ │ +00012b10: 0a2a 5379 6e74 6178 3a2a 0a20 2020 2020 .*Syntax:*. │ │ │ │ +00012b20: 6672 616d 6520 5b4f 5054 494f 4e53 5d0a frame [OPTIONS]. │ │ │ │ +00012b30: 4361 7573 6573 2061 205c 7073 6672 616d Causes a \psfram │ │ │ │ +00012b40: 6562 6f78 2074 6f20 7375 7272 6f75 6e64 ebox to surround │ │ │ │ +00012b50: 2074 6865 20e2 8098 7073 7069 6374 7572 the ...pspictur │ │ │ │ +00012b60: 65e2 8099 2065 6e76 6972 6f6e 6d65 6e74 e... environment │ │ │ │ +00012b70: 2069 6e20 7468 650a 6f75 7470 7574 2e20 in the.output. │ │ │ │ +00012b80: 2049 6620 4f50 5449 4f4e 5320 6172 6520 If OPTIONS are │ │ │ │ +00012b90: 7072 6573 656e 742c 2074 6865 7920 6172 present, they ar │ │ │ │ +00012ba0: 6520 636f 7069 6564 2061 732d 6973 2e20 e copied as-is. │ │ │ │ +00012bb0: 204e 6f72 6d61 6c6c 7920 6f6e 650a 776f Normally one.wo │ │ │ │ +00012bc0: 756c 6420 7761 6e74 2074 6f20 7365 7420 uld want to set │ │ │ │ +00012bd0: e280 986c 696e 6577 6964 7468 e280 992c ...linewidth..., │ │ │ │ +00012be0: 20e2 8098 6c69 6e65 7374 796c 65e2 8099 ...linestyle... │ │ │ │ +00012bf0: 2c20 e280 986c 696e 6563 6f6c 6f72 e280 , ...linecolor.. │ │ │ │ +00012c00: 992c 2065 7463 2e20 2049 660a 6f6d 6974 ., etc. If.omit │ │ │ │ +00012c10: 7465 642c 2074 6865 6e20 e280 9866 7261 ted, then ...fra │ │ │ │ +00012c20: 6d65 7365 703d 3070 74e2 8099 2069 7320 mesep=0pt... is │ │ │ │ +00012c30: 6164 6465 6420 736f 2074 6861 7420 7468 added so that th │ │ │ │ +00012c40: 6520 6672 616d 6520 7469 6768 746c 7920 e frame tightly │ │ │ │ +00012c50: 6875 6773 2074 6865 0ae2 8098 7073 7069 hugs the....pspi │ │ │ │ +00012c60: 6374 7572 65e2 8099 2e0a 0a1f 0a46 696c cture........Fil │ │ │ │ +00012c70: 653a 2073 6b65 7463 682e 696e 666f 2c20 e: sketch.info, │ │ │ │ +00012c80: 204e 6f64 653a 204c 616e 6775 6167 652c Node: Language, │ │ │ │ +00012c90: 2020 5072 6576 3a20 4672 616d 652c 2020 Prev: Frame, │ │ │ │ +00012ca0: 5570 3a20 476c 6f62 616c 2065 6e76 6972 Up: Global envir │ │ │ │ +00012cb0: 6f6e 6d65 6e74 0a0a 332e 342e 3520 4c61 onment..3.4.5 La │ │ │ │ +00012cc0: 6e67 7561 6765 0a2d 2d2d 2d2d 2d2d 2d2d nguage.--------- │ │ │ │ +00012cd0: 2d2d 2d2d 2d0a 0a20 2020 2020 6c61 6e67 -----.. lang │ │ │ │ +00012ce0: 7561 6765 2074 696b 7a0a 2020 2020 206c uage tikz. l │ │ │ │ +00012cf0: 616e 6775 6167 6520 7469 6b7a 2c20 636f anguage tikz, co │ │ │ │ +00012d00: 6e74 6578 740a 2020 2020 206c 616e 6775 ntext. langu │ │ │ │ +00012d10: 6167 6520 7073 7472 6963 6b73 0a20 2020 age pstricks. │ │ │ │ +00012d20: 2020 6c61 6e67 7561 6765 2070 7374 7269 language pstri │ │ │ │ +00012d30: 636b 732c 206c 6174 6578 0a53 6574 7320 cks, latex.Sets │ │ │ │ +00012d40: 7468 6520 6f75 7470 7574 206c 616e 6775 the output langu │ │ │ │ +00012d50: 6167 6520 6765 6e65 7261 7465 6420 6279 age generated by │ │ │ │ +00012d60: 20e2 8098 736b 6574 6368 e280 992e 2020 ...sketch.... │ │ │ │ +00012d70: 5468 6520 7365 7420 6f66 206f 7074 696f The set of optio │ │ │ │ +00012d80: 6e73 0a75 6e64 6572 7374 6f6f 6420 6279 ns.understood by │ │ │ │ +00012d90: 2073 6b65 7463 6820 616c 736f 2063 6861 sketch also cha │ │ │ │ +00012da0: 6e67 6573 2e20 2046 6f72 2065 7861 6d70 nges. For examp │ │ │ │ +00012db0: 6c65 2c20 7468 6520 e280 9850 5354 7269 le, the ...PSTri │ │ │ │ +00012dc0: 636b 73e2 8099 206f 7074 696f 6e0a e280 cks... option... │ │ │ │ +00012dd0: 986c 696e 6577 6964 7468 e280 9920 7769 .linewidth... wi │ │ │ │ +00012de0: 6c6c 206e 6f74 2062 6520 7072 6f70 6572 ll not be proper │ │ │ │ +00012df0: 6c79 2068 616e 646c 6564 2069 6620 e280 ly handled if .. │ │ │ │ +00012e00: 986c 616e 6775 6167 65e2 8099 2069 7320 .language... is │ │ │ │ +00012e10: 7365 7420 746f 20e2 8098 7469 6b7a e280 set to ...tikz.. │ │ │ │ +00012e20: 992e 0a53 696d 696c 6172 6c79 2c20 7468 ...Similarly, th │ │ │ │ +00012e30: 6520 e280 9854 696b 5ae2 8099 206f 7074 e ...TikZ... opt │ │ │ │ +00012e40: 696f 6e20 e280 986c 696e 6520 7374 796c ion ...line styl │ │ │ │ +00012e50: 65e2 8099 2028 6e6f 7465 2074 6865 2073 e... (note the s │ │ │ │ +00012e60: 7061 6365 2920 7769 6c6c 206e 6f74 2062 pace) will not b │ │ │ │ +00012e70: 650a 7072 6f70 6572 6c79 2068 616e 646c e.properly handl │ │ │ │ +00012e80: 6564 2069 6620 e280 986c 616e 6775 6167 ed if ...languag │ │ │ │ +00012e90: 65e2 8099 2069 7320 7365 7420 746f 20e2 e... is set to . │ │ │ │ +00012ea0: 8098 7073 7472 6963 6b73 e280 992e 2020 ..pstricks.... │ │ │ │ +00012eb0: 4966 206e 6f20 6c61 6e67 7561 6765 2069 If no language i │ │ │ │ +00012ec0: 730a 7370 6563 6966 6965 642c 2074 6865 s.specified, the │ │ │ │ +00012ed0: 2064 6566 6175 6c74 20e2 8098 7073 7472 default ...pstr │ │ │ │ +00012ee0: 6963 6b73 e280 9920 6973 2075 7365 642e icks... is used. │ │ │ │ +00012ef0: 0a0a 2020 2041 6e20 6f70 7469 6f6e 616c .. An optional │ │ │ │ +00012f00: 2063 6f6d 6d61 2066 6f6c 6c6f 7765 6420 comma followed │ │ │ │ +00012f10: 6279 20e2 8098 6c61 7465 78e2 8099 206f by ...latex... o │ │ │ │ +00012f20: 7220 e280 9863 6f6e 7465 7874 e280 9920 r ...context... │ │ │ │ +00012f30: 7370 6563 6966 6965 7320 7468 650a 6d61 specifies the.ma │ │ │ │ +00012f40: 6372 6f20 7061 636b 6167 6520 7468 6174 cro package that │ │ │ │ +00012f50: 2074 6865 206f 7574 7075 7420 7368 6f75 the output shou │ │ │ │ +00012f60: 6c64 2061 7373 756d 652e 2020 5468 6973 ld assume. This │ │ │ │ +00012f70: 2061 6666 6563 7473 2074 6865 20e2 8098 affects the ... │ │ │ │ +00012f80: 7069 6374 7572 65e2 8099 0a65 6e76 6972 picture....envir │ │ │ │ +00012f90: 6f6e 6d65 6e74 2063 6f6d 6d61 6e64 7320 onment commands │ │ │ │ +00012fa0: 656d 6974 7465 6420 616e 6420 7468 6520 emitted and the │ │ │ │ +00012fb0: 646f 6375 6d65 6e74 2074 656d 706c 6174 document templat │ │ │ │ +00012fc0: 6520 7573 6564 2077 6974 6820 7468 650a e used with the. │ │ │ │ +00012fd0: e280 982d 54e2 8099 206f 7074 696f 6e2e ...-T... option. │ │ │ │ +00012fe0: 2020 2a4e 6f74 6520 436f 6d6d 616e 6420 *Note Command │ │ │ │ +00012ff0: 6c69 6e65 3a3a 2e20 204e 6f74 6520 7468 line::. Note th │ │ │ │ +00013000: 6174 2061 7420 7468 6520 7469 6d65 2074 at at the time t │ │ │ │ +00013010: 6869 7320 6d61 6e75 616c 0a77 6173 2067 his manual.was g │ │ │ │ +00013020: 656e 6572 6174 6564 2c20 e280 9850 5354 enerated, ...PST │ │ │ │ +00013030: 7269 636b 73e2 8099 2077 6173 206e 6f74 ricks... was not │ │ │ │ +00013040: 2073 7570 706f 7274 6564 2062 7920 4c61 supported by La │ │ │ │ +00013050: 5465 5820 6f72 2062 7920 e280 9843 6f6e TeX or by ...Con │ │ │ │ +00013060: 5465 5874 e280 992e 0a0a 1f0a 4669 6c65 TeXt........File │ │ │ │ +00013070: 3a20 736b 6574 6368 2e69 6e66 6f2c 2020 : sketch.info, │ │ │ │ +00013080: 4e6f 6465 3a20 4275 696c 6469 6e67 2061 Node: Building a │ │ │ │ +00013090: 2064 7261 7769 6e67 2c20 204e 6578 743a drawing, Next: │ │ │ │ +000130a0: 2043 6f6d 6d61 6e64 206c 696e 652c 2020 Command line, │ │ │ │ +000130b0: 5072 6576 3a20 496e 7075 7420 6c61 6e67 Prev: Input lang │ │ │ │ +000130c0: 7561 6765 2c20 2055 703a 2054 6f70 0a0a uage, Up: Top.. │ │ │ │ +000130d0: 3420 4275 696c 6469 6e67 2061 2064 7261 4 Building a dra │ │ │ │ +000130e0: 7769 6e67 0a2a 2a2a 2a2a 2a2a 2a2a 2a2a wing.*********** │ │ │ │ +000130f0: 2a2a 2a2a 2a2a 2a2a 2a0a 0a53 7563 6365 *********..Succe │ │ │ │ +00013100: 7373 6675 6c20 6472 6177 696e 6773 2077 ssful drawings w │ │ │ │ +00013110: 6974 6820 e280 9873 6b65 7463 68e2 8099 ith ...sketch... │ │ │ │ +00013120: 2061 6e64 2077 6974 6820 616e 7920 7363 and with any sc │ │ │ │ +00013130: 656e 6520 6465 7363 7269 7074 696f 6e0a ene description. │ │ │ │ +00013140: 6c61 6e67 7561 6765 2072 6571 7569 7265 language require │ │ │ │ +00013150: 2074 6861 7420 7468 6520 7573 6572 2064 that the user d │ │ │ │ +00013160: 6576 656c 6f70 2061 6e20 6163 6375 7261 evelop an accura │ │ │ │ +00013170: 7465 206d 656e 7461 6c20 7069 6374 7572 te mental pictur │ │ │ │ +00013180: 6520 6f66 2068 6572 0a63 6f64 6520 616e e of her.code an │ │ │ │ +00013190: 6420 6974 7320 6d65 616e 696e 672e 2020 d its meaning. │ │ │ │ +000131a0: 5468 6973 2069 6d61 6765 2069 7320 6265 This image is be │ │ │ │ +000131b0: 7374 2062 7569 6c74 2069 6e20 736d 616c st built in smal │ │ │ │ +000131c0: 6c20 7069 6563 6573 2e0a 5468 6572 6566 l pieces..Theref │ │ │ │ +000131d0: 6f72 652c 20e2 8098 736b 6574 6368 e280 ore, ...sketch.. │ │ │ │ +000131e0: 9920 696e 7075 7473 2061 7265 2062 6573 . inputs are bes │ │ │ │ +000131f0: 7420 6372 6561 7465 6420 696e 2073 6d61 t created in sma │ │ │ │ +00013200: 6c6c 2069 6e63 7265 6d65 6e74 7320 7769 ll increments wi │ │ │ │ +00013210: 7468 0a66 7265 7175 656e 7420 7061 7573 th.frequent paus │ │ │ │ +00013220: 6573 2074 6f20 636f 6d70 696c 6520 616e es to compile an │ │ │ │ +00013230: 6420 7669 6577 2074 6865 2072 6573 756c d view the resul │ │ │ │ +00013240: 7473 2e20 2043 6172 6566 756c 2063 6f6d ts. Careful com │ │ │ │ +00013250: 6d65 6e74 7320 696e 0a74 6865 2069 6e70 ments in.the inp │ │ │ │ +00013260: 7574 206f 6674 656e 2068 656c 7020 6173 ut often help as │ │ │ │ +00013270: 2061 2073 6365 6e65 2067 726f 7773 2069 a scene grows i │ │ │ │ +00013280: 6e20 636f 6d70 6c65 7869 7479 2e0a 0a2a n complexity...* │ │ │ │ +00013290: 204d 656e 753a 0a0a 2a20 4f76 6572 7669 Menu:..* Overvi │ │ │ │ +000132a0: 6577 3a3a 2020 2020 2020 2020 2020 2020 ew:: │ │ │ │ +000132b0: 2020 2020 2020 2020 4275 696c 6469 6e67 Building │ │ │ │ +000132c0: 2061 2073 7562 7374 616e 7469 616c 2064 a substantial d │ │ │ │ +000132d0: 7261 7769 6e67 2e0a 2a20 4120 7465 6368 rawing..* A tech │ │ │ │ +000132e0: 6e69 6361 6c20 6472 6177 696e 673a 3a20 nical drawing:: │ │ │ │ +000132f0: 2020 2020 2020 2020 416e 2065 7861 6d70 An examp │ │ │ │ +00013300: 6c65 2077 6974 6820 6669 6e65 2070 6c61 le with fine pla │ │ │ │ +00013310: 6365 6d65 6e74 2e0a 2a20 4120 6869 6572 cement..* A hier │ │ │ │ +00013320: 6172 6368 6963 616c 206d 6f64 656c 3a3a archical model:: │ │ │ │ +00013330: 2020 2020 2020 2020 416e 2065 7861 6d70 An examp │ │ │ │ +00013340: 6c65 2077 6974 6820 7377 6565 7073 2061 le with sweeps a │ │ │ │ +00013350: 6e64 2070 7574 732e 0a2a 2043 6176 6561 nd puts..* Cavea │ │ │ │ +00013360: 7473 3a3a 2020 2020 2020 2020 2020 2020 ts:: │ │ │ │ +00013370: 2020 2020 2020 2020 2057 6865 7265 2074 Where t │ │ │ │ +00013380: 726f 7562 6c65 2063 616e 206f 6363 7572 rouble can occur │ │ │ │ +00013390: 2e0a 0a1f 0a46 696c 653a 2073 6b65 7463 .....File: sketc │ │ │ │ +000133a0: 682e 696e 666f 2c20 204e 6f64 653a 204f h.info, Node: O │ │ │ │ +000133b0: 7665 7276 6965 772c 2020 4e65 7874 3a20 verview, Next: │ │ │ │ +000133c0: 4120 7465 6368 6e69 6361 6c20 6472 6177 A technical draw │ │ │ │ +000133d0: 696e 672c 2020 5072 6576 3a20 4275 696c ing, Prev: Buil │ │ │ │ +000133e0: 6469 6e67 2061 2064 7261 7769 6e67 2c20 ding a drawing, │ │ │ │ +000133f0: 2055 703a 2042 7569 6c64 696e 6720 6120 Up: Building a │ │ │ │ +00013400: 6472 6177 696e 670a 0a34 2e31 204f 7665 drawing..4.1 Ove │ │ │ │ +00013410: 7276 6965 770a 3d3d 3d3d 3d3d 3d3d 3d3d rview.========== │ │ │ │ +00013420: 3d3d 0a0a 4173 2061 6e20 6f76 6572 7669 ==..As an overvi │ │ │ │ +00013430: 6577 2c20 6c65 7427 7320 6465 7665 6c6f ew, let's develo │ │ │ │ +00013440: 7020 6120 6469 6167 7261 6d20 7468 6174 p a diagram that │ │ │ │ +00013450: 2073 686f 7773 2068 6f77 2061 2070 6572 shows how a per │ │ │ │ +00013460: 7370 6563 7469 7665 0a70 726f 6a65 6374 spective.project │ │ │ │ +00013470: 696f 6e20 7472 616e 7366 6f72 6d20 776f ion transform wo │ │ │ │ +00013480: 726b 732e 2020 5765 276c 6c20 7374 6172 rks. We'll star │ │ │ │ +00013490: 7420 7769 7468 2074 6865 2074 7261 6469 t with the tradi │ │ │ │ +000134a0: 7469 6f6e 616c 2072 6566 6572 656e 6365 tional reference │ │ │ │ +000134b0: 0a6f 626a 6563 7420 7573 6564 2069 6e20 .object used in │ │ │ │ +000134c0: 636f 6d70 7574 6572 2067 7261 7068 6963 computer graphic │ │ │ │ +000134d0: 7320 7465 7874 626f 6f6b 732c 2061 2068 s textbooks, a h │ │ │ │ +000134e0: 6f75 7365 2d73 6861 7065 6420 7072 6973 ouse-shaped pris │ │ │ │ +000134f0: 6d2e 2020 4265 6769 6e0a 6279 2064 6566 m. Begin.by def │ │ │ │ +00013500: 696e 696e 6720 7468 6520 706f 696e 7473 ining the points │ │ │ │ +00013510: 206f 6620 7468 6520 686f 7573 652e 2020 of the house. │ │ │ │ +00013520: 5261 7468 6572 2074 6861 6e20 6465 6669 Rather than defi │ │ │ │ +00013530: 6e69 6e67 2074 6865 2066 6163 6573 206f ning the faces o │ │ │ │ +00013540: 660a 7468 6520 686f 7573 6520 6173 2070 f.the house as p │ │ │ │ +00013550: 6f6c 7967 6f6e 7320 616e 6420 7472 616e olygons and tran │ │ │ │ +00013560: 7366 6f72 6d69 6e67 2074 686f 7365 2c20 sforming those, │ │ │ │ +00013570: 7765 2061 7265 2067 6f69 6e67 2074 6f20 we are going to │ │ │ │ +00013580: 7472 616e 7366 6f72 6d0a 7468 6520 706f transform.the po │ │ │ │ +00013590: 696e 7473 2074 6865 6d73 656c 7665 7320 ints themselves │ │ │ │ +000135a0: 7769 7468 20e2 8098 736b 6574 6368 e280 with ...sketch.. │ │ │ │ +000135b0: 9920 6172 6974 686d 6574 6963 2073 6f20 . arithmetic so │ │ │ │ +000135c0: 7468 6174 2077 6520 6861 7665 206e 616d that we have nam │ │ │ │ +000135d0: 6573 2066 6f72 0a74 6865 2074 7261 6e73 es for.the trans │ │ │ │ +000135e0: 666f 726d 6564 2070 6f69 6e74 7320 6c61 formed points la │ │ │ │ +000135f0: 7465 722e 0a20 2025 2072 6967 6874 2073 ter.. % right s │ │ │ │ +00013600: 6964 6520 286f 7574 7369 6465 2074 6f20 ide (outside to │ │ │ │ +00013610: 7269 6768 7429 0a20 2064 6566 2052 3120 right). def R1 │ │ │ │ +00013620: 2831 2c31 2c31 2920 6465 6620 5232 2028 (1,1,1) def R2 ( │ │ │ │ +00013630: 312c 2d31 2c31 2920 6465 6620 5233 2028 1,-1,1) def R3 ( │ │ │ │ +00013640: 312c 2d31 2c2d 3129 2064 6566 2052 3420 1,-1,-1) def R4 │ │ │ │ +00013650: 2831 2c31 2c2d 3129 0a20 2064 6566 2052 (1,1,-1). def R │ │ │ │ +00013660: 3520 2831 2c31 2e35 2c30 290a 0a20 2025 5 (1,1.5,0).. % │ │ │ │ +00013670: 206c 6566 7420 7369 6465 2028 6f75 7473 left side (outs │ │ │ │ +00013680: 6964 6520 746f 2072 6967 6874 2d2d 6261 ide to right--ba │ │ │ │ +00013690: 636b 7761 7264 290a 2020 6465 6620 5720 ckward). def W │ │ │ │ +000136a0: 205b 322c 302c 305d 0a20 2064 6566 204c [2,0,0]. def L │ │ │ │ +000136b0: 3120 2852 3129 2d5b 575d 2064 6566 204c 1 (R1)-[W] def L │ │ │ │ +000136c0: 3220 2852 3229 2d5b 575d 2064 6566 204c 2 (R2)-[W] def L │ │ │ │ +000136d0: 3320 2852 3329 2d5b 575d 2064 6566 204c 3 (R3)-[W] def L │ │ │ │ +000136e0: 3420 2852 3429 2d5b 575d 0a20 2064 6566 4 (R4)-[W]. def │ │ │ │ +000136f0: 204c 3520 2852 3529 2d5b 575d 0a54 6f20 L5 (R5)-[W].To │ │ │ │ +00013700: 6164 6420 6120 646f 6f72 2074 6f20 7468 add a door to th │ │ │ │ +00013710: 6520 686f 7573 652c 2077 6520 7573 6520 e house, we use │ │ │ │ +00013720: 6120 706f 6c79 676f 6e20 736c 6967 6874 a polygon slight │ │ │ │ +00013730: 6c79 2069 6e20 6672 6f6e 7420 6f66 2074 ly in front of t │ │ │ │ +00013740: 6865 0a66 6f72 656d 6f73 7420 6661 6365 he.foremost face │ │ │ │ +00013750: 206f 6620 7468 6520 686f 7573 652e 0a20 of the house.. │ │ │ │ +00013760: 2025 2064 6f6f 720a 2020 6465 6620 6520 % door. def e │ │ │ │ +00013770: 2e30 310a 2020 6465 6620 4431 2028 302c .01. def D1 (0, │ │ │ │ +00013780: 2d31 2c31 2b65 2920 6465 6620 4432 2028 -1,1+e) def D2 ( │ │ │ │ +00013790: 2e35 2c2d 312c 312b 6529 2064 6566 2044 .5,-1,1+e) def D │ │ │ │ +000137a0: 3320 282e 352c 302c 312b 6529 2064 6566 3 (.5,0,1+e) def │ │ │ │ +000137b0: 2044 3420 2830 2c30 2c31 2b65 290a 4e6f D4 (0,0,1+e).No │ │ │ │ +000137c0: 7720 6c65 7427 7320 6372 6561 7465 2061 w let's create a │ │ │ │ +000137d0: 206e 6577 2073 6574 206f 6620 706f 696e new set of poin │ │ │ │ +000137e0: 7473 2074 6861 7420 6172 6520 6120 746f ts that are a to │ │ │ │ +000137f0: 2d62 652d 6465 7465 726d 696e 6564 0a74 -be-determined.t │ │ │ │ +00013800: 7261 6e73 666f 726d 206f 6620 7468 6520 ransform of the │ │ │ │ +00013810: 6f72 6967 696e 616c 732e 0a20 2064 6566 originals.. def │ │ │ │ +00013820: 2068 7020 7363 616c 6528 3129 2025 2068 hp scale(1) % h │ │ │ │ +00013830: 6f75 7365 2070 6f73 6974 696f 6e65 720a ouse positioner. │ │ │ │ +00013840: 2020 6465 6620 7052 3120 5b5b 6870 5d5d def pR1 [[hp]] │ │ │ │ +00013850: 2a28 5231 2920 6465 6620 7052 3220 5b5b *(R1) def pR2 [[ │ │ │ │ +00013860: 6870 5d5d 2a28 5232 2920 6465 6620 7052 hp]]*(R2) def pR │ │ │ │ +00013870: 3320 5b5b 6870 5d5d 2a28 5233 290a 2020 3 [[hp]]*(R3). │ │ │ │ +00013880: 6465 6620 7052 3420 5b5b 6870 5d5d 2a28 def pR4 [[hp]]*( │ │ │ │ +00013890: 5234 2920 6465 6620 7052 3520 5b5b 6870 R4) def pR5 [[hp │ │ │ │ +000138a0: 5d5d 2a28 5235 290a 2020 6465 6620 704c ]]*(R5). def pL │ │ │ │ +000138b0: 3120 5b5b 6870 5d5d 2a28 4c31 2920 6465 1 [[hp]]*(L1) de │ │ │ │ +000138c0: 6620 704c 3220 5b5b 6870 5d5d 2a28 4c32 f pL2 [[hp]]*(L2 │ │ │ │ +000138d0: 2920 6465 6620 704c 3320 5b5b 6870 5d5d ) def pL3 [[hp]] │ │ │ │ +000138e0: 2a28 4c33 290a 2020 6465 6620 704c 3420 *(L3). def pL4 │ │ │ │ +000138f0: 5b5b 6870 5d5d 2a28 4c34 2920 6465 6620 [[hp]]*(L4) def │ │ │ │ +00013900: 704c 3520 5b5b 6870 5d5d 2a28 4c35 290a pL5 [[hp]]*(L5). │ │ │ │ +00013910: 2020 6465 6620 7044 3120 5b5b 6870 5d5d def pD1 [[hp]] │ │ │ │ +00013920: 2a28 4431 2920 6465 6620 7044 3220 5b5b *(D1) def pD2 [[ │ │ │ │ +00013930: 6870 5d5d 2a28 4432 2920 6465 6620 7044 hp]]*(D2) def pD │ │ │ │ +00013940: 3320 5b5b 6870 5d5d 2a28 4433 290a 2020 3 [[hp]]*(D3). │ │ │ │ +00013950: 6465 6620 7044 3420 5b5b 6870 5d5d 2a28 def pD4 [[hp]]*( │ │ │ │ +00013960: 4434 2920 0a4e 6f74 6520 7468 6520 7573 D4) .Note the us │ │ │ │ +00013970: 6520 6f66 2061 20e2 809c 7472 616e 7366 e of a ...transf │ │ │ │ +00013980: 6f72 6d20 6465 6669 6e69 7469 6f6e e280 orm definition.. │ │ │ │ +00013990: 9d20 616e 6420 e280 9c74 7261 6e73 666f . and ...transfo │ │ │ │ +000139a0: 726d 2072 6566 6572 656e 6365 73e2 809d rm references... │ │ │ │ +000139b0: 2e0a 4e6f 7720 6465 6669 6e65 2074 6865 ..Now define the │ │ │ │ +000139c0: 2073 6576 656e 2070 6f6c 7967 6f6e 616c seven polygonal │ │ │ │ +000139d0: 2066 6163 6573 206f 6620 7468 6520 686f faces of the ho │ │ │ │ +000139e0: 7573 6520 616e 6420 7468 6520 646f 6f72 use and the door │ │ │ │ +000139f0: 2075 7369 6e67 2074 6865 0a74 7261 6e73 using the.trans │ │ │ │ +00013a00: 666f 726d 6564 2070 6f69 6e74 7320 6173 formed points as │ │ │ │ +00013a10: 2076 6572 7469 6365 732e 2020 4265 2063 vertices. Be c │ │ │ │ +00013a20: 6172 6566 756c 2077 6974 6820 7665 7274 areful with vert │ │ │ │ +00013a30: 6578 206f 7264 6572 210a 2020 6465 6620 ex order!. def │ │ │ │ +00013a40: 7267 7420 706f 6c79 676f 6e20 2870 5231 rgt polygon (pR1 │ │ │ │ +00013a50: 2928 7052 3229 2870 5233 2928 7052 3429 )(pR2)(pR3)(pR4) │ │ │ │ +00013a60: 2870 5235 290a 2020 6465 6620 6c66 7420 (pR5). def lft │ │ │ │ +00013a70: 706f 6c79 676f 6e20 2870 4c35 2928 704c polygon (pL5)(pL │ │ │ │ +00013a80: 3429 2870 4c33 2928 704c 3229 2870 4c31 4)(pL3)(pL2)(pL1 │ │ │ │ +00013a90: 290a 2020 6465 6620 6672 7420 706f 6c79 ). def frt poly │ │ │ │ +00013aa0: 676f 6e20 2870 5232 2928 7052 3129 2870 gon (pR2)(pR1)(p │ │ │ │ +00013ab0: 4c31 2928 704c 3229 0a20 2064 6566 2062 L1)(pL2). def b │ │ │ │ +00013ac0: 636b 2070 6f6c 7967 6f6e 2028 7052 3429 ck polygon (pR4) │ │ │ │ +00013ad0: 2870 5233 2928 704c 3329 2870 4c34 290a (pR3)(pL3)(pL4). │ │ │ │ +00013ae0: 2020 6465 6620 7466 7220 706f 6c79 676f def tfr polygo │ │ │ │ +00013af0: 6e20 2870 5231 2928 7052 3529 2870 4c35 n (pR1)(pR5)(pL5 │ │ │ │ +00013b00: 2928 704c 3129 0a20 2064 6566 2074 626b )(pL1). def tbk │ │ │ │ +00013b10: 2070 6f6c 7967 6f6e 2028 7052 3529 2870 polygon (pR5)(p │ │ │ │ +00013b20: 5234 2928 704c 3429 2870 4c35 290a 2020 R4)(pL4)(pL5). │ │ │ │ +00013b30: 6465 6620 626f 7420 706f 6c79 676f 6e20 def bot polygon │ │ │ │ +00013b40: 2870 5232 2928 704c 3229 2870 4c33 2928 (pR2)(pL2)(pL3)( │ │ │ │ +00013b50: 7052 3329 0a20 2064 6566 2064 6f6f 7220 pR3). def door │ │ │ │ +00013b60: 706f 6c79 676f 6e5b 6669 6c6c 636f 6c6f polygon[fillcolo │ │ │ │ +00013b70: 723d 6272 6f77 6e5d 2028 7044 3129 2870 r=brown] (pD1)(p │ │ │ │ +00013b80: 4432 2928 7044 3329 2870 4434 290a 2020 D2)(pD3)(pD4). │ │ │ │ +00013b90: 6465 6620 686f 7573 6520 7b20 7b72 6774 def house { {rgt │ │ │ │ +00013ba0: 7d7b 6c66 747d 7b66 7274 7d7b 6263 6b7d }{lft}{frt}{bck} │ │ │ │ +00013bb0: 7b74 6672 7d7b 7462 6b7d 7b62 6f74 7d7b {tfr}{tbk}{bot}{ │ │ │ │ +00013bc0: 646f 6f72 7d20 7d0a 2020 2054 696d 6520 door} }. Time │ │ │ │ +00013bd0: 666f 7220 6120 7361 6e69 7479 2063 6865 for a sanity che │ │ │ │ +00013be0: 636b 2e20 2041 6464 2074 6865 206c 696e ck. Add the lin │ │ │ │ +00013bf0: 650a 2020 7b68 6f75 7365 7d0a 616e 6420 e. {house}.and │ │ │ │ +00013c00: 7468 6973 2069 7320 7768 6174 2077 6520 this is what we │ │ │ │ +00013c10: 6765 742e 0a0a 0008 5b69 6d61 6765 2073 get.....[image s │ │ │ │ +00013c20: 7263 3d22 6578 3133 302e 706e 6722 2074 rc="ex130.png" t │ │ │ │ +00013c30: 6578 743d 2249 6d61 6765 2065 7831 3330 ext="Image ex130 │ │ │ │ +00013c40: 206f 6d69 7474 6564 2069 6e20 7465 7874 omitted in text │ │ │ │ +00013c50: 2076 6572 7369 6f6e 206f 6620 7468 6973 version of this │ │ │ │ +00013c60: 2064 6f63 756d 656e 742e 2200 085d 0a0a document."..].. │ │ │ │ +00013c70: 5468 6973 2069 7320 636f 7272 6563 742c This is correct, │ │ │ │ +00013c80: 2062 7574 2064 6f65 7320 6e6f 7420 7265 but does not re │ │ │ │ +00013c90: 7665 616c 2076 6572 7920 6d75 6368 2e20 veal very much. │ │ │ │ +00013ca0: 2043 6f6d 6d6f 6e20 6572 726f 7273 2061 Common errors a │ │ │ │ +00013cb0: 7265 0a6d 6973 706c 6163 6564 2076 6572 re.misplaced ver │ │ │ │ +00013cc0: 7469 6365 7320 616e 6420 706f 6c79 676f tices and polygo │ │ │ │ +00013cd0: 6e73 206d 6973 7369 6e67 2065 6e74 6972 ns missing entir │ │ │ │ +00013ce0: 656c 7920 6475 6520 746f 2069 6e63 6f72 ely due to incor │ │ │ │ +00013cf0: 7265 6374 2076 6572 7465 780a 6f72 6465 rect vertex.orde │ │ │ │ +00013d00: 722e 2020 546f 2072 756c 6520 7468 6573 r. To rule thes │ │ │ │ +00013d10: 6520 6f75 742c 206c 6574 2773 2069 6e73 e out, let's ins │ │ │ │ +00013d20: 7065 6374 2061 6c6c 2073 6964 6573 206f pect all sides o │ │ │ │ +00013d30: 6620 7468 6520 686f 7573 652e 2020 5468 f the house. Th │ │ │ │ +00013d40: 6973 0a69 7320 6e6f 7420 6861 7264 2e20 is.is not hard. │ │ │ │ +00013d50: 204d 6572 656c 7920 7265 706c 6163 6520 Merely replace │ │ │ │ +00013d60: 7468 6520 7265 6665 7265 6e63 6520 7b68 the reference {h │ │ │ │ +00013d70: 6f75 7365 7d20 7769 7468 2061 20e2 8098 ouse} with a ... │ │ │ │ +00013d80: 7265 7065 6174 e280 992e 0a2a 4e6f 7465 repeat.....*Note │ │ │ │ +00013d90: 2052 6570 6561 7473 3a3a 2e0a 2020 7265 Repeats::.. re │ │ │ │ +00013da0: 7065 6174 207b 2031 332c 2072 6f74 6174 peat { 13, rotat │ │ │ │ +00013db0: 6528 3330 2c20 5b31 2c32 2c33 5d29 2c20 e(30, [1,2,3]), │ │ │ │ +00013dc0: 7472 616e 736c 6174 6528 5b33 2c30 2c30 translate([3,0,0 │ │ │ │ +00013dd0: 5d29 207d 207b 686f 7573 657d 0a00 085b ]) } {house}...[ │ │ │ │ +00013de0: 696d 6167 6520 7372 633d 2265 7831 3430 image src="ex140 │ │ │ │ +00013df0: 2e70 6e67 2220 7465 7874 3d22 496d 6167 .png" text="Imag │ │ │ │ +00013e00: 6520 6578 3134 3020 6f6d 6974 7465 6420 e ex140 omitted │ │ │ │ +00013e10: 696e 2074 6578 7420 7665 7273 696f 6e20 in text version │ │ │ │ +00013e20: 6f66 2074 6869 7320 646f 6375 6d65 6e74 of this document │ │ │ │ +00013e30: 2e22 0008 5d0a 0a41 6761 696e 2074 6869 ."..]..Again thi │ │ │ │ +00013e40: 6e67 7320 6c6f 6f6b 2063 6f72 7265 6374 ngs look correct │ │ │ │ +00013e50: 2e20 204e 6f74 6520 7468 6174 2074 6865 . Note that the │ │ │ │ +00013e60: 2068 6964 6465 6e20 7375 7266 6163 6520 hidden surface │ │ │ │ +00013e70: 616c 676f 7269 7468 6d0a 6861 6e64 6c65 algorithm.handle │ │ │ │ +00013e80: 7320 696e 7465 7273 6563 7469 6e67 2070 s intersecting p │ │ │ │ +00013e90: 6f6c 7967 6f6e 7320 636f 7272 6563 746c olygons correctl │ │ │ │ +00013ea0: 7920 7768 6572 6520 736f 6d65 2063 6f70 y where some cop │ │ │ │ +00013eb0: 6965 7320 6f66 2074 6865 2068 6f75 7365 ies of the house │ │ │ │ +00013ec0: 0a6f 7665 726c 6170 2e0a 0a20 2020 4c65 .overlap... Le │ │ │ │ +00013ed0: 7427 7320 6c61 7920 6f75 7420 7468 6520 t's lay out the │ │ │ │ +00013ee0: 6765 6f6d 6574 7279 206f 6620 7065 7273 geometry of pers │ │ │ │ +00013ef0: 7065 6374 6976 6520 7072 6f6a 6563 7469 pective projecti │ │ │ │ +00013f00: 6f6e 206f 6620 7468 6520 686f 7573 650a on of the house. │ │ │ │ +00013f10: 6f6e 746f 2061 2070 6c61 6e65 2077 6974 onto a plane wit │ │ │ │ +00013f20: 6820 7261 7973 2070 6173 7369 6e67 2074 h rays passing t │ │ │ │ +00013f30: 6872 6f75 6768 2074 6865 206f 7269 6769 hrough the origi │ │ │ │ +00013f40: 6e2e 2020 4265 6769 6e20 6279 2070 6f73 n. Begin by pos │ │ │ │ +00013f50: 6974 696f 6e69 6e67 0a74 6865 2068 6f75 itioning.the hou │ │ │ │ +00013f60: 7365 2074 7765 6c76 6520 756e 6974 7320 se twelve units │ │ │ │ +00013f70: 6261 636b 206f 6e20 7468 6520 6e65 6761 back on the nega │ │ │ │ +00013f80: 7469 7665 207a 2d61 7869 7320 616e 6420 tive z-axis and │ │ │ │ +00013f90: 6164 6469 6e67 2061 2073 6574 206f 660a adding a set of. │ │ │ │ +00013fa0: 636f 6f72 6469 6e61 7465 2061 7865 732e coordinate axes. │ │ │ │ +00013fb0: 2020 546f 206d 6f76 6520 7468 6520 686f To move the ho │ │ │ │ +00013fc0: 7573 6520 7765 206e 6565 6420 6f6e 6c79 use we need only │ │ │ │ +00013fd0: 2063 6861 6e67 6520 7468 6520 2268 6f75 change the "hou │ │ │ │ +00013fe0: 7365 0a70 6f73 6974 696f 6e69 6e67 2220 se.positioning" │ │ │ │ +00013ff0: 7472 616e 7366 6f72 6d20 6465 6669 6e65 transform define │ │ │ │ +00014000: 6420 6561 726c 6965 722e 0a20 2064 6566 d earlier.. def │ │ │ │ +00014010: 2068 7020 726f 7461 7465 282d 3430 2c20 hp rotate(-40, │ │ │ │ +00014020: 5b30 2c31 2c30 5d29 2074 6865 6e20 7472 [0,1,0]) then tr │ │ │ │ +00014030: 616e 736c 6174 6528 5b30 2c30 2c2d 3132 anslate([0,0,-12 │ │ │ │ +00014040: 5d29 0a20 2064 6566 2061 7865 7320 7b0a ]). def axes {. │ │ │ │ +00014050: 2020 2020 6465 6620 737a 2031 0a20 2020 def sz 1. │ │ │ │ +00014060: 206c 696e 6520 5b61 7272 6f77 733d 3c2d line [arrows=<- │ │ │ │ +00014070: 3e5d 2028 737a 2c30 2c30 2928 4f29 2830 >] (sz,0,0)(O)(0 │ │ │ │ +00014080: 2c73 7a2c 3029 0a20 2020 206c 696e 6520 ,sz,0). line │ │ │ │ +00014090: 5b61 7272 6f77 733d 2d3e 5d20 2028 4f29 [arrows=->] (O) │ │ │ │ +000140a0: 2830 2c30 2c73 7a29 0a20 2020 206c 696e (0,0,sz). lin │ │ │ │ +000140b0: 6520 5b6c 696e 6577 6964 7468 3d2e 3270 e [linewidth=.2p │ │ │ │ +000140c0: 742c 6c69 6e65 636f 6c6f 723d 626c 7565 t,linecolor=blue │ │ │ │ +000140d0: 2c6c 696e 6573 7479 6c65 3d64 6173 6865 ,linestyle=dashe │ │ │ │ +000140e0: 645d 2028 4f29 2830 2c30 2c2d 3130 290a d] (O)(0,0,-10). │ │ │ │ +000140f0: 2020 2020 7370 6563 6961 6c20 7c5c 7570 special |\up │ │ │ │ +00014100: 7574 5b72 5d23 317b 2478 247d 5c75 7075 ut[r]#1{$x$}\upu │ │ │ │ +00014110: 745b 755d 2332 7b24 7924 7d5c 7570 7574 t[u]#2{$y$}\uput │ │ │ │ +00014120: 5b6c 5d23 337b 247a 247d 7c0a 2020 2020 [l]#3{$z$}|. │ │ │ │ +00014130: 2020 2873 7a2c 302c 3029 2830 2c73 7a2c (sz,0,0)(0,sz, │ │ │ │ +00014140: 3029 2830 2c30 2c73 7a29 0a20 207d 0a0a 0)(0,0,sz). }.. │ │ │ │ +00014150: 2020 2054 696d 6520 666f 7220 616e 6f74 Time for anot │ │ │ │ +00014160: 6865 7220 7465 7374 2e20 204c 6574 2773 her test. Let's │ │ │ │ +00014170: 2062 7569 6c64 2061 2072 6561 6c20 7669 build a real vi │ │ │ │ +00014180: 6577 2074 7261 6e73 666f 726d 2c20 6372 ew transform, cr │ │ │ │ +00014190: 6561 7469 6e67 2061 0ae2 809c 7669 7274 eating a....virt │ │ │ │ +000141a0: 7561 6c20 6361 6d65 7261 e280 9d20 746f ual camera... to │ │ │ │ +000141b0: 206c 6f6f 6b20 6174 2074 6865 2073 6365 look at the sce │ │ │ │ +000141c0: 6e65 2077 6520 6172 6520 636f 6e73 7472 ne we are constr │ │ │ │ +000141d0: 7563 7469 6e67 2e20 2052 6570 6c61 6365 ucting. Replace │ │ │ │ +000141e0: 2074 6865 0ae2 8098 7265 7065 6174 e280 the....repeat.. │ │ │ │ +000141f0: 9920 7769 7468 0a20 2064 6566 2065 7965 . with. def eye │ │ │ │ +00014200: 2028 3130 2c34 2c31 3029 0a20 2064 6566 (10,4,10). def │ │ │ │ +00014210: 206c 6f6f 6b5f 6174 2028 302c 302c 2d35 look_at (0,0,-5 │ │ │ │ +00014220: 290a 2020 7075 7420 7b20 7669 6577 2828 ). put { view(( │ │ │ │ +00014230: 6579 6529 2c20 286c 6f6f 6b5f 6174 2929 eye), (look_at)) │ │ │ │ +00014240: 207d 207b 207b 686f 7573 657d 7b61 7865 } { {house}{axe │ │ │ │ +00014250: 737d 207d 0a20 2020 5468 6520 e280 9c76 s} }. The ...v │ │ │ │ +00014260: 6965 7720 7472 616e 7366 6f72 6de2 809d iew transform... │ │ │ │ +00014270: 2072 6570 6f73 6974 696f 6e73 2074 6865 repositions the │ │ │ │ +00014280: 2073 6365 6e65 2073 6f20 7468 6174 2074 scene so that t │ │ │ │ +00014290: 6865 2070 6f69 6e74 20e2 8098 6579 65e2 he point ...eye. │ │ │ │ +000142a0: 8099 2069 730a 6174 2074 6865 206f 7269 .. is.at the ori │ │ │ │ +000142b0: 6769 6e20 616e 6420 7468 6520 6469 7265 gin and the dire │ │ │ │ +000142c0: 6374 696f 6e20 6672 6f6d 20e2 8098 6579 ction from ...ey │ │ │ │ +000142d0: 65e2 8099 2074 6f20 e280 986c 6f6f 6b5f e... to ...look_ │ │ │ │ +000142e0: 6174 e280 9920 6973 2074 6865 206e 6567 at... is the neg │ │ │ │ +000142f0: 6174 6976 650a 7a2d 6178 6973 2e20 2054 ative.z-axis. T │ │ │ │ +00014300: 6869 7320 7265 7175 6972 6573 2061 2072 his requires a r │ │ │ │ +00014310: 6f74 6174 696f 6e20 616e 6420 6120 7472 otation and a tr │ │ │ │ +00014320: 616e 736c 6174 696f 6e20 7468 6174 2061 anslation that a │ │ │ │ +00014330: 7265 2061 6c6c 2070 6163 6b65 640a 696e re all packed.in │ │ │ │ +00014340: 746f 2074 6865 2063 6f6e 7374 7275 6374 to the construct │ │ │ │ +00014350: 6f72 20e2 8098 7669 6577 e280 992e 0a0a or ...view...... │ │ │ │ +00014360: 0008 5b69 6d61 6765 2073 7263 3d22 6578 ..[image src="ex │ │ │ │ +00014370: 3135 302e 706e 6722 2074 6578 743d 2249 150.png" text="I │ │ │ │ +00014380: 6d61 6765 2065 7831 3530 206f 6d69 7474 mage ex150 omitt │ │ │ │ +00014390: 6564 2069 6e20 7465 7874 2076 6572 7369 ed in text versi │ │ │ │ +000143a0: 6f6e 206f 6620 7468 6973 2064 6f63 756d on of this docum │ │ │ │ +000143b0: 656e 742e 2200 085d 0a0a 5468 6973 2069 ent."..]..This i │ │ │ │ +000143c0: 7320 7374 6172 7469 6e67 2074 6f20 6c6f s starting to lo │ │ │ │ +000143d0: 6f6b 2067 6f6f 6421 2020 4164 6420 7468 ok good! Add th │ │ │ │ +000143e0: 6520 7072 6f6a 6563 7469 6f6e 2070 6c61 e projection pla │ │ │ │ +000143f0: 6e65 2068 616c 6620 7761 790a 6265 7477 ne half way.betw │ │ │ │ +00014400: 6565 6e20 7468 6520 6f72 6967 696e 2061 een the origin a │ │ │ │ +00014410: 6e64 2074 6865 2068 6f75 7365 2061 7420 nd the house at │ │ │ │ +00014420: 7a3d 2d35 2e20 2057 6527 6c6c 2074 7279 z=-5. We'll try │ │ │ │ +00014430: 2074 6865 2061 6e67 6c65 2061 7267 756d the angle argum │ │ │ │ +00014440: 656e 740a 6665 6174 7572 6520 6f66 20e2 ent.feature of . │ │ │ │ +00014450: 8098 7370 6563 6961 6ce2 8099 2074 6f20 ..special... to │ │ │ │ +00014460: 706f 7369 7469 6f6e 2061 206c 6162 656c position a label │ │ │ │ +00014470: 2e0a 2020 6465 6620 7020 3520 2520 7072 .. def p 5 % pr │ │ │ │ +00014480: 6f6a 6563 7469 6f6e 2064 6973 7461 6e63 ojection distanc │ │ │ │ +00014490: 6520 2870 6c61 6e65 2061 7420 7a3d 2d70 e (plane at z=-p │ │ │ │ +000144a0: 290a 2020 6465 6620 7072 6f6a 6563 7469 ). def projecti │ │ │ │ +000144b0: 6f6e 5f70 6c61 6e65 207b 0a20 2020 2064 on_plane {. d │ │ │ │ +000144c0: 6566 2073 7a20 312e 350a 2020 2020 706f ef sz 1.5. po │ │ │ │ +000144d0: 6c79 676f 6e20 282d 737a 2c2d 737a 2c2d lygon (-sz,-sz,- │ │ │ │ +000144e0: 7029 2873 7a2c 2d73 7a2c 2d70 2928 737a p)(sz,-sz,-p)(sz │ │ │ │ +000144f0: 2c73 7a2c 2d70 2928 2d73 7a2c 737a 2c2d ,sz,-p)(-sz,sz,- │ │ │ │ +00014500: 7029 0a20 2020 2073 7065 6369 616c 207c p). special | │ │ │ │ +00014510: 5c72 7075 745b 625d 2331 2d32 2333 7b5c \rput[b]#1-2#3{\ │ │ │ │ +00014520: 666f 6f74 6e6f 7465 7369 7a65 5c73 6620 footnotesize\sf │ │ │ │ +00014530: 7072 6f6a 6563 7469 6f6e 2070 6c61 6e65 projection plane │ │ │ │ +00014540: 7d7c 200a 2020 2020 2020 282d 737a 2c2d }| . (-sz,- │ │ │ │ +00014550: 737a 2c2d 7029 2873 7a2c 2d73 7a2c 2d70 sz,-p)(sz,-sz,-p │ │ │ │ +00014560: 2928 302c 2d73 7a2b 2e31 2c2d 7029 0a20 )(0,-sz+.1,-p). │ │ │ │ +00014570: 207d 0a41 6464 207b 7072 6f6a 6563 7469 }.Add {projecti │ │ │ │ +00014580: 6f6e 5f70 6c61 6e65 7d20 746f 2074 6865 on_plane} to the │ │ │ │ +00014590: 206c 6973 7420 6f66 206f 626a 6563 7473 list of objects │ │ │ │ +000145a0: 2069 6e20 7468 6520 e280 9870 7574 e280 in the ...put.. │ │ │ │ +000145b0: 9920 6162 6f76 652e 0a0a 0008 5b69 6d61 . above.....[ima │ │ │ │ +000145c0: 6765 2073 7263 3d22 6578 3136 302e 706e ge src="ex160.pn │ │ │ │ +000145d0: 6722 2074 6578 743d 2249 6d61 6765 2065 g" text="Image e │ │ │ │ +000145e0: 7831 3630 206f 6d69 7474 6564 2069 6e20 x160 omitted in │ │ │ │ +000145f0: 7465 7874 2076 6572 7369 6f6e 206f 6620 text version of │ │ │ │ +00014600: 7468 6973 2064 6f63 756d 656e 742e 2200 this document.". │ │ │ │ +00014610: 085d 0a0a 2020 2054 6865 2077 6179 2077 .].. The way w │ │ │ │ +00014620: 6520 636f 6e73 7472 7563 7465 6420 7468 e constructed th │ │ │ │ +00014630: 6520 706f 696e 7473 206f 6620 7468 6520 e points of the │ │ │ │ +00014640: 686f 7573 6520 6e6f 7720 6d61 6b65 7320 house now makes │ │ │ │ +00014650: 6974 2065 6173 7920 746f 0a64 7261 7720 it easy to.draw │ │ │ │ +00014660: 7261 7973 206f 6620 7072 6f6a 6563 7469 rays of projecti │ │ │ │ +00014670: 6f6e 2e20 2057 6527 6c6c 2063 6173 7420 on. We'll cast │ │ │ │ +00014680: 6f6e 6520 7261 7920 6672 6f6d 2065 7665 one ray from eve │ │ │ │ +00014690: 7279 2076 6973 6962 6c65 2076 6572 7465 ry visible verte │ │ │ │ +000146a0: 780a 6f66 2074 6865 2068 6f75 7365 2061 x.of the house a │ │ │ │ +000146b0: 6e64 2064 6566 696e 6520 6f70 7469 6f6e nd define option │ │ │ │ +000146c0: 7320 736f 2074 6865 2061 7070 6561 7261 s so the appeara │ │ │ │ +000146d0: 6e63 6520 6f66 2061 6c6c 2072 6179 7320 nce of all rays │ │ │ │ +000146e0: 6361 6e20 6265 0a63 6861 6e67 6564 2061 can be.changed a │ │ │ │ +000146f0: 7420 7468 6520 7361 6d65 2074 696d 652e t the same time. │ │ │ │ +00014700: 0a20 2064 6566 2070 726f 6a65 6374 696f . def projectio │ │ │ │ +00014710: 6e5f 7261 7973 207b 0a20 2020 2064 6566 n_rays {. def │ │ │ │ +00014720: 2072 6179 6f70 7420 5b6c 696e 6577 6964 rayopt [linewid │ │ │ │ +00014730: 7468 3d2e 3370 742c 6c69 6e65 636f 6c6f th=.3pt,linecolo │ │ │ │ +00014740: 723d 6c69 6768 7467 7261 795d 0a20 2020 r=lightgray]. │ │ │ │ +00014750: 206c 696e 6520 5b72 6179 6f70 745d 284f line [rayopt](O │ │ │ │ +00014760: 2928 7052 3129 206c 696e 6520 5b72 6179 )(pR1) line [ray │ │ │ │ +00014770: 6f70 745d 284f 2928 7052 3229 206c 696e opt](O)(pR2) lin │ │ │ │ +00014780: 655b 7261 796f 7074 5d28 4f29 2870 5233 e[rayopt](O)(pR3 │ │ │ │ +00014790: 290a 2020 2020 6c69 6e65 205b 7261 796f ). line [rayo │ │ │ │ +000147a0: 7074 5d28 4f29 2870 5234 2920 6c69 6e65 pt](O)(pR4) line │ │ │ │ +000147b0: 205b 7261 796f 7074 5d28 4f29 2870 5235 [rayopt](O)(pR5 │ │ │ │ +000147c0: 290a 2020 2020 6c69 6e65 205b 7261 796f ). line [rayo │ │ │ │ +000147d0: 7074 5d28 4f29 2870 4c31 2920 6c69 6e65 pt](O)(pL1) line │ │ │ │ +000147e0: 205b 7261 796f 7074 5d28 4f29 2870 4c32 [rayopt](O)(pL2 │ │ │ │ +000147f0: 2920 6c69 6e65 5b72 6179 6f70 745d 284f ) line[rayopt](O │ │ │ │ +00014800: 2928 704c 3529 0a20 2020 206c 696e 6520 )(pL5). line │ │ │ │ +00014810: 5b72 6179 6f70 745d 284f 2928 7044 3129 [rayopt](O)(pD1) │ │ │ │ +00014820: 206c 696e 6520 5b72 6179 6f70 745d 284f line [rayopt](O │ │ │ │ +00014830: 2928 7044 3229 200a 2020 2020 6c69 6e65 )(pD2) . line │ │ │ │ +00014840: 205b 7261 796f 7074 5d28 4f29 2870 4433 [rayopt](O)(pD3 │ │ │ │ +00014850: 2920 6c69 6e65 205b 7261 796f 7074 5d28 ) line [rayopt]( │ │ │ │ +00014860: 4f29 2870 4434 2920 0a20 207d 0a54 6865 O)(pD4) . }.The │ │ │ │ +00014870: 2072 6573 756c 7420 6973 2073 686f 776e result is shown │ │ │ │ +00014880: 2068 6572 652e 0a0a 0008 5b69 6d61 6765 here.....[image │ │ │ │ +00014890: 2073 7263 3d22 6578 3137 302e 706e 6722 src="ex170.png" │ │ │ │ +000148a0: 2074 6578 743d 2249 6d61 6765 2065 7831 text="Image ex1 │ │ │ │ +000148b0: 3730 206f 6d69 7474 6564 2069 6e20 7465 70 omitted in te │ │ │ │ +000148c0: 7874 2076 6572 7369 6f6e 206f 6620 7468 xt version of th │ │ │ │ +000148d0: 6973 2064 6f63 756d 656e 742e 2200 085d is document."..] │ │ │ │ +000148e0: 0a0a 5468 6520 7261 7973 2070 6965 7263 ..The rays pierc │ │ │ │ +000148f0: 6520 7468 6520 7072 6f6a 6563 7469 6f6e e the projection │ │ │ │ +00014900: 2070 6c61 6e65 2061 7420 7468 6520 636f plane at the co │ │ │ │ +00014910: 7272 6573 706f 6e64 696e 6720 706f 696e rresponding poin │ │ │ │ +00014920: 7473 206f 6e20 7468 650a 7065 7273 7065 ts on the.perspe │ │ │ │ +00014930: 6374 6976 6520 696d 6167 6520 7765 2061 ctive image we a │ │ │ │ +00014940: 7265 2074 7279 696e 6720 746f 2064 7261 re trying to dra │ │ │ │ +00014950: 772e 2020 416c 6272 6563 6874 2044 c3bc w. Albrecht D.. │ │ │ │ +00014960: 7265 7220 616e 6420 6869 730a 5265 6e61 rer and his.Rena │ │ │ │ +00014970: 6973 7361 6e63 6520 636f 6e74 656d 706f issance contempo │ │ │ │ +00014980: 7261 7269 6573 2068 6164 2074 6865 2073 raries had the s │ │ │ │ +00014990: 616d 6520 6964 6561 2069 6e20 7468 6520 ame idea in the │ │ │ │ +000149a0: 6561 726c 7920 3135 3030 2773 2e0a 0a00 early 1500's.... │ │ │ │ +000149b0: 085b 696d 6167 6520 7372 633d 2264 7565 .[image src="due │ │ │ │ +000149c0: 7265 722e 706e 6722 2074 6578 743d 2249 rer.png" text="I │ │ │ │ +000149d0: 6d61 6765 206f 6620 4475 6572 6572 2773 mage of Duerer's │ │ │ │ +000149e0: 2070 6572 7370 6563 7469 7665 2063 6f6d perspective com │ │ │ │ +000149f0: 7075 7465 7220 6f6d 6974 7465 6420 696e puter omitted in │ │ │ │ +00014a00: 2074 6578 7420 7665 7273 696f 6e20 6f66 text version of │ │ │ │ +00014a10: 2074 6869 7320 646f 6375 6d65 6e74 2e22 this document." │ │ │ │ +00014a20: 0008 5d0a 0a20 2020 416c 6c20 7468 6174 ..].. All that │ │ │ │ +00014a30: 2773 206c 6566 7420 6973 2074 6f20 6669 's left is to fi │ │ │ │ +00014a40: 6e64 2061 2077 6179 2074 6f20 636f 6e6e nd a way to conn │ │ │ │ +00014a50: 6563 7420 7468 6520 706f 696e 7473 206f ect the points o │ │ │ │ +00014a60: 6620 7468 6520 686f 7573 650a 6f6e 2074 f the house.on t │ │ │ │ +00014a70: 6865 2070 726f 6a65 6374 696f 6e20 706c he projection pl │ │ │ │ +00014a80: 616e 652e 2020 5765 2063 6f75 6c64 2070 ane. We could p │ │ │ │ +00014a90: 756c 6c20 6f75 7420 6120 676f 6f64 2063 ull out a good c │ │ │ │ +00014aa0: 6f6d 7075 7465 7220 6772 6170 6869 6373 omputer graphics │ │ │ │ +00014ab0: 0a74 6578 742c 2066 696e 6420 7468 6520 .text, find the │ │ │ │ +00014ac0: 6e65 6365 7373 6172 7920 6d61 7472 6978 necessary matrix │ │ │ │ +00014ad0: 2c20 616e 6420 656e 7465 7220 6974 206f , and enter it o │ │ │ │ +00014ae0: 7572 7365 6c76 6573 2061 7320 6120 7472 urselves as a tr │ │ │ │ +00014af0: 616e 7366 6f72 6d0a 6c69 7465 7261 6c2e ansform.literal. │ │ │ │ +00014b00: 2020 2a4e 6f74 6520 5472 616e 7366 6f72 *Note Transfor │ │ │ │ +00014b10: 6d20 6c69 7465 7261 6c73 3a3a 2e20 2054 m literals::. T │ │ │ │ +00014b20: 6861 7420 776f 726b 2069 7320 616c 7265 hat work is alre │ │ │ │ +00014b30: 6164 7920 646f 6e65 2c0a 686f 7765 7665 ady done,.howeve │ │ │ │ +00014b40: 722e 2020 5765 2063 616e 2075 7365 2074 r. We can use t │ │ │ │ +00014b50: 6865 20e2 8098 7072 6f6a 6563 7428 7029 he ...project(p) │ │ │ │ +00014b60: e280 9920 636f 6e73 7472 7563 746f 722e ... constructor. │ │ │ │ +00014b70: 0a0a 2020 2054 6865 7265 2061 7265 2073 .. There are s │ │ │ │ +00014b80: 7469 6c6c 2073 6f6d 6520 6465 7461 696c till some detail │ │ │ │ +00014b90: 7320 7468 6174 2072 6571 7569 7265 2063 s that require c │ │ │ │ +00014ba0: 6172 652e 2020 5072 6f6a 6563 7469 6f6e are. Projection │ │ │ │ +00014bb0: 2077 696c 6c0a 666c 6174 7465 6e20 7768 will.flatten wh │ │ │ │ +00014bc0: 6174 6576 6572 2069 7320 7472 616e 7366 atever is transf │ │ │ │ +00014bd0: 6f72 6d65 6420 6f6e 746f 2074 6865 2070 ormed onto the p │ │ │ │ +00014be0: 6c61 6e65 207a 3d2d 702e 2020 5468 6572 lane z=-p. Ther │ │ │ │ +00014bf0: 6566 6f72 6520 616e 7920 7061 7274 0a6f efore any part.o │ │ │ │ +00014c00: 6620 7468 6520 686f 7573 6520 636f 756c f the house coul │ │ │ │ +00014c10: 6420 6469 7361 7070 6561 7220 6265 6869 d disappear behi │ │ │ │ +00014c20: 6e64 2074 6865 2070 726f 6a65 6374 696f nd the projectio │ │ │ │ +00014c30: 6e20 706c 616e 6520 2874 6865 2068 6964 n plane (the hid │ │ │ │ +00014c40: 6465 6e0a 7375 7266 6163 6520 616c 676f den.surface algo │ │ │ │ +00014c50: 7269 7468 6d20 6f72 6465 7273 206f 626a rithm orders obj │ │ │ │ +00014c60: 6563 7473 2061 7420 7468 6520 7361 6d65 ects at the same │ │ │ │ +00014c70: 2064 6570 7468 2061 7262 6974 7261 7269 depth arbitrari │ │ │ │ +00014c80: 6c79 292e 2020 5468 650a 646f 6f72 206d ly). The.door m │ │ │ │ +00014c90: 6179 2061 6c73 6f20 6469 7361 7070 6561 ay also disappea │ │ │ │ +00014ca0: 7220 6265 6869 6e64 2074 6865 2066 726f r behind the fro │ │ │ │ +00014cb0: 6e74 206f 6620 7468 6520 686f 7573 652e nt of the house. │ │ │ │ +00014cc0: 2020 546f 206d 616b 6520 7375 7265 0a65 To make sure.e │ │ │ │ +00014cd0: 7665 7279 7468 696e 6720 7265 6d61 696e verything remain │ │ │ │ +00014ce0: 7320 7669 7369 626c 652c 2077 6527 6c6c s visible, we'll │ │ │ │ +00014cf0: 2070 6c61 6365 2074 6865 2068 6f75 7365 place the house │ │ │ │ +00014d00: 2061 2074 696e 7920 6269 7420 696e 2066 a tiny bit in f │ │ │ │ +00014d10: 726f 6e74 206f 660a 7468 6520 7072 6f6a ront of.the proj │ │ │ │ +00014d20: 6563 7469 6f6e 2070 6c61 6e65 2061 6e64 ection plane and │ │ │ │ +00014d30: 2061 2073 6563 6f6e 6420 636f 7079 206f a second copy o │ │ │ │ +00014d40: 6620 7468 6520 646f 6f72 2069 6e20 6672 f the door in fr │ │ │ │ +00014d50: 6f6e 7420 6f66 2074 6865 0a68 6f75 7365 ont of the.house │ │ │ │ +00014d60: 2e0a 2020 6465 6620 7072 6f6a 6563 7469 .. def projecti │ │ │ │ +00014d70: 6f6e 207b 0a20 2020 2025 2065 2069 7320 on {. % e is │ │ │ │ +00014d80: 6120 736d 616c 6c20 6e75 6d62 6572 2064 a small number d │ │ │ │ +00014d90: 6566 696e 6564 2061 626f 7665 0a20 2020 efined above. │ │ │ │ +00014da0: 2070 7574 207b 2070 726f 6a65 6374 2870 put { project(p │ │ │ │ +00014db0: 2920 7468 656e 2074 7261 6e73 6c61 7465 ) then translate │ │ │ │ +00014dc0: 285b 302c 302c 312a 655d 2920 7d20 7b68 ([0,0,1*e]) } {h │ │ │ │ +00014dd0: 6f75 7365 7d0a 2020 2020 7075 7420 7b20 ouse}. put { │ │ │ │ +00014de0: 7072 6f6a 6563 7428 7029 2074 6865 6e20 project(p) then │ │ │ │ +00014df0: 7472 616e 736c 6174 6528 5b30 2c30 2c32 translate([0,0,2 │ │ │ │ +00014e00: 2a65 5d29 207d 207b 646f 6f72 7d0a 2020 *e]) } {door}. │ │ │ │ +00014e10: 7d0a 0a00 085b 696d 6167 6520 7372 633d }....[image src= │ │ │ │ +00014e20: 2265 7831 3830 2e70 6e67 2220 7465 7874 "ex180.png" text │ │ │ │ +00014e30: 3d22 496d 6167 6520 6578 3138 3020 6f6d ="Image ex180 om │ │ │ │ +00014e40: 6974 7465 6420 696e 2074 6578 7420 7665 itted in text ve │ │ │ │ +00014e50: 7273 696f 6e20 6f66 2074 6869 7320 646f rsion of this do │ │ │ │ +00014e60: 6375 6d65 6e74 2e22 0008 5d0a 0a20 2020 cument."..].. │ │ │ │ +00014e70: 4966 2079 6f75 2068 6176 6520 7374 7564 If you have stud │ │ │ │ +00014e80: 6965 6420 616e 6420 756e 6465 7273 7461 ied and understa │ │ │ │ +00014e90: 6e64 2061 6c6c 2074 6869 732c 2079 6f75 nd all this, you │ │ │ │ +00014ea0: 2061 7265 2077 656c 6c20 6f6e 2074 6865 are well on the │ │ │ │ +00014eb0: 2077 6179 0a74 6f20 7375 6363 6573 7320 way.to success │ │ │ │ +00014ec0: 7769 7468 20e2 8098 736b 6574 6368 e280 with ...sketch.. │ │ │ │ +00014ed0: 992e 2020 4e6f 7420 7368 6f77 6e20 6172 .. Not shown ar │ │ │ │ +00014ee0: 6520 7468 6520 3230 206f 7220 736f 2069 e the 20 or so i │ │ │ │ +00014ef0: 7465 7261 7469 6f6e 7320 7468 6174 0a77 terations that.w │ │ │ │ +00014f00: 6572 6520 7265 7175 6972 6564 2074 6f20 ere required to │ │ │ │ +00014f10: 6669 6e64 2061 2072 6561 736f 6e61 626c find a reasonabl │ │ │ │ +00014f20: 6520 7669 6577 696e 6720 616e 676c 6520 e viewing angle │ │ │ │ +00014f30: 616e 6420 686f 7573 6520 706f 7369 7469 and house positi │ │ │ │ +00014f40: 6f6e 2c0a 6574 632e 2020 4e6f 6e65 7468 on,.etc. Noneth │ │ │ │ +00014f50: 656c 6573 732c 2074 6869 7320 6472 6177 eless, this draw │ │ │ │ +00014f60: 696e 6720 7761 7320 636f 6d70 6c65 7465 ing was complete │ │ │ │ +00014f70: 6420 696e 2061 626f 7574 2061 6e20 686f d in about an ho │ │ │ │ +00014f80: 7572 2e20 2057 6869 6c65 2061 0a47 5549 ur. While a.GUI │ │ │ │ +00014f90: 2074 6f6f 6c20 6d61 7920 6861 7665 2062 tool may have b │ │ │ │ +00014fa0: 6565 6e20 6120 6c69 7474 6c65 2066 6173 een a little fas │ │ │ │ +00014fb0: 7465 722c 2069 7420 6973 2075 6e6c 696b ter, it is unlik │ │ │ │ +00014fc0: 656c 7920 7468 6174 2061 206e 6577 0a64 ely that a new.d │ │ │ │ +00014fd0: 7261 7769 6e67 2c20 6974 7365 6c66 2061 rawing, itself a │ │ │ │ +00014fe0: 2070 6572 7370 6563 7469 7665 2070 726f perspective pro │ │ │ │ +00014ff0: 6a65 6374 696f 6e20 6f66 2074 6865 2073 jection of the s │ │ │ │ +00015000: 6365 6e65 2c20 636f 756c 6420 6265 0a67 cene, could be.g │ │ │ │ +00015010: 656e 6572 6174 6564 2077 6974 6820 7477 enerated with tw │ │ │ │ +00015020: 6f20 6d6f 7265 206d 696e 7574 6573 2720 o more minutes' │ │ │ │ +00015030: 776f 726b 2120 204a 7573 7420 6368 616e work! Just chan │ │ │ │ +00015040: 6765 2074 6865 2076 6965 7720 7472 616e ge the view tran │ │ │ │ +00015050: 7366 6f72 6d0a 746f 0a20 2070 7574 207b sform.to. put { │ │ │ │ +00015060: 2076 6965 7728 2865 7965 292c 2028 6c6f view((eye), (lo │ │ │ │ +00015070: 6f6b 5f61 7429 2920 7468 656e 2070 6572 ok_at)) then per │ │ │ │ +00015080: 7370 6563 7469 7665 2839 2920 7d20 7b20 spective(9) } { │ │ │ │ +00015090: 2e2e 2e0a 616e 6420 7072 6f64 7563 6520 ....and produce │ │ │ │ +000150a0: 7468 6973 2e0a 0a00 085b 696d 6167 6520 this.....[image │ │ │ │ +000150b0: 7372 633d 2265 7831 3930 2e70 6e67 2220 src="ex190.png" │ │ │ │ +000150c0: 7465 7874 3d22 496d 6167 6520 6578 3139 text="Image ex19 │ │ │ │ +000150d0: 3020 6f6d 6974 7465 6420 696e 2074 6578 0 omitted in tex │ │ │ │ +000150e0: 7420 7665 7273 696f 6e20 6f66 2074 6869 t version of thi │ │ │ │ +000150f0: 7320 646f 6375 6d65 6e74 2e22 0008 5d0a s document."..]. │ │ │ │ +00015100: 0a1f 0a46 696c 653a 2073 6b65 7463 682e ...File: sketch. │ │ │ │ +00015110: 696e 666f 2c20 204e 6f64 653a 2041 2074 info, Node: A t │ │ │ │ +00015120: 6563 686e 6963 616c 2064 7261 7769 6e67 echnical drawing │ │ │ │ +00015130: 2c20 204e 6578 743a 2041 2068 6965 7261 , Next: A hiera │ │ │ │ +00015140: 7263 6869 6361 6c20 6d6f 6465 6c2c 2020 rchical model, │ │ │ │ +00015150: 5072 6576 3a20 4f76 6572 7669 6577 2c20 Prev: Overview, │ │ │ │ +00015160: 2055 703a 2042 7569 6c64 696e 6720 6120 Up: Building a │ │ │ │ +00015170: 6472 6177 696e 670a 0a34 2e32 2041 2074 drawing..4.2 A t │ │ │ │ +00015180: 6563 686e 6963 616c 2064 7261 7769 6e67 echnical drawing │ │ │ │ +00015190: 0a3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d .=============== │ │ │ │ +000151a0: 3d3d 3d3d 3d3d 3d3d 0a0a 4c65 7427 7320 ========..Let's │ │ │ │ +000151b0: 6c6f 6f6b 2061 7420 6120 6472 6177 696e look at a drawin │ │ │ │ +000151c0: 6720 7468 6174 2072 6570 7265 7365 6e74 g that represent │ │ │ │ +000151d0: 7320 7468 6520 6b69 6e64 206f 6620 7072 s the kind of pr │ │ │ │ +000151e0: 6f62 6c65 6d20 e280 9873 6b65 7463 68e2 oblem ...sketch. │ │ │ │ +000151f0: 8099 2077 6173 0a6d 6561 6e74 2074 6f20 .. was.meant to │ │ │ │ +00015200: 736f 6c76 652d 2d61 2070 6169 7220 6f66 solve--a pair of │ │ │ │ +00015210: 2074 6578 7462 6f6f 6b20 6669 6775 7265 textbook figure │ │ │ │ +00015220: 7320 7265 6761 7264 696e 6720 6120 706f s regarding a po │ │ │ │ +00015230: 6c79 676f 6e61 6c0a 6170 7072 6f78 696d lygonal.approxim │ │ │ │ +00015240: 6174 696f 6e20 6f66 2061 2074 7275 6e63 ation of a trunc │ │ │ │ +00015250: 6174 6564 2063 6f6e 652e 2020 4865 7265 ated cone. Here │ │ │ │ +00015260: 2061 7265 2074 6865 2070 6963 7475 7265 are the picture │ │ │ │ +00015270: 7320 7765 2077 696c 6c0a 7072 6f64 7563 s we will.produc │ │ │ │ +00015280: 652e 0a0a 0008 5b69 6d61 6765 2073 7263 e.....[image src │ │ │ │ +00015290: 3d22 6578 3235 302e 706e 6722 2074 6578 ="ex250.png" tex │ │ │ │ +000152a0: 743d 2249 6d61 6765 2065 7832 3530 206f t="Image ex250 o │ │ │ │ +000152b0: 6d69 7474 6564 2069 6e20 7465 7874 2076 mitted in text v │ │ │ │ +000152c0: 6572 7369 6f6e 206f 6620 7468 6973 2064 ersion of this d │ │ │ │ +000152d0: 6f63 756d 656e 742e 2200 085d 2020 2020 ocument."..] │ │ │ │ +000152e0: 2000 085b 696d 6167 6520 7372 633d 2265 ..[image src="e │ │ │ │ +000152f0: 7832 3630 2e70 6e67 2220 7465 7874 3d22 x260.png" text=" │ │ │ │ +00015300: 496d 6167 6520 6578 3236 3020 6f6d 6974 Image ex260 omit │ │ │ │ +00015310: 7465 6420 696e 2074 6578 7420 7665 7273 ted in text vers │ │ │ │ +00015320: 696f 6e20 6f66 2074 6869 7320 646f 6375 ion of this docu │ │ │ │ +00015330: 6d65 6e74 2e22 0008 5d0a 0a20 2020 5468 ment."..].. Th │ │ │ │ +00015340: 6520 636f 6e65 2073 6861 7065 2069 7320 e cone shape is │ │ │ │ +00015350: 6a75 7374 2061 2073 7765 7074 206c 696e just a swept lin │ │ │ │ +00015360: 6520 7769 7468 206e 6f20 636c 6f73 7572 e with no closur │ │ │ │ +00015370: 6520 7461 6720 616e 6420 6375 6c6c 696e e tag and cullin │ │ │ │ +00015380: 670a 7475 726e 6564 206f 6666 2e20 2042 g.turned off. B │ │ │ │ +00015390: 6567 696e 2062 7920 7365 7474 696e 6720 egin by setting │ │ │ │ +000153a0: 7570 2073 6f6d 6520 7573 6566 756c 2063 up some useful c │ │ │ │ +000153b0: 6f6e 7374 616e 7473 2e0a 2020 6465 6620 onstants.. def │ │ │ │ +000153c0: 4f20 2830 2c30 2c30 2920 6465 6620 4920 O (0,0,0) def I │ │ │ │ +000153d0: 5b31 2c30 2c30 5d20 6465 6620 4a20 5b30 [1,0,0] def J [0 │ │ │ │ +000153e0: 2c31 2c30 5d20 6465 6620 4b20 5b30 2c30 ,1,0] def K [0,0 │ │ │ │ +000153f0: 2c31 5d0a 2020 6465 6620 7030 2028 312c ,1]. def p0 (1, │ │ │ │ +00015400: 3229 2064 6566 2070 3120 2831 2e35 2c30 2) def p1 (1.5,0 │ │ │ │ +00015410: 2920 6465 6620 4e20 380a 2020 6465 6620 ) def N 8. def │ │ │ │ +00015420: 7365 675f 726f 7420 726f 7461 7465 2833 seg_rot rotate(3 │ │ │ │ +00015430: 3630 202f 204e 2c20 5b4a 5d29 0a54 6865 60 / N, [J]).The │ │ │ │ +00015440: 2070 6f69 6e74 7320 e280 9870 30e2 8099 points ...p0... │ │ │ │ +00015450: 2061 6e64 20e2 8098 7031 e280 9920 6172 and ...p1... ar │ │ │ │ +00015460: 6520 7468 6520 656e 6420 706f 696e 7473 e the end points │ │ │ │ +00015470: 206f 6620 7468 6520 6c69 6e65 2074 6f20 of the line to │ │ │ │ +00015480: 6265 2073 7765 7074 2e0a 5468 6520 6465 be swept..The de │ │ │ │ +00015490: 6669 6e69 7469 6f6e 20e2 8098 7365 675f finition ...seg_ │ │ │ │ +000154a0: 726f 74e2 8099 2069 7320 7468 6520 7377 rot... is the sw │ │ │ │ +000154b0: 6565 7020 7472 616e 7366 6f72 6d61 7469 eep transformati │ │ │ │ +000154c0: 6f6e 2e20 2057 6974 6820 7468 6573 652c on. With these, │ │ │ │ +000154d0: 2074 6865 0a63 6f6e 6520 6974 7365 6c66 the.cone itself │ │ │ │ +000154e0: 2069 7320 7369 6d70 6c65 2e0a 2020 7377 is simple.. sw │ │ │ │ +000154f0: 6565 705b 6375 6c6c 3d66 616c 7365 5d20 eep[cull=false] │ │ │ │ +00015500: 7b20 4e2c 205b 5b73 6567 5f72 6f74 5d5d { N, [[seg_rot]] │ │ │ │ +00015510: 207d 206c 696e 6528 7030 2928 7031 290a } line(p0)(p1). │ │ │ │ +00015520: 0a20 2020 5468 6520 6178 6573 2061 7265 . The axes are │ │ │ │ +00015530: 206e 6578 7420 616e 6420 696e 636c 7564 next and includ │ │ │ │ +00015540: 6520 616e 2069 6e74 6572 6573 696e 6720 e an interesing │ │ │ │ +00015550: 7472 6963 6b20 7468 6174 2073 686f 7773 trick that shows │ │ │ │ +00015560: 2074 6865 0a68 6964 6465 6e20 7061 7274 the.hidden part │ │ │ │ +00015570: 7320 6173 2064 6f74 7465 6420 6c69 6e65 s as dotted line │ │ │ │ +00015580: 732e 2020 5468 6520 7365 6372 6574 2069 s. The secret i │ │ │ │ +00015590: 7320 6472 6177 2074 6865 2061 7865 7320 s draw the axes │ │ │ │ +000155a0: 7477 6963 652d 2d73 6f6c 6964 0a6c 696e twice--solid.lin │ │ │ │ +000155b0: 6573 2077 6974 6820 7468 6520 6e6f 726d es with the norm │ │ │ │ +000155c0: 616c 2068 6964 6465 6e20 7375 7266 6163 al hidden surfac │ │ │ │ +000155d0: 6520 616c 676f 7269 7468 6d20 696e 2065 e algorithm in e │ │ │ │ +000155e0: 6666 6563 742c 2061 6e64 2074 6865 6e0a ffect, and then. │ │ │ │ +000155f0: 646f 7474 6564 2077 6974 6820 7468 6520 dotted with the │ │ │ │ +00015600: 6f70 7469 6f6e 20e2 8098 6c61 793d 6f76 option ...lay=ov │ │ │ │ +00015610: 6572 e280 9920 736f 2074 6861 7420 6e6f er... so that no │ │ │ │ +00015620: 2070 6f6c 7967 6f6e 7320 6361 6e20 6869 polygons can hi │ │ │ │ +00015630: 6465 2074 6865 6d2e 0a20 2064 6566 2061 de them.. def a │ │ │ │ +00015640: 7820 2864 782c 302c 3029 2025 2074 6970 x (dx,0,0) % tip │ │ │ │ +00015650: 7320 6f66 2074 6865 2061 7865 730a 2020 s of the axes. │ │ │ │ +00015660: 6465 6620 6179 2028 302c 6479 2c30 290a def ay (0,dy,0). │ │ │ │ +00015670: 2020 6465 6620 617a 2028 302c 302c 647a def az (0,0,dz │ │ │ │ +00015680: 290a 2020 6c69 6e65 5b61 7272 6f77 733d ). line[arrows= │ │ │ │ +00015690: 3c2d 3e2c 6c69 6e65 7769 6474 683d 2e34 <->,linewidth=.4 │ │ │ │ +000156a0: 7074 5d28 6178 2928 4f29 2861 7929 0a20 pt](ax)(O)(ay). │ │ │ │ +000156b0: 206c 696e 655b 6172 726f 7773 3d2d 3e2c line[arrows=->, │ │ │ │ +000156c0: 6c69 6e65 7769 6474 683d 2e34 7074 5d28 linewidth=.4pt]( │ │ │ │ +000156d0: 4f29 2861 7a29 0a20 2025 2072 6570 6561 O)(az). % repea │ │ │ │ +000156e0: 7420 646f 7474 6564 2061 7320 616e 206f t dotted as an o │ │ │ │ +000156f0: 7665 726c 6179 2074 6f20 6869 6e74 2061 verlay to hint a │ │ │ │ +00015700: 7420 7468 6520 6869 6464 656e 206c 696e t the hidden lin │ │ │ │ +00015710: 6573 0a20 206c 696e 655b 6c61 793d 6f76 es. line[lay=ov │ │ │ │ +00015720: 6572 2c6c 696e 6573 7479 6c65 3d64 6f74 er,linestyle=dot │ │ │ │ +00015730: 7465 642c 6c69 6e65 7769 6474 683d 2e34 ted,linewidth=.4 │ │ │ │ +00015740: 7074 5d28 6178 2928 4f29 2861 7929 0a20 pt](ax)(O)(ay). │ │ │ │ +00015750: 206c 696e 655b 6c61 793d 6f76 6572 2c6c line[lay=over,l │ │ │ │ +00015760: 696e 6573 7479 6c65 3d64 6f74 7465 642c inestyle=dotted, │ │ │ │ +00015770: 6c69 6e65 7769 6474 683d 2e34 7074 5d28 linewidth=.4pt]( │ │ │ │ +00015780: 4f29 2861 7a29 0a20 2073 7065 6369 616c O)(az). special │ │ │ │ +00015790: 7c5c 666f 6f74 6e6f 7465 7369 7a65 0a20 |\footnotesize. │ │ │ │ +000157a0: 2020 2020 2020 2020 205c 7570 7574 5b64 \uput[d │ │ │ │ +000157b0: 5d23 317b 2478 247d 5c75 7075 745b 755d ]#1{$x$}\uput[u] │ │ │ │ +000157c0: 2332 7b24 7924 7d5c 7570 7574 5b6c 5d23 #2{$y$}\uput[l]# │ │ │ │ +000157d0: 337b 247a 247d 7c0a 2020 2020 2861 7829 3{$z$}|. (ax) │ │ │ │ +000157e0: 2861 7929 2861 7a29 0a54 6865 206c 6162 (ay)(az).The lab │ │ │ │ +000157f0: 656c 7320 6172 6520 6170 706c 6965 6420 els are applied │ │ │ │ +00015800: 7769 7468 20e2 8098 5053 5472 6963 6b73 with ...PSTricks │ │ │ │ +00015810: e280 9920 7370 6563 6961 6c20 6f62 6a65 ... special obje │ │ │ │ +00015820: 6374 7320 6173 2075 7375 616c 2e0a 0a20 cts as usual... │ │ │ │ +00015830: 2020 466f 7220 7468 6520 6865 6967 6874 For the height │ │ │ │ +00015840: 2064 696d 656e 7369 6f6e 206d 6172 6b2c dimension mark, │ │ │ │ +00015850: 2074 6865 2070 6f77 6572 206f 6620 6166 the power of af │ │ │ │ +00015860: 6669 6e65 2061 7269 7468 6574 6963 2069 fine arithetic i │ │ │ │ +00015870: 7320 7665 7279 0a68 656c 7066 756c 2e0a s very.helpful.. │ │ │ │ +00015880: 2020 6465 6620 6864 696d 5f72 6566 2075 def hdim_ref u │ │ │ │ +00015890: 6e69 7428 2870 3129 202d 2028 4f29 2920 nit((p1) - (O)) │ │ │ │ +000158a0: 7468 656e 205b 5b73 6567 5f72 6f74 5d5d then [[seg_rot]] │ │ │ │ +000158b0: 5e32 0a20 2064 6566 2063 3020 2870 3029 ^2. def c0 (p0) │ │ │ │ +000158c0: 2074 6865 6e20 7363 616c 6528 5b4a 5d29 then scale([J]) │ │ │ │ +000158d0: 0a20 2064 6566 2068 3030 2028 6330 2920 . def h00 (c0) │ │ │ │ +000158e0: 2b20 312e 3120 2a20 5b68 6469 6d5f 7265 + 1.1 * [hdim_re │ │ │ │ +000158f0: 665d 0a20 2064 6566 2068 3031 2028 6330 f]. def h01 (c0 │ │ │ │ +00015900: 2920 2b20 312e 3920 2a20 5b68 6469 6d5f ) + 1.9 * [hdim_ │ │ │ │ +00015910: 7265 665d 0a20 2064 6566 2068 3032 2028 ref]. def h02 ( │ │ │ │ +00015920: 6330 2920 2b20 312e 3820 2a20 5b68 6469 c0) + 1.8 * [hdi │ │ │ │ +00015930: 6d5f 7265 665d 0a20 206c 696e 6528 6830 m_ref]. line(h0 │ │ │ │ +00015940: 3029 2868 3031 290a 2020 6465 6620 6831 0)(h01). def h1 │ │ │ │ +00015950: 3020 284f 2920 2b20 312e 3620 2a20 5b68 0 (O) + 1.6 * [h │ │ │ │ +00015960: 6469 6d5f 7265 665d 0a20 2064 6566 2068 dim_ref]. def h │ │ │ │ +00015970: 3131 2028 4f29 202b 2031 2e39 202a 205b 11 (O) + 1.9 * [ │ │ │ │ +00015980: 6864 696d 5f72 6566 5d0a 2020 6465 6620 hdim_ref]. def │ │ │ │ +00015990: 6831 3220 284f 2920 2b20 312e 3820 2a20 h12 (O) + 1.8 * │ │ │ │ +000159a0: 5b68 6469 6d5f 7265 665d 0a20 206c 696e [hdim_ref]. lin │ │ │ │ +000159b0: 6528 6831 3029 2868 3131 290a 2020 6c69 e(h10)(h11). li │ │ │ │ +000159c0: 6e65 5b61 7272 6f77 733d 3c2d 3e5d 2868 ne[arrows=<->](h │ │ │ │ +000159d0: 3032 2928 6831 3229 0a20 2064 6566 2068 02)(h12). def h │ │ │ │ +000159e0: 6d32 2028 2868 3032 2920 2d20 284f 2920 m2 ((h02) - (O) │ │ │ │ +000159f0: 2b20 2868 3132 2920 2d20 284f 2929 202f + (h12) - (O)) / │ │ │ │ +00015a00: 2032 202b 2028 4f29 0a20 2073 7065 6369 2 + (O). speci │ │ │ │ +00015a10: 616c 7c5c 666f 6f74 6e6f 7465 7369 7a65 al|\footnotesize │ │ │ │ +00015a20: 5c72 7075 742a 2331 7b24 6824 7d7c 2868 \rput*#1{$h$}|(h │ │ │ │ +00015a30: 6d32 290a 2020 2054 6865 2067 656e 6572 m2). The gener │ │ │ │ +00015a40: 616c 2069 6465 6120 656d 706c 6f79 6564 al idea employed │ │ │ │ +00015a50: 2068 6572 6520 6973 2074 6f20 636f 6d70 here is to comp │ │ │ │ +00015a60: 7574 6520 6120 756e 6974 2022 7265 6665 ute a unit "refe │ │ │ │ +00015a70: 7265 6e63 650a 7665 6374 6f72 2220 7061 rence.vector" pa │ │ │ │ +00015a80: 7261 6c6c 656c 2074 6f20 7468 6520 787a rallel to the xz │ │ │ │ +00015a90: 2d70 6c61 6e65 2069 6e20 7468 6520 6465 -plane in the de │ │ │ │ +00015aa0: 7369 7265 6420 6469 7265 6374 696f 6e20 sired direction │ │ │ │ +00015ab0: 6f66 2074 6865 0a64 696d 656e 7369 6f6e of the.dimension │ │ │ │ +00015ac0: 2066 726f 6d20 7468 6520 6f72 6967 696e from the origin │ │ │ │ +00015ad0: 2e20 2054 6865 2074 7261 6e73 666f 726d . The transform │ │ │ │ +00015ae0: 6174 696f 6e20 e280 985b 5b73 6567 5f72 ation ...[[seg_r │ │ │ │ +00015af0: 6f74 5d5d 5e32 e280 9920 726f 7461 7465 ot]]^2... rotate │ │ │ │ +00015b00: 730a 7477 6f20 7365 676d 656e 7473 2061 s.two segments a │ │ │ │ +00015b10: 626f 7574 2074 6865 2079 2d61 7869 732e bout the y-axis. │ │ │ │ +00015b20: 2020 5768 656e 2061 7070 6c69 6564 2074 When applied t │ │ │ │ +00015b30: 6f20 e280 9828 7031 2920 2d20 284f 29e2 o ...(p1) - (O). │ │ │ │ +00015b40: 8099 2c20 7468 650a 7265 7375 6c74 696e .., the.resultin │ │ │ │ +00015b50: 6720 7665 6374 6f72 2070 6f69 6e74 7320 g vector points │ │ │ │ +00015b60: 746f 2074 6865 2072 6967 6874 2061 7320 to the right as │ │ │ │ +00015b70: 7368 6f77 6e2e 2020 496e 2074 6869 7320 shown. In this │ │ │ │ +00015b80: 6d61 6e6e 6572 2c20 7765 2063 616e 0a70 manner, we can.p │ │ │ │ +00015b90: 6963 6b20 616e 7920 7665 7274 6578 2061 ick any vertex a │ │ │ │ +00015ba0: 7320 7468 6520 6c6f 6361 7469 6f6e 206f s the location o │ │ │ │ +00015bb0: 6620 7468 6520 6865 6967 6874 2064 696d f the height dim │ │ │ │ +00015bc0: 656e 7369 6f6e 206c 696e 6573 2062 7920 ension lines by │ │ │ │ +00015bd0: 7661 7279 696e 670a 7468 6520 6578 706f varying.the expo │ │ │ │ +00015be0: 6e65 6e74 206f 6620 e280 985b 5b73 6567 nent of ...[[seg │ │ │ │ +00015bf0: 5f72 6f74 5d5d e280 992e 2020 5468 6973 _rot]].... This │ │ │ │ +00015c00: 2069 7320 6f6e 6c79 206f 6e65 206f 6620 is only one of │ │ │ │ +00015c10: 6d61 6e79 2070 6f73 7369 626c 650a 7374 many possible.st │ │ │ │ +00015c20: 7261 7465 6769 6573 2e0a 0a20 2020 5468 rategies... Th │ │ │ │ +00015c30: 6520 636f 6d70 7574 6174 696f 6e20 6f66 e computation of │ │ │ │ +00015c40: 20e2 8098 686d 32e2 8099 2069 7320 6120 ...hm2... is a │ │ │ │ +00015c50: 7573 6566 756c 2069 6469 6f6d 2066 6f72 useful idiom for │ │ │ │ +00015c60: 2066 696e 6469 6e67 2074 6865 2063 656e finding the cen │ │ │ │ +00015c70: 7472 6f69 640a 6f66 2061 2073 6574 206f troid.of a set o │ │ │ │ +00015c80: 6620 706f 696e 7473 2e0a 0a20 2020 5468 f points... Th │ │ │ │ +00015c90: 6520 7477 6f20 7261 6469 7573 206d 6172 e two radius mar │ │ │ │ +00015ca0: 6b73 2061 7265 2064 6f6e 6520 7369 6d69 ks are done simi │ │ │ │ +00015cb0: 6c61 726c 792c 2073 6f20 7765 2070 7265 larly, so we pre │ │ │ │ +00015cc0: 7365 6e74 2074 6865 2063 6f64 650a 7769 sent the code.wi │ │ │ │ +00015cd0: 7468 6f75 7420 636f 6d6d 656e 742e 0a20 thout comment.. │ │ │ │ +00015ce0: 2025 2072 6164 6975 7320 6d65 6173 7572 % radius measur │ │ │ │ +00015cf0: 656d 656e 7420 6d61 726b 730a 2020 6465 ement marks. de │ │ │ │ +00015d00: 6620 6761 7020 5b30 2c2e 322c 305d 2020 f gap [0,.2,0] │ │ │ │ +00015d10: 2520 7573 6564 2074 6f20 6372 6561 7465 % used to create │ │ │ │ +00015d20: 2073 6d61 6c6c 2076 6572 7469 6361 6c20 small vertical │ │ │ │ +00015d30: 6761 7073 0a0a 2020 2520 6669 7273 7420 gaps.. % first │ │ │ │ +00015d40: 7231 0a20 2064 6566 2075 7031 205b 302c r1. def up1 [0, │ │ │ │ +00015d50: 332e 312c 305d 2025 2074 6963 6b20 7269 3.1,0] % tick ri │ │ │ │ +00015d60: 7365 7320 6162 6f76 6520 6469 6d65 6e73 ses above dimens │ │ │ │ +00015d70: 696f 6e20 6120 6c69 7474 6c65 0a20 2064 ion a little. d │ │ │ │ +00015d80: 6566 2072 3120 2828 7031 2920 7468 656e ef r1 ((p1) then │ │ │ │ +00015d90: 205b 5b73 6567 5f72 6f74 5d5d 5e2d 3229 [[seg_rot]]^-2) │ │ │ │ +00015da0: 202b 205b 7570 315d 0a20 2064 6566 2072 + [up1]. def r │ │ │ │ +00015db0: 3163 2028 7231 2920 7468 656e 2073 6361 1c (r1) then sca │ │ │ │ +00015dc0: 6c65 285b 4a5d 290a 2020 6465 6620 7231 le([J]). def r1 │ │ │ │ +00015dd0: 7420 2872 3129 202b 205b 6761 705d 0a20 t (r1) + [gap]. │ │ │ │ +00015de0: 2064 6566 2072 3162 2028 2872 3174 2920 def r1b ((r1t) │ │ │ │ +00015df0: 7468 656e 2073 6361 6c65 285b 312c 302c then scale([1,0, │ │ │ │ +00015e00: 315d 2929 202b 205b 6761 705d 0a20 206c 1])) + [gap]. l │ │ │ │ +00015e10: 696e 655b 6172 726f 7773 3d3c 2d3e 5d28 ine[arrows=<->]( │ │ │ │ +00015e20: 7231 6329 2872 3129 2020 2520 6469 6d65 r1c)(r1) % dime │ │ │ │ +00015e30: 6e73 696f 6e20 6c69 6e65 0a20 206c 696e nsion line. lin │ │ │ │ +00015e40: 6528 7231 6229 2872 3174 2920 2020 2020 e(r1b)(r1t) │ │ │ │ +00015e50: 2020 2020 2020 2020 2520 7469 636b 0a20 % tick. │ │ │ │ +00015e60: 2064 6566 2072 316d 2028 2872 3129 202d def r1m ((r1) - │ │ │ │ +00015e70: 2028 4f29 202b 2028 7231 6329 202d 2028 (O) + (r1c) - ( │ │ │ │ +00015e80: 4f29 2920 2f20 3220 2b20 284f 2920 2520 O)) / 2 + (O) % │ │ │ │ +00015e90: 6c61 6265 6c20 706f 7369 7469 6f6e 0a20 label position. │ │ │ │ +00015ea0: 2073 7065 6369 616c 207c 5c66 6f6f 746e special |\footn │ │ │ │ +00015eb0: 6f74 6573 697a 655c 7270 7574 2a23 317b otesize\rput*#1{ │ │ │ │ +00015ec0: 2472 5f31 247d 7c28 7231 6d29 2020 2520 $r_1$}|(r1m) % │ │ │ │ +00015ed0: 6c61 6265 6c0a 0a20 2025 2073 616d 6520 label.. % same │ │ │ │ +00015ee0: 6472 696c 6c20 666f 7220 7230 2c20 6275 drill for r0, bu │ │ │ │ +00015ef0: 7420 6d75 7374 2070 726f 6a65 6374 2064 t must project d │ │ │ │ +00015f00: 6f77 6e20 6669 7273 740a 2020 6465 6620 own first. def │ │ │ │ +00015f10: 7570 3020 5b30 2c32 2e37 2c30 5d0a 2020 up0 [0,2.7,0]. │ │ │ │ +00015f20: 6465 6620 7230 2028 2870 3029 2074 6865 def r0 ((p0) the │ │ │ │ +00015f30: 6e20 7363 616c 6528 5b31 2c30 2c31 5d29 n scale([1,0,1]) │ │ │ │ +00015f40: 2074 6865 6e20 5b5b 7365 675f 726f 745d then [[seg_rot] │ │ │ │ +00015f50: 5d5e 2d32 2920 2b20 5b75 7030 5d0a 2020 ]^-2) + [up0]. │ │ │ │ +00015f60: 6465 6620 7230 6320 2872 3029 2074 6865 def r0c (r0) the │ │ │ │ +00015f70: 6e20 7363 616c 6528 5b4a 5d29 0a20 2064 n scale([J]). d │ │ │ │ +00015f80: 6566 2072 3074 2028 7230 2920 2b20 5b67 ef r0t (r0) + [g │ │ │ │ +00015f90: 6170 5d0a 2020 6465 6620 7230 6220 2828 ap]. def r0b (( │ │ │ │ +00015fa0: 7030 2920 7468 656e 205b 5b73 6567 5f72 p0) then [[seg_r │ │ │ │ +00015fb0: 6f74 5d5d 5e2d 3229 202b 205b 6761 705d ot]]^-2) + [gap] │ │ │ │ +00015fc0: 0a20 206c 696e 655b 6172 726f 7773 3d3c . line[arrows=< │ │ │ │ +00015fd0: 2d3e 5d28 7230 6329 2872 3029 0a20 206c ->](r0c)(r0). l │ │ │ │ +00015fe0: 696e 6528 7230 6229 2872 3074 290a 2020 ine(r0b)(r0t). │ │ │ │ +00015ff0: 6465 6620 7230 6d20 2828 7230 2920 2d20 def r0m ((r0) - │ │ │ │ +00016000: 284f 2920 2b20 2872 3063 2920 2d20 284f (O) + (r0c) - (O │ │ │ │ +00016010: 2929 202f 2032 202b 2028 4f29 0a20 2073 )) / 2 + (O). s │ │ │ │ +00016020: 7065 6369 616c 207c 5c66 6f6f 746e 6f74 pecial |\footnot │ │ │ │ +00016030: 6573 697a 655c 7270 7574 2a23 317b 2472 esize\rput*#1{$r │ │ │ │ +00016040: 5f30 247d 7c28 7230 6d29 0a0a 2020 2054 _0$}|(r0m).. T │ │ │ │ +00016050: 6865 2073 6563 6f6e 6420 6472 6177 696e he second drawin │ │ │ │ +00016060: 6720 7573 6573 2074 6865 2073 616d 6520 g uses the same │ │ │ │ +00016070: 7465 6368 6e69 7175 6573 2e20 204f 6e6c techniques. Onl │ │ │ │ +00016080: 7920 7468 6520 6d65 7468 6f64 2066 6f72 y the method for │ │ │ │ +00016090: 0a64 7261 7769 6e67 2074 6865 2065 6c6c .drawing the ell │ │ │ │ +000160a0: 6970 7469 6361 6c20 6172 6320 6973 206e iptical arc is n │ │ │ │ +000160b0: 6577 2e20 2048 6572 6520 6973 2074 6865 ew. Here is the │ │ │ │ +000160c0: 2063 6f64 652e 0a20 2064 6566 206d 6964 code.. def mid │ │ │ │ +000160d0: 2028 2870 3030 292d 284f 292b 2870 3130 ((p00)-(O)+(p10 │ │ │ │ +000160e0: 292d 284f 292b 2870 3131 292d 284f 292b )-(O)+(p11)-(O)+ │ │ │ │ +000160f0: 2870 3031 292d 284f 2929 2f34 2b28 4f29 (p01)-(O))/4+(O) │ │ │ │ +00016100: 0a20 2073 7065 6369 616c 7c5c 7270 7574 . special|\rput │ │ │ │ +00016110: 2331 7b5c 7073 6375 7374 6f6d 7b0a 2020 #1{\pscustom{. │ │ │ │ +00016120: 2020 5c73 6361 6c65 7b31 2031 2e33 7d0a \scale{1 1.3}. │ │ │ │ +00016130: 2020 2020 5c70 7361 7263 5b61 7272 6f77 \psarc[arrow │ │ │ │ +00016140: 6c65 6e67 7468 3d2e 355d 7b2d 3e7d 7b2e length=.5]{->}{. │ │ │ │ +00016150: 3235 7d7b 2d36 307d 7b32 3430 7d7d 7d7c 25}{-60}{240}}}| │ │ │ │ +00016160: 0a20 2020 205b 6c61 793d 6f76 6572 5d28 . [lay=over]( │ │ │ │ +00016170: 6d69 6429 0a57 6520 636f 756c 6420 6861 mid).We could ha │ │ │ │ +00016180: 7665 2073 7765 7074 2061 2070 6f69 6e74 ve swept a point │ │ │ │ +00016190: 2074 6f20 6d61 6b65 2074 6865 2061 7263 to make the arc │ │ │ │ +000161a0: 2077 6974 6820 e280 9873 6b65 7463 68e2 with ...sketch. │ │ │ │ +000161b0: 8099 2c20 6275 7420 7573 696e 6720 610a .., but using a. │ │ │ │ +000161c0: e280 9850 5354 7269 636b 73e2 8099 2063 ...PSTricks... c │ │ │ │ +000161d0: 7573 746f 6d20 6772 6170 6869 6320 7761 ustom graphic wa │ │ │ │ +000161e0: 7320 7369 6d70 6c65 722e 2020 4167 6169 s simpler. Agai │ │ │ │ +000161f0: 6e20 7765 2063 6f6d 7075 7465 6420 7468 n we computed th │ │ │ │ +00016200: 6520 6365 6e74 726f 6964 0a6f 6620 7468 e centroid.of th │ │ │ │ +00016210: 6520 7175 6164 7269 6c61 7465 7261 6c20 e quadrilateral │ │ │ │ +00016220: 6279 2061 7665 7261 6769 6e67 2070 6f69 by averaging poi │ │ │ │ +00016230: 6e74 732e 2020 4e6f 7465 2074 6861 7420 nts. Note that │ │ │ │ +00016240: 7363 616c 696e 6720 696e 0a50 6f73 7473 scaling in.Posts │ │ │ │ +00016250: 6372 6970 7420 6469 7374 6f72 7473 2074 cript distorts t │ │ │ │ +00016260: 6865 2061 7272 6f77 6865 6164 2c20 6275 he arrowhead, bu │ │ │ │ +00016270: 7420 696e 2074 6869 7320 6361 7365 2074 t in this case t │ │ │ │ +00016280: 6865 2064 6973 746f 7274 696f 6e0a 6163 he distortion.ac │ │ │ │ +00016290: 7475 616c 6c79 206c 6f6f 6b73 2062 6574 tually looks bet │ │ │ │ +000162a0: 7465 7220 696e 2074 6865 2070 726f 6a65 ter in the proje │ │ │ │ +000162b0: 6374 696f 6e20 6f66 2074 6865 2073 6c61 ction of the sla │ │ │ │ +000162c0: 6e74 6564 2066 6163 652e 2020 4120 e280 nted face. A .. │ │ │ │ +000162d0: 9873 6b65 7463 68e2 8099 0a61 7272 6f77 .sketch....arrow │ │ │ │ +000162e0: 6865 6164 2077 6f75 6c64 206e 6f74 2068 head would not h │ │ │ │ +000162f0: 6176 6520 6265 656e 2064 6973 746f 7274 ave been distort │ │ │ │ +00016300: 6564 2e0a 0a20 2020 5468 6520 636f 6d70 ed... The comp │ │ │ │ +00016310: 6c65 7465 2063 6f64 6520 666f 7220 7468 lete code for th │ │ │ │ +00016320: 6973 2065 7861 6d70 6c65 2c20 7768 6963 is example, whic │ │ │ │ +00016330: 6820 6472 6177 7320 6569 7468 6572 2066 h draws either f │ │ │ │ +00016340: 6967 7572 650a 6465 7065 6e64 696e 6720 igure.depending │ │ │ │ +00016350: 6f6e 2074 6865 2064 6566 696e 6974 696f on the definitio │ │ │ │ +00016360: 6e20 6f66 2074 6865 2074 6167 20e2 8098 n of the tag ... │ │ │ │ +00016370: 3c6c 6162 656c 6564 3ee2 8099 2c20 6973 ..., is │ │ │ │ +00016380: 2069 6e63 6c75 6465 6420 696e 2074 6865 included in the │ │ │ │ +00016390: 0ae2 8098 736b 6574 6368 e280 9920 6469 ....sketch... di │ │ │ │ +000163a0: 7374 7269 6275 7469 6f6e 2069 6e20 7468 stribution in th │ │ │ │ +000163b0: 6520 6669 6c65 20e2 8098 7472 756e 6361 e file ...trunca │ │ │ │ +000163c0: 7465 6463 6f6e 652e 736b e280 992e 0a0a tedcone.sk...... │ │ │ │ +000163d0: 1f0a 4669 6c65 3a20 736b 6574 6368 2e69 ..File: sketch.i │ │ │ │ +000163e0: 6e66 6f2c 2020 4e6f 6465 3a20 4120 6869 nfo, Node: A hi │ │ │ │ +000163f0: 6572 6172 6368 6963 616c 206d 6f64 656c erarchical model │ │ │ │ +00016400: 2c20 204e 6578 743a 2043 6176 6561 7473 , Next: Caveats │ │ │ │ +00016410: 2c20 2050 7265 763a 2041 2074 6563 686e , Prev: A techn │ │ │ │ +00016420: 6963 616c 2064 7261 7769 6e67 2c20 2055 ical drawing, U │ │ │ │ +00016430: 703a 2042 7569 6c64 696e 6720 6120 6472 p: Building a dr │ │ │ │ +00016440: 6177 696e 670a 0a34 2e33 2041 2068 6965 awing..4.3 A hie │ │ │ │ +00016450: 7261 7263 6869 6361 6c20 6d6f 6465 6c0a rarchical model. │ │ │ │ +00016460: 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d ================ │ │ │ │ +00016470: 3d3d 3d3d 3d3d 3d3d 0a0a 5768 696c 6520 ========..While │ │ │ │ +00016480: e280 9873 6b65 7463 68e2 8099 2077 6173 ...sketch... was │ │ │ │ +00016490: 206e 6576 6572 206d 6561 6e74 2074 6f20 never meant to │ │ │ │ +000164a0: 6265 2061 2067 656f 6d65 7472 6963 206d be a geometric m │ │ │ │ +000164b0: 6f64 656c 696e 6720 6c61 6e67 7561 6765 odeling language │ │ │ │ +000164c0: 2c20 6974 0a63 6f6d 6573 2066 6169 726c , it.comes fairl │ │ │ │ +000164d0: 7920 636c 6f73 652e 2020 5468 6520 666f y close. The fo │ │ │ │ +000164e0: 6c6c 6f77 696e 6720 6578 616d 706c 6520 llowing example │ │ │ │ +000164f0: 7075 7473 2061 6c6c 2077 6520 6861 7665 puts all we have │ │ │ │ +00016500: 2073 6565 6e20 746f 2077 6f72 6b0a 696e seen to work.in │ │ │ │ +00016510: 2061 2076 6572 7920 7369 6d70 6c65 206d a very simple m │ │ │ │ +00016520: 6f64 656c 206f 6620 7468 6520 6875 6d61 odel of the huma │ │ │ │ +00016530: 6e20 6861 6e64 2e20 2053 7461 7274 2062 n hand. Start b │ │ │ │ +00016540: 7920 7377 6565 7069 6e67 2061 206c 696e y sweeping a lin │ │ │ │ +00016550: 6520 746f 0a6d 616b 6520 6120 7472 756e e to.make a trun │ │ │ │ +00016560: 6361 7465 6420 636f 6e65 2c20 7768 6963 cated cone, whic │ │ │ │ +00016570: 6820 7769 6c6c 2062 6520 636f 7069 6564 h will be copied │ │ │ │ +00016580: 206f 7665 7220 616e 6420 6f76 6572 2061 over and over a │ │ │ │ +00016590: 6761 696e 2074 6f20 6d61 6b65 0a74 6865 gain to make.the │ │ │ │ +000165a0: 2073 6567 6d65 6e74 7320 6f66 2066 696e segments of fin │ │ │ │ +000165b0: 6765 7273 2e0a 2020 6465 6620 4f20 2830 gers.. def O (0 │ │ │ │ +000165c0: 2c30 2c30 2920 2520 6f72 6967 696e 0a20 ,0,0) % origin. │ │ │ │ +000165d0: 2064 6566 2049 205b 312c 302c 305d 2064 def I [1,0,0] d │ │ │ │ +000165e0: 6566 204a 205b 302c 312c 305d 2064 6566 ef J [0,1,0] def │ │ │ │ +000165f0: 204b 205b 302c 302c 315d 2025 2063 616e K [0,0,1] % can │ │ │ │ +00016600: 6f6e 6963 616c 2075 6e69 7420 7665 6374 onical unit vect │ │ │ │ +00016610: 6f72 730a 2020 6465 6620 7365 676d 656e ors. def segmen │ │ │ │ +00016620: 7420 7b0a 2020 2020 6465 6620 6e5f 6661 t {. def n_fa │ │ │ │ +00016630: 6365 7320 380a 2020 2020 7377 6565 7020 ces 8. sweep │ │ │ │ +00016640: 7b20 6e5f 6661 6365 733c 3e2c 2072 6f74 { n_faces<>, rot │ │ │ │ +00016650: 6174 6528 3336 3020 2f20 6e5f 6661 6365 ate(360 / n_face │ │ │ │ +00016660: 732c 205b 4a5d 2920 7d20 0a20 2020 2020 s, [J]) } . │ │ │ │ +00016670: 206c 696e 6528 7072 6f78 696d 616c 5f72 line(proximal_r │ │ │ │ +00016680: 6164 2c20 3029 2864 6973 7461 6c5f 7261 ad, 0)(distal_ra │ │ │ │ +00016690: 642c 2064 6973 7461 6c5f 6c65 6e29 0a20 d, distal_len). │ │ │ │ +000166a0: 207d 0a49 6e20 6861 6e64 2061 6e61 746f }.In hand anato │ │ │ │ +000166b0: 6d79 2c20 5f64 6973 7461 6c5f 2069 7320 my, _distal_ is │ │ │ │ +000166c0: 2261 7420 7468 6520 7469 7022 2061 6e64 "at the tip" and │ │ │ │ +000166d0: 205f 7072 6f78 696d 616c 5f20 6973 2022 _proximal_ is " │ │ │ │ +000166e0: 696e 2074 6865 2061 7265 610a 6f66 2074 in the area.of t │ │ │ │ +000166f0: 6865 2070 616c 6d2e 2220 2057 6520 6861 he palm." We ha │ │ │ │ +00016700: 7665 206f 6d69 7474 6564 2061 6c6c 2074 ve omitted all t │ │ │ │ +00016710: 6865 2073 6361 6c61 7220 636f 6e73 7461 he scalar consta │ │ │ │ +00016720: 6e74 732e 2020 596f 7520 6361 6e20 6669 nts. You can fi │ │ │ │ +00016730: 6e64 0a74 6865 6d20 696e 20e2 8098 6861 nd.them in ...ha │ │ │ │ +00016740: 6e64 2e73 6be2 8099 2c20 7768 6963 6820 nd.sk..., which │ │ │ │ +00016750: 6973 2070 726f 7669 6465 6420 696e 2074 is provided in t │ │ │ │ +00016760: 6865 20e2 8098 736b 6574 6368 e280 9920 he ...sketch... │ │ │ │ +00016770: 6469 7374 7269 6275 7469 6f6e 2e0a 0a20 distribution... │ │ │ │ +00016780: 2020 5765 2061 6c73 6f20 6e65 6564 2061 We also need a │ │ │ │ +00016790: 2070 726f 746f 7479 7069 6361 6c20 7370 prototypical sp │ │ │ │ +000167a0: 6865 7265 2074 6f20 7573 6520 666f 7220 here to use for │ │ │ │ +000167b0: 7468 6520 6a6f 696e 7473 2074 6865 6d73 the joints thems │ │ │ │ +000167c0: 656c 7665 732e 0a20 2064 6566 206a 6f69 elves.. def joi │ │ │ │ +000167d0: 6e74 5f73 7068 6572 6520 7b0a 2020 2020 nt_sphere {. │ │ │ │ +000167e0: 6465 6620 6e5f 6a6f 696e 745f 6661 6365 def n_joint_face │ │ │ │ +000167f0: 7320 380a 2020 2020 7377 6565 7020 5b66 s 8. sweep [f │ │ │ │ +00016800: 696c 6c63 6f6c 6f72 3d72 6564 5d20 7b20 illcolor=red] { │ │ │ │ +00016810: 6e5f 6a6f 696e 745f 6661 6365 732c 2072 n_joint_faces, r │ │ │ │ +00016820: 6f74 6174 6528 3336 3020 2f20 6e5f 6a6f otate(360 / n_jo │ │ │ │ +00016830: 696e 745f 6661 6365 732c 205b 4a5d 2920 int_faces, [J]) │ │ │ │ +00016840: 7d0a 2020 2020 2020 7377 6565 7020 7b20 }. sweep { │ │ │ │ +00016850: 6e5f 6a6f 696e 745f 6661 6365 732c 2072 n_joint_faces, r │ │ │ │ +00016860: 6f74 6174 6528 3138 3020 2f20 6e5f 6a6f otate(180 / n_jo │ │ │ │ +00016870: 696e 745f 6661 6365 7329 207d 200a 2020 int_faces) } . │ │ │ │ +00016880: 2020 2020 2020 2830 2c20 2d6a 6f69 6e74 (0, -joint │ │ │ │ +00016890: 5f72 6164 290a 2020 7d0a 0a20 2020 5765 _rad). }.. We │ │ │ │ +000168a0: 276c 6c20 6e6f 7720 6465 7369 676e 2074 'll now design t │ │ │ │ +000168b0: 6865 2069 6e64 6578 2066 696e 6765 7220 he index finger │ │ │ │ +000168c0: 286e 756d 6265 7220 3120 696e 206f 7572 (number 1 in our │ │ │ │ +000168d0: 206e 6f74 6174 696f 6e61 6c0a 636f 6e76 notational.conv │ │ │ │ +000168e0: 656e 7469 6f6e 3b20 6669 6e67 6572 2030 ention; finger 0 │ │ │ │ +000168f0: 2069 7320 7468 6520 7468 756d 6229 2e20 is the thumb). │ │ │ │ +00016900: 2054 6865 2064 6973 7461 6c20 726f 7461 The distal rota │ │ │ │ +00016910: 7469 6f6e 2066 6f72 2074 6865 2066 696e tion for the fin │ │ │ │ +00016920: 6765 720a 6170 706c 6965 7320 6f6e 6c79 ger.applies only │ │ │ │ +00016930: 2074 6f20 7468 6520 7469 702c 2073 6f20 to the tip, so │ │ │ │ +00016940: 7765 2064 6566 696e 6520 7468 6520 666f we define the fo │ │ │ │ +00016950: 6c6c 6f77 696e 672e 0a20 2064 6566 2064 llowing.. def d │ │ │ │ +00016960: 6973 7461 6c5f 3120 7b0a 2020 2020 7075 istal_1 {. pu │ │ │ │ +00016970: 7420 7b20 7472 616e 736c 6174 6528 6a6f t { translate(jo │ │ │ │ +00016980: 696e 745f 6761 7020 2a20 6a6f 696e 745f int_gap * joint_ │ │ │ │ +00016990: 7261 6420 2a20 5b4a 5d29 200a 2020 2020 rad * [J]) . │ │ │ │ +000169a0: 2020 2020 2020 7468 656e 2072 6f74 6174 then rotat │ │ │ │ +000169b0: 6528 6469 7374 616c 5f31 5f72 6f74 2c20 e(distal_1_rot, │ │ │ │ +000169c0: 5b49 5d29 200a 2020 2020 2020 2020 2020 [I]) . │ │ │ │ +000169d0: 7468 656e 2074 7261 6e73 6c61 7465 2828 then translate(( │ │ │ │ +000169e0: 6469 7374 616c 5f6c 656e 202b 206a 6f69 distal_len + joi │ │ │ │ +000169f0: 6e74 5f67 6170 202a 206a 6f69 6e74 5f72 nt_gap * joint_r │ │ │ │ +00016a00: 6164 2920 2a20 5b4a 5d29 207d 0a20 2020 ad) * [J]) }. │ │ │ │ +00016a10: 2020 207b 7365 676d 656e 747d 0a20 2020 {segment}. │ │ │ │ +00016a20: 2070 7574 207b 2072 6f74 6174 6528 6469 put { rotate(di │ │ │ │ +00016a30: 7374 616c 5f31 5f72 6f74 202f 2032 2c20 stal_1_rot / 2, │ │ │ │ +00016a40: 5b49 5d29 0a20 2020 2020 2020 2020 2074 [I]). t │ │ │ │ +00016a50: 6865 6e20 7472 616e 736c 6174 6528 2864 hen translate((d │ │ │ │ +00016a60: 6973 7461 6c5f 6c65 6e20 2b20 6a6f 696e istal_len + join │ │ │ │ +00016a70: 745f 6761 7020 2a20 6a6f 696e 745f 7261 t_gap * joint_ra │ │ │ │ +00016a80: 6429 202a 205b 4a5d 2920 7d20 0a20 2020 d) * [J]) } . │ │ │ │ +00016a90: 2020 207b 6a6f 696e 745f 7370 6865 7265 {joint_sphere │ │ │ │ +00016aa0: 7d0a 2020 2020 7075 7420 7b20 7363 616c }. put { scal │ │ │ │ +00016ab0: 6528 205b 4a5d 202b 2070 726f 7869 6d61 e( [J] + proxima │ │ │ │ +00016ac0: 6c5f 6469 7374 616c 5f72 6174 696f 202a l_distal_ratio * │ │ │ │ +00016ad0: 2028 5b49 5d2b 5b4b 5d29 2029 207d 0a20 ([I]+[K]) ) }. │ │ │ │ +00016ae0: 2020 2020 207b 7365 676d 656e 747d 0a20 {segment}. │ │ │ │ +00016af0: 207d 2020 0a54 6865 2069 6465 6e74 6966 } .The identif │ │ │ │ +00016b00: 6965 7273 2068 6572 6520 6172 6520 666f iers here are fo │ │ │ │ +00016b10: 7220 7369 7a65 2061 6e64 206c 6f63 6174 r size and locat │ │ │ │ +00016b20: 696f 6e20 636f 6e73 7461 6e74 732e 2020 ion constants. │ │ │ │ +00016b30: 5468 6520 6578 6365 7074 696f 6e0a 6973 The exception.is │ │ │ │ +00016b40: 20e2 8098 6469 7374 616c 5f72 6f74 5f31 ...distal_rot_1 │ │ │ │ +00016b50: e280 992e 2020 5468 6973 2072 6f74 6174 .... This rotat │ │ │ │ +00016b60: 696f 6e20 7061 7261 6d65 7465 7220 6d6f ion parameter mo │ │ │ │ +00016b70: 6465 6c73 2074 6865 2066 6c65 7869 6e67 dels the flexing │ │ │ │ +00016b80: 206f 6620 7468 650a 6669 6e67 6572 2074 of the.finger t │ │ │ │ +00016b90: 6970 2e20 2054 6865 2066 6972 7374 20e2 ip. The first . │ │ │ │ +00016ba0: 8098 7075 74e2 8099 206d 616b 6573 2061 ..put... makes a │ │ │ │ +00016bb0: 2063 6f70 7920 6f66 2074 6865 2066 696e copy of the fin │ │ │ │ +00016bc0: 6765 7220 7365 676d 656e 7420 7468 6174 ger segment that │ │ │ │ +00016bd0: 2069 730a 7472 616e 736c 6174 6564 2075 is.translated u │ │ │ │ +00016be0: 7077 6172 6420 6a75 7374 2066 6172 2065 pward just far e │ │ │ │ +00016bf0: 6e6f 7567 6820 746f 206d 616b 6520 726f nough to make ro │ │ │ │ +00016c00: 6f6d 2066 6f72 2074 6865 2073 7068 6572 om for the spher │ │ │ │ +00016c10: 6963 616c 206a 6f69 6e74 2e0a 5468 656e ical joint..Then │ │ │ │ +00016c20: 2069 7420 6170 706c 6965 7320 7468 6520 it applies the │ │ │ │ +00016c30: 6469 7374 616c 2072 6f74 6174 696f 6e2e distal rotation. │ │ │ │ +00016c40: 2020 4669 6e61 6c6c 7920 6974 2074 7261 Finally it tra │ │ │ │ +00016c50: 6e73 6c61 7465 7320 7468 6520 7768 6f6c nslates the whol │ │ │ │ +00016c60: 650a 6173 7365 6d62 6c79 2075 7077 6172 e.assembly upwar │ │ │ │ +00016c70: 6420 6167 6169 6e20 746f 206d 616b 6520 d again to make │ │ │ │ +00016c80: 726f 6f6d 2066 6f72 2074 6865 206d 6964 room for the mid │ │ │ │ +00016c90: 646c 6520 7068 6c61 6e67 6573 2028 7468 dle phlanges (th │ │ │ │ +00016ca0: 6520 6e65 7874 0a62 6f6e 6520 746f 7761 e next.bone towa │ │ │ │ +00016cb0: 7264 2074 6865 2070 616c 6d29 2e20 2054 rd the palm). T │ │ │ │ +00016cc0: 6865 2073 6563 6f6e 6420 e280 9870 7574 he second ...put │ │ │ │ +00016cd0: e280 9920 706f 7369 7469 6f6e 7320 7468 ... positions th │ │ │ │ +00016ce0: 6520 7370 6865 7265 2e20 2054 6865 7265 e sphere. There │ │ │ │ +00016cf0: 2069 730a 6120 726f 7461 7469 6f6e 2074 is.a rotation t │ │ │ │ +00016d00: 6f20 706c 6163 6520 7468 6520 6772 6964 o place the grid │ │ │ │ +00016d10: 206f 6e20 7468 6520 7370 6865 7265 2073 on the sphere s │ │ │ │ +00016d20: 7572 6661 6365 2061 7420 616e 206e 6963 urface at an nic │ │ │ │ +00016d30: 6520 616e 676c 652c 0a74 6865 6e20 6120 e angle,.then a │ │ │ │ +00016d40: 7472 616e 736c 6174 696f 6e20 746f 2074 translation to t │ │ │ │ +00016d50: 6865 2062 6173 6520 6f66 2074 6865 2064 he base of the d │ │ │ │ +00016d60: 6973 7461 6c20 7068 6c61 6e67 6573 2c20 istal phlanges, │ │ │ │ +00016d70: 7768 6963 6820 6973 2061 6c73 6f0a 6365 which is also.ce │ │ │ │ +00016d80: 6e74 6572 206f 6620 6974 7320 726f 7461 nter of its rota │ │ │ │ +00016d90: 7469 6f6e 2e20 2046 696e 616c 6c79 2c20 tion. Finally, │ │ │ │ +00016da0: 7468 6520 6c61 7374 20e2 8098 7075 74e2 the last ...put. │ │ │ │ +00016db0: 8099 2070 6f73 6974 696f 6e73 2074 6865 .. positions the │ │ │ │ +00016dc0: 206d 6964 646c 650a 7365 676d 656e 7420 middle.segment │ │ │ │ +00016dd0: 6974 7365 6c66 2e0a 0a20 2020 5468 6520 itself... The │ │ │ │ +00016de0: 6d69 6464 6c65 206a 6f69 6e74 2069 7320 middle joint is │ │ │ │ +00016df0: 7468 6520 6e65 7874 206f 6e65 2064 6f77 the next one dow │ │ │ │ +00016e00: 6e2c 2077 6974 6820 726f 7461 7469 6f6e n, with rotation │ │ │ │ +00016e10: 2061 6e67 6c65 0ae2 8098 6d69 6464 6c65 angle....middle │ │ │ │ +00016e20: 5f72 6f74 5f31 e280 992e 2020 5768 656e _rot_1.... When │ │ │ │ +00016e30: 2074 6869 7320 616e 676c 6520 6368 616e this angle chan │ │ │ │ +00016e40: 6765 732c 2077 6520 6e65 6564 2061 6c6c ges, we need all │ │ │ │ +00016e50: 2074 6865 206f 626a 6563 7473 2069 6e0a the objects in. │ │ │ │ +00016e60: e280 9864 6973 7461 6c5f 31e2 8099 2074 ...distal_1... t │ │ │ │ +00016e70: 6f20 726f 7461 7465 2061 7320 6120 756e o rotate as a un │ │ │ │ +00016e80: 6974 2e20 2054 6869 7320 6973 2074 6865 it. This is the │ │ │ │ +00016e90: 2072 6561 736f 6e69 6e67 2062 6568 696e reasoning behin │ │ │ │ +00016ea0: 6420 7468 6520 6e65 7874 0a64 6566 696e d the next.defin │ │ │ │ +00016eb0: 6974 696f 6e2e 0a20 2064 6566 2066 696e ition.. def fin │ │ │ │ +00016ec0: 6765 725f 3120 7b0a 2020 2020 7075 7420 ger_1 {. put │ │ │ │ +00016ed0: 7b20 7472 616e 736c 6174 6528 6a6f 696e { translate(join │ │ │ │ +00016ee0: 745f 6761 7020 2a20 6a6f 696e 745f 7261 t_gap * joint_ra │ │ │ │ +00016ef0: 6420 2a20 5b4a 5d29 0a20 2020 2020 2020 d * [J]). │ │ │ │ +00016f00: 2020 2074 6865 6e20 726f 7461 7465 286d then rotate(m │ │ │ │ +00016f10: 6964 646c 655f 315f 726f 742c 205b 495d iddle_1_rot, [I] │ │ │ │ +00016f20: 290a 2020 2020 2020 2020 2020 7468 656e ). then │ │ │ │ +00016f30: 2074 7261 6e73 6c61 7465 2828 6d69 6464 translate((midd │ │ │ │ +00016f40: 6c65 5f72 6174 696f 202a 2064 6973 7461 le_ratio * dista │ │ │ │ +00016f50: 6c5f 6c65 6e20 2b20 0a20 2020 2020 2020 l_len + . │ │ │ │ +00016f60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00016f70: 2020 206a 6f69 6e74 5f67 6170 202a 206a joint_gap * j │ │ │ │ +00016f80: 6f69 6e74 5f72 6164 2920 2a20 5b4a 5d29 oint_rad) * [J]) │ │ │ │ +00016f90: 207d 0a20 2020 2020 207b 6469 7374 616c }. {distal │ │ │ │ +00016fa0: 5f31 7d0a 2020 2020 7075 7420 7b20 7363 _1}. put { sc │ │ │ │ +00016fb0: 616c 6528 7072 6f78 696d 616c 5f64 6973 ale(proximal_dis │ │ │ │ +00016fc0: 7461 6c5f 7261 7469 6f29 0a20 2020 2020 tal_ratio). │ │ │ │ +00016fd0: 2020 2020 2074 6865 6e20 726f 7461 7465 then rotate │ │ │ │ +00016fe0: 286d 6964 646c 655f 315f 726f 7420 2f20 (middle_1_rot / │ │ │ │ +00016ff0: 322c 205b 495d 290a 2020 2020 2020 2020 2, [I]). │ │ │ │ +00017000: 2020 7468 656e 2074 7261 6e73 6c61 7465 then translate │ │ │ │ +00017010: 2828 6d69 6464 6c65 5f72 6174 696f 202a ((middle_ratio * │ │ │ │ +00017020: 2064 6973 7461 6c5f 6c65 6e20 2b20 0a20 distal_len + . │ │ │ │ +00017030: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00017040: 2020 2020 2020 2020 206a 6f69 6e74 5f67 joint_g │ │ │ │ +00017050: 6170 202a 206a 6f69 6e74 5f72 6164 2920 ap * joint_rad) │ │ │ │ +00017060: 2a20 5b4a 5d29 207d 200a 2020 2020 2020 * [J]) } . │ │ │ │ +00017070: 7b6a 6f69 6e74 5f73 7068 6572 657d 0a20 {joint_sphere}. │ │ │ │ +00017080: 2020 2070 7574 207b 2073 6361 6c65 2820 put { scale( │ │ │ │ +00017090: 6d69 6464 6c65 5f72 6174 696f 202a 205b middle_ratio * [ │ │ │ │ +000170a0: 4a5d 202b 200a 2020 2020 2020 2020 2020 J] + . │ │ │ │ +000170b0: 2020 2020 2020 2070 726f 7869 6d61 6c5f proximal_ │ │ │ │ +000170c0: 6469 7374 616c 5f72 6174 696f 5e32 202a distal_ratio^2 * │ │ │ │ +000170d0: 2028 5b49 5d2b 5b4b 5d29 2029 207d 0a20 ([I]+[K]) ) }. │ │ │ │ +000170e0: 2020 2020 207b 7365 676d 656e 747d 0a20 {segment}. │ │ │ │ +000170f0: 207d 0a54 6869 7320 6c6f 6f6b 7320 7665 }.This looks ve │ │ │ │ +00017100: 7279 2073 696d 696c 6172 2074 6f20 7468 ry similar to th │ │ │ │ +00017110: 6520 7072 6576 696f 7573 2064 6566 696e e previous defin │ │ │ │ +00017120: 6974 696f 6e2c 2061 6e64 2069 7420 6973 ition, and it is │ │ │ │ +00017130: 2e20 2054 6865 0a69 6d70 6f72 7461 6e74 . The.important │ │ │ │ +00017140: 2064 6966 6665 7265 6e63 6520 6973 2074 difference is t │ │ │ │ +00017150: 6861 7420 7261 7468 6572 2074 6861 6e20 hat rather than │ │ │ │ +00017160: 706f 7369 7469 6f6e 696e 6720 616e 6420 positioning and │ │ │ │ +00017170: 726f 7461 7469 6e67 2061 0a73 696e 676c rotating a.singl │ │ │ │ +00017180: 6520 7365 676d 656e 742c 2077 6520 706f e segment, we po │ │ │ │ +00017190: 7369 7469 6f6e 2061 6e64 2072 6f74 6174 sition and rotat │ │ │ │ +000171a0: 6520 7468 6520 656e 7469 7265 2022 6173 e the entire "as │ │ │ │ +000171b0: 7365 6d62 6c79 2220 6465 6669 6e65 6420 sembly" defined │ │ │ │ +000171c0: 6173 0ae2 8098 6469 7374 616c 5f31 e280 as....distal_1.. │ │ │ │ +000171d0: 992e 2020 5468 6520 7265 7374 2069 7320 .. The rest is │ │ │ │ +000171e0: 6a75 7374 2061 7269 7468 6d65 7469 6320 just arithmetic │ │ │ │ +000171f0: 746f 2063 6f6d 7075 7465 2073 697a 6573 to compute sizes │ │ │ │ +00017200: 2061 6e64 2070 6f73 6974 696f 6e73 0a74 and positions.t │ │ │ │ +00017210: 6861 7420 6c6f 6f6b 206e 6963 652e 2020 hat look nice. │ │ │ │ +00017220: 5468 6520 6c61 7374 20e2 8098 7075 74e2 The last ...put. │ │ │ │ +00017230: 8099 2070 6c61 6365 7320 616e 2061 7070 .. places an app │ │ │ │ +00017240: 726f 7072 6961 7465 6c79 2073 6861 7065 ropriately shape │ │ │ │ +00017250: 6420 7365 676d 656e 740a 7468 6174 2069 d segment.that i │ │ │ │ +00017260: 7320 7468 6520 5f70 726f 7869 6d61 6c20 s the _proximal │ │ │ │ +00017270: 7068 6c61 6e67 6573 5f2c 2074 6865 2062 phlanges_, the b │ │ │ │ +00017280: 6f6e 6520 7468 6174 206a 6f69 6e73 2074 one that joins t │ │ │ │ +00017290: 6865 2070 616c 6d20 6f66 2074 6865 0a68 he palm of the.h │ │ │ │ +000172a0: 616e 642e 2020 5468 6973 2063 6f6d 706c and. This compl │ │ │ │ +000172b0: 6574 6573 2074 6865 2066 696e 6765 7220 etes the finger │ │ │ │ +000172c0: 6974 7365 6c66 2e0a 0a20 2020 416c 6c20 itself... All │ │ │ │ +000172d0: 7468 6520 6f74 6865 7220 6669 6e67 6572 the other finger │ │ │ │ +000172e0: 7320 6172 6520 6465 7363 7269 6265 6420 s are described │ │ │ │ +000172f0: 6964 656e 7469 6361 6c6c 7920 746f 2074 identically to t │ │ │ │ +00017300: 6869 7320 6f6e 652e 2020 5765 0a61 6363 his one. We.acc │ │ │ │ +00017310: 6f75 6e74 2066 6f72 2074 6865 2066 6163 ount for the fac │ │ │ │ +00017320: 7420 7468 6174 2072 6561 6c20 6669 6e67 t that real fing │ │ │ │ +00017330: 6572 7320 6172 6520 6469 6666 6572 656e ers are differen │ │ │ │ +00017340: 7420 7369 7a65 7320 696e 2074 6865 206e t sizes in the n │ │ │ │ +00017350: 6578 740a 7374 6570 2c20 7768 6963 6820 ext.step, which │ │ │ │ +00017360: 6973 2074 6f20 6275 696c 6420 7468 6520 is to build the │ │ │ │ +00017370: 656e 7469 7265 2068 616e 642e 0a0a 2020 entire hand... │ │ │ │ +00017380: 2054 6865 20e2 8098 6861 6e64 e280 9920 The ...hand... │ │ │ │ +00017390: 6465 6669 6e69 7469 6f6e 2074 6861 7420 definition that │ │ │ │ +000173a0: 666f 6c6c 6f77 7320 696e 636c 7564 6573 follows includes │ │ │ │ +000173b0: 2061 2073 6563 7469 6f6e 2066 6f72 2065 a section for e │ │ │ │ +000173c0: 6163 680a 6669 6e67 6572 2e20 2057 6527 ach.finger. We' │ │ │ │ +000173d0: 6c6c 2063 6f6e 7469 6e75 6520 7769 7468 ll continue with │ │ │ │ +000173e0: 2066 696e 6765 7220 3120 616e 6420 6f6d finger 1 and om │ │ │ │ +000173f0: 6974 2061 6c6c 2074 6865 206f 7468 6572 it all the other │ │ │ │ +00017400: 732e 2020 284f 6620 6e6f 7465 0a69 7320 s. (Of note.is │ │ │ │ +00017410: 7468 6174 2074 6865 2074 6875 6d62 206e that the thumb n │ │ │ │ +00017420: 6565 6473 2073 6c69 6768 746c 7920 7370 eeds slightly sp │ │ │ │ +00017430: 6563 6961 6c20 7472 6561 746d 656e 742d ecial treatment- │ │ │ │ +00017440: 2d61 6e20 6578 7472 6120 726f 7461 7469 -an extra rotati │ │ │ │ +00017450: 6f6e 2074 6f0a 6163 636f 756e 7420 666f on to.account fo │ │ │ │ +00017460: 7220 6974 7320 6f70 706f 7369 6e67 2061 r its opposing a │ │ │ │ +00017470: 6e67 6c65 2e20 2054 6869 7320 6973 2063 ngle. This is c │ │ │ │ +00017480: 6c65 6172 2069 6e20 7468 6520 6675 6c6c lear in the full │ │ │ │ +00017490: 2073 6f75 7263 6520 636f 6465 2e29 0a4e source code.).N │ │ │ │ +000174a0: 6f74 2073 7572 7072 6973 696e 676c 792c ot surprisingly, │ │ │ │ +000174b0: 2074 6865 20e2 8098 6861 6e64 e280 9920 the ...hand... │ │ │ │ +000174c0: 6465 6669 6e69 7469 6f6e 206c 6f6f 6b73 definition looks │ │ │ │ +000174d0: 2076 6572 7920 6d75 6368 206c 696b 6520 very much like │ │ │ │ +000174e0: 7468 650a 7072 6576 696f 7573 2074 776f the.previous two │ │ │ │ +000174f0: 2e20 2049 7420 7368 6f75 6c64 2062 6520 . It should be │ │ │ │ +00017500: 6e6f 2073 7572 7072 6973 6520 7468 6174 no surprise that │ │ │ │ +00017510: 2077 6865 6e20 7468 6520 726f 7461 7469 when the rotati │ │ │ │ +00017520: 6f6e 2070 6172 616d 6574 6572 0ae2 8098 on parameter.... │ │ │ │ +00017530: 6d65 7461 5f31 5f72 6f74 e280 9920 6368 meta_1_rot... ch │ │ │ │ +00017540: 616e 6765 732c 2074 6865 2065 6e74 6972 anges, the entir │ │ │ │ +00017550: 6520 6669 6e67 6572 2072 6f74 6174 6573 e finger rotates │ │ │ │ +00017560: 2120 2054 6865 7265 2069 7320 616e 2061 ! There is an a │ │ │ │ +00017570: 6464 6974 696f 6e61 6c0a 726f 7461 7469 dditional.rotati │ │ │ │ +00017580: 6f6e 2074 6861 7420 616c 6c6f 7773 2074 on that allows t │ │ │ │ +00017590: 6865 2066 696e 6765 7273 2074 6f20 7370 he fingers to sp │ │ │ │ +000175a0: 7265 6164 206c 6174 6572 616c 6c79 2e20 read laterally. │ │ │ │ +000175b0: 2057 6520 7361 7920 7468 6573 650a 6a6f We say these.jo │ │ │ │ +000175c0: 696e 7473 206f 6620 7468 6520 7072 6f78 ints of the prox │ │ │ │ +000175d0: 696d 616c 2070 686c 616e 6765 7320 6861 imal phlanges ha │ │ │ │ +000175e0: 7665 2074 776f 205f 6465 6772 6565 7320 ve two _degrees │ │ │ │ +000175f0: 6f66 2066 7265 6564 6f6d 5f2e 2020 5468 of freedom_. Th │ │ │ │ +00017600: 650a 6a6f 696e 7473 2068 6967 6865 7220 e.joints higher │ │ │ │ +00017610: 6f6e 2074 6865 2066 696e 6765 7220 6861 on the finger ha │ │ │ │ +00017620: 7665 206f 6e6c 7920 6f6e 652e 2020 4669 ve only one. Fi │ │ │ │ +00017630: 6e61 6c6c 792c 2065 6163 6820 6669 6e67 nally, each fing │ │ │ │ +00017640: 6572 2069 730a 7363 616c 6564 2062 7920 er is.scaled by │ │ │ │ +00017650: 6120 6661 6374 6f72 2074 6f20 6c65 6e64 a factor to lend │ │ │ │ +00017660: 2069 7420 7072 6f70 6f72 7469 6f6e 2e0a it proportion.. │ │ │ │ +00017670: 2020 6465 6620 6861 6e64 207b 0a20 2020 def hand {. │ │ │ │ +00017680: 2025 2066 696e 6765 7220 3120 5b61 6c6c % finger 1 [all │ │ │ │ +00017690: 206f 7468 6572 2066 696e 6765 7273 206f other fingers o │ │ │ │ +000176a0: 6d69 7474 6564 5d0a 2020 2020 6465 6620 mitted]. def │ │ │ │ +000176b0: 7363 616c 655f 3120 2e38 350a 2020 2020 scale_1 .85. │ │ │ │ +000176c0: 7075 7420 7b20 7363 616c 6528 7363 616c put { scale(scal │ │ │ │ +000176d0: 655f 3129 200a 2020 2020 2020 2020 2020 e_1) . │ │ │ │ +000176e0: 7468 656e 2074 7261 6e73 6c61 7465 2828 then translate(( │ │ │ │ +000176f0: 6a6f 696e 745f 6761 7020 2a20 6a6f 696e joint_gap * join │ │ │ │ +00017700: 745f 7261 6429 202a 205b 4a5d 290a 0920 t_rad) * [J]).. │ │ │ │ +00017710: 2074 6865 6e20 726f 7461 7465 286d 6574 then rotate(met │ │ │ │ +00017720: 615f 315f 726f 742c 205b 495d 290a 2020 a_1_rot, [I]). │ │ │ │ +00017730: 2020 2020 2020 2020 7468 656e 2072 6f74 then rot │ │ │ │ +00017740: 6174 6528 2d73 7072 6561 645f 726f 742c ate(-spread_rot, │ │ │ │ +00017750: 205b 4b5d 290a 2020 2020 2020 2020 2020 [K]). │ │ │ │ +00017760: 7468 656e 2074 7261 6e73 6c61 7465 2828 then translate(( │ │ │ │ +00017770: 7072 6f78 696d 616c 5f31 5f6c 6f63 2920 proximal_1_loc) │ │ │ │ +00017780: 2d20 284f 2929 207d 200a 2020 2020 2020 - (O)) } . │ │ │ │ +00017790: 7b66 696e 6765 725f 317d 0a20 2020 2070 {finger_1}. p │ │ │ │ +000177a0: 7574 207b 2073 6361 6c65 2873 6361 6c65 ut { scale(scale │ │ │ │ +000177b0: 5f31 202a 2070 726f 7869 6d61 6c5f 6469 _1 * proximal_di │ │ │ │ +000177c0: 7374 616c 5f72 6174 696f 5e32 290a 2020 stal_ratio^2). │ │ │ │ +000177d0: 2020 2020 2020 2020 7468 656e 2072 6f74 then rot │ │ │ │ +000177e0: 6174 6528 6d65 7461 5f31 5f72 6f74 202f ate(meta_1_rot / │ │ │ │ +000177f0: 2032 2c20 5b49 5d29 0a20 2020 2020 2020 2, [I]). │ │ │ │ +00017800: 2020 2074 6865 6e20 726f 7461 7465 282d then rotate(- │ │ │ │ +00017810: 7370 7265 6164 5f72 6f74 2c20 5b4b 5d29 spread_rot, [K]) │ │ │ │ +00017820: 0a20 2020 2020 2020 2020 2074 6865 6e20 . then │ │ │ │ +00017830: 7472 616e 736c 6174 6528 2870 726f 7869 translate((proxi │ │ │ │ +00017840: 6d61 6c5f 315f 6c6f 6329 202d 2028 4f29 mal_1_loc) - (O) │ │ │ │ +00017850: 2920 7d20 0a20 2020 2020 207b 6a6f 696e ) } . {join │ │ │ │ +00017860: 745f 7370 6865 7265 7d0a 0a20 2020 2025 t_sphere}.. % │ │ │ │ +00017870: 2070 616c 6d0a 2020 2020 7377 6565 7020 palm. sweep │ │ │ │ +00017880: 7b20 312c 2072 6f74 6174 6528 362c 2028 { 1, rotate(6, ( │ │ │ │ +00017890: 302c 3135 2c30 292c 205b 495d 2920 7d0a 0,15,0), [I]) }. │ │ │ │ +000178a0: 2020 2020 2020 7075 7420 7b20 726f 7461 put { rota │ │ │ │ +000178b0: 7465 282d 332c 2028 302c 3135 2c30 292c te(-3, (0,15,0), │ │ │ │ +000178c0: 205b 495d 2920 7d20 7b0a 2020 2020 2020 [I]) } {. │ │ │ │ +000178d0: 2020 706f 6c79 676f 6e28 7072 6f78 696d polygon(proxim │ │ │ │ +000178e0: 616c 5f31 5f6c 6f63 2928 7072 6f78 696d al_1_loc)(proxim │ │ │ │ +000178f0: 616c 5f32 5f6c 6f63 290a 2020 2020 2020 al_2_loc). │ │ │ │ +00017900: 2020 2020 2020 2020 2028 7072 6f78 696d (proxim │ │ │ │ +00017910: 616c 5f33 5f6c 6f63 2928 7072 6f78 696d al_3_loc)(proxim │ │ │ │ +00017920: 616c 5f34 5f6c 6f63 290a 2020 2020 2020 al_4_loc). │ │ │ │ +00017930: 2020 2020 2020 2020 2028 6835 2928 6836 (h5)(h6 │ │ │ │ +00017940: 2928 6836 6129 2868 3929 2868 3130 290a )(h6a)(h9)(h10). │ │ │ │ +00017950: 2020 2020 2020 2020 706f 6c79 676f 6e28 polygon( │ │ │ │ +00017960: 6836 6129 2868 3729 2868 3829 2868 3929 h6a)(h7)(h8)(h9) │ │ │ │ +00017970: 0a20 2020 7d20 207d 0a54 6865 206c 6173 . } }.The las │ │ │ │ +00017980: 7420 7365 6374 696f 6e20 6f66 2074 6865 t section of the │ │ │ │ +00017990: 2064 6566 696e 6974 696f 6e20 6372 6561 definition crea │ │ │ │ +000179a0: 7465 7320 7468 6520 706f 6c79 746f 7065 tes the polytope │ │ │ │ +000179b0: 2066 6f72 2074 6865 2070 616c 6d20 6f66 for the palm of │ │ │ │ +000179c0: 0a74 6865 2068 616e 6420 6279 20e2 8098 .the hand by ... │ │ │ │ +000179d0: 7377 6565 70e2 8099 696e 6720 6120 3130 sweep...ing a 10 │ │ │ │ +000179e0: 2d73 6964 6564 2070 6f6c 7967 6f6e 2074 -sided polygon t │ │ │ │ +000179f0: 6872 6f75 6768 2061 2076 6572 7920 7368 hrough a very sh │ │ │ │ +00017a00: 6f72 7420 6172 630a 2839 2064 6567 7265 ort arc.(9 degre │ │ │ │ +00017a10: 6573 292e 2020 5468 6973 2070 726f 7669 es). This provi │ │ │ │ +00017a20: 6465 7320 6120 7765 6467 652d 7368 6170 des a wedge-shap │ │ │ │ +00017a30: 6564 2070 726f 6669 6c65 2077 6865 6e20 ed profile when │ │ │ │ +00017a40: 7669 6577 6564 2066 726f 6d20 7468 650a viewed from the. │ │ │ │ +00017a50: 7369 6465 2e20 2054 6865 2074 6869 636b side. The thick │ │ │ │ +00017a60: 2065 6e64 206f 6620 7468 6520 7765 6467 end of the wedg │ │ │ │ +00017a70: 6520 6973 2074 6865 2077 7269 7374 2e20 e is the wrist. │ │ │ │ +00017a80: 2042 6563 6175 7365 2074 6865 2070 6f6c Because the pol │ │ │ │ +00017a90: 7967 6f6e 2069 730a 636f 6e63 6176 652c ygon is.concave, │ │ │ │ +00017aa0: 2069 7420 6973 2073 706c 6974 2069 6e74 it is split int │ │ │ │ +00017ab0: 6f20 696e 746f 2074 776f 2063 6f6e 7665 o into two conve │ │ │ │ +00017ac0: 7820 7368 6170 6573 2077 6974 6820 6e69 x shapes with ni │ │ │ │ +00017ad0: 6e65 2061 6e64 2066 6f75 720a 7665 7274 ne and four.vert │ │ │ │ +00017ae0: 6963 6573 2e0a 0a20 2020 5765 2063 616e ices... We can │ │ │ │ +00017af0: 206e 6f77 2068 6176 6520 6675 6e20 706f now have fun po │ │ │ │ +00017b00: 7369 7469 6f6e 696e 6720 7468 6520 6861 sitioning the ha │ │ │ │ +00017b10: 6e64 2062 7920 6164 6a75 7374 696e 6720 nd by adjusting │ │ │ │ +00017b20: 7468 6520 7661 7269 6f75 730a 726f 7461 the various.rota │ │ │ │ +00017b30: 7469 6f6e 2061 6e67 6c65 732e 2020 5468 tion angles. Th │ │ │ │ +00017b40: 6520 636f 6d70 6c65 7465 2073 6f75 7263 e complete sourc │ │ │ │ +00017b50: 6520 696e 636c 7564 6573 2064 6566 696e e includes defin │ │ │ │ +00017b60: 6974 696f 6e73 2077 6974 680a 616c 7465 itions with.alte │ │ │ │ +00017b70: 726e 6174 6976 6573 2074 6861 7420 696e rnatives that in │ │ │ │ +00017b80: 636c 7564 6520 7468 6520 666f 6c6c 6f77 clude the follow │ │ │ │ +00017b90: 696e 6720 7669 6577 7320 616e 6420 6d6f ing views and mo │ │ │ │ +00017ba0: 7265 2e0a 0a00 085b 696d 6167 6520 7372 re.....[image sr │ │ │ │ +00017bb0: 633d 2265 7832 3130 2e70 6e67 2220 7465 c="ex210.png" te │ │ │ │ +00017bc0: 7874 3d22 496d 6167 6520 6578 3231 3020 xt="Image ex210 │ │ │ │ +00017bd0: 6f6d 6974 7465 6420 696e 2074 6578 7420 omitted in text │ │ │ │ +00017be0: 7665 7273 696f 6e20 6f66 2074 6869 7320 version of this │ │ │ │ +00017bf0: 646f 6375 6d65 6e74 2e22 0008 5d00 085b document."..]..[ │ │ │ │ +00017c00: 696d 6167 6520 7372 633d 2265 7832 3230 image src="ex220 │ │ │ │ +00017c10: 2e70 6e67 2220 7465 7874 3d22 496d 6167 .png" text="Imag │ │ │ │ +00017c20: 6520 6578 3232 3020 6f6d 6974 7465 6420 e ex220 omitted │ │ │ │ +00017c30: 696e 2074 6578 7420 7665 7273 696f 6e20 in text version │ │ │ │ +00017c40: 6f66 2074 6869 7320 646f 6375 6d65 6e74 of this document │ │ │ │ +00017c50: 2e22 0008 5d00 085b 696d 6167 6520 7372 ."..]..[image sr │ │ │ │ +00017c60: 633d 2265 7832 3330 2e70 6e67 2220 7465 c="ex230.png" te │ │ │ │ +00017c70: 7874 3d22 496d 6167 6520 6578 3233 3020 xt="Image ex230 │ │ │ │ +00017c80: 6f6d 6974 7465 6420 696e 2074 6578 7420 omitted in text │ │ │ │ +00017c90: 7665 7273 696f 6e20 6f66 2074 6869 7320 version of this │ │ │ │ +00017ca0: 646f 6375 6d65 6e74 2e22 0008 5d00 085b document."..]..[ │ │ │ │ +00017cb0: 696d 6167 6520 7372 633d 2265 7832 3430 image src="ex240 │ │ │ │ +00017cc0: 2e70 6e67 2220 7465 7874 3d22 496d 6167 .png" text="Imag │ │ │ │ +00017cd0: 6520 6578 3234 3020 6f6d 6974 7465 6420 e ex240 omitted │ │ │ │ +00017ce0: 696e 2074 6578 7420 7665 7273 696f 6e20 in text version │ │ │ │ +00017cf0: 6f66 2074 6869 7320 646f 6375 6d65 6e74 of this document │ │ │ │ +00017d00: 2e22 0008 5d0a 0a1f 0a46 696c 653a 2073 ."..]....File: s │ │ │ │ +00017d10: 6b65 7463 682e 696e 666f 2c20 204e 6f64 ketch.info, Nod │ │ │ │ +00017d20: 653a 2043 6176 6561 7473 2c20 2050 7265 e: Caveats, Pre │ │ │ │ +00017d30: 763a 2041 2068 6965 7261 7263 6869 6361 v: A hierarchica │ │ │ │ +00017d40: 6c20 6d6f 6465 6c2c 2020 5570 3a20 4275 l model, Up: Bu │ │ │ │ +00017d50: 696c 6469 6e67 2061 2064 7261 7769 6e67 ilding a drawing │ │ │ │ +00017d60: 0a0a 342e 3420 4361 7665 6174 730a 3d3d ..4.4 Caveats.== │ │ │ │ +00017d70: 3d3d 3d3d 3d3d 3d3d 3d0a 0ae2 8098 536b =========.....Sk │ │ │ │ +00017d80: 6574 6368 e280 9920 6973 2061 2066 6169 etch... is a fai │ │ │ │ +00017d90: 726c 7920 706f 7765 7266 756c 2074 6f6f rly powerful too │ │ │ │ +00017da0: 6c20 666f 7220 6472 6177 696e 672c 2062 l for drawing, b │ │ │ │ +00017db0: 7574 2c20 6a75 7374 2061 7320 7769 7468 ut, just as with │ │ │ │ +00017dc0: 2054 6558 2c0a 7468 6520 706f 7765 7220 TeX,.the power │ │ │ │ +00017dd0: 746f 2063 7265 6174 6520 6265 6175 7469 to create beauti │ │ │ │ +00017de0: 6675 6c20 7265 7375 6c74 7320 636f 6d65 ful results come │ │ │ │ +00017df0: 7320 616c 6f6e 6720 7769 7468 2074 6865 s along with the │ │ │ │ +00017e00: 2070 6f77 6572 2074 6f20 6d61 6b65 0a6d power to make.m │ │ │ │ +00017e10: 6973 7461 6b65 732e 2020 5468 6520 666f istakes. The fo │ │ │ │ +00017e20: 6c6c 6f77 696e 6720 6172 6520 736f 6d65 llowing are some │ │ │ │ +00017e30: 2070 6f69 6e74 7320 7768 6572 6520 6361 points where ca │ │ │ │ +00017e40: 7265 2069 7320 6e65 6365 7373 6172 7920 re is necessary │ │ │ │ +00017e50: 616e 640a 7768 6572 6520 7468 6520 6375 and.where the cu │ │ │ │ +00017e60: 7272 656e 7420 7665 7273 696f 6e20 6f66 rrent version of │ │ │ │ +00017e70: 20e2 8098 736b 6574 6368 e280 9920 6973 ...sketch... is │ │ │ │ +00017e80: 206c 696d 6974 6564 206f 7220 6861 7320 limited or has │ │ │ │ +00017e90: 6b6e 6f77 6e20 6275 6773 2e0a 0a2a 204d known bugs...* M │ │ │ │ +00017ea0: 656e 753a 0a0a 2a20 4c69 6d69 7473 206f enu:..* Limits o │ │ │ │ +00017eb0: 6e20 6572 726f 7220 6465 7465 6374 696f n error detectio │ │ │ │ +00017ec0: 6e3a 3a20 2020 5768 6174 2073 6b65 7463 n:: What sketc │ │ │ │ +00017ed0: 6820 646f 6573 6e27 7420 646f 2e0a 2a20 h doesn't do..* │ │ │ │ +00017ee0: 436c 6970 7069 6e67 3a3a 2020 2020 2020 Clipping:: │ │ │ │ +00017ef0: 2020 2020 2020 2020 2020 2020 2020 4e6f No │ │ │ │ +00017f00: 2063 6c69 7070 696e 6720 6174 2070 7265 clipping at pre │ │ │ │ +00017f10: 7365 6e74 2e0a 2a20 4869 6464 656e 2073 sent..* Hidden s │ │ │ │ +00017f20: 7572 6661 6365 2072 656d 6f76 616c 3a3a urface removal:: │ │ │ │ +00017f30: 2020 2020 2020 496d 7065 7266 6563 7469 Imperfecti │ │ │ │ +00017f40: 6f6e 7320 746f 2066 6978 2e0a 0a1f 0a46 ons to fix.....F │ │ │ │ +00017f50: 696c 653a 2073 6b65 7463 682e 696e 666f ile: sketch.info │ │ │ │ +00017f60: 2c20 204e 6f64 653a 204c 696d 6974 7320 , Node: Limits │ │ │ │ +00017f70: 6f6e 2065 7272 6f72 2064 6574 6563 7469 on error detecti │ │ │ │ +00017f80: 6f6e 2c20 204e 6578 743a 2043 6c69 7070 on, Next: Clipp │ │ │ │ +00017f90: 696e 672c 2020 5072 6576 3a20 4361 7665 ing, Prev: Cave │ │ │ │ +00017fa0: 6174 732c 2020 5570 3a20 4361 7665 6174 ats, Up: Caveat │ │ │ │ +00017fb0: 730a 0a34 2e34 2e31 204c 696d 6974 7320 s..4.4.1 Limits │ │ │ │ +00017fc0: 6f6e 20e2 8098 736b 6574 6368 e280 9920 on ...sketch... │ │ │ │ +00017fd0: 6572 726f 7220 6465 7465 6374 696f 6e0a error detection. │ │ │ │ +00017fe0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ 00017ff0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ -00018000: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ -00018010: 0a0a e280 9853 6b65 7463 68e2 8099 2063 .....Sketch... c │ │ │ │ -00018020: 6174 6368 6573 206d 616e 7920 6b69 6e64 atches many kind │ │ │ │ -00018030: 7320 6f66 2065 7272 6f72 732c 2062 7574 s of errors, but │ │ │ │ -00018040: 206e 6f74 2061 6c6c 2e20 2046 6f72 2065 not all. For e │ │ │ │ -00018050: 7861 6d70 6c65 2c0a 6f70 7469 6f6e 7320 xample,.options │ │ │ │ -00018060: 7468 6174 2073 6b65 7463 6820 646f 6573 that sketch does │ │ │ │ -00018070: 206e 6f74 2072 6563 6f67 6e69 7a65 2c20 not recognize, │ │ │ │ -00018080: 6576 656e 2069 6e63 6f72 7265 6374 206f even incorrect o │ │ │ │ -00018090: 6e65 732c 2061 7265 2071 7569 6574 6c79 nes, are quietly │ │ │ │ -000180a0: 0a63 6f70 6965 6420 746f 20e2 8098 5053 .copied to ...PS │ │ │ │ -000180b0: 5472 6963 6b73 e280 9920 636f 6d6d 616e Tricks... comman │ │ │ │ -000180c0: 6473 2069 6e20 7468 6520 6f75 7470 7574 ds in the output │ │ │ │ -000180d0: 2e20 2049 7420 6973 2061 6c73 6f20 756e . It is also un │ │ │ │ -000180e0: 666f 7274 756e 6174 656c 790a 6561 7379 fortunately.easy │ │ │ │ -000180f0: 2074 6f20 7072 6f64 7563 6520 e280 9873 to produce ...s │ │ │ │ -00018100: 6b65 7463 68e2 8099 2069 6e70 7574 7320 ketch... inputs │ │ │ │ -00018110: 7468 6174 206c 6561 6420 746f 206e 6f20 that lead to no │ │ │ │ -00018120: 7069 6374 7572 6520 6174 2061 6c6c 2028 picture at all ( │ │ │ │ -00018130: 696d 7072 6f70 6572 0a76 6572 7465 7820 improper.vertex │ │ │ │ -00018140: 6f72 6465 7269 6e67 2063 6175 7365 7320 ordering causes │ │ │ │ -00018150: 6576 6572 7974 6869 6e67 2074 6f20 6265 everything to be │ │ │ │ -00018160: 2063 756c 6c65 6429 2c20 746f 2070 6963 culled), to pic │ │ │ │ -00018170: 7475 7265 7320 7468 6174 2061 7265 0a74 tures that are.t │ │ │ │ -00018180: 6f6f 2062 6967 206f 7220 746f 6f20 736d oo big or too sm │ │ │ │ -00018190: 616c 6c20 666f 7220 e280 9850 5354 7269 all for ...PSTri │ │ │ │ -000181a0: 636b 73e2 8099 2074 6f20 6472 6177 2028 cks... to draw ( │ │ │ │ -000181b0: 6475 6520 746f 206c 696d 6974 7320 6f66 due to limits of │ │ │ │ -000181c0: 2054 6558 206d 6174 6829 2c0a 616e 6420 TeX math),.and │ │ │ │ -000181d0: 7069 6374 7572 6573 2074 6861 7420 6c6f pictures that lo │ │ │ │ -000181e0: 6f6b 206e 6f74 6869 6e67 206c 696b 6520 ok nothing like │ │ │ │ -000181f0: 7768 6174 2077 6173 2069 6e74 656e 6465 what was intende │ │ │ │ -00018200: 642e 2020 4120 7069 6374 7572 6520 7769 d. A picture wi │ │ │ │ -00018210: 7468 0a6f 6e65 206f 6620 7468 6573 6520 th.one of these │ │ │ │ -00018220: 7072 6f62 6c65 6d73 2063 616e 2062 6520 problems can be │ │ │ │ -00018230: 6469 6666 6963 756c 7420 746f 2022 6465 difficult to "de │ │ │ │ -00018240: 6275 672e 2220 2057 6520 6f66 6665 7220 bug." We offer │ │ │ │ -00018250: 7468 650a 666f 6c6c 6f77 696e 6720 7375 the.following su │ │ │ │ -00018260: 6767 6573 7469 6f6e 732e 0a20 2020 e280 ggestions.. .. │ │ │ │ -00018270: a220 466f 6c6c 6f77 2074 6865 2073 7567 . Follow the sug │ │ │ │ -00018280: 6765 7374 6564 2069 6e63 7265 6d65 6e74 gested increment │ │ │ │ -00018290: 616c 2064 6576 656c 6f70 6d65 6e74 206d al development m │ │ │ │ -000182a0: 6574 686f 6420 6465 7363 7269 6265 6420 ethod described │ │ │ │ -000182b0: 696e 0a20 2020 2020 2a6e 6f74 6520 4f76 in. *note Ov │ │ │ │ -000182c0: 6572 7669 6577 3a3a 2e0a 2020 20e2 80a2 erview::.. ... │ │ │ │ -000182d0: 2041 6c77 6179 7320 6d61 696e 7461 696e Always maintain │ │ │ │ -000182e0: 206f 6e65 206f 7220 7477 6f20 6261 636b one or two back │ │ │ │ -000182f0: 2d76 6572 7369 6f6e 7320 6f66 2061 2064 -versions of a d │ │ │ │ -00018300: 7261 7769 6e67 2073 6f20 7468 6174 2069 rawing so that i │ │ │ │ -00018310: 7420 6973 0a20 2020 2020 6561 7379 2074 t is. easy t │ │ │ │ -00018320: 6f20 6661 6c6c 2062 6163 6b20 746f 2061 o fall back to a │ │ │ │ -00018330: 206b 6e6f 776e 2d67 6f6f 6420 696e 6372 known-good incr │ │ │ │ -00018340: 656d 656e 742e 0a20 2020 e280 a220 5768 ement.. ... Wh │ │ │ │ -00018350: 656e 2075 7369 6e67 20e2 8098 7065 7273 en using ...pers │ │ │ │ -00018360: 7065 6374 6976 65e2 8099 2c20 656e 7375 pective..., ensu │ │ │ │ -00018370: 7265 2061 6c6c 2066 696e 616c 6c79 2074 re all finally t │ │ │ │ -00018380: 7261 6e73 666f 726d 6564 206f 626a 6563 ransformed objec │ │ │ │ -00018390: 7473 0a20 2020 2020 7361 7469 7366 7920 ts. satisfy │ │ │ │ -000183a0: 7a3c 3020 616e 642c 2069 6e20 6661 6374 z<0 and, in fact │ │ │ │ -000183b0: 2c20 646f 206e 6f74 2063 6f6d 6520 7665 , do not come ve │ │ │ │ -000183c0: 7279 2063 6c6f 7365 2074 6f20 7468 6520 ry close to the │ │ │ │ -000183d0: 6f72 6967 696e 2061 740a 2020 2020 2061 origin at. a │ │ │ │ -000183e0: 6c6c 2e0a 2020 20e2 80a2 2054 656d 706f ll.. ... Tempo │ │ │ │ -000183f0: 7261 7269 6c79 2075 7365 20e2 8098 6375 rarily use ...cu │ │ │ │ -00018400: 6c6c 3d66 616c 7365 e280 9920 746f 2073 ll=false... to s │ │ │ │ -00018410: 6565 2077 6865 7265 2076 6572 7465 7820 ee where vertex │ │ │ │ -00018420: 6f72 6465 7269 6e67 2070 726f 626c 656d ordering problem │ │ │ │ -00018430: 730a 2020 2020 206c 6965 2e0a 2020 20e2 s. lie.. . │ │ │ │ -00018440: 80a2 2055 7365 2074 656d 706f 7261 7279 .. Use temporary │ │ │ │ -00018450: 2063 6861 6e67 6573 206f 6620 636f 6c6f changes of colo │ │ │ │ -00018460: 7220 6f66 206f 6e65 206f 7220 6d6f 7265 r of one or more │ │ │ │ -00018470: 206f 626a 6563 7473 2074 6f20 656e 7375 objects to ensu │ │ │ │ -00018480: 7265 0a20 2020 2020 7468 6174 2079 6f75 re. that you │ │ │ │ -00018490: 7220 756e 6465 7273 7461 6e64 696e 6720 r understanding │ │ │ │ -000184a0: 6f66 2074 6865 2073 6365 6e65 2067 656f of the scene geo │ │ │ │ -000184b0: 6d65 7472 7920 6973 2063 6f72 7265 6374 metry is correct │ │ │ │ -000184c0: 2e0a 2020 20e2 80a2 2049 6620 e280 9850 .. ... If ...P │ │ │ │ -000184d0: 5354 7269 636b 73e2 8099 2063 6f6d 706c STricks... compl │ │ │ │ -000184e0: 6169 6e73 2061 626f 7574 2073 6f6d 6574 ains about somet │ │ │ │ -000184f0: 6869 6e67 2c20 696e 7370 6563 7420 7468 hing, inspect th │ │ │ │ -00018500: 6520 6f75 7470 7574 0a20 2020 2020 6469 e output. di │ │ │ │ -00018510: 7265 6374 6c79 2066 6f72 2063 6c75 6573 rectly for clues │ │ │ │ -00018520: 2e0a 0a1f 0a46 696c 653a 2073 6b65 7463 .....File: sketc │ │ │ │ -00018530: 682e 696e 666f 2c20 204e 6f64 653a 2043 h.info, Node: C │ │ │ │ -00018540: 6c69 7070 696e 672c 2020 4e65 7874 3a20 lipping, Next: │ │ │ │ -00018550: 4869 6464 656e 2073 7572 6661 6365 2072 Hidden surface r │ │ │ │ -00018560: 656d 6f76 616c 2c20 2050 7265 763a 204c emoval, Prev: L │ │ │ │ -00018570: 696d 6974 7320 6f6e 2065 7272 6f72 2064 imits on error d │ │ │ │ -00018580: 6574 6563 7469 6f6e 2c20 2055 703a 2043 etection, Up: C │ │ │ │ -00018590: 6176 6561 7473 0a0a 342e 342e 3220 436c aveats..4.4.2 Cl │ │ │ │ -000185a0: 6970 7069 6e67 0a2d 2d2d 2d2d 2d2d 2d2d ipping.--------- │ │ │ │ -000185b0: 2d2d 2d2d 2d0a 0a54 6865 2063 7572 7265 -----..The curre │ │ │ │ -000185c0: 6e74 2076 6572 7369 6f6e 206f 6620 e280 nt version of .. │ │ │ │ -000185d0: 9873 6b65 7463 68e2 8099 2068 6173 206e .sketch... has n │ │ │ │ -000185e0: 6f20 636c 6970 7069 6e67 206f 7065 7261 o clipping opera │ │ │ │ -000185f0: 7469 6f6e 732e 2020 5468 6520 656e 7469 tions. The enti │ │ │ │ -00018600: 7265 0a73 6365 6e65 2069 7320 616c 7761 re.scene is alwa │ │ │ │ -00018610: 7973 2064 7261 776e 2e20 2054 6869 7320 ys drawn. This │ │ │ │ -00018620: 6d65 616e 7320 7468 6174 2077 6865 6e20 means that when │ │ │ │ -00018630: 6120 7065 7273 7065 6374 6976 6520 7472 a perspective tr │ │ │ │ -00018640: 616e 7366 6f72 6d20 6973 0a65 6d70 6c6f ansform is.emplo │ │ │ │ -00018650: 7965 642c 2069 7420 6973 2074 6865 2075 yed, it is the u │ │ │ │ -00018660: 7365 7227 7320 7265 7370 6f6e 7369 6269 ser's responsibi │ │ │ │ -00018670: 6c69 7479 2074 6f20 6d61 6b65 2073 7572 lity to make sur │ │ │ │ -00018680: 6520 7468 6520 656e 7469 7265 2073 6365 e the entire sce │ │ │ │ -00018690: 6e65 0a72 656d 6169 6e73 2069 6e20 6672 ne.remains in fr │ │ │ │ -000186a0: 6f6e 7420 6f66 2074 6865 2076 6965 7765 ont of the viewe │ │ │ │ -000186b0: 722c 2074 6865 2072 6567 696f 6e20 7a3c r, the region z< │ │ │ │ -000186c0: 302e 0a0a 1f0a 4669 6c65 3a20 736b 6574 0.....File: sket │ │ │ │ -000186d0: 6368 2e69 6e66 6f2c 2020 4e6f 6465 3a20 ch.info, Node: │ │ │ │ -000186e0: 4869 6464 656e 2073 7572 6661 6365 2072 Hidden surface r │ │ │ │ -000186f0: 656d 6f76 616c 2c20 2050 7265 763a 2043 emoval, Prev: C │ │ │ │ -00018700: 6c69 7070 696e 672c 2020 5570 3a20 4361 lipping, Up: Ca │ │ │ │ -00018710: 7665 6174 730a 0a34 2e34 2e33 2048 6964 veats..4.4.3 Hid │ │ │ │ -00018720: 6465 6e20 7375 7266 6163 6520 7265 6d6f den surface remo │ │ │ │ -00018730: 7661 6c20 616e 6420 706f 6c79 676f 6e20 val and polygon │ │ │ │ -00018740: 7370 6c69 7474 696e 670a 2d2d 2d2d 2d2d splitting.------ │ │ │ │ +00018000: 2d2d 2d2d 2d2d 2d2d 0a0a e280 9853 6b65 --------.....Ske │ │ │ │ +00018010: 7463 68e2 8099 2063 6174 6368 6573 206d tch... catches m │ │ │ │ +00018020: 616e 7920 6b69 6e64 7320 6f66 2065 7272 any kinds of err │ │ │ │ +00018030: 6f72 732c 2062 7574 206e 6f74 2061 6c6c ors, but not all │ │ │ │ +00018040: 2e20 2046 6f72 2065 7861 6d70 6c65 2c0a . For example,. │ │ │ │ +00018050: 6f70 7469 6f6e 7320 7468 6174 2073 6b65 options that ske │ │ │ │ +00018060: 7463 6820 646f 6573 206e 6f74 2072 6563 tch does not rec │ │ │ │ +00018070: 6f67 6e69 7a65 2c20 6576 656e 2069 6e63 ognize, even inc │ │ │ │ +00018080: 6f72 7265 6374 206f 6e65 732c 2061 7265 orrect ones, are │ │ │ │ +00018090: 2071 7569 6574 6c79 0a63 6f70 6965 6420 quietly.copied │ │ │ │ +000180a0: 746f 20e2 8098 5053 5472 6963 6b73 e280 to ...PSTricks.. │ │ │ │ +000180b0: 9920 636f 6d6d 616e 6473 2069 6e20 7468 . commands in th │ │ │ │ +000180c0: 6520 6f75 7470 7574 2e20 2049 7420 6973 e output. It is │ │ │ │ +000180d0: 2061 6c73 6f20 756e 666f 7274 756e 6174 also unfortunat │ │ │ │ +000180e0: 656c 790a 6561 7379 2074 6f20 7072 6f64 ely.easy to prod │ │ │ │ +000180f0: 7563 6520 e280 9873 6b65 7463 68e2 8099 uce ...sketch... │ │ │ │ +00018100: 2069 6e70 7574 7320 7468 6174 206c 6561 inputs that lea │ │ │ │ +00018110: 6420 746f 206e 6f20 7069 6374 7572 6520 d to no picture │ │ │ │ +00018120: 6174 2061 6c6c 2028 696d 7072 6f70 6572 at all (improper │ │ │ │ +00018130: 0a76 6572 7465 7820 6f72 6465 7269 6e67 .vertex ordering │ │ │ │ +00018140: 2063 6175 7365 7320 6576 6572 7974 6869 causes everythi │ │ │ │ +00018150: 6e67 2074 6f20 6265 2063 756c 6c65 6429 ng to be culled) │ │ │ │ +00018160: 2c20 746f 2070 6963 7475 7265 7320 7468 , to pictures th │ │ │ │ +00018170: 6174 2061 7265 0a74 6f6f 2062 6967 206f at are.too big o │ │ │ │ +00018180: 7220 746f 6f20 736d 616c 6c20 666f 7220 r too small for │ │ │ │ +00018190: e280 9850 5354 7269 636b 73e2 8099 2074 ...PSTricks... t │ │ │ │ +000181a0: 6f20 6472 6177 2028 6475 6520 746f 206c o draw (due to l │ │ │ │ +000181b0: 696d 6974 7320 6f66 2054 6558 206d 6174 imits of TeX mat │ │ │ │ +000181c0: 6829 2c0a 616e 6420 7069 6374 7572 6573 h),.and pictures │ │ │ │ +000181d0: 2074 6861 7420 6c6f 6f6b 206e 6f74 6869 that look nothi │ │ │ │ +000181e0: 6e67 206c 696b 6520 7768 6174 2077 6173 ng like what was │ │ │ │ +000181f0: 2069 6e74 656e 6465 642e 2020 4120 7069 intended. A pi │ │ │ │ +00018200: 6374 7572 6520 7769 7468 0a6f 6e65 206f cture with.one o │ │ │ │ +00018210: 6620 7468 6573 6520 7072 6f62 6c65 6d73 f these problems │ │ │ │ +00018220: 2063 616e 2062 6520 6469 6666 6963 756c can be difficul │ │ │ │ +00018230: 7420 746f 2022 6465 6275 672e 2220 2057 t to "debug." W │ │ │ │ +00018240: 6520 6f66 6665 7220 7468 650a 666f 6c6c e offer the.foll │ │ │ │ +00018250: 6f77 696e 6720 7375 6767 6573 7469 6f6e owing suggestion │ │ │ │ +00018260: 732e 0a20 2020 e280 a220 466f 6c6c 6f77 s.. ... Follow │ │ │ │ +00018270: 2074 6865 2073 7567 6765 7374 6564 2069 the suggested i │ │ │ │ +00018280: 6e63 7265 6d65 6e74 616c 2064 6576 656c ncremental devel │ │ │ │ +00018290: 6f70 6d65 6e74 206d 6574 686f 6420 6465 opment method de │ │ │ │ +000182a0: 7363 7269 6265 6420 696e 0a20 2020 2020 scribed in. │ │ │ │ +000182b0: 2a6e 6f74 6520 4f76 6572 7669 6577 3a3a *note Overview:: │ │ │ │ +000182c0: 2e0a 2020 20e2 80a2 2041 6c77 6179 7320 .. ... Always │ │ │ │ +000182d0: 6d61 696e 7461 696e 206f 6e65 206f 7220 maintain one or │ │ │ │ +000182e0: 7477 6f20 6261 636b 2d76 6572 7369 6f6e two back-version │ │ │ │ +000182f0: 7320 6f66 2061 2064 7261 7769 6e67 2073 s of a drawing s │ │ │ │ +00018300: 6f20 7468 6174 2069 7420 6973 0a20 2020 o that it is. │ │ │ │ +00018310: 2020 6561 7379 2074 6f20 6661 6c6c 2062 easy to fall b │ │ │ │ +00018320: 6163 6b20 746f 2061 206b 6e6f 776e 2d67 ack to a known-g │ │ │ │ +00018330: 6f6f 6420 696e 6372 656d 656e 742e 0a20 ood increment.. │ │ │ │ +00018340: 2020 e280 a220 5768 656e 2075 7369 6e67 ... When using │ │ │ │ +00018350: 20e2 8098 7065 7273 7065 6374 6976 65e2 ...perspective. │ │ │ │ +00018360: 8099 2c20 656e 7375 7265 2061 6c6c 2066 .., ensure all f │ │ │ │ +00018370: 696e 616c 6c79 2074 7261 6e73 666f 726d inally transform │ │ │ │ +00018380: 6564 206f 626a 6563 7473 0a20 2020 2020 ed objects. │ │ │ │ +00018390: 7361 7469 7366 7920 7a3c 3020 616e 642c satisfy z<0 and, │ │ │ │ +000183a0: 2069 6e20 6661 6374 2c20 646f 206e 6f74 in fact, do not │ │ │ │ +000183b0: 2063 6f6d 6520 7665 7279 2063 6c6f 7365 come very close │ │ │ │ +000183c0: 2074 6f20 7468 6520 6f72 6967 696e 2061 to the origin a │ │ │ │ +000183d0: 740a 2020 2020 2061 6c6c 2e0a 2020 20e2 t. all.. . │ │ │ │ +000183e0: 80a2 2054 656d 706f 7261 7269 6c79 2075 .. Temporarily u │ │ │ │ +000183f0: 7365 20e2 8098 6375 6c6c 3d66 616c 7365 se ...cull=false │ │ │ │ +00018400: e280 9920 746f 2073 6565 2077 6865 7265 ... to see where │ │ │ │ +00018410: 2076 6572 7465 7820 6f72 6465 7269 6e67 vertex ordering │ │ │ │ +00018420: 2070 726f 626c 656d 730a 2020 2020 206c problems. l │ │ │ │ +00018430: 6965 2e0a 2020 20e2 80a2 2055 7365 2074 ie.. ... Use t │ │ │ │ +00018440: 656d 706f 7261 7279 2063 6861 6e67 6573 emporary changes │ │ │ │ +00018450: 206f 6620 636f 6c6f 7220 6f66 206f 6e65 of color of one │ │ │ │ +00018460: 206f 7220 6d6f 7265 206f 626a 6563 7473 or more objects │ │ │ │ +00018470: 2074 6f20 656e 7375 7265 0a20 2020 2020 to ensure. │ │ │ │ +00018480: 7468 6174 2079 6f75 7220 756e 6465 7273 that your unders │ │ │ │ +00018490: 7461 6e64 696e 6720 6f66 2074 6865 2073 tanding of the s │ │ │ │ +000184a0: 6365 6e65 2067 656f 6d65 7472 7920 6973 cene geometry is │ │ │ │ +000184b0: 2063 6f72 7265 6374 2e0a 2020 20e2 80a2 correct.. ... │ │ │ │ +000184c0: 2049 6620 e280 9850 5354 7269 636b 73e2 If ...PSTricks. │ │ │ │ +000184d0: 8099 2063 6f6d 706c 6169 6e73 2061 626f .. complains abo │ │ │ │ +000184e0: 7574 2073 6f6d 6574 6869 6e67 2c20 696e ut something, in │ │ │ │ +000184f0: 7370 6563 7420 7468 6520 6f75 7470 7574 spect the output │ │ │ │ +00018500: 0a20 2020 2020 6469 7265 6374 6c79 2066 . directly f │ │ │ │ +00018510: 6f72 2063 6c75 6573 2e0a 0a1f 0a46 696c or clues.....Fil │ │ │ │ +00018520: 653a 2073 6b65 7463 682e 696e 666f 2c20 e: sketch.info, │ │ │ │ +00018530: 204e 6f64 653a 2043 6c69 7070 696e 672c Node: Clipping, │ │ │ │ +00018540: 2020 4e65 7874 3a20 4869 6464 656e 2073 Next: Hidden s │ │ │ │ +00018550: 7572 6661 6365 2072 656d 6f76 616c 2c20 urface removal, │ │ │ │ +00018560: 2050 7265 763a 204c 696d 6974 7320 6f6e Prev: Limits on │ │ │ │ +00018570: 2065 7272 6f72 2064 6574 6563 7469 6f6e error detection │ │ │ │ +00018580: 2c20 2055 703a 2043 6176 6561 7473 0a0a , Up: Caveats.. │ │ │ │ +00018590: 342e 342e 3220 436c 6970 7069 6e67 0a2d 4.4.2 Clipping.- │ │ │ │ +000185a0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a 0a54 -------------..T │ │ │ │ +000185b0: 6865 2063 7572 7265 6e74 2076 6572 7369 he current versi │ │ │ │ +000185c0: 6f6e 206f 6620 e280 9873 6b65 7463 68e2 on of ...sketch. │ │ │ │ +000185d0: 8099 2068 6173 206e 6f20 636c 6970 7069 .. has no clippi │ │ │ │ +000185e0: 6e67 206f 7065 7261 7469 6f6e 732e 2020 ng operations. │ │ │ │ +000185f0: 5468 6520 656e 7469 7265 0a73 6365 6e65 The entire.scene │ │ │ │ +00018600: 2069 7320 616c 7761 7973 2064 7261 776e is always drawn │ │ │ │ +00018610: 2e20 2054 6869 7320 6d65 616e 7320 7468 . This means th │ │ │ │ +00018620: 6174 2077 6865 6e20 6120 7065 7273 7065 at when a perspe │ │ │ │ +00018630: 6374 6976 6520 7472 616e 7366 6f72 6d20 ctive transform │ │ │ │ +00018640: 6973 0a65 6d70 6c6f 7965 642c 2069 7420 is.employed, it │ │ │ │ +00018650: 6973 2074 6865 2075 7365 7227 7320 7265 is the user's re │ │ │ │ +00018660: 7370 6f6e 7369 6269 6c69 7479 2074 6f20 sponsibility to │ │ │ │ +00018670: 6d61 6b65 2073 7572 6520 7468 6520 656e make sure the en │ │ │ │ +00018680: 7469 7265 2073 6365 6e65 0a72 656d 6169 tire scene.remai │ │ │ │ +00018690: 6e73 2069 6e20 6672 6f6e 7420 6f66 2074 ns in front of t │ │ │ │ +000186a0: 6865 2076 6965 7765 722c 2074 6865 2072 he viewer, the r │ │ │ │ +000186b0: 6567 696f 6e20 7a3c 302e 0a0a 1f0a 4669 egion z<0.....Fi │ │ │ │ +000186c0: 6c65 3a20 736b 6574 6368 2e69 6e66 6f2c le: sketch.info, │ │ │ │ +000186d0: 2020 4e6f 6465 3a20 4869 6464 656e 2073 Node: Hidden s │ │ │ │ +000186e0: 7572 6661 6365 2072 656d 6f76 616c 2c20 urface removal, │ │ │ │ +000186f0: 2050 7265 763a 2043 6c69 7070 696e 672c Prev: Clipping, │ │ │ │ +00018700: 2020 5570 3a20 4361 7665 6174 730a 0a34 Up: Caveats..4 │ │ │ │ +00018710: 2e34 2e33 2048 6964 6465 6e20 7375 7266 .4.3 Hidden surf │ │ │ │ +00018720: 6163 6520 7265 6d6f 7661 6c20 616e 6420 ace removal and │ │ │ │ +00018730: 706f 6c79 676f 6e20 7370 6c69 7474 696e polygon splittin │ │ │ │ +00018740: 670a 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d g.-------------- │ │ │ │ 00018750: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ 00018760: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ -00018770: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 0a0a e280 ------------.... │ │ │ │ -00018780: 9853 6b65 7463 68e2 8099 2075 7365 7320 .Sketch... uses │ │ │ │ -00018790: 7468 6520 e280 9c64 6570 7468 2073 6f72 the ...depth sor │ │ │ │ -000187a0: 7420 616c 676f 7269 7468 6de2 809d 2066 t algorithm... f │ │ │ │ -000187b0: 6f72 2068 6964 6465 6e20 7375 7266 6163 or hidden surfac │ │ │ │ -000187c0: 6520 7265 6d6f 7661 6c2e 0a54 6869 7320 e removal..This │ │ │ │ -000187d0: 6973 2061 2076 6572 7920 6f6c 6420 7465 is a very old te │ │ │ │ -000187e0: 6368 6e69 7175 6520 6475 6520 746f 204e chnique due to N │ │ │ │ -000187f0: 6577 656c 6c2e 2831 2920 2049 7420 6973 ewell.(1) It is │ │ │ │ -00018800: 2067 656e 6572 616c 6c79 2072 6567 6172 generally regar │ │ │ │ -00018810: 6465 640a 6173 2074 6f6f 2073 6c6f 7720 ded.as too slow │ │ │ │ -00018820: 666f 7220 7265 616c 2074 696d 6520 6772 for real time gr │ │ │ │ -00018830: 6170 6869 6373 2c20 6275 7420 6974 2069 aphics, but it i │ │ │ │ -00018840: 7320 6964 6561 6c20 666f 7220 6f75 7220 s ideal for our │ │ │ │ -00018850: 7075 7270 6f73 650a 7768 6572 6520 7370 purpose.where sp │ │ │ │ -00018860: 6565 6420 6973 206e 6f74 2076 6572 7920 eed is not very │ │ │ │ -00018870: 696d 706f 7274 616e 742e 2832 290a 0a20 important.(2).. │ │ │ │ -00018880: 2020 5468 6520 6465 7074 6820 736f 7274 The depth sort │ │ │ │ -00018890: 2061 6c67 6f72 6974 686d 206d 6572 656c algorithm merel │ │ │ │ -000188a0: 7920 736f 7274 7320 6f62 6a65 6374 7320 y sorts objects │ │ │ │ -000188b0: 6f6e 2061 206b 6579 206f 6620 696e 6372 on a key of incr │ │ │ │ -000188c0: 6561 7369 6e67 0a7a 2d63 6f6f 7264 696e easing.z-coordin │ │ │ │ -000188d0: 6174 652c 2065 7175 6976 616c 656e 7420 ate, equivalent │ │ │ │ -000188e0: 746f 2064 6563 7265 6173 696e 6720 6465 to decreasing de │ │ │ │ -000188f0: 7074 682e 2020 4f62 6a65 6374 7320 6172 pth. Objects ar │ │ │ │ -00018900: 6520 7468 656e 2064 7261 776e 2069 6e0a e then drawn in. │ │ │ │ -00018910: 7468 6520 736f 7274 6564 2073 6571 7565 the sorted seque │ │ │ │ -00018920: 6e63 6520 736f 2074 6861 7420 7468 6f73 nce so that thos │ │ │ │ -00018930: 6520 6174 2074 6865 2072 6561 7220 6f66 e at the rear of │ │ │ │ -00018940: 2074 6865 2073 6365 6e65 2061 7265 0a6f the scene are.o │ │ │ │ -00018950: 7665 7277 7269 7474 656e 2062 7920 7468 verwritten by th │ │ │ │ -00018960: 6f73 6520 636c 6f73 6572 2074 6f20 7468 ose closer to th │ │ │ │ -00018970: 6520 7669 6577 6572 2e20 2053 696e 6365 e viewer. Since │ │ │ │ -00018980: 2074 6869 7320 6973 2061 6c73 6f20 686f this is also ho │ │ │ │ -00018990: 7720 6f69 6c0a 7061 696e 7465 7273 2070 w oil.painters p │ │ │ │ -000189a0: 7261 6374 6963 6520 7468 6569 7220 6172 ractice their ar │ │ │ │ -000189b0: 742c 2064 6570 7468 2073 6f72 7420 6973 t, depth sort is │ │ │ │ -000189c0: 2073 6f6d 6574 696d 6573 2063 616c 6c65 sometimes calle │ │ │ │ -000189d0: 6420 2274 6865 0a70 6169 6e74 6572 2773 d "the.painter's │ │ │ │ -000189e0: 2061 6c67 6f72 6974 686d 2e22 0a0a 2020 algorithm.".. │ │ │ │ -000189f0: 2049 6e20 736f 6d65 2063 6173 6573 2069 In some cases i │ │ │ │ -00018a00: 7420 6973 2069 6d70 6f73 7369 626c 6520 t is impossible │ │ │ │ -00018a10: 746f 2073 7472 6963 746c 7920 6f72 6465 to strictly orde │ │ │ │ -00018a20: 7220 706f 6c79 676f 6e73 2061 6363 6f72 r polygons accor │ │ │ │ -00018a30: 6469 6e67 0a74 6f20 6465 7074 682e 2020 ding.to depth. │ │ │ │ -00018a40: 4d6f 7265 6f76 6572 2c20 6576 656e 2069 Moreover, even i │ │ │ │ -00018a50: 6620 6120 636f 7272 6563 7420 6465 7074 f a correct dept │ │ │ │ -00018a60: 6820 6f72 6465 7269 6e67 2065 7869 7374 h ordering exist │ │ │ │ -00018a70: 732c 2074 6865 0a63 6f6d 7075 7461 7469 s, the.computati │ │ │ │ -00018a80: 6f6e 206e 6565 6465 6420 746f 2066 696e on needed to fin │ │ │ │ -00018a90: 6420 6974 206d 6179 2062 6520 746f 6f20 d it may be too │ │ │ │ -00018aa0: 636f 6d70 6c65 7820 616e 6420 736c 6f77 complex and slow │ │ │ │ -00018ab0: 2e20 2049 6e20 7468 6573 650a 6361 7365 . In these.case │ │ │ │ -00018ac0: 732c 20e2 8098 736b 6574 6368 e280 9920 s, ...sketch... │ │ │ │ -00018ad0: 7370 6c69 7473 206f 6e65 206f 7220 6d6f splits one or mo │ │ │ │ -00018ae0: 7265 2070 6f6c 7967 6f6e 7320 696e 746f re polygons into │ │ │ │ -00018af0: 2070 6965 6365 732e 2020 5468 650a 6578 pieces. The.ex │ │ │ │ -00018b00: 7065 6374 6174 696f 6e20 6973 2074 6861 pectation is tha │ │ │ │ -00018b10: 7420 7468 6520 6e65 772c 2073 6d61 6c6c t the new, small │ │ │ │ -00018b20: 6572 2070 6f6c 7967 6f6e 7320 7769 6c6c er polygons will │ │ │ │ -00018b30: 2062 6520 7369 6d70 6c65 7220 746f 206f be simpler to o │ │ │ │ -00018b40: 7264 6572 2e0a e280 9853 6b65 7463 68e2 rder.....Sketch. │ │ │ │ -00018b50: 8099 2075 7365 7320 6120 4253 5020 2862 .. uses a BSP (b │ │ │ │ -00018b60: 696e 6172 7920 7370 6163 6520 7061 7274 inary space part │ │ │ │ -00018b70: 6974 696f 6e29 2074 6f20 6861 6e64 6c65 ition) to handle │ │ │ │ -00018b80: 2074 6865 2073 706c 6974 7469 6e67 0a6f the splitting.o │ │ │ │ -00018b90: 7065 7261 7469 6f6e 2e0a 0a2a 204d 656e peration...* Men │ │ │ │ -00018ba0: 753a 0a0a 2a20 5374 6174 6973 7469 6373 u:..* Statistics │ │ │ │ -00018bb0: 3a3a 2020 2020 2020 2020 2020 2020 2020 :: │ │ │ │ -00018bc0: 2020 2020 5065 7266 6f72 6d61 6e63 6520 Performance │ │ │ │ -00018bd0: 6e75 6d62 6572 7320 6f6e 2064 6570 7468 numbers on depth │ │ │ │ -00018be0: 2073 6f72 742e 0a2a 2042 7567 7320 616e sort..* Bugs an │ │ │ │ -00018bf0: 6420 616e 6f6d 616c 6965 733a 3a20 2020 d anomalies:: │ │ │ │ -00018c00: 2020 2020 2020 2049 6d70 6572 6665 6374 Imperfect │ │ │ │ -00018c10: 696f 6e73 2069 6e20 7468 6973 2069 6d70 ions in this imp │ │ │ │ -00018c20: 6c65 6d65 6e74 6174 696f 6e2e 0a0a 2020 lementation... │ │ │ │ -00018c30: 202d 2d2d 2d2d 2d2d 2d2d 2d20 466f 6f74 ---------- Foot │ │ │ │ -00018c40: 6e6f 7465 7320 2d2d 2d2d 2d2d 2d2d 2d2d notes ---------- │ │ │ │ -00018c50: 0a0a 2020 2028 3129 204e 6577 656c 6c2c .. (1) Newell, │ │ │ │ -00018c60: 204d 2e45 2e2c 2052 2e47 2e20 4e65 7765 M.E., R.G. Newe │ │ │ │ -00018c70: 6c6c 2c20 616e 6420 542e 4c2e 2053 616e ll, and T.L. San │ │ │ │ -00018c80: 6368 612c 2041 2073 6f6c 7574 696f 6e20 cha, A solution │ │ │ │ -00018c90: 746f 2074 6865 0a68 6964 6465 6e20 7375 to the.hidden su │ │ │ │ -00018ca0: 7266 6163 6520 7072 6f62 6c65 6d2e 2020 rface problem. │ │ │ │ -00018cb0: 5072 6f63 6565 6469 6e67 7320 6f66 2074 Proceedings of t │ │ │ │ -00018cc0: 6865 2041 434d 2061 6e6e 7561 6c20 636f he ACM annual co │ │ │ │ -00018cd0: 6e66 6572 656e 6365 202d 0a56 6f6c 756d nference -.Volum │ │ │ │ -00018ce0: 6520 312c 2070 6167 6520 3434 332d 3435 e 1, page 443-45 │ │ │ │ -00018cf0: 302c 2041 434d 2050 7265 7373 2c20 3139 0, ACM Press, 19 │ │ │ │ -00018d00: 3732 2e0a 0a20 2020 2832 2920 5765 2068 72... (2) We h │ │ │ │ -00018d10: 6176 6520 7275 6e20 e280 9873 6b65 7463 ave run ...sketc │ │ │ │ -00018d20: 68e2 8099 206f 6e20 7468 6520 6661 6d6f h... on the famo │ │ │ │ -00018d30: 7573 2053 7461 6e66 6f72 6420 4275 6e6e us Stanford Bunn │ │ │ │ -00018d40: 792c 2077 6869 6368 2063 6f6e 7369 7374 y, which consist │ │ │ │ -00018d50: 730a 6f66 206e 6561 726c 7920 3730 2c30 s.of nearly 70,0 │ │ │ │ -00018d60: 3030 2074 7269 616e 676c 6573 2e20 2052 00 triangles. R │ │ │ │ -00018d70: 756e 2074 696d 6520 7761 7320 6162 6f75 un time was abou │ │ │ │ -00018d80: 7420 3620 7365 636f 6e64 732e 2020 4d6f t 6 seconds. Mo │ │ │ │ -00018d90: 7374 206f 6620 7468 6973 0a77 6173 2073 st of this.was s │ │ │ │ -00018da0: 7065 6e74 2077 7269 7469 6e67 2074 6865 pent writing the │ │ │ │ -00018db0: 206f 7574 7075 7420 6669 6c65 2072 6174 output file rat │ │ │ │ -00018dc0: 6865 7220 7468 616e 2069 6e20 7468 6520 her than in the │ │ │ │ -00018dd0: 6869 6464 656e 2073 7572 6661 6365 0a61 hidden surface.a │ │ │ │ -00018de0: 6c67 6f72 6974 686d 2e20 204c 6154 6558 lgorithm. LaTeX │ │ │ │ -00018df0: 2074 6f6f 6b20 6d75 6368 206c 6f6e 6765 took much longe │ │ │ │ -00018e00: 7220 746f 2070 726f 6365 7373 2074 6865 r to process the │ │ │ │ -00018e10: 2072 6573 756c 7469 6e67 20e2 8098 5053 resulting ...PS │ │ │ │ -00018e20: 5472 6963 6b73 e280 990a 636f 6465 2e20 Tricks....code. │ │ │ │ -00018e30: 2054 6865 206f 6276 696f 7573 2063 6f6e The obvious con │ │ │ │ -00018e40: 636c 7573 696f 6e20 6973 2074 6861 7420 clusion is that │ │ │ │ -00018e50: 7468 6520 7370 6565 6420 6f66 2074 6865 the speed of the │ │ │ │ -00018e60: 2064 6570 7468 2073 6f72 740a 616c 676f depth sort.algo │ │ │ │ -00018e70: 7269 7468 6d20 6973 206e 6f74 2061 2077 rithm is not a w │ │ │ │ -00018e80: 6f72 7279 2e0a 0a1f 0a46 696c 653a 2073 orry.....File: s │ │ │ │ -00018e90: 6b65 7463 682e 696e 666f 2c20 204e 6f64 ketch.info, Nod │ │ │ │ -00018ea0: 653a 2053 7461 7469 7374 6963 732c 2020 e: Statistics, │ │ │ │ -00018eb0: 4e65 7874 3a20 4275 6773 2061 6e64 2061 Next: Bugs and a │ │ │ │ -00018ec0: 6e6f 6d61 6c69 6573 2c20 2050 7265 763a nomalies, Prev: │ │ │ │ -00018ed0: 2048 6964 6465 6e20 7375 7266 6163 6520 Hidden surface │ │ │ │ -00018ee0: 7265 6d6f 7661 6c2c 2020 5570 3a20 4869 removal, Up: Hi │ │ │ │ -00018ef0: 6464 656e 2073 7572 6661 6365 2072 656d dden surface rem │ │ │ │ -00018f00: 6f76 616c 0a0a 342e 342e 332e 3120 5374 oval..4.4.3.1 St │ │ │ │ -00018f10: 6174 6973 7469 6373 0a2e 2e2e 2e2e 2e2e atistics........ │ │ │ │ -00018f20: 2e2e 2e2e 2e2e 2e2e 2e2e 2e0a 0a46 6f72 .............For │ │ │ │ -00018f30: 2074 6865 2063 7572 696f 7573 2c20 e280 the curious, .. │ │ │ │ -00018f40: 9873 6b65 7463 68e2 8099 2077 7269 7465 .sketch... write │ │ │ │ -00018f50: 7320 6f6e 6520 6c69 6e65 206f 6620 6465 s one line of de │ │ │ │ -00018f60: 7074 6820 736f 7274 2073 7461 7469 7374 pth sort statist │ │ │ │ -00018f70: 6963 732e 0a48 6572 6520 6973 2061 6e20 ics..Here is an │ │ │ │ -00018f80: 6578 616d 706c 6520 666f 7220 6120 6c61 example for a la │ │ │ │ -00018f90: 7267 6520 636f 6c6c 6563 7469 6f6e 206f rge collection o │ │ │ │ -00018fa0: 6620 7472 6961 6e67 6c65 732e 0a20 2072 f triangles.. r │ │ │ │ -00018fb0: 656d 6172 6b2c 206e 6f64 653d 3334 3832 emark, node=3482 │ │ │ │ -00018fc0: 3420 7072 6f62 653d 3538 312e 3920 7377 4 probe=581.9 sw │ │ │ │ -00018fd0: 6170 3d35 2073 706c 6974 3d32 2028 696e ap=5 split=2 (in │ │ │ │ -00018fe0: 3d34 206f 7574 3d36 2920 6f6c 733d 3234 =4 out=6) ols=24 │ │ │ │ -00018ff0: 3835 312f 300a 4974 206d 6561 6e73 2074 851/0.It means t │ │ │ │ -00019000: 6861 7420 3334 2c38 3234 206f 626a 6563 hat 34,824 objec │ │ │ │ -00019010: 7473 2077 6572 6520 6465 7074 6820 736f ts were depth so │ │ │ │ -00019020: 7274 6564 2061 6674 6572 2063 756c 6c69 rted after culli │ │ │ │ -00019030: 6e67 2e20 2046 6f72 2065 6163 682c 0a61 ng. For each,.a │ │ │ │ -00019040: 6e20 6176 6572 6167 6520 6f66 2035 3831 n average of 581 │ │ │ │ -00019050: 2e39 206f 7468 6572 7320 6861 6420 746f .9 others had to │ │ │ │ -00019060: 2062 6520 6368 6563 6b65 6420 746f 2065 be checked to e │ │ │ │ -00019070: 6e73 7572 6520 7468 6174 2074 6865 2069 nsure that the i │ │ │ │ -00019080: 6e69 7469 616c 2c0a 6170 7072 6f78 696d nitial,.approxim │ │ │ │ -00019090: 6174 6520 6f72 6465 7269 6e67 2077 6173 ate ordering was │ │ │ │ -000190a0: 2063 6f72 7265 6374 2e20 2041 6d6f 6e67 correct. Among │ │ │ │ -000190b0: 2061 6c6c 2074 6865 7365 2063 6865 636b all these check │ │ │ │ -000190c0: 732c 206f 6e6c 7920 350a 7265 7375 6c74 s, only 5.result │ │ │ │ -000190d0: 6564 2069 6e20 7377 6170 7320 746f 2072 ed in swaps to r │ │ │ │ -000190e0: 656f 7264 6572 2074 6865 2069 6e69 7469 eorder the initi │ │ │ │ -000190f0: 616c 2073 6f72 742e 2020 496e 2074 776f al sort. In two │ │ │ │ -00019100: 2063 6173 6573 2c20 6120 636f 7272 6563 cases, a correc │ │ │ │ -00019110: 740a 6f72 6465 7269 6e67 2063 6f75 6c64 t.ordering could │ │ │ │ -00019120: 206e 6f74 2062 6520 6465 7465 726d 696e not be determin │ │ │ │ -00019130: 6564 2c20 736f 2062 696e 6172 7920 7370 ed, so binary sp │ │ │ │ -00019140: 6163 6520 7061 7274 6974 696f 6e73 2077 ace partitions w │ │ │ │ -00019150: 6572 650a 636f 6e73 7472 7563 7465 6420 ere.constructed │ │ │ │ -00019160: 666f 7220 7370 6c69 7474 696e 672e 2020 for splitting. │ │ │ │ -00019170: 4120 746f 7461 6c20 6f66 2034 206f 626a A total of 4 obj │ │ │ │ -00019180: 6563 7473 2028 7472 6961 6e67 6c65 7320 ects (triangles │ │ │ │ -00019190: 696e 2074 6869 730a 6361 7365 2920 7765 in this.case) we │ │ │ │ -000191a0: 7265 2069 6e73 6572 7465 6420 696e 2074 re inserted in t │ │ │ │ -000191b0: 6865 2070 6172 7469 7469 6f6e 732c 2061 he partitions, a │ │ │ │ -000191c0: 6e64 2036 2070 6f6c 7967 6f6e 7320 7765 nd 6 polygons we │ │ │ │ -000191d0: 7265 2070 726f 6475 6365 642e 0a46 696e re produced..Fin │ │ │ │ -000191e0: 616c 6c79 2c20 3234 2c38 3531 2022 6c61 ally, 24,851 "la │ │ │ │ -000191f0: 7374 2072 6573 6f72 7422 2070 6f6c 7967 st resort" polyg │ │ │ │ -00019200: 6f6e 206f 7665 726c 6170 2063 6865 636b on overlap check │ │ │ │ -00019210: 7320 7765 7265 2070 6572 666f 726d 6564 s were performed │ │ │ │ -00019220: 0a61 6674 6572 2073 696d 706c 6572 2c20 .after simpler, │ │ │ │ -00019230: 6661 7374 6572 2063 6865 636b 7320 6661 faster checks fa │ │ │ │ -00019240: 696c 6564 2074 6f20 7969 656c 6420 636f iled to yield co │ │ │ │ -00019250: 6e63 6c75 7369 7665 2072 6573 756c 7473 nclusive results │ │ │ │ -00019260: 2e20 2054 6865 0a66 696e 616c 202f 3020 . The.final /0 │ │ │ │ -00019270: 6973 2066 6f72 206c 696e 652d 706f 6c79 is for line-poly │ │ │ │ -00019280: 676f 6e20 6f76 6572 6c61 7020 6368 6563 gon overlap chec │ │ │ │ -00019290: 6b73 2e20 2046 6f72 2063 6f6d 7061 7269 ks. For compari │ │ │ │ -000192a0: 736f 6e2c 2074 6865 0a73 7461 7469 7374 son, the.statist │ │ │ │ -000192b0: 6963 7320 666f 7220 7468 6520 6c61 7374 ics for the last │ │ │ │ -000192c0: 2066 6967 7572 6520 696e 202a 6e6f 7465 figure in *note │ │ │ │ -000192d0: 204f 7665 7276 6965 773a 3a20 666f 6c6c Overview:: foll │ │ │ │ -000192e0: 6f77 2e0a 2020 7265 6d61 726b 2c20 6e6f ow.. remark, no │ │ │ │ -000192f0: 6465 3d32 3720 7072 6f62 653d 3134 2e36 de=27 probe=14.6 │ │ │ │ -00019300: 2073 7761 703d 3336 2073 706c 6974 3d31 swap=36 split=1 │ │ │ │ -00019310: 3520 2869 6e3d 3330 206f 7574 3d34 3529 5 (in=30 out=45) │ │ │ │ -00019320: 206f 6c73 3d30 2f36 390a 4e6f 7465 2074 ols=0/69.Note t │ │ │ │ -00019330: 6861 7420 7468 6572 6520 7761 7320 7072 hat there was pr │ │ │ │ -00019340: 6f70 6f72 7469 6f6e 616c 6c79 206d 7563 oportionally muc │ │ │ │ -00019350: 6820 6d6f 7265 2073 7761 7070 696e 6720 h more swapping │ │ │ │ -00019360: 616e 6420 7370 6c69 7474 696e 670a 6163 and splitting.ac │ │ │ │ -00019370: 7469 7669 7479 2069 6e20 7468 6973 2068 tivity in this h │ │ │ │ -00019380: 6967 686c 7920 636f 6e6e 6563 7465 6420 ighly connected │ │ │ │ -00019390: 7363 656e 652e 0a0a 1f0a 4669 6c65 3a20 scene.....File: │ │ │ │ -000193a0: 736b 6574 6368 2e69 6e66 6f2c 2020 4e6f sketch.info, No │ │ │ │ -000193b0: 6465 3a20 4275 6773 2061 6e64 2061 6e6f de: Bugs and ano │ │ │ │ -000193c0: 6d61 6c69 6573 2c20 2050 7265 763a 2053 malies, Prev: S │ │ │ │ -000193d0: 7461 7469 7374 6963 732c 2020 5570 3a20 tatistics, Up: │ │ │ │ -000193e0: 4869 6464 656e 2073 7572 6661 6365 2072 Hidden surface r │ │ │ │ -000193f0: 656d 6f76 616c 0a0a 342e 342e 332e 3220 emoval..4.4.3.2 │ │ │ │ -00019400: 4275 6773 2061 6e64 2061 6e6f 6d61 6c69 Bugs and anomali │ │ │ │ -00019410: 6573 0a2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e es.............. │ │ │ │ -00019420: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e0a 0a50 ...............P │ │ │ │ -00019430: 6f6c 7967 6f6e 2061 6e64 206c 696e 6520 olygon and line │ │ │ │ -00019440: 7370 6c69 7474 696e 6720 6361 6e20 626f splitting can bo │ │ │ │ -00019450: 7468 2063 6175 7365 2061 6e6f 6d61 6c69 th cause anomali │ │ │ │ -00019460: 6573 2069 6e20 7468 6520 6f75 7470 7574 es in the output │ │ │ │ -00019470: 2e0a e280 9850 5354 7269 636b 73e2 8099 .....PSTricks... │ │ │ │ -00019480: 2064 6173 6820 7061 7474 6572 6e73 2c20 dash patterns, │ │ │ │ -00019490: 7370 6563 6966 6965 6420 7769 7468 20e2 specified with . │ │ │ │ -000194a0: 8098 6c69 6e65 7374 796c 653d 6461 7368 ..linestyle=dash │ │ │ │ -000194b0: 6564 e280 992c 2063 616e 2062 650a 6469 ed..., can be.di │ │ │ │ -000194c0: 7372 7570 7465 6420 6279 2073 706c 6974 srupted by split │ │ │ │ -000194d0: 7469 6e67 2e20 2054 6869 7320 6f63 6375 ting. This occu │ │ │ │ -000194e0: 7273 2077 6865 6e20 7468 6520 6465 7074 rs when the dept │ │ │ │ -000194f0: 6820 736f 7274 2067 6976 6573 2075 7020 h sort gives up │ │ │ │ -00019500: 746f 6f0a 6561 726c 7920 616e 6420 7370 too.early and sp │ │ │ │ -00019510: 6c69 7473 2061 206c 696e 6520 7768 6572 lits a line wher │ │ │ │ -00019520: 6520 6974 2069 7320 6e6f 7420 7265 616c e it is not real │ │ │ │ -00019530: 6c79 206e 6563 6573 7361 7279 2e20 2041 ly necessary. A │ │ │ │ -00019540: 2077 6f72 6b61 726f 756e 640a 6973 2074 workaround.is t │ │ │ │ -00019550: 6f20 7573 6520 6772 6179 206f 7220 6669 o use gray or fi │ │ │ │ -00019560: 6e65 6c79 2064 6f74 7465 6420 6c69 6e65 nely dotted line │ │ │ │ -00019570: 7320 696e 7374 6561 642e 2020 4966 2079 s instead. If y │ │ │ │ -00019580: 6f75 7220 6472 6177 696e 6720 6973 0a73 our drawing is.s │ │ │ │ -00019590: 6d61 6c6c 2c20 796f 7520 6361 6e20 616c mall, you can al │ │ │ │ -000195a0: 736f 2065 6469 7420 7468 6520 e280 9873 so edit the ...s │ │ │ │ -000195b0: 6b65 7463 68e2 8099 206f 7574 7075 7420 ketch... output │ │ │ │ -000195c0: 6279 2068 616e 6420 746f 206d 6572 6765 by hand to merge │ │ │ │ -000195d0: 2074 6865 2070 6965 6365 730a 6f66 2074 the pieces.of t │ │ │ │ -000195e0: 6865 206f 6666 656e 6469 6e67 206c 696e he offending lin │ │ │ │ -000195f0: 652e 0a0a 2020 2041 6e6f 7468 6572 2061 e... Another a │ │ │ │ -00019600: 6e6f 6d61 6c79 2069 7320 7469 6e79 2028 nomaly is tiny ( │ │ │ │ -00019610: 6f72 2069 6e20 6465 6765 6e65 7261 7465 or in degenerate │ │ │ │ -00019620: 2063 6173 6573 206e 6f74 2d73 6f2d 7469 cases not-so-ti │ │ │ │ -00019630: 6e79 2920 6e6f 7463 6865 730a 696e 2074 ny) notches.in t │ │ │ │ -00019640: 6865 206c 696e 6573 2074 6861 7420 626f he lines that bo │ │ │ │ -00019650: 7264 6572 2073 706c 6974 2070 6f6c 7967 rder split polyg │ │ │ │ -00019660: 6f6e 732e 2020 5468 6573 6520 6465 7269 ons. These deri │ │ │ │ -00019670: 7665 2066 726f 6d20 7468 6520 7761 7920 ve from the way │ │ │ │ -00019680: 6561 6368 0a70 6f6c 7967 6f6e 2069 7320 each.polygon is │ │ │ │ -00019690: 7061 696e 7465 643a 2066 6972 7374 2c20 painted: first, │ │ │ │ -000196a0: 616c 6c20 7069 7865 6c73 2077 6974 6869 all pixels withi │ │ │ │ -000196b0: 6e20 7468 6520 626f 756e 6461 7279 2061 n the boundary a │ │ │ │ -000196c0: 7265 20e2 809c 6669 6c6c 6564 e280 9d0a re ...filled.... │ │ │ │ -000196d0: 7769 7468 2063 6f6c 6f72 2028 7065 7268 with color (perh │ │ │ │ -000196e0: 6170 7320 7768 6974 6529 2c20 7468 656e aps white), then │ │ │ │ -000196f0: 2074 6865 2073 616d 6520 626f 756e 6461 the same bounda │ │ │ │ -00019700: 7279 2069 7320 e280 9c73 7472 6f6b 6564 ry is ...stroked │ │ │ │ -00019710: e280 9d20 2861 0a50 6f73 7473 6372 6970 ... (a.Postscrip │ │ │ │ -00019720: 7420 7465 726d 2920 7769 7468 2061 206c t term) with a l │ │ │ │ -00019730: 696e 652e 2020 5468 6520 7265 7375 6c74 ine. The result │ │ │ │ -00019740: 2069 7320 7468 6174 2068 616c 6620 7468 is that half th │ │ │ │ -00019750: 6520 6c69 6e65 206c 6965 730a 696e 7369 e line lies.insi │ │ │ │ -00019760: 6465 2074 6865 2062 6f75 6e64 6172 7920 de the boundary │ │ │ │ -00019770: 616e 6420 6861 6c66 206f 7574 7369 6465 and half outside │ │ │ │ -00019780: 2c20 7768 696c 6520 7468 6520 5061 696e , while the Pain │ │ │ │ -00019790: 7465 7227 7320 616c 676f 7269 7468 6d0a ter's algorithm. │ │ │ │ -000197a0: 6173 7375 6d65 7320 7468 6520 706f 6c79 assumes the poly │ │ │ │ -000197b0: 676f 6e20 6c69 6573 2065 6e74 6972 656c gon lies entirel │ │ │ │ -000197c0: 7920 7769 7468 696e 2069 7473 2062 6f75 y within its bou │ │ │ │ -000197d0: 6e64 6172 792e 2020 5468 6520 6e6f 7463 ndary. The notc │ │ │ │ -000197e0: 6865 7320 6172 650a 6475 6520 746f 206f hes are.due to o │ │ │ │ -000197f0: 6e65 2070 6f6c 7967 6f6e 2066 696c 6c20 ne polygon fill │ │ │ │ -00019800: 6f70 6572 6174 696f 6e20 6f76 6572 7772 operation overwr │ │ │ │ -00019810: 6974 696e 6720 7468 6520 616c 7265 6164 iting the alread │ │ │ │ -00019820: 792d 6472 6177 6e20 696e 7369 6465 0a6f y-drawn inside.o │ │ │ │ -00019830: 6620 7468 6520 626f 7264 6572 206f 6620 f the border of │ │ │ │ -00019840: 616e 6f74 6865 7220 706f 6c79 676f 6e2e another polygon. │ │ │ │ -00019850: 2831 2920 204f 6e65 2077 6f72 6b61 726f (1) One workaro │ │ │ │ -00019860: 756e 6420 6973 2074 6f20 6d61 6b65 2062 und is to make b │ │ │ │ -00019870: 6f72 6465 720a 6c69 6e65 7320 7665 7279 order.lines very │ │ │ │ -00019880: 2074 6869 6e2e 2020 496e 2066 6163 7420 thin. In fact │ │ │ │ -00019890: e280 986c 696e 6577 6964 7468 3d30 7074 ...linewidth=0pt │ │ │ │ -000198a0: e280 9920 6973 2067 7561 7261 6e74 6565 ... is guarantee │ │ │ │ -000198b0: 6420 746f 2065 6c69 6d69 6e61 7465 0a74 d to eliminate.t │ │ │ │ -000198c0: 6869 7320 7072 6f62 6c65 6d2c 2074 686f his problem, tho │ │ │ │ -000198d0: 7567 6820 7468 6973 2072 6573 756c 7473 ugh this results │ │ │ │ -000198e0: 2069 6e20 7468 6520 7468 696e 6e65 7374 in the thinnest │ │ │ │ -000198f0: 206c 696e 6520 796f 7572 206f 7574 7075 line your outpu │ │ │ │ -00019900: 740a 6465 7669 6365 2063 616e 2064 7261 t.device can dra │ │ │ │ -00019910: 772c 2077 6869 6368 2069 7320 7573 7561 w, which is usua │ │ │ │ -00019920: 6c6c 7920 746f 6f20 7468 696e 2e20 2059 lly too thin. Y │ │ │ │ -00019930: 6f75 206d 6967 6874 2067 6574 206c 7563 ou might get luc │ │ │ │ -00019940: 6b79 2062 790a 6d65 7265 6c79 2072 656f ky by.merely reo │ │ │ │ -00019950: 7264 6572 696e 6720 7468 696e 6773 2069 rdering things i │ │ │ │ -00019960: 6e20 7468 6520 696e 7075 7420 6669 6c65 n the input file │ │ │ │ -00019970: 2c20 7768 6963 6820 6973 206c 696b 656c , which is likel │ │ │ │ -00019980: 7920 746f 206d 6f76 6520 7468 650a 7370 y to move the.sp │ │ │ │ -00019990: 6c69 7473 2074 6f20 6469 6666 6572 656e lits to differen │ │ │ │ -000199a0: 7420 706c 6163 6573 2e20 2054 6865 206f t places. The o │ │ │ │ -000199b0: 6e6c 7920 7375 7265 2d66 6972 6520 736f nly sure-fire so │ │ │ │ -000199c0: 6c75 7469 6f6e 2069 7320 7072 6574 7479 lution is pretty │ │ │ │ -000199d0: 0a74 6572 7269 626c 653a 2063 7573 746f .terrible: custo │ │ │ │ -000199e0: 6d20 6669 7420 e280 9873 7065 6369 616c m fit ...special │ │ │ │ -000199f0: e280 9920 6f76 6572 6c61 7920 6c69 6e65 ... overlay line │ │ │ │ -00019a00: 7320 2877 6974 6820 e280 985c 7073 6c69 s (with ...\psli │ │ │ │ -00019a10: 6e65 e280 9929 2074 6f20 636f 7665 720a ne...) to cover. │ │ │ │ -00019a20: 7468 6520 6e6f 7463 6865 732e 0a0a 2020 the notches... │ │ │ │ -00019a30: 2050 6f6c 7967 6f6e 2073 706c 6974 7469 Polygon splitti │ │ │ │ -00019a40: 6e67 2061 6c73 6f20 6272 6561 6b73 20e2 ng also breaks . │ │ │ │ -00019a50: 8098 5053 5472 6963 6b73 e280 9920 6861 ..PSTricks... ha │ │ │ │ -00019a60: 7463 6820 7061 7474 6572 6e73 2e20 2054 tch patterns. T │ │ │ │ -00019a70: 6865 206f 6e6c 790a 6b6e 6f77 6e20 776f he only.known wo │ │ │ │ -00019a80: 726b 6172 6f75 6e64 2069 7320 746f 2073 rkaround is to s │ │ │ │ -00019a90: 7562 7374 6974 7574 6520 6120 736f 6c69 ubstitute a soli │ │ │ │ -00019aa0: 6420 6669 6c6c 2066 6f72 2074 6865 2068 d fill for the h │ │ │ │ -00019ab0: 6174 6368 2e0a 0a20 2020 2d2d 2d2d 2d2d atch... ------ │ │ │ │ -00019ac0: 2d2d 2d2d 2046 6f6f 746e 6f74 6573 202d ---- Footnotes - │ │ │ │ -00019ad0: 2d2d 2d2d 2d2d 2d2d 2d0a 0a20 2020 2831 ---------.. (1 │ │ │ │ -00019ae0: 2920 4920 6b6e 6f77 2068 6f77 2074 6f20 ) I know how to │ │ │ │ -00019af0: 6669 7820 7468 6973 2070 726f 626c 656d fix this problem │ │ │ │ -00019b00: 2c20 6275 7420 4920 646f 6e27 7420 6c69 , but I don't li │ │ │ │ -00019b10: 6b65 206d 7920 736f 6c75 7469 6f6e 2c20 ke my solution, │ │ │ │ -00019b20: 616e 640a 4927 6d20 696e 7465 7265 7374 and.I'm interest │ │ │ │ -00019b30: 6564 2069 6e20 796f 7572 732e 0a0a 1f0a ed in yours..... │ │ │ │ -00019b40: 4669 6c65 3a20 736b 6574 6368 2e69 6e66 File: sketch.inf │ │ │ │ -00019b50: 6f2c 2020 4e6f 6465 3a20 436f 6d6d 616e o, Node: Comman │ │ │ │ -00019b60: 6420 6c69 6e65 2c20 204e 6578 743a 2049 d line, Next: I │ │ │ │ -00019b70: 6e73 7461 6c6c 696e 6720 736b 6574 6368 nstalling sketch │ │ │ │ -00019b80: 2c20 2050 7265 763a 2042 7569 6c64 696e , Prev: Buildin │ │ │ │ -00019b90: 6720 6120 6472 6177 696e 672c 2020 5570 g a drawing, Up │ │ │ │ -00019ba0: 3a20 546f 700a 0a35 2043 6f6d 6d61 6e64 : Top..5 Command │ │ │ │ -00019bb0: 206c 696e 650a 2a2a 2a2a 2a2a 2a2a 2a2a line.********** │ │ │ │ -00019bc0: 2a2a 2a2a 0a0a 2a53 796e 6f70 7369 733a ****..*Synopsis: │ │ │ │ -00019bd0: 2a0a 2020 2020 2073 6b65 7463 6820 5b2d *. sketch [- │ │ │ │ -00019be0: 685d 5b2d 5620 782e 795d 5b2d 765d 5b2d h][-V x.y][-v][- │ │ │ │ -00019bf0: 625d 5b2d 645d 5b74 2064 6f63 746d 705d b][-d][t doctmp] │ │ │ │ -00019c00: 5b2d 545b 757c 655d 5b70 5b50 7c54 5d5b [-T[u|e][p[P|T][ │ │ │ │ -00019c10: 4c7c 435d 5d5d 5b2d 6f20 6f75 7470 7574 L|C]]][-o output │ │ │ │ -00019c20: 2e74 6578 5d0a 2020 2020 2020 205b 2d44 .tex]. [-D │ │ │ │ -00019c30: 2054 4147 202e 2e2e 5d20 696e 7075 7431 TAG ...] input1 │ │ │ │ -00019c40: 2e73 6b20 5b2d 5520 5441 4720 2e2e 2e5d .sk [-U TAG ...] │ │ │ │ -00019c50: 2069 6e70 7574 322e 736b 202e 2e2e 0a0a input2.sk ..... │ │ │ │ -00019c60: 2a44 6573 6372 6970 7469 6f6e 2a20 5072 *Description* Pr │ │ │ │ -00019c70: 6f63 6573 7365 7320 7468 6520 e280 9873 ocesses the ...s │ │ │ │ -00019c80: 6b65 7463 68e2 8099 2069 6e70 7574 2066 ketch... input f │ │ │ │ -00019c90: 696c 6573 2069 6e20 6f72 6465 7220 746f iles in order to │ │ │ │ -00019ca0: 2070 726f 6475 6365 0ae2 8098 5053 5472 produce....PSTr │ │ │ │ -00019cb0: 6963 6b73 e280 9920 6f75 7470 7574 2063 icks... output c │ │ │ │ -00019cc0: 6f64 6520 7375 6974 6162 6c65 2066 6f72 ode suitable for │ │ │ │ -00019cd0: 2069 6e63 6c75 7369 6f6e 2069 6e20 6120 inclusion in a │ │ │ │ -00019ce0: 5465 5820 6f72 204c 6154 6558 0a64 6f63 TeX or LaTeX.doc │ │ │ │ -00019cf0: 756d 656e 742e 0a0a 2a4f 7074 696f 6e73 ument...*Options │ │ │ │ -00019d00: 3a2a 0ae2 8098 2d68 e280 990a 2020 2020 :*....-h.... │ │ │ │ -00019d10: 2050 7269 6e74 2061 2073 686f 7274 2063 Print a short c │ │ │ │ -00019d20: 6174 616c 6f67 206f 6620 6f70 7469 6f6e atalog of option │ │ │ │ -00019d30: 732e 0ae2 8098 2d56 e280 990a 2020 2020 s.....-V.... │ │ │ │ -00019d40: 2053 6574 2074 6865 20e2 8098 5053 5472 Set the ...PSTr │ │ │ │ -00019d50: 6963 6b73 e280 9920 7665 7273 696f 6e20 icks... version │ │ │ │ -00019d60: 6173 7375 6d65 6420 666f 7220 6f75 7470 assumed for outp │ │ │ │ -00019d70: 7574 2070 7572 706f 7365 7320 746f 20e2 ut purposes to . │ │ │ │ -00019d80: 8098 782e 79e2 8099 2c0a 2020 2020 2066 ..x.y...,. f │ │ │ │ -00019d90: 6f72 2065 7861 6d70 6c65 2031 2e31 392e or example 1.19. │ │ │ │ -00019da0: 2020 5573 7561 6c6c 7920 6e65 6564 6564 Usually needed │ │ │ │ -00019db0: 206f 6e6c 7920 6966 2079 6f75 7220 e280 only if your .. │ │ │ │ -00019dc0: 9850 5354 7269 636b 73e2 8099 2069 7320 .PSTricks... is │ │ │ │ -00019dd0: 6f6c 640a 2020 2020 2063 6f6d 7061 7265 old. compare │ │ │ │ -00019de0: 6420 746f 2079 6f75 7220 e280 9873 6b65 d to your ...ske │ │ │ │ -00019df0: 7463 68e2 8099 2e20 2055 7365 20e2 8098 tch.... Use ... │ │ │ │ -00019e00: 2d76 e280 9920 746f 2073 6565 2077 6861 -v... to see wha │ │ │ │ -00019e10: 7420 e280 9873 6b65 7463 68e2 8099 2061 t ...sketch... a │ │ │ │ -00019e20: 7373 756d 6573 0a20 2020 2020 6279 2064 ssumes. by d │ │ │ │ -00019e30: 6566 6175 6c74 2e0a e280 982d 76e2 8099 efault.....-v... │ │ │ │ -00019e40: 0a20 2020 2020 5072 696e 7420 7665 7273 . Print vers │ │ │ │ -00019e50: 696f 6e20 696e 666f 726d 6174 696f 6e20 ion information │ │ │ │ -00019e60: 746f 2073 7461 6e64 6172 6420 6f75 7470 to standard outp │ │ │ │ -00019e70: 7574 2c20 696e 636c 7564 696e 6720 7468 ut, including th │ │ │ │ -00019e80: 6520 7665 7273 696f 6e0a 2020 2020 206f e version. o │ │ │ │ -00019e90: 6620 e280 9850 5354 7269 636b 73e2 8099 f ...PSTricks... │ │ │ │ -00019ea0: 2061 7373 756d 6564 2066 6f72 206f 7574 assumed for out │ │ │ │ -00019eb0: 7075 7420 2863 616e 2062 6520 6368 616e put (can be chan │ │ │ │ -00019ec0: 6765 6420 7769 7468 20e2 8098 2d56 e280 ged with ...-V.. │ │ │ │ -00019ed0: 9920 6162 6f76 6529 2e0a e280 982d 62e2 . above).....-b. │ │ │ │ -00019ee0: 8099 0a20 2020 2020 5573 6520 6120 4253 ... Use a BS │ │ │ │ -00019ef0: 5020 282a 4e6f 7465 2048 6964 6465 6e20 P (*Note Hidden │ │ │ │ -00019f00: 7375 7266 6163 6520 7265 6d6f 7661 6c3a surface removal: │ │ │ │ -00019f10: 3a2e 2920 2066 6f72 205f 616c 6c5f 2068 :.) for _all_ h │ │ │ │ -00019f20: 6964 6465 6e0a 2020 2020 2073 7572 6661 idden. surfa │ │ │ │ -00019f30: 6365 2072 656d 6f76 616c 2072 6174 6865 ce removal rathe │ │ │ │ -00019f40: 7220 7468 616e 2074 6865 2064 6566 6175 r than the defau │ │ │ │ -00019f50: 6c74 2c20 7768 6963 6820 6973 2074 6865 lt, which is the │ │ │ │ -00019f60: 2064 6570 7468 2073 6f72 740a 2020 2020 depth sort. │ │ │ │ -00019f70: 2061 6c67 6f72 6974 686d 2077 6974 6820 algorithm with │ │ │ │ -00019f80: 4253 5073 2075 7365 6420 6f6e 6c79 2066 BSPs used only f │ │ │ │ -00019f90: 6f72 2063 7963 6c65 2072 6573 6f6c 7574 or cycle resolut │ │ │ │ -00019fa0: 696f 6e2e 2020 5468 6973 206d 6179 0a20 ion. This may. │ │ │ │ -00019fb0: 2020 2020 7072 6f64 7563 6520 636f 7272 produce corr │ │ │ │ -00019fc0: 6563 7420 6f75 7470 7574 2069 6e20 6365 ect output in ce │ │ │ │ -00019fd0: 7274 6169 6e20 6465 6765 6e65 7261 7465 rtain degenerate │ │ │ │ -00019fe0: 2063 6173 6573 2077 6865 7265 2074 6865 cases where the │ │ │ │ -00019ff0: 2064 6570 7468 0a20 2020 2020 736f 7274 depth. sort │ │ │ │ -0001a000: 2063 616e 6e6f 742c 2062 7574 2069 7420 cannot, but it │ │ │ │ -0001a010: 616c 736f 206c 6561 6473 2074 6f20 6d61 also leads to ma │ │ │ │ -0001a020: 6e79 2067 7261 7475 6974 6f75 7320 7370 ny gratuitous sp │ │ │ │ -0001a030: 6c69 7473 2c20 6865 6e63 650a 2020 2020 lits, hence. │ │ │ │ -0001a040: 206d 6f72 6520 616e 6f6d 616c 6965 7320 more anomalies │ │ │ │ -0001a050: 2a6e 6f74 6520 4275 6773 2061 6e64 2061 *note Bugs and a │ │ │ │ -0001a060: 6e6f 6d61 6c69 6573 3a3a 2061 6e64 2062 nomalies:: and b │ │ │ │ -0001a070: 6967 206f 7574 7075 7420 6669 6c65 732e ig output files. │ │ │ │ -0001a080: 0ae2 8098 2d64 e280 990a 2020 2020 2052 ....-d.... R │ │ │ │ -0001a090: 756e 20e2 8098 736b 6574 6368 e280 9927 un ...sketch...' │ │ │ │ -0001a0a0: 7320 7061 7273 6572 2069 6e20 6465 6275 s parser in debu │ │ │ │ -0001a0b0: 6767 696e 6720 6d6f 6465 2e20 2054 6869 gging mode. Thi │ │ │ │ -0001a0c0: 7320 6973 2070 7269 6d61 7269 6c79 2066 s is primarily f │ │ │ │ -0001a0d0: 6f72 0a20 2020 2020 6465 7665 6c6f 706d or. developm │ │ │ │ -0001a0e0: 656e 742e 0ae2 8098 2d74 e280 990a 2020 ent.....-t.... │ │ │ │ -0001a0f0: 2020 2055 7365 2063 6f6e 7465 6e74 7320 Use contents │ │ │ │ -0001a100: 6f66 2066 696c 6520 e280 9864 6f63 746d of file ...doctm │ │ │ │ -0001a110: 70e2 8099 2061 7320 6120 646f 6375 6d65 p... as a docume │ │ │ │ -0001a120: 6e74 2074 656d 706c 6174 6520 696e 2077 nt template in w │ │ │ │ -0001a130: 6869 6368 2074 6f0a 2020 2020 2065 6e63 hich to. enc │ │ │ │ -0001a140: 6c6f 7365 20e2 8098 5053 5472 6963 6b73 lose ...PSTricks │ │ │ │ -0001a150: e280 9920 6f75 7470 7574 2063 6f64 652e ... output code. │ │ │ │ -0001a160: 2020 5468 6520 636f 6465 2069 7320 696e The code is in │ │ │ │ -0001a170: 7365 7274 6564 2069 6e20 706c 6163 6520 serted in place │ │ │ │ -0001a180: 6f66 0a20 2020 2020 7468 6520 6669 7273 of. the firs │ │ │ │ -0001a190: 7420 696e 7374 616e 6365 206f 6620 7468 t instance of th │ │ │ │ -0001a1a0: 6520 6573 6361 7065 2073 7472 696e 6720 e escape string │ │ │ │ -0001a1b0: 2525 534b 4554 4348 5f4f 5554 5055 5425 %%SKETCH_OUTPUT% │ │ │ │ -0001a1c0: 252e 0ae2 8098 2d54 e280 990a 2020 2020 %.....-T.... │ │ │ │ -0001a1d0: 2043 6175 7365 7320 e280 9850 5354 7269 Causes ...PSTri │ │ │ │ -0001a1e0: 636b 73e2 8099 206f 7574 7075 7420 746f cks... output to │ │ │ │ -0001a1f0: 2062 6520 656e 636c 6f73 6564 2069 6e20 be enclosed in │ │ │ │ -0001a200: 6465 6661 756c 7420 5553 2064 6f63 756d default US docum │ │ │ │ -0001a210: 656e 740a 2020 2020 2074 656d 706c 6174 ent. templat │ │ │ │ -0001a220: 6520 7465 7874 2e20 204f 7074 696f 6e20 e text. Option │ │ │ │ -0001a230: e280 982d 5475 e280 9920 6973 2061 2073 ...-Tu... is a s │ │ │ │ -0001a240: 796e 6f6e 796d 2e20 204f 7074 696f 6e20 ynonym. Option │ │ │ │ -0001a250: e280 982d 5465 e280 9920 6361 7573 6573 ...-Te... causes │ │ │ │ -0001a260: 2074 6865 0a20 2020 2020 4575 726f 2073 the. Euro s │ │ │ │ -0001a270: 7461 6e64 6172 6420 646f 6375 6d65 6e74 tandard document │ │ │ │ -0001a280: 2074 656d 706c 6174 6520 746f 2062 6520 template to be │ │ │ │ -0001a290: 7573 6564 2e20 2041 20e2 8098 70e2 8099 used. A ...p... │ │ │ │ -0001a2a0: 2061 7070 656e 6465 6420 746f 2061 6e79 appended to any │ │ │ │ -0001a2b0: 0a20 2020 2020 6f66 2074 6865 7365 206f . of these o │ │ │ │ -0001a2c0: 7074 696f 6e73 2063 6175 7365 7320 7468 ptions causes th │ │ │ │ -0001a2d0: 6520 7265 7370 6563 7469 7665 2064 6566 e respective def │ │ │ │ -0001a2e0: 6175 6c74 20e2 8098 5053 5472 6963 6b73 ault ...PSTricks │ │ │ │ -0001a2f0: e280 9920 646f 6375 6d65 6e74 0a20 2020 ... document. │ │ │ │ -0001a300: 2020 7465 6d70 6c61 7465 2074 6f20 6265 template to be │ │ │ │ -0001a310: 2070 7269 6e74 6564 2074 6f20 7374 616e printed to stan │ │ │ │ -0001a320: 6461 7264 206f 7574 7075 742e 2020 416e dard output. An │ │ │ │ -0001a330: 2061 7070 656e 6465 6420 e280 9850 e280 appended ...P.. │ │ │ │ -0001a340: 9920 6973 2061 0a20 2020 2020 7379 6e6f . is a. syno │ │ │ │ -0001a350: 6e79 6d2e 2020 416e 2061 7070 656e 6465 nym. An appende │ │ │ │ -0001a360: 6420 e280 9854 e280 9920 6361 7573 6573 d ...T... causes │ │ │ │ -0001a370: 2074 6865 2074 6865 20e2 8098 5469 6b5a the the ...TikZ │ │ │ │ -0001a380: 2f50 4746 e280 9920 7465 6d70 6c61 7465 /PGF... template │ │ │ │ -0001a390: 2074 6f20 6265 0a20 2020 2020 7072 696e to be. prin │ │ │ │ -0001a3a0: 7465 642e 2020 416e 2061 7070 656e 6465 ted. An appende │ │ │ │ -0001a3b0: 6420 e280 984c e280 9920 7072 696e 7473 d ...L... prints │ │ │ │ -0001a3c0: 2074 6865 204c 6154 6558 2076 6572 7369 the LaTeX versi │ │ │ │ -0001a3d0: 6f6e 206f 6620 7468 6520 646f 6375 6d65 on of the docume │ │ │ │ -0001a3e0: 6e74 0a20 2020 2020 7465 6d70 6c61 7465 nt. template │ │ │ │ -0001a3f0: 2c20 6120 7379 6e6f 6e79 6d20 666f 7220 , a synonym for │ │ │ │ -0001a400: 7468 6520 6465 6661 756c 742e 2020 4120 the default. A │ │ │ │ -0001a410: e280 9843 e280 9920 7072 696e 7473 2074 ...C... prints t │ │ │ │ -0001a420: 6865 20e2 8098 436f 6e54 6558 74e2 8099 he ...ConTeXt... │ │ │ │ -0001a430: 0a20 2020 2020 7465 6d70 6c61 7465 2e0a . template.. │ │ │ │ -0001a440: e280 982d 6fe2 8099 0a20 2020 2020 5573 ...-o.... Us │ │ │ │ -0001a450: 6520 e280 986f 7574 7075 742e 7465 78e2 e ...output.tex. │ │ │ │ -0001a460: 8099 2061 7320 7468 6520 6f75 7470 7574 .. as the output │ │ │ │ -0001a470: 2066 696c 652e 2020 5468 6520 6465 6661 file. The defa │ │ │ │ -0001a480: 756c 7420 6973 2073 7461 6e64 6172 640a ult is standard. │ │ │ │ -0001a490: 2020 2020 206f 7574 7075 742e 0ae2 8098 output..... │ │ │ │ -0001a4a0: 2d44 e280 990a 2020 2020 2044 6566 696e -D.... Defin │ │ │ │ -0001a4b0: 6520 6120 7461 6720 666f 7220 7075 7270 e a tag for purp │ │ │ │ -0001a4c0: 6f73 6573 206f 6620 7365 6c65 6374 696e oses of selectin │ │ │ │ -0001a4d0: 6720 6465 6669 6e69 7469 6f6e 2061 6c74 g definition alt │ │ │ │ -0001a4e0: 6572 6e61 7469 7665 732e 0a20 2020 2020 ernatives.. │ │ │ │ -0001a4f0: 2a4e 6f74 6520 4465 6669 6e69 7469 6f6e *Note Definition │ │ │ │ -0001a500: 733a 3a2e 2020 5468 6520 6465 6669 6e69 s::. The defini │ │ │ │ -0001a510: 7469 6f6e 2061 7070 6c69 6573 2066 6f72 tion applies for │ │ │ │ -0001a520: 2061 6c6c 2069 6e70 7574 2066 696c 6573 all input files │ │ │ │ -0001a530: 0a20 2020 2020 7468 6174 2066 6f6c 6c6f . that follo │ │ │ │ -0001a540: 7720 756e 6c65 7373 2074 6865 2074 6167 w unless the tag │ │ │ │ -0001a550: 2069 7320 756e 6465 6669 6e65 6420 7769 is undefined wi │ │ │ │ -0001a560: 7468 20e2 8098 2d55 e280 992e 0ae2 8098 th ...-U........ │ │ │ │ -0001a570: 696e 7075 7469 2e73 6be2 8099 0a20 2020 inputi.sk.... │ │ │ │ -0001a580: 2020 496e 7075 7420 6669 6c65 732c 2072 Input files, r │ │ │ │ -0001a590: 6561 6420 696e 2074 6865 2073 6571 7565 ead in the seque │ │ │ │ -0001a5a0: 6e63 6520 7468 6579 2061 7265 2067 6976 nce they are giv │ │ │ │ -0001a5b0: 656e 2e0a e280 982d 55e2 8099 0a20 2020 en.....-U.... │ │ │ │ -0001a5c0: 2020 556e 2d64 6566 696e 6520 6120 7461 Un-define a ta │ │ │ │ -0001a5d0: 6720 666f 7220 7075 7270 6f73 6573 206f g for purposes o │ │ │ │ -0001a5e0: 6620 7365 6c65 6374 696e 6720 6465 6669 f selecting defi │ │ │ │ -0001a5f0: 6e69 7469 6f6e 2061 6c74 6572 6e61 7469 nition alternati │ │ │ │ -0001a600: 7665 732e 0a0a 1f0a 4669 6c65 3a20 736b ves.....File: sk │ │ │ │ -0001a610: 6574 6368 2e69 6e66 6f2c 2020 4e6f 6465 etch.info, Node │ │ │ │ -0001a620: 3a20 496e 7374 616c 6c69 6e67 2073 6b65 : Installing ske │ │ │ │ -0001a630: 7463 682c 2020 4e65 7874 3a20 496e 6465 tch, Next: Inde │ │ │ │ -0001a640: 7820 6f66 2073 796e 7461 782c 2020 5072 x of syntax, Pr │ │ │ │ -0001a650: 6576 3a20 436f 6d6d 616e 6420 6c69 6e65 ev: Command line │ │ │ │ -0001a660: 2c20 2055 703a 2054 6f70 0a0a 3620 4275 , Up: Top..6 Bu │ │ │ │ -0001a670: 696c 6469 6e67 2061 6e64 2069 6e73 7461 ilding and insta │ │ │ │ -0001a680: 6c6c 696e 6720 e280 9873 6b65 7463 68e2 lling ...sketch. │ │ │ │ -0001a690: 8099 0a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a ...************* │ │ │ │ -0001a6a0: 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a **************** │ │ │ │ -0001a6b0: 2a2a 2a2a 2a0a 0ae2 8098 536b 6574 6368 *****.....Sketch │ │ │ │ -0001a6c0: e280 9920 6973 2073 6f20 736d 616c 6c20 ... is so small │ │ │ │ -0001a6d0: 7468 6174 2063 6f6d 7069 6c69 6e67 2062 that compiling b │ │ │ │ -0001a6e0: 7920 6272 7574 6520 666f 7263 6520 6973 y brute force is │ │ │ │ -0001a6f0: 2070 726f 6261 626c 7920 6265 7374 2e0a probably best.. │ │ │ │ -0001a700: 5468 6520 666f 6c6c 6f77 696e 6720 636f The following co │ │ │ │ -0001a710: 6d6d 616e 6420 6f75 6768 7420 746f 2064 mmand ought to d │ │ │ │ -0001a720: 6f20 7468 6520 7472 6963 6b20 6f6e 2061 o the trick on a │ │ │ │ -0001a730: 6e79 2073 7973 7465 6d73 2077 6865 7265 ny systems where │ │ │ │ -0001a740: 20e2 8098 6763 63e2 8099 0a69 7320 696e ...gcc....is in │ │ │ │ -0001a750: 7374 616c 6c65 642e 2020 4d61 6b65 2073 stalled. Make s │ │ │ │ -0001a760: 7572 6520 746f 2066 6972 7374 2063 6861 ure to first cha │ │ │ │ -0001a770: 6e67 6520 6375 7272 656e 7420 6469 7265 nge current dire │ │ │ │ -0001a780: 6374 6f72 6965 7320 746f 2074 6865 0a70 ctories to the.p │ │ │ │ -0001a790: 6c61 6365 2077 6865 7265 2079 6f75 2068 lace where you h │ │ │ │ -0001a7a0: 6176 6520 756e 7061 636b 6564 2074 6865 ave unpacked the │ │ │ │ -0001a7b0: 2073 6f75 7263 6573 2e0a 2020 2020 2067 sources.. g │ │ │ │ -0001a7c0: 6363 202a 2e63 202d 6f20 736b 6574 6368 cc *.c -o sketch │ │ │ │ -0001a7d0: 2e65 7865 202d 6c6d 0a54 6865 20e2 8098 .exe -lm.The ... │ │ │ │ -0001a7e0: 2e65 7865 e280 9920 6174 2074 6865 2065 .exe... at the e │ │ │ │ -0001a7f0: 6e64 2069 7320 6e65 6365 7373 6172 7920 nd is necessary │ │ │ │ -0001a800: 666f 7220 5769 6e64 6f77 7320 7379 7374 for Windows syst │ │ │ │ -0001a810: 656d 732e 2020 4472 6f70 2069 7420 6966 ems. Drop it if │ │ │ │ -0001a820: 2079 6f75 720a 7379 7374 656d 2069 7320 your.system is │ │ │ │ -0001a830: 736f 6d65 2076 6572 7369 6f6e 206f 6620 some version of │ │ │ │ -0001a840: 556e 6978 2e20 204f 7468 6572 2043 2063 Unix. Other C c │ │ │ │ -0001a850: 6f6d 7069 6c65 7273 206f 7567 6874 2074 ompilers ought t │ │ │ │ -0001a860: 6f20 776f 726b 2061 7320 6a75 7374 0a61 o work as just.a │ │ │ │ -0001a870: 7320 7765 6c6c 2e20 2046 6f72 2065 7861 s well. For exa │ │ │ │ -0001a880: 6d70 6c65 2c0a 2020 2020 2063 6c20 2a2e mple,. cl *. │ │ │ │ -0001a890: 6320 2d6f 2073 6b65 7463 682e 6578 650a c -o sketch.exe. │ │ │ │ -0001a8a0: 6973 2074 6865 2063 6f72 7265 6374 2063 is the correct c │ │ │ │ -0001a8b0: 6f6d 6d61 6e64 2066 6f72 206d 616e 7920 ommand for many │ │ │ │ -0001a8c0: 7665 7273 696f 6e73 206f 6620 4d53 2056 versions of MS V │ │ │ │ -0001a8d0: 6973 7561 6c20 432e 2049 6e20 7468 6520 isual C. In the │ │ │ │ -0001a8e0: 6c61 7465 7374 0a76 6572 7369 6f6e 732c latest.versions, │ │ │ │ -0001a8f0: 204d 6963 726f 736f 6674 2068 6173 2064 Microsoft has d │ │ │ │ -0001a900: 6570 7265 6361 7465 6420 7468 6520 e280 eprecated the .. │ │ │ │ -0001a910: 982d 6fe2 8099 206f 7074 696f 6e20 616e .-o... option an │ │ │ │ -0001a920: 642c 2062 7920 6465 6661 756c 742c 2064 d, by default, d │ │ │ │ -0001a930: 6f65 730a 6e6f 7420 6465 6669 6e65 2074 oes.not define t │ │ │ │ -0001a940: 6865 20e2 8098 5f5f 5354 4443 5f5f e280 he ...__STDC__.. │ │ │ │ -0001a950: 9920 6d61 6372 6f2e 2020 5468 6973 2063 . macro. This c │ │ │ │ -0001a960: 6175 7365 7320 7072 6f62 6c65 6d73 2077 auses problems w │ │ │ │ -0001a970: 6974 6820 736f 6d65 0a76 6572 7369 6f6e ith some.version │ │ │ │ -0001a980: 7320 6f66 20e2 8098 666c 6578 e280 992c s of ...flex..., │ │ │ │ -0001a990: 20e2 8098 6269 736f 6ee2 8099 2c20 e280 ...bison..., .. │ │ │ │ -0001a9a0: 986c 6578 e280 992c 2061 6e64 20e2 8098 .lex..., and ... │ │ │ │ -0001a9b0: 7961 6363 e280 992c 2077 6869 6368 2061 yacc..., which a │ │ │ │ -0001a9c0: 7265 2075 7365 6420 746f 2063 7265 6174 re used to creat │ │ │ │ -0001a9d0: 650a 7468 6520 e280 9873 6b65 7463 68e2 e.the ...sketch. │ │ │ │ -0001a9e0: 8099 2073 6361 6e6e 6572 2061 6e64 2070 .. scanner and p │ │ │ │ -0001a9f0: 6172 7365 722e 2020 4974 2773 206e 6561 arser. It's nea │ │ │ │ -0001aa00: 726c 7920 616c 7761 7973 2070 6f73 7369 rly always possi │ │ │ │ -0001aa10: 626c 6520 746f 2066 696e 6420 610a 7365 ble to find a.se │ │ │ │ -0001aa20: 7420 6f66 206f 7074 696f 6e73 2074 6861 t of options tha │ │ │ │ -0001aa30: 7420 636f 6d70 696c 6573 2077 6974 6820 t compiles with │ │ │ │ -0001aa40: 6e6f 2065 7272 6f72 7320 6f72 2077 6172 no errors or war │ │ │ │ -0001aa50: 6e69 6e67 732c 2061 6e64 2074 6869 7320 nings, and this │ │ │ │ -0001aa60: 6d65 616e 730a e280 9873 6b65 7463 68e2 means....sketch. │ │ │ │ -0001aa70: 8099 2069 7320 5f76 6572 795f 206c 696b .. is _very_ lik │ │ │ │ -0001aa80: 656c 7920 746f 2077 6f72 6b20 636f 7272 ely to work corr │ │ │ │ -0001aa90: 6563 746c 792e 2020 466f 7220 6578 616d ectly. For exam │ │ │ │ -0001aaa0: 706c 652c 2074 6865 2056 6973 7561 6c0a ple, the Visual. │ │ │ │ -0001aab0: 432b 2b20 3230 3035 2045 7870 7265 7373 C++ 2005 Express │ │ │ │ -0001aac0: 2045 6469 7469 6f6e 2063 6f6d 7069 6c65 Edition compile │ │ │ │ -0001aad0: 7220 2861 7661 696c 6162 6c65 2066 7265 r (available fre │ │ │ │ -0001aae0: 6520 6f66 2063 6861 7267 6520 6672 6f6d e of charge from │ │ │ │ -0001aaf0: 2074 6865 0a4d 6963 726f 736f 6674 2077 the.Microsoft w │ │ │ │ -0001ab00: 6562 2073 6974 6529 2c20 e280 9866 6c65 eb site), ...fle │ │ │ │ -0001ab10: 78e2 8099 2076 6572 7369 6f6e 2032 2e35 x... version 2.5 │ │ │ │ -0001ab20: 2e34 2c20 616e 6420 e280 9862 6973 6f6e .4, and ...bison │ │ │ │ -0001ab30: e280 9920 7665 7273 696f 6e20 322e 3120 ... version 2.1 │ │ │ │ -0001ab40: 6275 696c 640a 6572 726f 722d 6672 6565 build.error-free │ │ │ │ -0001ab50: 2077 6974 680a 2020 2020 2063 6c20 2d44 with. cl -D │ │ │ │ -0001ab60: 5959 5f4e 4556 4552 5f49 4e54 4552 4143 YY_NEVER_INTERAC │ │ │ │ -0001ab70: 5449 5645 3d31 202d 5a61 202d 4f78 202d TIVE=1 -Za -Ox - │ │ │ │ -0001ab80: 4665 736b 6574 6368 2e65 7865 202a 2e63 Fesketch.exe *.c │ │ │ │ -0001ab90: 0a0a 2020 2046 6f72 2070 7572 6973 7473 .. For purists │ │ │ │ -0001aba0: 2c20 7468 6572 6520 6973 2061 6c73 6f20 , there is also │ │ │ │ -0001abb0: 6120 e280 986d 616b 6566 696c 65e2 8099 a ...makefile... │ │ │ │ -0001abc0: 2063 6f6d 7061 7469 626c 6520 7769 7468 compatible with │ │ │ │ -0001abd0: 2047 4e55 20e2 8098 6d61 6b65 e280 990a GNU ...make.... │ │ │ │ -0001abe0: 616e 6420 e280 9867 6363 e280 992e 2020 and ...gcc.... │ │ │ │ -0001abf0: 5468 6520 636f 6d6d 616e 640a 2020 2020 The command. │ │ │ │ -0001ac00: 206d 616b 650a 7769 6c6c 2062 7569 6c64 make.will build │ │ │ │ -0001ac10: 2074 6865 2065 7865 6375 7461 626c 652c the executable, │ │ │ │ -0001ac20: 2069 6e63 6c75 6469 6e67 2074 6865 2072 including the r │ │ │ │ -0001ac30: 6562 7569 6c64 696e 6720 6f66 2074 6865 ebuilding of the │ │ │ │ -0001ac40: 2073 6361 6e6e 6572 2061 6e64 0a70 6172 scanner and.par │ │ │ │ -0001ac50: 7365 7220 7769 7468 20e2 8098 666c 6578 ser with ...flex │ │ │ │ -0001ac60: e280 9920 616e 6420 e280 9862 6973 6f6e ... and ...bison │ │ │ │ -0001ac70: e280 9920 6966 2079 6f75 2068 6176 6520 ... if you have │ │ │ │ -0001ac80: 6368 616e 6765 6420 e280 9873 6b65 7463 changed ...sketc │ │ │ │ -0001ac90: 682e 6ce2 8099 206f 720a e280 9873 6b65 h.l... or....ske │ │ │ │ -0001aca0: 7463 682e 79e2 8099 2072 6573 7065 6374 tch.y... respect │ │ │ │ -0001acb0: 6976 656c 792e 0a0a 2020 2057 6869 6c65 ively... While │ │ │ │ -0001acc0: 206e 6f74 2065 7373 656e 7469 616c 2c20 not essential, │ │ │ │ -0001acd0: 6275 696c 6469 6e67 2074 6865 206d 616e building the man │ │ │ │ -0001ace0: 7561 6c20 6973 2061 6e20 6578 6365 6c6c ual is an excell │ │ │ │ -0001acf0: 656e 7420 7465 7374 206f 6620 796f 7572 ent test of your │ │ │ │ -0001ad00: 0ae2 8098 736b 6574 6368 e280 9920 696e ....sketch... in │ │ │ │ -0001ad10: 7374 616c 6c61 7469 6f6e 2e20 2054 6f20 stallation. To │ │ │ │ -0001ad20: 6275 696c 6420 7468 6973 2064 6f63 756d build this docum │ │ │ │ -0001ad30: 656e 7420 696e 2061 6c6c 2069 7473 206d ent in all its m │ │ │ │ -0001ad40: 7972 6961 6420 666f 726d 730a 2861 7373 yriad forms.(ass │ │ │ │ -0001ad50: 756d 696e 6720 796f 7520 6861 7665 2074 uming you have t │ │ │ │ -0001ad60: 6865 206e 6563 6573 7361 7279 2063 6f6e he necessary con │ │ │ │ -0001ad70: 7665 7273 696f 6e20 7072 6f67 7261 6d73 version programs │ │ │ │ -0001ad80: 206f 6e20 796f 7572 2073 7973 7465 6d29 on your system) │ │ │ │ -0001ad90: 2c0a 7573 650a 2020 2020 206d 616b 6520 ,.use. make │ │ │ │ -0001ada0: 646f 6373 0a54 6865 2070 6f73 7369 6269 docs.The possibi │ │ │ │ -0001adb0: 6c69 7469 6573 2061 7265 206c 6973 7465 lities are liste │ │ │ │ -0001adc0: 6420 696e 2074 6869 7320 666f 6c6c 6f77 d in this follow │ │ │ │ -0001add0: 696e 6720 7461 626c 652e 0a46 6f72 6d61 ing table..Forma │ │ │ │ -0001ade0: 7420 2020 2020 2020 2020 2020 2020 2020 t │ │ │ │ -0001adf0: 2043 6f6e 7665 7274 6572 2020 2020 2020 Converter │ │ │ │ -0001ae00: 2020 5069 6374 7572 6573 2020 2044 6573 Pictures Des │ │ │ │ -0001ae10: 6372 6970 7469 6f6e 0a2d 2d2d 2d2d 2d2d cription.------- │ │ │ │ +00018770: 2d2d 2d2d 0a0a e280 9853 6b65 7463 68e2 ----.....Sketch. │ │ │ │ +00018780: 8099 2075 7365 7320 7468 6520 e280 9c64 .. uses the ...d │ │ │ │ +00018790: 6570 7468 2073 6f72 7420 616c 676f 7269 epth sort algori │ │ │ │ +000187a0: 7468 6de2 809d 2066 6f72 2068 6964 6465 thm... for hidde │ │ │ │ +000187b0: 6e20 7375 7266 6163 6520 7265 6d6f 7661 n surface remova │ │ │ │ +000187c0: 6c2e 0a54 6869 7320 6973 2061 2076 6572 l..This is a ver │ │ │ │ +000187d0: 7920 6f6c 6420 7465 6368 6e69 7175 6520 y old technique │ │ │ │ +000187e0: 6475 6520 746f 204e 6577 656c 6c2e 2831 due to Newell.(1 │ │ │ │ +000187f0: 2920 2049 7420 6973 2067 656e 6572 616c ) It is general │ │ │ │ +00018800: 6c79 2072 6567 6172 6465 640a 6173 2074 ly regarded.as t │ │ │ │ +00018810: 6f6f 2073 6c6f 7720 666f 7220 7265 616c oo slow for real │ │ │ │ +00018820: 2074 696d 6520 6772 6170 6869 6373 2c20 time graphics, │ │ │ │ +00018830: 6275 7420 6974 2069 7320 6964 6561 6c20 but it is ideal │ │ │ │ +00018840: 666f 7220 6f75 7220 7075 7270 6f73 650a for our purpose. │ │ │ │ +00018850: 7768 6572 6520 7370 6565 6420 6973 206e where speed is n │ │ │ │ +00018860: 6f74 2076 6572 7920 696d 706f 7274 616e ot very importan │ │ │ │ +00018870: 742e 2832 290a 0a20 2020 5468 6520 6465 t.(2).. The de │ │ │ │ +00018880: 7074 6820 736f 7274 2061 6c67 6f72 6974 pth sort algorit │ │ │ │ +00018890: 686d 206d 6572 656c 7920 736f 7274 7320 hm merely sorts │ │ │ │ +000188a0: 6f62 6a65 6374 7320 6f6e 2061 206b 6579 objects on a key │ │ │ │ +000188b0: 206f 6620 696e 6372 6561 7369 6e67 0a7a of increasing.z │ │ │ │ +000188c0: 2d63 6f6f 7264 696e 6174 652c 2065 7175 -coordinate, equ │ │ │ │ +000188d0: 6976 616c 656e 7420 746f 2064 6563 7265 ivalent to decre │ │ │ │ +000188e0: 6173 696e 6720 6465 7074 682e 2020 4f62 asing depth. Ob │ │ │ │ +000188f0: 6a65 6374 7320 6172 6520 7468 656e 2064 jects are then d │ │ │ │ +00018900: 7261 776e 2069 6e0a 7468 6520 736f 7274 rawn in.the sort │ │ │ │ +00018910: 6564 2073 6571 7565 6e63 6520 736f 2074 ed sequence so t │ │ │ │ +00018920: 6861 7420 7468 6f73 6520 6174 2074 6865 hat those at the │ │ │ │ +00018930: 2072 6561 7220 6f66 2074 6865 2073 6365 rear of the sce │ │ │ │ +00018940: 6e65 2061 7265 0a6f 7665 7277 7269 7474 ne are.overwritt │ │ │ │ +00018950: 656e 2062 7920 7468 6f73 6520 636c 6f73 en by those clos │ │ │ │ +00018960: 6572 2074 6f20 7468 6520 7669 6577 6572 er to the viewer │ │ │ │ +00018970: 2e20 2053 696e 6365 2074 6869 7320 6973 . Since this is │ │ │ │ +00018980: 2061 6c73 6f20 686f 7720 6f69 6c0a 7061 also how oil.pa │ │ │ │ +00018990: 696e 7465 7273 2070 7261 6374 6963 6520 inters practice │ │ │ │ +000189a0: 7468 6569 7220 6172 742c 2064 6570 7468 their art, depth │ │ │ │ +000189b0: 2073 6f72 7420 6973 2073 6f6d 6574 696d sort is sometim │ │ │ │ +000189c0: 6573 2063 616c 6c65 6420 2274 6865 0a70 es called "the.p │ │ │ │ +000189d0: 6169 6e74 6572 2773 2061 6c67 6f72 6974 ainter's algorit │ │ │ │ +000189e0: 686d 2e22 0a0a 2020 2049 6e20 736f 6d65 hm.".. In some │ │ │ │ +000189f0: 2063 6173 6573 2069 7420 6973 2069 6d70 cases it is imp │ │ │ │ +00018a00: 6f73 7369 626c 6520 746f 2073 7472 6963 ossible to stric │ │ │ │ +00018a10: 746c 7920 6f72 6465 7220 706f 6c79 676f tly order polygo │ │ │ │ +00018a20: 6e73 2061 6363 6f72 6469 6e67 0a74 6f20 ns according.to │ │ │ │ +00018a30: 6465 7074 682e 2020 4d6f 7265 6f76 6572 depth. Moreover │ │ │ │ +00018a40: 2c20 6576 656e 2069 6620 6120 636f 7272 , even if a corr │ │ │ │ +00018a50: 6563 7420 6465 7074 6820 6f72 6465 7269 ect depth orderi │ │ │ │ +00018a60: 6e67 2065 7869 7374 732c 2074 6865 0a63 ng exists, the.c │ │ │ │ +00018a70: 6f6d 7075 7461 7469 6f6e 206e 6565 6465 omputation neede │ │ │ │ +00018a80: 6420 746f 2066 696e 6420 6974 206d 6179 d to find it may │ │ │ │ +00018a90: 2062 6520 746f 6f20 636f 6d70 6c65 7820 be too complex │ │ │ │ +00018aa0: 616e 6420 736c 6f77 2e20 2049 6e20 7468 and slow. In th │ │ │ │ +00018ab0: 6573 650a 6361 7365 732c 20e2 8098 736b ese.cases, ...sk │ │ │ │ +00018ac0: 6574 6368 e280 9920 7370 6c69 7473 206f etch... splits o │ │ │ │ +00018ad0: 6e65 206f 7220 6d6f 7265 2070 6f6c 7967 ne or more polyg │ │ │ │ +00018ae0: 6f6e 7320 696e 746f 2070 6965 6365 732e ons into pieces. │ │ │ │ +00018af0: 2020 5468 650a 6578 7065 6374 6174 696f The.expectatio │ │ │ │ +00018b00: 6e20 6973 2074 6861 7420 7468 6520 6e65 n is that the ne │ │ │ │ +00018b10: 772c 2073 6d61 6c6c 6572 2070 6f6c 7967 w, smaller polyg │ │ │ │ +00018b20: 6f6e 7320 7769 6c6c 2062 6520 7369 6d70 ons will be simp │ │ │ │ +00018b30: 6c65 7220 746f 206f 7264 6572 2e0a e280 ler to order.... │ │ │ │ +00018b40: 9853 6b65 7463 68e2 8099 2075 7365 7320 .Sketch... uses │ │ │ │ +00018b50: 6120 4253 5020 2862 696e 6172 7920 7370 a BSP (binary sp │ │ │ │ +00018b60: 6163 6520 7061 7274 6974 696f 6e29 2074 ace partition) t │ │ │ │ +00018b70: 6f20 6861 6e64 6c65 2074 6865 2073 706c o handle the spl │ │ │ │ +00018b80: 6974 7469 6e67 0a6f 7065 7261 7469 6f6e itting.operation │ │ │ │ +00018b90: 2e0a 0a2a 204d 656e 753a 0a0a 2a20 5374 ...* Menu:..* St │ │ │ │ +00018ba0: 6174 6973 7469 6373 3a3a 2020 2020 2020 atistics:: │ │ │ │ +00018bb0: 2020 2020 2020 2020 2020 2020 5065 7266 Perf │ │ │ │ +00018bc0: 6f72 6d61 6e63 6520 6e75 6d62 6572 7320 ormance numbers │ │ │ │ +00018bd0: 6f6e 2064 6570 7468 2073 6f72 742e 0a2a on depth sort..* │ │ │ │ +00018be0: 2042 7567 7320 616e 6420 616e 6f6d 616c Bugs and anomal │ │ │ │ +00018bf0: 6965 733a 3a20 2020 2020 2020 2020 2049 ies:: I │ │ │ │ +00018c00: 6d70 6572 6665 6374 696f 6e73 2069 6e20 mperfections in │ │ │ │ +00018c10: 7468 6973 2069 6d70 6c65 6d65 6e74 6174 this implementat │ │ │ │ +00018c20: 696f 6e2e 0a0a 2020 202d 2d2d 2d2d 2d2d ion... ------- │ │ │ │ +00018c30: 2d2d 2d20 466f 6f74 6e6f 7465 7320 2d2d --- Footnotes -- │ │ │ │ +00018c40: 2d2d 2d2d 2d2d 2d2d 0a0a 2020 2028 3129 --------.. (1) │ │ │ │ +00018c50: 204e 6577 656c 6c2c 204d 2e45 2e2c 2052 Newell, M.E., R │ │ │ │ +00018c60: 2e47 2e20 4e65 7765 6c6c 2c20 616e 6420 .G. Newell, and │ │ │ │ +00018c70: 542e 4c2e 2053 616e 6368 612c 2041 2073 T.L. Sancha, A s │ │ │ │ +00018c80: 6f6c 7574 696f 6e20 746f 2074 6865 0a68 olution to the.h │ │ │ │ +00018c90: 6964 6465 6e20 7375 7266 6163 6520 7072 idden surface pr │ │ │ │ +00018ca0: 6f62 6c65 6d2e 2020 5072 6f63 6565 6469 oblem. Proceedi │ │ │ │ +00018cb0: 6e67 7320 6f66 2074 6865 2041 434d 2061 ngs of the ACM a │ │ │ │ +00018cc0: 6e6e 7561 6c20 636f 6e66 6572 656e 6365 nnual conference │ │ │ │ +00018cd0: 202d 0a56 6f6c 756d 6520 312c 2070 6167 -.Volume 1, pag │ │ │ │ +00018ce0: 6520 3434 332d 3435 302c 2041 434d 2050 e 443-450, ACM P │ │ │ │ +00018cf0: 7265 7373 2c20 3139 3732 2e0a 0a20 2020 ress, 1972... │ │ │ │ +00018d00: 2832 2920 5765 2068 6176 6520 7275 6e20 (2) We have run │ │ │ │ +00018d10: e280 9873 6b65 7463 68e2 8099 206f 6e20 ...sketch... on │ │ │ │ +00018d20: 7468 6520 6661 6d6f 7573 2053 7461 6e66 the famous Stanf │ │ │ │ +00018d30: 6f72 6420 4275 6e6e 792c 2077 6869 6368 ord Bunny, which │ │ │ │ +00018d40: 2063 6f6e 7369 7374 730a 6f66 206e 6561 consists.of nea │ │ │ │ +00018d50: 726c 7920 3730 2c30 3030 2074 7269 616e rly 70,000 trian │ │ │ │ +00018d60: 676c 6573 2e20 2052 756e 2074 696d 6520 gles. Run time │ │ │ │ +00018d70: 7761 7320 6162 6f75 7420 3620 7365 636f was about 6 seco │ │ │ │ +00018d80: 6e64 732e 2020 4d6f 7374 206f 6620 7468 nds. Most of th │ │ │ │ +00018d90: 6973 0a77 6173 2073 7065 6e74 2077 7269 is.was spent wri │ │ │ │ +00018da0: 7469 6e67 2074 6865 206f 7574 7075 7420 ting the output │ │ │ │ +00018db0: 6669 6c65 2072 6174 6865 7220 7468 616e file rather than │ │ │ │ +00018dc0: 2069 6e20 7468 6520 6869 6464 656e 2073 in the hidden s │ │ │ │ +00018dd0: 7572 6661 6365 0a61 6c67 6f72 6974 686d urface.algorithm │ │ │ │ +00018de0: 2e20 204c 6154 6558 2074 6f6f 6b20 6d75 . LaTeX took mu │ │ │ │ +00018df0: 6368 206c 6f6e 6765 7220 746f 2070 726f ch longer to pro │ │ │ │ +00018e00: 6365 7373 2074 6865 2072 6573 756c 7469 cess the resulti │ │ │ │ +00018e10: 6e67 20e2 8098 5053 5472 6963 6b73 e280 ng ...PSTricks.. │ │ │ │ +00018e20: 990a 636f 6465 2e20 2054 6865 206f 6276 ..code. The obv │ │ │ │ +00018e30: 696f 7573 2063 6f6e 636c 7573 696f 6e20 ious conclusion │ │ │ │ +00018e40: 6973 2074 6861 7420 7468 6520 7370 6565 is that the spee │ │ │ │ +00018e50: 6420 6f66 2074 6865 2064 6570 7468 2073 d of the depth s │ │ │ │ +00018e60: 6f72 740a 616c 676f 7269 7468 6d20 6973 ort.algorithm is │ │ │ │ +00018e70: 206e 6f74 2061 2077 6f72 7279 2e0a 0a1f not a worry.... │ │ │ │ +00018e80: 0a46 696c 653a 2073 6b65 7463 682e 696e .File: sketch.in │ │ │ │ +00018e90: 666f 2c20 204e 6f64 653a 2053 7461 7469 fo, Node: Stati │ │ │ │ +00018ea0: 7374 6963 732c 2020 4e65 7874 3a20 4275 stics, Next: Bu │ │ │ │ +00018eb0: 6773 2061 6e64 2061 6e6f 6d61 6c69 6573 gs and anomalies │ │ │ │ +00018ec0: 2c20 2050 7265 763a 2048 6964 6465 6e20 , Prev: Hidden │ │ │ │ +00018ed0: 7375 7266 6163 6520 7265 6d6f 7661 6c2c surface removal, │ │ │ │ +00018ee0: 2020 5570 3a20 4869 6464 656e 2073 7572 Up: Hidden sur │ │ │ │ +00018ef0: 6661 6365 2072 656d 6f76 616c 0a0a 342e face removal..4. │ │ │ │ +00018f00: 342e 332e 3120 5374 6174 6973 7469 6373 4.3.1 Statistics │ │ │ │ +00018f10: 0a2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e ................ │ │ │ │ +00018f20: 2e2e 2e0a 0a46 6f72 2074 6865 2063 7572 .....For the cur │ │ │ │ +00018f30: 696f 7573 2c20 e280 9873 6b65 7463 68e2 ious, ...sketch. │ │ │ │ +00018f40: 8099 2077 7269 7465 7320 6f6e 6520 6c69 .. writes one li │ │ │ │ +00018f50: 6e65 206f 6620 6465 7074 6820 736f 7274 ne of depth sort │ │ │ │ +00018f60: 2073 7461 7469 7374 6963 732e 0a48 6572 statistics..Her │ │ │ │ +00018f70: 6520 6973 2061 6e20 6578 616d 706c 6520 e is an example │ │ │ │ +00018f80: 666f 7220 6120 6c61 7267 6520 636f 6c6c for a large coll │ │ │ │ +00018f90: 6563 7469 6f6e 206f 6620 7472 6961 6e67 ection of triang │ │ │ │ +00018fa0: 6c65 732e 0a20 2072 656d 6172 6b2c 206e les.. remark, n │ │ │ │ +00018fb0: 6f64 653d 3334 3832 3420 7072 6f62 653d ode=34824 probe= │ │ │ │ +00018fc0: 3538 312e 3920 7377 6170 3d35 2073 706c 581.9 swap=5 spl │ │ │ │ +00018fd0: 6974 3d32 2028 696e 3d34 206f 7574 3d36 it=2 (in=4 out=6 │ │ │ │ +00018fe0: 2920 6f6c 733d 3234 3835 312f 300a 4974 ) ols=24851/0.It │ │ │ │ +00018ff0: 206d 6561 6e73 2074 6861 7420 3334 2c38 means that 34,8 │ │ │ │ +00019000: 3234 206f 626a 6563 7473 2077 6572 6520 24 objects were │ │ │ │ +00019010: 6465 7074 6820 736f 7274 6564 2061 6674 depth sorted aft │ │ │ │ +00019020: 6572 2063 756c 6c69 6e67 2e20 2046 6f72 er culling. For │ │ │ │ +00019030: 2065 6163 682c 0a61 6e20 6176 6572 6167 each,.an averag │ │ │ │ +00019040: 6520 6f66 2035 3831 2e39 206f 7468 6572 e of 581.9 other │ │ │ │ +00019050: 7320 6861 6420 746f 2062 6520 6368 6563 s had to be chec │ │ │ │ +00019060: 6b65 6420 746f 2065 6e73 7572 6520 7468 ked to ensure th │ │ │ │ +00019070: 6174 2074 6865 2069 6e69 7469 616c 2c0a at the initial,. │ │ │ │ +00019080: 6170 7072 6f78 696d 6174 6520 6f72 6465 approximate orde │ │ │ │ +00019090: 7269 6e67 2077 6173 2063 6f72 7265 6374 ring was correct │ │ │ │ +000190a0: 2e20 2041 6d6f 6e67 2061 6c6c 2074 6865 . Among all the │ │ │ │ +000190b0: 7365 2063 6865 636b 732c 206f 6e6c 7920 se checks, only │ │ │ │ +000190c0: 350a 7265 7375 6c74 6564 2069 6e20 7377 5.resulted in sw │ │ │ │ +000190d0: 6170 7320 746f 2072 656f 7264 6572 2074 aps to reorder t │ │ │ │ +000190e0: 6865 2069 6e69 7469 616c 2073 6f72 742e he initial sort. │ │ │ │ +000190f0: 2020 496e 2074 776f 2063 6173 6573 2c20 In two cases, │ │ │ │ +00019100: 6120 636f 7272 6563 740a 6f72 6465 7269 a correct.orderi │ │ │ │ +00019110: 6e67 2063 6f75 6c64 206e 6f74 2062 6520 ng could not be │ │ │ │ +00019120: 6465 7465 726d 696e 6564 2c20 736f 2062 determined, so b │ │ │ │ +00019130: 696e 6172 7920 7370 6163 6520 7061 7274 inary space part │ │ │ │ +00019140: 6974 696f 6e73 2077 6572 650a 636f 6e73 itions were.cons │ │ │ │ +00019150: 7472 7563 7465 6420 666f 7220 7370 6c69 tructed for spli │ │ │ │ +00019160: 7474 696e 672e 2020 4120 746f 7461 6c20 tting. A total │ │ │ │ +00019170: 6f66 2034 206f 626a 6563 7473 2028 7472 of 4 objects (tr │ │ │ │ +00019180: 6961 6e67 6c65 7320 696e 2074 6869 730a iangles in this. │ │ │ │ +00019190: 6361 7365 2920 7765 7265 2069 6e73 6572 case) were inser │ │ │ │ +000191a0: 7465 6420 696e 2074 6865 2070 6172 7469 ted in the parti │ │ │ │ +000191b0: 7469 6f6e 732c 2061 6e64 2036 2070 6f6c tions, and 6 pol │ │ │ │ +000191c0: 7967 6f6e 7320 7765 7265 2070 726f 6475 ygons were produ │ │ │ │ +000191d0: 6365 642e 0a46 696e 616c 6c79 2c20 3234 ced..Finally, 24 │ │ │ │ +000191e0: 2c38 3531 2022 6c61 7374 2072 6573 6f72 ,851 "last resor │ │ │ │ +000191f0: 7422 2070 6f6c 7967 6f6e 206f 7665 726c t" polygon overl │ │ │ │ +00019200: 6170 2063 6865 636b 7320 7765 7265 2070 ap checks were p │ │ │ │ +00019210: 6572 666f 726d 6564 0a61 6674 6572 2073 erformed.after s │ │ │ │ +00019220: 696d 706c 6572 2c20 6661 7374 6572 2063 impler, faster c │ │ │ │ +00019230: 6865 636b 7320 6661 696c 6564 2074 6f20 hecks failed to │ │ │ │ +00019240: 7969 656c 6420 636f 6e63 6c75 7369 7665 yield conclusive │ │ │ │ +00019250: 2072 6573 756c 7473 2e20 2054 6865 0a66 results. The.f │ │ │ │ +00019260: 696e 616c 202f 3020 6973 2066 6f72 206c inal /0 is for l │ │ │ │ +00019270: 696e 652d 706f 6c79 676f 6e20 6f76 6572 ine-polygon over │ │ │ │ +00019280: 6c61 7020 6368 6563 6b73 2e20 2046 6f72 lap checks. For │ │ │ │ +00019290: 2063 6f6d 7061 7269 736f 6e2c 2074 6865 comparison, the │ │ │ │ +000192a0: 0a73 7461 7469 7374 6963 7320 666f 7220 .statistics for │ │ │ │ +000192b0: 7468 6520 6c61 7374 2066 6967 7572 6520 the last figure │ │ │ │ +000192c0: 696e 202a 6e6f 7465 204f 7665 7276 6965 in *note Overvie │ │ │ │ +000192d0: 773a 3a20 666f 6c6c 6f77 2e0a 2020 7265 w:: follow.. re │ │ │ │ +000192e0: 6d61 726b 2c20 6e6f 6465 3d32 3720 7072 mark, node=27 pr │ │ │ │ +000192f0: 6f62 653d 3134 2e36 2073 7761 703d 3336 obe=14.6 swap=36 │ │ │ │ +00019300: 2073 706c 6974 3d31 3520 2869 6e3d 3330 split=15 (in=30 │ │ │ │ +00019310: 206f 7574 3d34 3529 206f 6c73 3d30 2f36 out=45) ols=0/6 │ │ │ │ +00019320: 390a 4e6f 7465 2074 6861 7420 7468 6572 9.Note that ther │ │ │ │ +00019330: 6520 7761 7320 7072 6f70 6f72 7469 6f6e e was proportion │ │ │ │ +00019340: 616c 6c79 206d 7563 6820 6d6f 7265 2073 ally much more s │ │ │ │ +00019350: 7761 7070 696e 6720 616e 6420 7370 6c69 wapping and spli │ │ │ │ +00019360: 7474 696e 670a 6163 7469 7669 7479 2069 tting.activity i │ │ │ │ +00019370: 6e20 7468 6973 2068 6967 686c 7920 636f n this highly co │ │ │ │ +00019380: 6e6e 6563 7465 6420 7363 656e 652e 0a0a nnected scene... │ │ │ │ +00019390: 1f0a 4669 6c65 3a20 736b 6574 6368 2e69 ..File: sketch.i │ │ │ │ +000193a0: 6e66 6f2c 2020 4e6f 6465 3a20 4275 6773 nfo, Node: Bugs │ │ │ │ +000193b0: 2061 6e64 2061 6e6f 6d61 6c69 6573 2c20 and anomalies, │ │ │ │ +000193c0: 2050 7265 763a 2053 7461 7469 7374 6963 Prev: Statistic │ │ │ │ +000193d0: 732c 2020 5570 3a20 4869 6464 656e 2073 s, Up: Hidden s │ │ │ │ +000193e0: 7572 6661 6365 2072 656d 6f76 616c 0a0a urface removal.. │ │ │ │ +000193f0: 342e 342e 332e 3220 4275 6773 2061 6e64 4.4.3.2 Bugs and │ │ │ │ +00019400: 2061 6e6f 6d61 6c69 6573 0a2e 2e2e 2e2e anomalies...... │ │ │ │ +00019410: 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e 2e2e ................ │ │ │ │ +00019420: 2e2e 2e2e 2e0a 0a50 6f6c 7967 6f6e 2061 .......Polygon a │ │ │ │ +00019430: 6e64 206c 696e 6520 7370 6c69 7474 696e nd line splittin │ │ │ │ +00019440: 6720 6361 6e20 626f 7468 2063 6175 7365 g can both cause │ │ │ │ +00019450: 2061 6e6f 6d61 6c69 6573 2069 6e20 7468 anomalies in th │ │ │ │ +00019460: 6520 6f75 7470 7574 2e0a e280 9850 5354 e output.....PST │ │ │ │ +00019470: 7269 636b 73e2 8099 2064 6173 6820 7061 ricks... dash pa │ │ │ │ +00019480: 7474 6572 6e73 2c20 7370 6563 6966 6965 tterns, specifie │ │ │ │ +00019490: 6420 7769 7468 20e2 8098 6c69 6e65 7374 d with ...linest │ │ │ │ +000194a0: 796c 653d 6461 7368 6564 e280 992c 2063 yle=dashed..., c │ │ │ │ +000194b0: 616e 2062 650a 6469 7372 7570 7465 6420 an be.disrupted │ │ │ │ +000194c0: 6279 2073 706c 6974 7469 6e67 2e20 2054 by splitting. T │ │ │ │ +000194d0: 6869 7320 6f63 6375 7273 2077 6865 6e20 his occurs when │ │ │ │ +000194e0: 7468 6520 6465 7074 6820 736f 7274 2067 the depth sort g │ │ │ │ +000194f0: 6976 6573 2075 7020 746f 6f0a 6561 726c ives up too.earl │ │ │ │ +00019500: 7920 616e 6420 7370 6c69 7473 2061 206c y and splits a l │ │ │ │ +00019510: 696e 6520 7768 6572 6520 6974 2069 7320 ine where it is │ │ │ │ +00019520: 6e6f 7420 7265 616c 6c79 206e 6563 6573 not really neces │ │ │ │ +00019530: 7361 7279 2e20 2041 2077 6f72 6b61 726f sary. A workaro │ │ │ │ +00019540: 756e 640a 6973 2074 6f20 7573 6520 6772 und.is to use gr │ │ │ │ +00019550: 6179 206f 7220 6669 6e65 6c79 2064 6f74 ay or finely dot │ │ │ │ +00019560: 7465 6420 6c69 6e65 7320 696e 7374 6561 ted lines instea │ │ │ │ +00019570: 642e 2020 4966 2079 6f75 7220 6472 6177 d. If your draw │ │ │ │ +00019580: 696e 6720 6973 0a73 6d61 6c6c 2c20 796f ing is.small, yo │ │ │ │ +00019590: 7520 6361 6e20 616c 736f 2065 6469 7420 u can also edit │ │ │ │ +000195a0: 7468 6520 e280 9873 6b65 7463 68e2 8099 the ...sketch... │ │ │ │ +000195b0: 206f 7574 7075 7420 6279 2068 616e 6420 output by hand │ │ │ │ +000195c0: 746f 206d 6572 6765 2074 6865 2070 6965 to merge the pie │ │ │ │ +000195d0: 6365 730a 6f66 2074 6865 206f 6666 656e ces.of the offen │ │ │ │ +000195e0: 6469 6e67 206c 696e 652e 0a0a 2020 2041 ding line... A │ │ │ │ +000195f0: 6e6f 7468 6572 2061 6e6f 6d61 6c79 2069 nother anomaly i │ │ │ │ +00019600: 7320 7469 6e79 2028 6f72 2069 6e20 6465 s tiny (or in de │ │ │ │ +00019610: 6765 6e65 7261 7465 2063 6173 6573 206e generate cases n │ │ │ │ +00019620: 6f74 2d73 6f2d 7469 6e79 2920 6e6f 7463 ot-so-tiny) notc │ │ │ │ +00019630: 6865 730a 696e 2074 6865 206c 696e 6573 hes.in the lines │ │ │ │ +00019640: 2074 6861 7420 626f 7264 6572 2073 706c that border spl │ │ │ │ +00019650: 6974 2070 6f6c 7967 6f6e 732e 2020 5468 it polygons. Th │ │ │ │ +00019660: 6573 6520 6465 7269 7665 2066 726f 6d20 ese derive from │ │ │ │ +00019670: 7468 6520 7761 7920 6561 6368 0a70 6f6c the way each.pol │ │ │ │ +00019680: 7967 6f6e 2069 7320 7061 696e 7465 643a ygon is painted: │ │ │ │ +00019690: 2066 6972 7374 2c20 616c 6c20 7069 7865 first, all pixe │ │ │ │ +000196a0: 6c73 2077 6974 6869 6e20 7468 6520 626f ls within the bo │ │ │ │ +000196b0: 756e 6461 7279 2061 7265 20e2 809c 6669 undary are ...fi │ │ │ │ +000196c0: 6c6c 6564 e280 9d0a 7769 7468 2063 6f6c lled....with col │ │ │ │ +000196d0: 6f72 2028 7065 7268 6170 7320 7768 6974 or (perhaps whit │ │ │ │ +000196e0: 6529 2c20 7468 656e 2074 6865 2073 616d e), then the sam │ │ │ │ +000196f0: 6520 626f 756e 6461 7279 2069 7320 e280 e boundary is .. │ │ │ │ +00019700: 9c73 7472 6f6b 6564 e280 9d20 2861 0a50 .stroked... (a.P │ │ │ │ +00019710: 6f73 7473 6372 6970 7420 7465 726d 2920 ostscript term) │ │ │ │ +00019720: 7769 7468 2061 206c 696e 652e 2020 5468 with a line. Th │ │ │ │ +00019730: 6520 7265 7375 6c74 2069 7320 7468 6174 e result is that │ │ │ │ +00019740: 2068 616c 6620 7468 6520 6c69 6e65 206c half the line l │ │ │ │ +00019750: 6965 730a 696e 7369 6465 2074 6865 2062 ies.inside the b │ │ │ │ +00019760: 6f75 6e64 6172 7920 616e 6420 6861 6c66 oundary and half │ │ │ │ +00019770: 206f 7574 7369 6465 2c20 7768 696c 6520 outside, while │ │ │ │ +00019780: 7468 6520 5061 696e 7465 7227 7320 616c the Painter's al │ │ │ │ +00019790: 676f 7269 7468 6d0a 6173 7375 6d65 7320 gorithm.assumes │ │ │ │ +000197a0: 7468 6520 706f 6c79 676f 6e20 6c69 6573 the polygon lies │ │ │ │ +000197b0: 2065 6e74 6972 656c 7920 7769 7468 696e entirely within │ │ │ │ +000197c0: 2069 7473 2062 6f75 6e64 6172 792e 2020 its boundary. │ │ │ │ +000197d0: 5468 6520 6e6f 7463 6865 7320 6172 650a The notches are. │ │ │ │ +000197e0: 6475 6520 746f 206f 6e65 2070 6f6c 7967 due to one polyg │ │ │ │ +000197f0: 6f6e 2066 696c 6c20 6f70 6572 6174 696f on fill operatio │ │ │ │ +00019800: 6e20 6f76 6572 7772 6974 696e 6720 7468 n overwriting th │ │ │ │ +00019810: 6520 616c 7265 6164 792d 6472 6177 6e20 e already-drawn │ │ │ │ +00019820: 696e 7369 6465 0a6f 6620 7468 6520 626f inside.of the bo │ │ │ │ +00019830: 7264 6572 206f 6620 616e 6f74 6865 7220 rder of another │ │ │ │ +00019840: 706f 6c79 676f 6e2e 2831 2920 204f 6e65 polygon.(1) One │ │ │ │ +00019850: 2077 6f72 6b61 726f 756e 6420 6973 2074 workaround is t │ │ │ │ +00019860: 6f20 6d61 6b65 2062 6f72 6465 720a 6c69 o make border.li │ │ │ │ +00019870: 6e65 7320 7665 7279 2074 6869 6e2e 2020 nes very thin. │ │ │ │ +00019880: 496e 2066 6163 7420 e280 986c 696e 6577 In fact ...linew │ │ │ │ +00019890: 6964 7468 3d30 7074 e280 9920 6973 2067 idth=0pt... is g │ │ │ │ +000198a0: 7561 7261 6e74 6565 6420 746f 2065 6c69 uaranteed to eli │ │ │ │ +000198b0: 6d69 6e61 7465 0a74 6869 7320 7072 6f62 minate.this prob │ │ │ │ +000198c0: 6c65 6d2c 2074 686f 7567 6820 7468 6973 lem, though this │ │ │ │ +000198d0: 2072 6573 756c 7473 2069 6e20 7468 6520 results in the │ │ │ │ +000198e0: 7468 696e 6e65 7374 206c 696e 6520 796f thinnest line yo │ │ │ │ +000198f0: 7572 206f 7574 7075 740a 6465 7669 6365 ur output.device │ │ │ │ +00019900: 2063 616e 2064 7261 772c 2077 6869 6368 can draw, which │ │ │ │ +00019910: 2069 7320 7573 7561 6c6c 7920 746f 6f20 is usually too │ │ │ │ +00019920: 7468 696e 2e20 2059 6f75 206d 6967 6874 thin. You might │ │ │ │ +00019930: 2067 6574 206c 7563 6b79 2062 790a 6d65 get lucky by.me │ │ │ │ +00019940: 7265 6c79 2072 656f 7264 6572 696e 6720 rely reordering │ │ │ │ +00019950: 7468 696e 6773 2069 6e20 7468 6520 696e things in the in │ │ │ │ +00019960: 7075 7420 6669 6c65 2c20 7768 6963 6820 put file, which │ │ │ │ +00019970: 6973 206c 696b 656c 7920 746f 206d 6f76 is likely to mov │ │ │ │ +00019980: 6520 7468 650a 7370 6c69 7473 2074 6f20 e the.splits to │ │ │ │ +00019990: 6469 6666 6572 656e 7420 706c 6163 6573 different places │ │ │ │ +000199a0: 2e20 2054 6865 206f 6e6c 7920 7375 7265 . The only sure │ │ │ │ +000199b0: 2d66 6972 6520 736f 6c75 7469 6f6e 2069 -fire solution i │ │ │ │ +000199c0: 7320 7072 6574 7479 0a74 6572 7269 626c s pretty.terribl │ │ │ │ +000199d0: 653a 2063 7573 746f 6d20 6669 7420 e280 e: custom fit .. │ │ │ │ +000199e0: 9873 7065 6369 616c e280 9920 6f76 6572 .special... over │ │ │ │ +000199f0: 6c61 7920 6c69 6e65 7320 2877 6974 6820 lay lines (with │ │ │ │ +00019a00: e280 985c 7073 6c69 6e65 e280 9929 2074 ...\psline...) t │ │ │ │ +00019a10: 6f20 636f 7665 720a 7468 6520 6e6f 7463 o cover.the notc │ │ │ │ +00019a20: 6865 732e 0a0a 2020 2050 6f6c 7967 6f6e hes... Polygon │ │ │ │ +00019a30: 2073 706c 6974 7469 6e67 2061 6c73 6f20 splitting also │ │ │ │ +00019a40: 6272 6561 6b73 20e2 8098 5053 5472 6963 breaks ...PSTric │ │ │ │ +00019a50: 6b73 e280 9920 6861 7463 6820 7061 7474 ks... hatch patt │ │ │ │ +00019a60: 6572 6e73 2e20 2054 6865 206f 6e6c 790a erns. The only. │ │ │ │ +00019a70: 6b6e 6f77 6e20 776f 726b 6172 6f75 6e64 known workaround │ │ │ │ +00019a80: 2069 7320 746f 2073 7562 7374 6974 7574 is to substitut │ │ │ │ +00019a90: 6520 6120 736f 6c69 6420 6669 6c6c 2066 e a solid fill f │ │ │ │ +00019aa0: 6f72 2074 6865 2068 6174 6368 2e0a 0a20 or the hatch... │ │ │ │ +00019ab0: 2020 2d2d 2d2d 2d2d 2d2d 2d2d 2046 6f6f ---------- Foo │ │ │ │ +00019ac0: 746e 6f74 6573 202d 2d2d 2d2d 2d2d 2d2d tnotes --------- │ │ │ │ +00019ad0: 2d0a 0a20 2020 2831 2920 4920 6b6e 6f77 -.. (1) I know │ │ │ │ +00019ae0: 2068 6f77 2074 6f20 6669 7820 7468 6973 how to fix this │ │ │ │ +00019af0: 2070 726f 626c 656d 2c20 6275 7420 4920 problem, but I │ │ │ │ +00019b00: 646f 6e27 7420 6c69 6b65 206d 7920 736f don't like my so │ │ │ │ +00019b10: 6c75 7469 6f6e 2c20 616e 640a 4927 6d20 lution, and.I'm │ │ │ │ +00019b20: 696e 7465 7265 7374 6564 2069 6e20 796f interested in yo │ │ │ │ +00019b30: 7572 732e 0a0a 1f0a 4669 6c65 3a20 736b urs.....File: sk │ │ │ │ +00019b40: 6574 6368 2e69 6e66 6f2c 2020 4e6f 6465 etch.info, Node │ │ │ │ +00019b50: 3a20 436f 6d6d 616e 6420 6c69 6e65 2c20 : Command line, │ │ │ │ +00019b60: 204e 6578 743a 2049 6e73 7461 6c6c 696e Next: Installin │ │ │ │ +00019b70: 6720 736b 6574 6368 2c20 2050 7265 763a g sketch, Prev: │ │ │ │ +00019b80: 2042 7569 6c64 696e 6720 6120 6472 6177 Building a draw │ │ │ │ +00019b90: 696e 672c 2020 5570 3a20 546f 700a 0a35 ing, Up: Top..5 │ │ │ │ +00019ba0: 2043 6f6d 6d61 6e64 206c 696e 650a 2a2a Command line.** │ │ │ │ +00019bb0: 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 0a0a 2a53 ************..*S │ │ │ │ +00019bc0: 796e 6f70 7369 733a 2a0a 2020 2020 2073 ynopsis:*. s │ │ │ │ +00019bd0: 6b65 7463 6820 5b2d 685d 5b2d 5620 782e ketch [-h][-V x. │ │ │ │ +00019be0: 795d 5b2d 765d 5b2d 625d 5b2d 645d 5b74 y][-v][-b][-d][t │ │ │ │ +00019bf0: 2064 6f63 746d 705d 5b2d 545b 757c 655d doctmp][-T[u|e] │ │ │ │ +00019c00: 5b70 5b50 7c54 5d5b 4c7c 435d 5d5d 5b2d [p[P|T][L|C]]][- │ │ │ │ +00019c10: 6f20 6f75 7470 7574 2e74 6578 5d0a 2020 o output.tex]. │ │ │ │ +00019c20: 2020 2020 205b 2d44 2054 4147 202e 2e2e [-D TAG ... │ │ │ │ +00019c30: 5d20 696e 7075 7431 2e73 6b20 5b2d 5520 ] input1.sk [-U │ │ │ │ +00019c40: 5441 4720 2e2e 2e5d 2069 6e70 7574 322e TAG ...] input2. │ │ │ │ +00019c50: 736b 202e 2e2e 0a0a 2a44 6573 6372 6970 sk .....*Descrip │ │ │ │ +00019c60: 7469 6f6e 2a20 5072 6f63 6573 7365 7320 tion* Processes │ │ │ │ +00019c70: 7468 6520 e280 9873 6b65 7463 68e2 8099 the ...sketch... │ │ │ │ +00019c80: 2069 6e70 7574 2066 696c 6573 2069 6e20 input files in │ │ │ │ +00019c90: 6f72 6465 7220 746f 2070 726f 6475 6365 order to produce │ │ │ │ +00019ca0: 0ae2 8098 5053 5472 6963 6b73 e280 9920 ....PSTricks... │ │ │ │ +00019cb0: 6f75 7470 7574 2063 6f64 6520 7375 6974 output code suit │ │ │ │ +00019cc0: 6162 6c65 2066 6f72 2069 6e63 6c75 7369 able for inclusi │ │ │ │ +00019cd0: 6f6e 2069 6e20 6120 5465 5820 6f72 204c on in a TeX or L │ │ │ │ +00019ce0: 6154 6558 0a64 6f63 756d 656e 742e 0a0a aTeX.document... │ │ │ │ +00019cf0: 2a4f 7074 696f 6e73 3a2a 0ae2 8098 2d68 *Options:*....-h │ │ │ │ +00019d00: e280 990a 2020 2020 2050 7269 6e74 2061 .... Print a │ │ │ │ +00019d10: 2073 686f 7274 2063 6174 616c 6f67 206f short catalog o │ │ │ │ +00019d20: 6620 6f70 7469 6f6e 732e 0ae2 8098 2d56 f options.....-V │ │ │ │ +00019d30: e280 990a 2020 2020 2053 6574 2074 6865 .... Set the │ │ │ │ +00019d40: 20e2 8098 5053 5472 6963 6b73 e280 9920 ...PSTricks... │ │ │ │ +00019d50: 7665 7273 696f 6e20 6173 7375 6d65 6420 version assumed │ │ │ │ +00019d60: 666f 7220 6f75 7470 7574 2070 7572 706f for output purpo │ │ │ │ +00019d70: 7365 7320 746f 20e2 8098 782e 79e2 8099 ses to ...x.y... │ │ │ │ +00019d80: 2c0a 2020 2020 2066 6f72 2065 7861 6d70 ,. for examp │ │ │ │ +00019d90: 6c65 2031 2e31 392e 2020 5573 7561 6c6c le 1.19. Usuall │ │ │ │ +00019da0: 7920 6e65 6564 6564 206f 6e6c 7920 6966 y needed only if │ │ │ │ +00019db0: 2079 6f75 7220 e280 9850 5354 7269 636b your ...PSTrick │ │ │ │ +00019dc0: 73e2 8099 2069 7320 6f6c 640a 2020 2020 s... is old. │ │ │ │ +00019dd0: 2063 6f6d 7061 7265 6420 746f 2079 6f75 compared to you │ │ │ │ +00019de0: 7220 e280 9873 6b65 7463 68e2 8099 2e20 r ...sketch.... │ │ │ │ +00019df0: 2055 7365 20e2 8098 2d76 e280 9920 746f Use ...-v... to │ │ │ │ +00019e00: 2073 6565 2077 6861 7420 e280 9873 6b65 see what ...ske │ │ │ │ +00019e10: 7463 68e2 8099 2061 7373 756d 6573 0a20 tch... assumes. │ │ │ │ +00019e20: 2020 2020 6279 2064 6566 6175 6c74 2e0a by default.. │ │ │ │ +00019e30: e280 982d 76e2 8099 0a20 2020 2020 5072 ...-v.... Pr │ │ │ │ +00019e40: 696e 7420 7665 7273 696f 6e20 696e 666f int version info │ │ │ │ +00019e50: 726d 6174 696f 6e20 746f 2073 7461 6e64 rmation to stand │ │ │ │ +00019e60: 6172 6420 6f75 7470 7574 2c20 696e 636c ard output, incl │ │ │ │ +00019e70: 7564 696e 6720 7468 6520 7665 7273 696f uding the versio │ │ │ │ +00019e80: 6e0a 2020 2020 206f 6620 e280 9850 5354 n. of ...PST │ │ │ │ +00019e90: 7269 636b 73e2 8099 2061 7373 756d 6564 ricks... assumed │ │ │ │ +00019ea0: 2066 6f72 206f 7574 7075 7420 2863 616e for output (can │ │ │ │ +00019eb0: 2062 6520 6368 616e 6765 6420 7769 7468 be changed with │ │ │ │ +00019ec0: 20e2 8098 2d56 e280 9920 6162 6f76 6529 ...-V... above) │ │ │ │ +00019ed0: 2e0a e280 982d 62e2 8099 0a20 2020 2020 .....-b.... │ │ │ │ +00019ee0: 5573 6520 6120 4253 5020 282a 4e6f 7465 Use a BSP (*Note │ │ │ │ +00019ef0: 2048 6964 6465 6e20 7375 7266 6163 6520 Hidden surface │ │ │ │ +00019f00: 7265 6d6f 7661 6c3a 3a2e 2920 2066 6f72 removal::.) for │ │ │ │ +00019f10: 205f 616c 6c5f 2068 6964 6465 6e0a 2020 _all_ hidden. │ │ │ │ +00019f20: 2020 2073 7572 6661 6365 2072 656d 6f76 surface remov │ │ │ │ +00019f30: 616c 2072 6174 6865 7220 7468 616e 2074 al rather than t │ │ │ │ +00019f40: 6865 2064 6566 6175 6c74 2c20 7768 6963 he default, whic │ │ │ │ +00019f50: 6820 6973 2074 6865 2064 6570 7468 2073 h is the depth s │ │ │ │ +00019f60: 6f72 740a 2020 2020 2061 6c67 6f72 6974 ort. algorit │ │ │ │ +00019f70: 686d 2077 6974 6820 4253 5073 2075 7365 hm with BSPs use │ │ │ │ +00019f80: 6420 6f6e 6c79 2066 6f72 2063 7963 6c65 d only for cycle │ │ │ │ +00019f90: 2072 6573 6f6c 7574 696f 6e2e 2020 5468 resolution. Th │ │ │ │ +00019fa0: 6973 206d 6179 0a20 2020 2020 7072 6f64 is may. prod │ │ │ │ +00019fb0: 7563 6520 636f 7272 6563 7420 6f75 7470 uce correct outp │ │ │ │ +00019fc0: 7574 2069 6e20 6365 7274 6169 6e20 6465 ut in certain de │ │ │ │ +00019fd0: 6765 6e65 7261 7465 2063 6173 6573 2077 generate cases w │ │ │ │ +00019fe0: 6865 7265 2074 6865 2064 6570 7468 0a20 here the depth. │ │ │ │ +00019ff0: 2020 2020 736f 7274 2063 616e 6e6f 742c sort cannot, │ │ │ │ +0001a000: 2062 7574 2069 7420 616c 736f 206c 6561 but it also lea │ │ │ │ +0001a010: 6473 2074 6f20 6d61 6e79 2067 7261 7475 ds to many gratu │ │ │ │ +0001a020: 6974 6f75 7320 7370 6c69 7473 2c20 6865 itous splits, he │ │ │ │ +0001a030: 6e63 650a 2020 2020 206d 6f72 6520 616e nce. more an │ │ │ │ +0001a040: 6f6d 616c 6965 7320 2a6e 6f74 6520 4275 omalies *note Bu │ │ │ │ +0001a050: 6773 2061 6e64 2061 6e6f 6d61 6c69 6573 gs and anomalies │ │ │ │ +0001a060: 3a3a 2061 6e64 2062 6967 206f 7574 7075 :: and big outpu │ │ │ │ +0001a070: 7420 6669 6c65 732e 0ae2 8098 2d64 e280 t files.....-d.. │ │ │ │ +0001a080: 990a 2020 2020 2052 756e 20e2 8098 736b .. Run ...sk │ │ │ │ +0001a090: 6574 6368 e280 9927 7320 7061 7273 6572 etch...'s parser │ │ │ │ +0001a0a0: 2069 6e20 6465 6275 6767 696e 6720 6d6f in debugging mo │ │ │ │ +0001a0b0: 6465 2e20 2054 6869 7320 6973 2070 7269 de. This is pri │ │ │ │ +0001a0c0: 6d61 7269 6c79 2066 6f72 0a20 2020 2020 marily for. │ │ │ │ +0001a0d0: 6465 7665 6c6f 706d 656e 742e 0ae2 8098 development..... │ │ │ │ +0001a0e0: 2d74 e280 990a 2020 2020 2055 7365 2063 -t.... Use c │ │ │ │ +0001a0f0: 6f6e 7465 6e74 7320 6f66 2066 696c 6520 ontents of file │ │ │ │ +0001a100: e280 9864 6f63 746d 70e2 8099 2061 7320 ...doctmp... as │ │ │ │ +0001a110: 6120 646f 6375 6d65 6e74 2074 656d 706c a document templ │ │ │ │ +0001a120: 6174 6520 696e 2077 6869 6368 2074 6f0a ate in which to. │ │ │ │ +0001a130: 2020 2020 2065 6e63 6c6f 7365 20e2 8098 enclose ... │ │ │ │ +0001a140: 5053 5472 6963 6b73 e280 9920 6f75 7470 PSTricks... outp │ │ │ │ +0001a150: 7574 2063 6f64 652e 2020 5468 6520 636f ut code. The co │ │ │ │ +0001a160: 6465 2069 7320 696e 7365 7274 6564 2069 de is inserted i │ │ │ │ +0001a170: 6e20 706c 6163 6520 6f66 0a20 2020 2020 n place of. │ │ │ │ +0001a180: 7468 6520 6669 7273 7420 696e 7374 616e the first instan │ │ │ │ +0001a190: 6365 206f 6620 7468 6520 6573 6361 7065 ce of the escape │ │ │ │ +0001a1a0: 2073 7472 696e 6720 2525 534b 4554 4348 string %%SKETCH │ │ │ │ +0001a1b0: 5f4f 5554 5055 5425 252e 0ae2 8098 2d54 _OUTPUT%%.....-T │ │ │ │ +0001a1c0: e280 990a 2020 2020 2043 6175 7365 7320 .... Causes │ │ │ │ +0001a1d0: e280 9850 5354 7269 636b 73e2 8099 206f ...PSTricks... o │ │ │ │ +0001a1e0: 7574 7075 7420 746f 2062 6520 656e 636c utput to be encl │ │ │ │ +0001a1f0: 6f73 6564 2069 6e20 6465 6661 756c 7420 osed in default │ │ │ │ +0001a200: 5553 2064 6f63 756d 656e 740a 2020 2020 US document. │ │ │ │ +0001a210: 2074 656d 706c 6174 6520 7465 7874 2e20 template text. │ │ │ │ +0001a220: 204f 7074 696f 6e20 e280 982d 5475 e280 Option ...-Tu.. │ │ │ │ +0001a230: 9920 6973 2061 2073 796e 6f6e 796d 2e20 . is a synonym. │ │ │ │ +0001a240: 204f 7074 696f 6e20 e280 982d 5465 e280 Option ...-Te.. │ │ │ │ +0001a250: 9920 6361 7573 6573 2074 6865 0a20 2020 . causes the. │ │ │ │ +0001a260: 2020 4575 726f 2073 7461 6e64 6172 6420 Euro standard │ │ │ │ +0001a270: 646f 6375 6d65 6e74 2074 656d 706c 6174 document templat │ │ │ │ +0001a280: 6520 746f 2062 6520 7573 6564 2e20 2041 e to be used. A │ │ │ │ +0001a290: 20e2 8098 70e2 8099 2061 7070 656e 6465 ...p... appende │ │ │ │ +0001a2a0: 6420 746f 2061 6e79 0a20 2020 2020 6f66 d to any. of │ │ │ │ +0001a2b0: 2074 6865 7365 206f 7074 696f 6e73 2063 these options c │ │ │ │ +0001a2c0: 6175 7365 7320 7468 6520 7265 7370 6563 auses the respec │ │ │ │ +0001a2d0: 7469 7665 2064 6566 6175 6c74 20e2 8098 tive default ... │ │ │ │ +0001a2e0: 5053 5472 6963 6b73 e280 9920 646f 6375 PSTricks... docu │ │ │ │ +0001a2f0: 6d65 6e74 0a20 2020 2020 7465 6d70 6c61 ment. templa │ │ │ │ +0001a300: 7465 2074 6f20 6265 2070 7269 6e74 6564 te to be printed │ │ │ │ +0001a310: 2074 6f20 7374 616e 6461 7264 206f 7574 to standard out │ │ │ │ +0001a320: 7075 742e 2020 416e 2061 7070 656e 6465 put. An appende │ │ │ │ +0001a330: 6420 e280 9850 e280 9920 6973 2061 0a20 d ...P... is a. │ │ │ │ +0001a340: 2020 2020 7379 6e6f 6e79 6d2e 2020 416e synonym. An │ │ │ │ +0001a350: 2061 7070 656e 6465 6420 e280 9854 e280 appended ...T.. │ │ │ │ +0001a360: 9920 6361 7573 6573 2074 6865 2074 6865 . causes the the │ │ │ │ +0001a370: 20e2 8098 5469 6b5a 2f50 4746 e280 9920 ...TikZ/PGF... │ │ │ │ +0001a380: 7465 6d70 6c61 7465 2074 6f20 6265 0a20 template to be. │ │ │ │ +0001a390: 2020 2020 7072 696e 7465 642e 2020 416e printed. An │ │ │ │ +0001a3a0: 2061 7070 656e 6465 6420 e280 984c e280 appended ...L.. │ │ │ │ +0001a3b0: 9920 7072 696e 7473 2074 6865 204c 6154 . prints the LaT │ │ │ │ +0001a3c0: 6558 2076 6572 7369 6f6e 206f 6620 7468 eX version of th │ │ │ │ +0001a3d0: 6520 646f 6375 6d65 6e74 0a20 2020 2020 e document. │ │ │ │ +0001a3e0: 7465 6d70 6c61 7465 2c20 6120 7379 6e6f template, a syno │ │ │ │ +0001a3f0: 6e79 6d20 666f 7220 7468 6520 6465 6661 nym for the defa │ │ │ │ +0001a400: 756c 742e 2020 4120 e280 9843 e280 9920 ult. A ...C... │ │ │ │ +0001a410: 7072 696e 7473 2074 6865 20e2 8098 436f prints the ...Co │ │ │ │ +0001a420: 6e54 6558 74e2 8099 0a20 2020 2020 7465 nTeXt.... te │ │ │ │ +0001a430: 6d70 6c61 7465 2e0a e280 982d 6fe2 8099 mplate.....-o... │ │ │ │ +0001a440: 0a20 2020 2020 5573 6520 e280 986f 7574 . Use ...out │ │ │ │ +0001a450: 7075 742e 7465 78e2 8099 2061 7320 7468 put.tex... as th │ │ │ │ +0001a460: 6520 6f75 7470 7574 2066 696c 652e 2020 e output file. │ │ │ │ +0001a470: 5468 6520 6465 6661 756c 7420 6973 2073 The default is s │ │ │ │ +0001a480: 7461 6e64 6172 640a 2020 2020 206f 7574 tandard. out │ │ │ │ +0001a490: 7075 742e 0ae2 8098 2d44 e280 990a 2020 put.....-D.... │ │ │ │ +0001a4a0: 2020 2044 6566 696e 6520 6120 7461 6720 Define a tag │ │ │ │ +0001a4b0: 666f 7220 7075 7270 6f73 6573 206f 6620 for purposes of │ │ │ │ +0001a4c0: 7365 6c65 6374 696e 6720 6465 6669 6e69 selecting defini │ │ │ │ +0001a4d0: 7469 6f6e 2061 6c74 6572 6e61 7469 7665 tion alternative │ │ │ │ +0001a4e0: 732e 0a20 2020 2020 2a4e 6f74 6520 4465 s.. *Note De │ │ │ │ +0001a4f0: 6669 6e69 7469 6f6e 733a 3a2e 2020 5468 finitions::. Th │ │ │ │ +0001a500: 6520 6465 6669 6e69 7469 6f6e 2061 7070 e definition app │ │ │ │ +0001a510: 6c69 6573 2066 6f72 2061 6c6c 2069 6e70 lies for all inp │ │ │ │ +0001a520: 7574 2066 696c 6573 0a20 2020 2020 7468 ut files. th │ │ │ │ +0001a530: 6174 2066 6f6c 6c6f 7720 756e 6c65 7373 at follow unless │ │ │ │ +0001a540: 2074 6865 2074 6167 2069 7320 756e 6465 the tag is unde │ │ │ │ +0001a550: 6669 6e65 6420 7769 7468 20e2 8098 2d55 fined with ...-U │ │ │ │ +0001a560: e280 992e 0ae2 8098 696e 7075 7469 2e73 ........inputi.s │ │ │ │ +0001a570: 6be2 8099 0a20 2020 2020 496e 7075 7420 k.... Input │ │ │ │ +0001a580: 6669 6c65 732c 2072 6561 6420 696e 2074 files, read in t │ │ │ │ +0001a590: 6865 2073 6571 7565 6e63 6520 7468 6579 he sequence they │ │ │ │ +0001a5a0: 2061 7265 2067 6976 656e 2e0a e280 982d are given.....- │ │ │ │ +0001a5b0: 55e2 8099 0a20 2020 2020 556e 2d64 6566 U.... Un-def │ │ │ │ +0001a5c0: 696e 6520 6120 7461 6720 666f 7220 7075 ine a tag for pu │ │ │ │ +0001a5d0: 7270 6f73 6573 206f 6620 7365 6c65 6374 rposes of select │ │ │ │ +0001a5e0: 696e 6720 6465 6669 6e69 7469 6f6e 2061 ing definition a │ │ │ │ +0001a5f0: 6c74 6572 6e61 7469 7665 732e 0a0a 1f0a lternatives..... │ │ │ │ +0001a600: 4669 6c65 3a20 736b 6574 6368 2e69 6e66 File: sketch.inf │ │ │ │ +0001a610: 6f2c 2020 4e6f 6465 3a20 496e 7374 616c o, Node: Instal │ │ │ │ +0001a620: 6c69 6e67 2073 6b65 7463 682c 2020 4e65 ling sketch, Ne │ │ │ │ +0001a630: 7874 3a20 496e 6465 7820 6f66 2073 796e xt: Index of syn │ │ │ │ +0001a640: 7461 782c 2020 5072 6576 3a20 436f 6d6d tax, Prev: Comm │ │ │ │ +0001a650: 616e 6420 6c69 6e65 2c20 2055 703a 2054 and line, Up: T │ │ │ │ +0001a660: 6f70 0a0a 3620 4275 696c 6469 6e67 2061 op..6 Building a │ │ │ │ +0001a670: 6e64 2069 6e73 7461 6c6c 696e 6720 e280 nd installing .. │ │ │ │ +0001a680: 9873 6b65 7463 68e2 8099 0a2a 2a2a 2a2a .sketch....***** │ │ │ │ +0001a690: 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a **************** │ │ │ │ +0001a6a0: 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a0a 0ae2 *************... │ │ │ │ +0001a6b0: 8098 536b 6574 6368 e280 9920 6973 2073 ..Sketch... is s │ │ │ │ +0001a6c0: 6f20 736d 616c 6c20 7468 6174 2063 6f6d o small that com │ │ │ │ +0001a6d0: 7069 6c69 6e67 2062 7920 6272 7574 6520 piling by brute │ │ │ │ +0001a6e0: 666f 7263 6520 6973 2070 726f 6261 626c force is probabl │ │ │ │ +0001a6f0: 7920 6265 7374 2e0a 5468 6520 666f 6c6c y best..The foll │ │ │ │ +0001a700: 6f77 696e 6720 636f 6d6d 616e 6420 6f75 owing command ou │ │ │ │ +0001a710: 6768 7420 746f 2064 6f20 7468 6520 7472 ght to do the tr │ │ │ │ +0001a720: 6963 6b20 6f6e 2061 6e79 2073 7973 7465 ick on any syste │ │ │ │ +0001a730: 6d73 2077 6865 7265 20e2 8098 6763 63e2 ms where ...gcc. │ │ │ │ +0001a740: 8099 0a69 7320 696e 7374 616c 6c65 642e ...is installed. │ │ │ │ +0001a750: 2020 4d61 6b65 2073 7572 6520 746f 2066 Make sure to f │ │ │ │ +0001a760: 6972 7374 2063 6861 6e67 6520 6375 7272 irst change curr │ │ │ │ +0001a770: 656e 7420 6469 7265 6374 6f72 6965 7320 ent directories │ │ │ │ +0001a780: 746f 2074 6865 0a70 6c61 6365 2077 6865 to the.place whe │ │ │ │ +0001a790: 7265 2079 6f75 2068 6176 6520 756e 7061 re you have unpa │ │ │ │ +0001a7a0: 636b 6564 2074 6865 2073 6f75 7263 6573 cked the sources │ │ │ │ +0001a7b0: 2e0a 2020 2020 2067 6363 202a 2e63 202d .. gcc *.c - │ │ │ │ +0001a7c0: 6f20 736b 6574 6368 2e65 7865 202d 6c6d o sketch.exe -lm │ │ │ │ +0001a7d0: 0a54 6865 20e2 8098 2e65 7865 e280 9920 .The ....exe... │ │ │ │ +0001a7e0: 6174 2074 6865 2065 6e64 2069 7320 6e65 at the end is ne │ │ │ │ +0001a7f0: 6365 7373 6172 7920 666f 7220 5769 6e64 cessary for Wind │ │ │ │ +0001a800: 6f77 7320 7379 7374 656d 732e 2020 4472 ows systems. Dr │ │ │ │ +0001a810: 6f70 2069 7420 6966 2079 6f75 720a 7379 op it if your.sy │ │ │ │ +0001a820: 7374 656d 2069 7320 736f 6d65 2076 6572 stem is some ver │ │ │ │ +0001a830: 7369 6f6e 206f 6620 556e 6978 2e20 204f sion of Unix. O │ │ │ │ +0001a840: 7468 6572 2043 2063 6f6d 7069 6c65 7273 ther C compilers │ │ │ │ +0001a850: 206f 7567 6874 2074 6f20 776f 726b 2061 ought to work a │ │ │ │ +0001a860: 7320 6a75 7374 0a61 7320 7765 6c6c 2e20 s just.as well. │ │ │ │ +0001a870: 2046 6f72 2065 7861 6d70 6c65 2c0a 2020 For example,. │ │ │ │ +0001a880: 2020 2063 6c20 2a2e 6320 2d6f 2073 6b65 cl *.c -o ske │ │ │ │ +0001a890: 7463 682e 6578 650a 6973 2074 6865 2063 tch.exe.is the c │ │ │ │ +0001a8a0: 6f72 7265 6374 2063 6f6d 6d61 6e64 2066 orrect command f │ │ │ │ +0001a8b0: 6f72 206d 616e 7920 7665 7273 696f 6e73 or many versions │ │ │ │ +0001a8c0: 206f 6620 4d53 2056 6973 7561 6c20 432e of MS Visual C. │ │ │ │ +0001a8d0: 2049 6e20 7468 6520 6c61 7465 7374 0a76 In the latest.v │ │ │ │ +0001a8e0: 6572 7369 6f6e 732c 204d 6963 726f 736f ersions, Microso │ │ │ │ +0001a8f0: 6674 2068 6173 2064 6570 7265 6361 7465 ft has deprecate │ │ │ │ +0001a900: 6420 7468 6520 e280 982d 6fe2 8099 206f d the ...-o... o │ │ │ │ +0001a910: 7074 696f 6e20 616e 642c 2062 7920 6465 ption and, by de │ │ │ │ +0001a920: 6661 756c 742c 2064 6f65 730a 6e6f 7420 fault, does.not │ │ │ │ +0001a930: 6465 6669 6e65 2074 6865 20e2 8098 5f5f define the ...__ │ │ │ │ +0001a940: 5354 4443 5f5f e280 9920 6d61 6372 6f2e STDC__... macro. │ │ │ │ +0001a950: 2020 5468 6973 2063 6175 7365 7320 7072 This causes pr │ │ │ │ +0001a960: 6f62 6c65 6d73 2077 6974 6820 736f 6d65 oblems with some │ │ │ │ +0001a970: 0a76 6572 7369 6f6e 7320 6f66 20e2 8098 .versions of ... │ │ │ │ +0001a980: 666c 6578 e280 992c 20e2 8098 6269 736f flex..., ...biso │ │ │ │ +0001a990: 6ee2 8099 2c20 e280 986c 6578 e280 992c n..., ...lex..., │ │ │ │ +0001a9a0: 2061 6e64 20e2 8098 7961 6363 e280 992c and ...yacc..., │ │ │ │ +0001a9b0: 2077 6869 6368 2061 7265 2075 7365 6420 which are used │ │ │ │ +0001a9c0: 746f 2063 7265 6174 650a 7468 6520 e280 to create.the .. │ │ │ │ +0001a9d0: 9873 6b65 7463 68e2 8099 2073 6361 6e6e .sketch... scann │ │ │ │ +0001a9e0: 6572 2061 6e64 2070 6172 7365 722e 2020 er and parser. │ │ │ │ +0001a9f0: 4974 2773 206e 6561 726c 7920 616c 7761 It's nearly alwa │ │ │ │ +0001aa00: 7973 2070 6f73 7369 626c 6520 746f 2066 ys possible to f │ │ │ │ +0001aa10: 696e 6420 610a 7365 7420 6f66 206f 7074 ind a.set of opt │ │ │ │ +0001aa20: 696f 6e73 2074 6861 7420 636f 6d70 696c ions that compil │ │ │ │ +0001aa30: 6573 2077 6974 6820 6e6f 2065 7272 6f72 es with no error │ │ │ │ +0001aa40: 7320 6f72 2077 6172 6e69 6e67 732c 2061 s or warnings, a │ │ │ │ +0001aa50: 6e64 2074 6869 7320 6d65 616e 730a e280 nd this means... │ │ │ │ +0001aa60: 9873 6b65 7463 68e2 8099 2069 7320 5f76 .sketch... is _v │ │ │ │ +0001aa70: 6572 795f 206c 696b 656c 7920 746f 2077 ery_ likely to w │ │ │ │ +0001aa80: 6f72 6b20 636f 7272 6563 746c 792e 2020 ork correctly. │ │ │ │ +0001aa90: 466f 7220 6578 616d 706c 652c 2074 6865 For example, the │ │ │ │ +0001aaa0: 2056 6973 7561 6c0a 432b 2b20 3230 3035 Visual.C++ 2005 │ │ │ │ +0001aab0: 2045 7870 7265 7373 2045 6469 7469 6f6e Express Edition │ │ │ │ +0001aac0: 2063 6f6d 7069 6c65 7220 2861 7661 696c compiler (avail │ │ │ │ +0001aad0: 6162 6c65 2066 7265 6520 6f66 2063 6861 able free of cha │ │ │ │ +0001aae0: 7267 6520 6672 6f6d 2074 6865 0a4d 6963 rge from the.Mic │ │ │ │ +0001aaf0: 726f 736f 6674 2077 6562 2073 6974 6529 rosoft web site) │ │ │ │ +0001ab00: 2c20 e280 9866 6c65 78e2 8099 2076 6572 , ...flex... ver │ │ │ │ +0001ab10: 7369 6f6e 2032 2e35 2e34 2c20 616e 6420 sion 2.5.4, and │ │ │ │ +0001ab20: e280 9862 6973 6f6e e280 9920 7665 7273 ...bison... vers │ │ │ │ +0001ab30: 696f 6e20 322e 3120 6275 696c 640a 6572 ion 2.1 build.er │ │ │ │ +0001ab40: 726f 722d 6672 6565 2077 6974 680a 2020 ror-free with. │ │ │ │ +0001ab50: 2020 2063 6c20 2d44 5959 5f4e 4556 4552 cl -DYY_NEVER │ │ │ │ +0001ab60: 5f49 4e54 4552 4143 5449 5645 3d31 202d _INTERACTIVE=1 - │ │ │ │ +0001ab70: 5a61 202d 4f78 202d 4665 736b 6574 6368 Za -Ox -Fesketch │ │ │ │ +0001ab80: 2e65 7865 202a 2e63 0a0a 2020 2046 6f72 .exe *.c.. For │ │ │ │ +0001ab90: 2070 7572 6973 7473 2c20 7468 6572 6520 purists, there │ │ │ │ +0001aba0: 6973 2061 6c73 6f20 6120 e280 986d 616b is also a ...mak │ │ │ │ +0001abb0: 6566 696c 65e2 8099 2063 6f6d 7061 7469 efile... compati │ │ │ │ +0001abc0: 626c 6520 7769 7468 2047 4e55 20e2 8098 ble with GNU ... │ │ │ │ +0001abd0: 6d61 6b65 e280 990a 616e 6420 e280 9867 make....and ...g │ │ │ │ +0001abe0: 6363 e280 992e 2020 5468 6520 636f 6d6d cc.... The comm │ │ │ │ +0001abf0: 616e 640a 2020 2020 206d 616b 650a 7769 and. make.wi │ │ │ │ +0001ac00: 6c6c 2062 7569 6c64 2074 6865 2065 7865 ll build the exe │ │ │ │ +0001ac10: 6375 7461 626c 652c 2069 6e63 6c75 6469 cutable, includi │ │ │ │ +0001ac20: 6e67 2074 6865 2072 6562 7569 6c64 696e ng the rebuildin │ │ │ │ +0001ac30: 6720 6f66 2074 6865 2073 6361 6e6e 6572 g of the scanner │ │ │ │ +0001ac40: 2061 6e64 0a70 6172 7365 7220 7769 7468 and.parser with │ │ │ │ +0001ac50: 20e2 8098 666c 6578 e280 9920 616e 6420 ...flex... and │ │ │ │ +0001ac60: e280 9862 6973 6f6e e280 9920 6966 2079 ...bison... if y │ │ │ │ +0001ac70: 6f75 2068 6176 6520 6368 616e 6765 6420 ou have changed │ │ │ │ +0001ac80: e280 9873 6b65 7463 682e 6ce2 8099 206f ...sketch.l... o │ │ │ │ +0001ac90: 720a e280 9873 6b65 7463 682e 79e2 8099 r....sketch.y... │ │ │ │ +0001aca0: 2072 6573 7065 6374 6976 656c 792e 0a0a respectively... │ │ │ │ +0001acb0: 2020 2057 6869 6c65 206e 6f74 2065 7373 While not ess │ │ │ │ +0001acc0: 656e 7469 616c 2c20 6275 696c 6469 6e67 ential, building │ │ │ │ +0001acd0: 2074 6865 206d 616e 7561 6c20 6973 2061 the manual is a │ │ │ │ +0001ace0: 6e20 6578 6365 6c6c 656e 7420 7465 7374 n excellent test │ │ │ │ +0001acf0: 206f 6620 796f 7572 0ae2 8098 736b 6574 of your....sket │ │ │ │ +0001ad00: 6368 e280 9920 696e 7374 616c 6c61 7469 ch... installati │ │ │ │ +0001ad10: 6f6e 2e20 2054 6f20 6275 696c 6420 7468 on. To build th │ │ │ │ +0001ad20: 6973 2064 6f63 756d 656e 7420 696e 2061 is document in a │ │ │ │ +0001ad30: 6c6c 2069 7473 206d 7972 6961 6420 666f ll its myriad fo │ │ │ │ +0001ad40: 726d 730a 2861 7373 756d 696e 6720 796f rms.(assuming yo │ │ │ │ +0001ad50: 7520 6861 7665 2074 6865 206e 6563 6573 u have the neces │ │ │ │ +0001ad60: 7361 7279 2063 6f6e 7665 7273 696f 6e20 sary conversion │ │ │ │ +0001ad70: 7072 6f67 7261 6d73 206f 6e20 796f 7572 programs on your │ │ │ │ +0001ad80: 2073 7973 7465 6d29 2c0a 7573 650a 2020 system),.use. │ │ │ │ +0001ad90: 2020 206d 616b 6520 646f 6373 0a54 6865 make docs.The │ │ │ │ +0001ada0: 2070 6f73 7369 6269 6c69 7469 6573 2061 possibilities a │ │ │ │ +0001adb0: 7265 206c 6973 7465 6420 696e 2074 6869 re listed in thi │ │ │ │ +0001adc0: 7320 666f 6c6c 6f77 696e 6720 7461 626c s following tabl │ │ │ │ +0001add0: 652e 0a46 6f72 6d61 7420 2020 2020 2020 e..Format │ │ │ │ +0001ade0: 2020 2020 2020 2020 2043 6f6e 7665 7274 Convert │ │ │ │ +0001adf0: 6572 2020 2020 2020 2020 5069 6374 7572 er Pictur │ │ │ │ +0001ae00: 6573 2020 2044 6573 6372 6970 7469 6f6e es Description │ │ │ │ +0001ae10: 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d .--------------- │ │ │ │ 0001ae20: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ 0001ae30: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ 0001ae40: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ 0001ae50: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ 0001ae60: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ -0001ae70: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ -0001ae80: 2d2d 2d2d 0a6d 616e 7561 6c2e 696e 666f ----.manual.info │ │ │ │ -0001ae90: 2020 2020 2020 2020 2020 206d 616b 6569 makei │ │ │ │ -0001aea0: 6e66 6f20 2020 2020 2020 2020 e280 982e nfo .... │ │ │ │ -0001aeb0: 7478 74e2 8099 2020 2020 2047 4e55 2049 txt... GNU I │ │ │ │ -0001aec0: 6e66 6f2e 0a6d 616e 7561 6c2e 6476 6920 nfo..manual.dvi │ │ │ │ -0001aed0: 2020 2020 2020 2020 2020 2074 6578 6932 texi2 │ │ │ │ -0001aee0: 6476 6920 2020 2020 2020 2020 e280 982e dvi .... │ │ │ │ -0001aef0: 6570 73e2 8099 2020 2020 2054 6558 2074 eps... TeX t │ │ │ │ -0001af00: 7970 6573 6574 206f 7574 7075 742e 0a6d ypeset output..m │ │ │ │ -0001af10: 616e 7561 6c2e 7073 2020 2020 2020 2020 anual.ps │ │ │ │ -0001af20: 2020 2020 2074 6578 6932 6476 692c 6476 texi2dvi,dv │ │ │ │ -0001af30: 6970 7320 2020 e280 982e 6570 73e2 8099 ips ....eps... │ │ │ │ -0001af40: 2020 2020 2050 6f73 7473 6372 6970 742e Postscript. │ │ │ │ -0001af50: 0a6d 616e 7561 6c2e 7064 6620 2020 2020 .manual.pdf │ │ │ │ -0001af60: 2020 2020 2020 2074 6578 6932 6476 6920 texi2dvi │ │ │ │ -0001af70: 2020 2020 2020 2020 e280 982e 7064 66e2 ....pdf. │ │ │ │ -0001af80: 8099 2020 2020 2041 646f 6265 2050 4446 .. Adobe PDF │ │ │ │ -0001af90: 2e0a 6d61 6e75 616c 2e68 746d 6c20 2020 ..manual.html │ │ │ │ -0001afa0: 2020 2020 2020 2020 6d61 6b65 696e 666f makeinfo │ │ │ │ -0001afb0: 2020 2020 2020 2020 20e2 8098 2e70 6e67 ....png │ │ │ │ -0001afc0: e280 9920 2020 2020 4120 7369 6e67 6c65 ... A single │ │ │ │ -0001afd0: 2077 6562 2070 6167 652e 0a6d 616e 7561 web page..manua │ │ │ │ -0001afe0: 6c2f 696e 6465 782e 6874 6d6c 2020 2020 l/index.html │ │ │ │ -0001aff0: 206d 616b 6569 6e66 6f20 2020 2020 2020 makeinfo │ │ │ │ -0001b000: 2020 e280 982e 706e 67e2 8099 2020 2020 ....png... │ │ │ │ -0001b010: 204c 696e 6b65 6420 7765 6220 7061 6765 Linked web page │ │ │ │ -0001b020: 732c 206f 6e65 2070 6572 206e 6f64 652e s, one per node. │ │ │ │ -0001b030: 0a20 2020 416c 6c20 7468 6520 7265 7175 . All the requ │ │ │ │ -0001b040: 6972 6564 2074 6f6f 6c73 2061 7265 2069 ired tools are i │ │ │ │ -0001b050: 6e63 6c75 6465 6420 696e 2074 6865 2073 ncluded in the s │ │ │ │ -0001b060: 7461 6e64 6172 6420 e280 9854 6558 204c tandard ...TeX L │ │ │ │ -0001b070: 6976 65e2 8099 0a64 6973 7472 6962 7574 ive....distribut │ │ │ │ -0001b080: 696f 6e20 6578 6365 7074 2074 6861 7420 ion except that │ │ │ │ -0001b090: 616e 2061 6464 6974 696f 6e61 6c20 6f70 an additional op │ │ │ │ -0001b0a0: 656e 2073 6f75 7263 6520 7072 6f67 7261 en source progra │ │ │ │ -0001b0b0: 6d20 e280 9865 7073 746f 6f6c e280 9920 m ...epstool... │ │ │ │ -0001b0c0: 6973 0a6e 6565 6465 6420 746f 2072 6566 is.needed to ref │ │ │ │ -0001b0d0: 696e 6520 7468 6520 456e 6361 7073 756c ine the Encapsul │ │ │ │ -0001b0e0: 6174 6564 2050 6f73 7473 6372 6970 7420 ated Postscript │ │ │ │ -0001b0f0: 626f 756e 6469 6e67 2062 6f78 6573 206f bounding boxes o │ │ │ │ -0001b100: 660a e280 9873 6b65 7463 68e2 8099 2d67 f....sketch...-g │ │ │ │ -0001b110: 656e 6572 6174 6564 2066 6967 7572 6573 enerated figures │ │ │ │ -0001b120: 2069 6e20 7468 6520 6d61 6e75 616c 2e20 in the manual. │ │ │ │ -0001b130: 2054 6869 7320 746f 6f6c 2069 7320 6176 This tool is av │ │ │ │ -0001b140: 6169 6c61 626c 6520 696e 0a62 696e 6172 ailable in.binar │ │ │ │ -0001b150: 7920 666f 726d 2066 6f72 2057 696e 646f y form for Windo │ │ │ │ -0001b160: 7773 2c20 616e 6420 6974 2062 7569 6c64 ws, and it build │ │ │ │ -0001b170: 7320 6561 7369 6c79 2077 6974 6820 6120 s easily with a │ │ │ │ -0001b180: 7369 6d70 6c65 20e2 8098 6d61 6b65 e280 simple ...make.. │ │ │ │ -0001b190: 9920 756e 6465 720a 6c69 6e75 7820 6f72 . under.linux or │ │ │ │ -0001b1a0: 2043 7967 7769 6e20 696e 7374 616c 6c61 Cygwin installa │ │ │ │ -0001b1b0: 7469 6f6e 7320 7468 6174 2068 6176 6520 tions that have │ │ │ │ -0001b1c0: 6465 7665 6c6f 706d 656e 7420 746f 6f6c development tool │ │ │ │ -0001b1d0: 7320 696e 7374 616c 6c65 6420 6f72 0a75 s installed or.u │ │ │ │ -0001b1e0: 6e64 6572 20e2 8098 4d61 6320 4f53 2058 nder ...Mac OS X │ │ │ │ -0001b1f0: e280 9920 7769 7468 20e2 8098 5843 6f64 ... with ...XCod │ │ │ │ -0001b200: 65e2 8099 2069 6e73 7461 6c6c 6564 2e0a e... installed.. │ │ │ │ -0001b210: 0a1f 0a46 696c 653a 2073 6b65 7463 682e ...File: sketch. │ │ │ │ -0001b220: 696e 666f 2c20 204e 6f64 653a 2049 6e64 info, Node: Ind │ │ │ │ -0001b230: 6578 206f 6620 7379 6e74 6178 2c20 204e ex of syntax, N │ │ │ │ -0001b240: 6578 743a 2049 6e64 6578 2c20 2050 7265 ext: Index, Pre │ │ │ │ -0001b250: 763a 2049 6e73 7461 6c6c 696e 6720 736b v: Installing sk │ │ │ │ -0001b260: 6574 6368 2c20 2055 703a 2054 6f70 0a0a etch, Up: Top.. │ │ │ │ -0001b270: 496e 6465 7820 6f66 2073 796e 7461 780a Index of syntax. │ │ │ │ -0001b280: 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a0a ***************. │ │ │ │ -0001b290: 0a00 085b 696e 6465 7800 085d 0a2a 204d ...[index..].* M │ │ │ │ -0001b2a0: 656e 753a 0a0a 2a20 2d2c 206d 696e 7573 enu:..* -, minus │ │ │ │ -0001b2b0: 206f 7065 7261 746f 723a 2020 2020 2020 operator: │ │ │ │ -0001b2c0: 2020 2020 2020 2020 2020 2020 2020 2054 T │ │ │ │ -0001b2d0: 776f 2d6f 7065 7261 6e64 2028 6269 6e61 wo-operand (bina │ │ │ │ -0001b2e0: 7279 2920 666f 726d 732e 0a20 2020 2020 ry) forms.. │ │ │ │ +0001ae70: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 0a6d 616e ------------.man │ │ │ │ +0001ae80: 7561 6c2e 696e 666f 2020 2020 2020 2020 ual.info │ │ │ │ +0001ae90: 2020 206d 616b 6569 6e66 6f20 2020 2020 makeinfo │ │ │ │ +0001aea0: 2020 2020 e280 982e 7478 74e2 8099 2020 ....txt... │ │ │ │ +0001aeb0: 2020 2047 4e55 2049 6e66 6f2e 0a6d 616e GNU Info..man │ │ │ │ +0001aec0: 7561 6c2e 6476 6920 2020 2020 2020 2020 ual.dvi │ │ │ │ +0001aed0: 2020 2074 6578 6932 6476 6920 2020 2020 texi2dvi │ │ │ │ +0001aee0: 2020 2020 e280 982e 6570 73e2 8099 2020 ....eps... │ │ │ │ +0001aef0: 2020 2054 6558 2074 7970 6573 6574 206f TeX typeset o │ │ │ │ +0001af00: 7574 7075 742e 0a6d 616e 7561 6c2e 7073 utput..manual.ps │ │ │ │ +0001af10: 2020 2020 2020 2020 2020 2020 2074 6578 tex │ │ │ │ +0001af20: 6932 6476 692c 6476 6970 7320 2020 e280 i2dvi,dvips .. │ │ │ │ +0001af30: 982e 6570 73e2 8099 2020 2020 2050 6f73 ..eps... Pos │ │ │ │ +0001af40: 7473 6372 6970 742e 0a6d 616e 7561 6c2e tscript..manual. │ │ │ │ +0001af50: 7064 6620 2020 2020 2020 2020 2020 2074 pdf t │ │ │ │ +0001af60: 6578 6932 6476 6920 2020 2020 2020 2020 exi2dvi │ │ │ │ +0001af70: e280 982e 7064 66e2 8099 2020 2020 2041 ....pdf... A │ │ │ │ +0001af80: 646f 6265 2050 4446 2e0a 6d61 6e75 616c dobe PDF..manual │ │ │ │ +0001af90: 2e68 746d 6c20 2020 2020 2020 2020 2020 .html │ │ │ │ +0001afa0: 6d61 6b65 696e 666f 2020 2020 2020 2020 makeinfo │ │ │ │ +0001afb0: 20e2 8098 2e70 6e67 e280 9920 2020 2020 ....png... │ │ │ │ +0001afc0: 4120 7369 6e67 6c65 2077 6562 2070 6167 A single web pag │ │ │ │ +0001afd0: 652e 0a6d 616e 7561 6c2f 696e 6465 782e e..manual/index. │ │ │ │ +0001afe0: 6874 6d6c 2020 2020 206d 616b 6569 6e66 html makeinf │ │ │ │ +0001aff0: 6f20 2020 2020 2020 2020 e280 982e 706e o ....pn │ │ │ │ +0001b000: 67e2 8099 2020 2020 204c 696e 6b65 6420 g... Linked │ │ │ │ +0001b010: 7765 6220 7061 6765 732c 206f 6e65 2070 web pages, one p │ │ │ │ +0001b020: 6572 206e 6f64 652e 0a20 2020 416c 6c20 er node.. All │ │ │ │ +0001b030: 7468 6520 7265 7175 6972 6564 2074 6f6f the required too │ │ │ │ +0001b040: 6c73 2061 7265 2069 6e63 6c75 6465 6420 ls are included │ │ │ │ +0001b050: 696e 2074 6865 2073 7461 6e64 6172 6420 in the standard │ │ │ │ +0001b060: e280 9854 6558 204c 6976 65e2 8099 0a64 ...TeX Live....d │ │ │ │ +0001b070: 6973 7472 6962 7574 696f 6e20 6578 6365 istribution exce │ │ │ │ +0001b080: 7074 2074 6861 7420 616e 2061 6464 6974 pt that an addit │ │ │ │ +0001b090: 696f 6e61 6c20 6f70 656e 2073 6f75 7263 ional open sourc │ │ │ │ +0001b0a0: 6520 7072 6f67 7261 6d20 e280 9865 7073 e program ...eps │ │ │ │ +0001b0b0: 746f 6f6c e280 9920 6973 0a6e 6565 6465 tool... is.neede │ │ │ │ +0001b0c0: 6420 746f 2072 6566 696e 6520 7468 6520 d to refine the │ │ │ │ +0001b0d0: 456e 6361 7073 756c 6174 6564 2050 6f73 Encapsulated Pos │ │ │ │ +0001b0e0: 7473 6372 6970 7420 626f 756e 6469 6e67 tscript bounding │ │ │ │ +0001b0f0: 2062 6f78 6573 206f 660a e280 9873 6b65 boxes of....ske │ │ │ │ +0001b100: 7463 68e2 8099 2d67 656e 6572 6174 6564 tch...-generated │ │ │ │ +0001b110: 2066 6967 7572 6573 2069 6e20 7468 6520 figures in the │ │ │ │ +0001b120: 6d61 6e75 616c 2e20 2054 6869 7320 746f manual. This to │ │ │ │ +0001b130: 6f6c 2069 7320 6176 6169 6c61 626c 6520 ol is available │ │ │ │ +0001b140: 696e 0a62 696e 6172 7920 666f 726d 2066 in.binary form f │ │ │ │ +0001b150: 6f72 2057 696e 646f 7773 2c20 616e 6420 or Windows, and │ │ │ │ +0001b160: 6974 2062 7569 6c64 7320 6561 7369 6c79 it builds easily │ │ │ │ +0001b170: 2077 6974 6820 6120 7369 6d70 6c65 20e2 with a simple . │ │ │ │ +0001b180: 8098 6d61 6b65 e280 9920 756e 6465 720a ..make... under. │ │ │ │ +0001b190: 6c69 6e75 7820 6f72 2043 7967 7769 6e20 linux or Cygwin │ │ │ │ +0001b1a0: 696e 7374 616c 6c61 7469 6f6e 7320 7468 installations th │ │ │ │ +0001b1b0: 6174 2068 6176 6520 6465 7665 6c6f 706d at have developm │ │ │ │ +0001b1c0: 656e 7420 746f 6f6c 7320 696e 7374 616c ent tools instal │ │ │ │ +0001b1d0: 6c65 6420 6f72 0a75 6e64 6572 20e2 8098 led or.under ... │ │ │ │ +0001b1e0: 4d61 6320 4f53 2058 e280 9920 7769 7468 Mac OS X... with │ │ │ │ +0001b1f0: 20e2 8098 5843 6f64 65e2 8099 2069 6e73 ...XCode... ins │ │ │ │ +0001b200: 7461 6c6c 6564 2e0a 0a1f 0a46 696c 653a talled.....File: │ │ │ │ +0001b210: 2073 6b65 7463 682e 696e 666f 2c20 204e sketch.info, N │ │ │ │ +0001b220: 6f64 653a 2049 6e64 6578 206f 6620 7379 ode: Index of sy │ │ │ │ +0001b230: 6e74 6178 2c20 204e 6578 743a 2049 6e64 ntax, Next: Ind │ │ │ │ +0001b240: 6578 2c20 2050 7265 763a 2049 6e73 7461 ex, Prev: Insta │ │ │ │ +0001b250: 6c6c 696e 6720 736b 6574 6368 2c20 2055 lling sketch, U │ │ │ │ +0001b260: 703a 2054 6f70 0a0a 496e 6465 7820 6f66 p: Top..Index of │ │ │ │ +0001b270: 2073 796e 7461 780a 2a2a 2a2a 2a2a 2a2a syntax.******** │ │ │ │ +0001b280: 2a2a 2a2a 2a2a 2a0a 0a00 085b 696e 6465 *******....[inde │ │ │ │ +0001b290: 7800 085d 0a2a 204d 656e 753a 0a0a 2a20 x..].* Menu:..* │ │ │ │ +0001b2a0: 2d2c 206d 696e 7573 206f 7065 7261 746f -, minus operato │ │ │ │ +0001b2b0: 723a 2020 2020 2020 2020 2020 2020 2020 r: │ │ │ │ +0001b2c0: 2020 2020 2020 2054 776f 2d6f 7065 7261 Two-opera │ │ │ │ +0001b2d0: 6e64 2028 6269 6e61 7279 2920 666f 726d nd (binary) form │ │ │ │ +0001b2e0: 732e 0a20 2020 2020 2020 2020 2020 2020 s.. │ │ │ │ 0001b2f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001b300: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001b310: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001b320: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ -0001b330: 3135 290a 2a20 2d2c 2075 6e61 7279 206d 15).* -, unary m │ │ │ │ -0001b340: 696e 7573 206f 7065 7261 746f 723a 2020 inus operator: │ │ │ │ -0001b350: 2020 2020 2020 2020 2020 2020 2055 6e61 Una │ │ │ │ -0001b360: 7279 2066 6f72 6d73 2e20 2020 2020 2020 ry forms. │ │ │ │ -0001b370: 2020 2028 6c69 6e65 2031 3029 0a2a 202e (line 10).* . │ │ │ │ -0001b380: 2c20 646f 7420 6f70 6572 6174 6f72 3a20 , dot operator: │ │ │ │ -0001b390: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001b3a0: 2020 2020 2020 5477 6f2d 6f70 6572 616e Two-operan │ │ │ │ -0001b3b0: 6420 2862 696e 6172 7929 2066 6f72 6d73 d (binary) forms │ │ │ │ -0001b3c0: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ +0001b320: 2020 286c 696e 6520 3135 290a 2a20 2d2c (line 15).* -, │ │ │ │ +0001b330: 2075 6e61 7279 206d 696e 7573 206f 7065 unary minus ope │ │ │ │ +0001b340: 7261 746f 723a 2020 2020 2020 2020 2020 rator: │ │ │ │ +0001b350: 2020 2020 2055 6e61 7279 2066 6f72 6d73 Unary forms │ │ │ │ +0001b360: 2e20 2020 2020 2020 2020 2028 6c69 6e65 . (line │ │ │ │ +0001b370: 2031 3029 0a2a 202e 2c20 646f 7420 6f70 10).* ., dot op │ │ │ │ +0001b380: 6572 6174 6f72 3a20 2020 2020 2020 2020 erator: │ │ │ │ +0001b390: 2020 2020 2020 2020 2020 2020 2020 5477 Tw │ │ │ │ +0001b3a0: 6f2d 6f70 6572 616e 6420 2862 696e 6172 o-operand (binar │ │ │ │ +0001b3b0: 7929 2066 6f72 6d73 2e0a 2020 2020 2020 y) forms.. │ │ │ │ +0001b3c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001b3d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001b3e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001b3f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001b400: 2028 6c69 6e65 2031 3929 0a2a 202e 2c20 (line 19).* ., │ │ │ │ -0001b410: 646f 7420 6f70 6572 6174 6f72 203c 313e dot operator <1> │ │ │ │ -0001b420: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ -0001b430: 2020 2020 5477 6f2d 6f70 6572 616e 6420 Two-operand │ │ │ │ -0001b440: 2862 696e 6172 7929 2066 6f72 6d73 2e0a (binary) forms.. │ │ │ │ +0001b3f0: 2020 2020 2020 2020 2028 6c69 6e65 2031 (line 1 │ │ │ │ +0001b400: 3929 0a2a 202e 2c20 646f 7420 6f70 6572 9).* ., dot oper │ │ │ │ +0001b410: 6174 6f72 203c 313e 3a20 2020 2020 2020 ator <1>: │ │ │ │ +0001b420: 2020 2020 2020 2020 2020 2020 5477 6f2d Two- │ │ │ │ +0001b430: 6f70 6572 616e 6420 2862 696e 6172 7929 operand (binary) │ │ │ │ +0001b440: 2066 6f72 6d73 2e0a 2020 2020 2020 2020 forms.. │ │ │ │ 0001b450: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001b460: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001b470: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001b480: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ -0001b490: 6c69 6e65 2036 3129 0a2a 2027 782c 2027 line 61).* 'x, ' │ │ │ │ -0001b4a0: 792c 2061 6e64 2027 7a3a 2020 2020 2020 y, and 'z: │ │ │ │ -0001b4b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001b4c0: 2020 4166 6669 6e65 2061 7269 7468 6d65 Affine arithme │ │ │ │ -0001b4d0: 7469 632e 2020 2020 286c 696e 6520 3337 tic. (line 37 │ │ │ │ -0001b4e0: 290a 2a20 2778 2c20 2779 2c20 616e 6420 ).* 'x, 'y, and │ │ │ │ -0001b4f0: 277a 203c 313e 3a20 2020 2020 2020 2020 'z <1>: │ │ │ │ -0001b500: 2020 2020 2020 2020 2020 2054 776f 2d6f Two-o │ │ │ │ -0001b510: 7065 7261 6e64 2028 6269 6e61 7279 2920 perand (binary) │ │ │ │ -0001b520: 666f 726d 732e 0a20 2020 2020 2020 2020 forms.. │ │ │ │ +0001b480: 2020 2020 2020 2028 6c69 6e65 2036 3129 (line 61) │ │ │ │ +0001b490: 0a2a 2027 782c 2027 792c 2061 6e64 2027 .* 'x, 'y, and ' │ │ │ │ +0001b4a0: 7a3a 2020 2020 2020 2020 2020 2020 2020 z: │ │ │ │ +0001b4b0: 2020 2020 2020 2020 2020 4166 6669 6e65 Affine │ │ │ │ +0001b4c0: 2061 7269 7468 6d65 7469 632e 2020 2020 arithmetic. │ │ │ │ +0001b4d0: 286c 696e 6520 3337 290a 2a20 2778 2c20 (line 37).* 'x, │ │ │ │ +0001b4e0: 2779 2c20 616e 6420 277a 203c 313e 3a20 'y, and 'z <1>: │ │ │ │ +0001b4f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001b500: 2020 2054 776f 2d6f 7065 7261 6e64 2028 Two-operand ( │ │ │ │ +0001b510: 6269 6e61 7279 2920 666f 726d 732e 0a20 binary) forms.. │ │ │ │ +0001b520: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001b530: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001b540: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001b550: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001b560: 2020 2020 2020 286c 696e 6520 3431 290a (line 41). │ │ │ │ -0001b570: 2a20 2820 292c 2067 726f 7570 696e 673a * ( ), grouping: │ │ │ │ +0001b550: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ +0001b560: 696e 6520 3431 290a 2a20 2820 292c 2067 ine 41).* ( ), g │ │ │ │ +0001b570: 726f 7570 696e 673a 2020 2020 2020 2020 rouping: │ │ │ │ 0001b580: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001b590: 2020 2020 2020 2020 2054 776f 2d6f 7065 Two-ope │ │ │ │ -0001b5a0: 7261 6e64 2028 6269 6e61 7279 2920 666f rand (binary) fo │ │ │ │ -0001b5b0: 726d 732e 0a20 2020 2020 2020 2020 2020 rms.. │ │ │ │ +0001b590: 2054 776f 2d6f 7065 7261 6e64 2028 6269 Two-operand (bi │ │ │ │ +0001b5a0: 6e61 7279 2920 666f 726d 732e 0a20 2020 nary) forms.. │ │ │ │ +0001b5b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001b5c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001b5d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001b5e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001b5f0: 2020 2020 286c 696e 6520 3538 290a 2a20 (line 58).* │ │ │ │ -0001b600: 2866 6f6f 292c 2070 6f69 6e74 2072 6566 (foo), point ref │ │ │ │ -0001b610: 6572 656e 6365 3a20 2020 2020 2020 2020 erence: │ │ │ │ -0001b620: 2020 2020 2020 2044 7261 7769 6e67 2061 Drawing a │ │ │ │ -0001b630: 2073 6f6c 6964 2e20 2020 2020 2028 6c69 solid. (li │ │ │ │ -0001b640: 6e65 2032 3429 0a2a 2028 666f 6f29 2c20 ne 24).* (foo), │ │ │ │ -0001b650: 706f 696e 7420 7265 6665 7265 6e63 6520 point reference │ │ │ │ -0001b660: 3c31 3e3a 2020 2020 2020 2020 2020 2020 <1>: │ │ │ │ -0001b670: 466f 726d 7320 6f66 2072 6566 6572 656e Forms of referen │ │ │ │ -0001b680: 6365 732e 2020 286c 696e 6520 3134 290a ces. (line 14). │ │ │ │ -0001b690: 2a20 5b5b 205d 5b20 5d5b 205d 5b20 5d5d * [[ ][ ][ ][ ]] │ │ │ │ -0001b6a0: 2c20 7472 616e 7366 6f72 6d20 6c69 7465 , transform lite │ │ │ │ -0001b6b0: 7261 6c3a 2020 2020 2054 7261 6e73 666f ral: Transfo │ │ │ │ -0001b6c0: 726d 206c 6974 6572 616c 732e 2020 2028 rm literals. ( │ │ │ │ -0001b6d0: 6c69 6e65 2034 3729 0a2a 205b 5b20 5d5b line 47).* [[ ][ │ │ │ │ -0001b6e0: 205d 5b20 5d5b 205d 5d2c 2074 7261 6e73 ][ ][ ]], trans │ │ │ │ -0001b6f0: 666f 726d 206c 6974 6572 616c 203c 313e form literal <1> │ │ │ │ -0001b700: 3a20 5472 616e 7366 6f72 6d20 6c69 7465 : Transform lite │ │ │ │ -0001b710: 7261 6c73 2e20 2020 286c 696e 6520 3533 rals. (line 53 │ │ │ │ -0001b720: 290a 2a20 5b5b 666f 6f5d 5d2c 2074 7261 ).* [[foo]], tra │ │ │ │ -0001b730: 6e73 666f 726d 2072 6566 6572 656e 6365 nsform reference │ │ │ │ -0001b740: 3a20 2020 2020 2020 2020 2046 6f72 6d73 : Forms │ │ │ │ -0001b750: 206f 6620 7265 6665 7265 6e63 6573 2e20 of references. │ │ │ │ -0001b760: 2028 6c69 6e65 2031 3629 0a2a 205b 5b66 (line 16).* [[f │ │ │ │ -0001b770: 6f6f 5d5d 2c20 7472 616e 7366 6f72 6d20 oo]], transform │ │ │ │ -0001b780: 7265 6665 7265 6e63 6520 3c31 3e3a 2020 reference <1>: │ │ │ │ -0001b790: 2020 2020 4f76 6572 7669 6577 2e20 2020 Overview. │ │ │ │ -0001b7a0: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ -0001b7b0: 3335 290a 2a20 5b5b 666f 6f5d 5d2c 2074 35).* [[foo]], t │ │ │ │ -0001b7c0: 7261 6e73 666f 726d 2072 6566 6572 656e ransform referen │ │ │ │ -0001b7d0: 6365 203c 323e 3a20 2020 2020 204f 7665 ce <2>: Ove │ │ │ │ -0001b7e0: 7276 6965 772e 2020 2020 2020 2020 2020 rview. │ │ │ │ -0001b7f0: 2020 2028 6c69 6e65 2033 3529 0a2a 205b (line 35).* [ │ │ │ │ -0001b800: 666f 6f2c 2e2e 2e2c 6261 725d 2c20 6d75 foo,...,bar], mu │ │ │ │ -0001b810: 6c74 6970 6c65 206f 7074 696f 6e73 2072 ltiple options r │ │ │ │ -0001b820: 6566 6572 656e 6365 3a20 466f 726d 7320 eference: Forms │ │ │ │ -0001b830: 6f66 2072 6566 6572 656e 6365 732e 0a20 of references.. │ │ │ │ +0001b5e0: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ +0001b5f0: 6520 3538 290a 2a20 2866 6f6f 292c 2070 e 58).* (foo), p │ │ │ │ +0001b600: 6f69 6e74 2072 6566 6572 656e 6365 3a20 oint reference: │ │ │ │ +0001b610: 2020 2020 2020 2020 2020 2020 2020 2044 D │ │ │ │ +0001b620: 7261 7769 6e67 2061 2073 6f6c 6964 2e20 rawing a solid. │ │ │ │ +0001b630: 2020 2020 2028 6c69 6e65 2032 3429 0a2a (line 24).* │ │ │ │ +0001b640: 2028 666f 6f29 2c20 706f 696e 7420 7265 (foo), point re │ │ │ │ +0001b650: 6665 7265 6e63 6520 3c31 3e3a 2020 2020 ference <1>: │ │ │ │ +0001b660: 2020 2020 2020 2020 466f 726d 7320 6f66 Forms of │ │ │ │ +0001b670: 2072 6566 6572 656e 6365 732e 2020 286c references. (l │ │ │ │ +0001b680: 696e 6520 3134 290a 2a20 5b5b 205d 5b20 ine 14).* [[ ][ │ │ │ │ +0001b690: 5d5b 205d 5b20 5d5d 2c20 7472 616e 7366 ][ ][ ]], transf │ │ │ │ +0001b6a0: 6f72 6d20 6c69 7465 7261 6c3a 2020 2020 orm literal: │ │ │ │ +0001b6b0: 2054 7261 6e73 666f 726d 206c 6974 6572 Transform liter │ │ │ │ +0001b6c0: 616c 732e 2020 2028 6c69 6e65 2034 3729 als. (line 47) │ │ │ │ +0001b6d0: 0a2a 205b 5b20 5d5b 205d 5b20 5d5b 205d .* [[ ][ ][ ][ ] │ │ │ │ +0001b6e0: 5d2c 2074 7261 6e73 666f 726d 206c 6974 ], transform lit │ │ │ │ +0001b6f0: 6572 616c 203c 313e 3a20 5472 616e 7366 eral <1>: Transf │ │ │ │ +0001b700: 6f72 6d20 6c69 7465 7261 6c73 2e20 2020 orm literals. │ │ │ │ +0001b710: 286c 696e 6520 3533 290a 2a20 5b5b 666f (line 53).* [[fo │ │ │ │ +0001b720: 6f5d 5d2c 2074 7261 6e73 666f 726d 2072 o]], transform r │ │ │ │ +0001b730: 6566 6572 656e 6365 3a20 2020 2020 2020 eference: │ │ │ │ +0001b740: 2020 2046 6f72 6d73 206f 6620 7265 6665 Forms of refe │ │ │ │ +0001b750: 7265 6e63 6573 2e20 2028 6c69 6e65 2031 rences. (line 1 │ │ │ │ +0001b760: 3629 0a2a 205b 5b66 6f6f 5d5d 2c20 7472 6).* [[foo]], tr │ │ │ │ +0001b770: 616e 7366 6f72 6d20 7265 6665 7265 6e63 ansform referenc │ │ │ │ +0001b780: 6520 3c31 3e3a 2020 2020 2020 4f76 6572 e <1>: Over │ │ │ │ +0001b790: 7669 6577 2e20 2020 2020 2020 2020 2020 view. │ │ │ │ +0001b7a0: 2020 286c 696e 6520 3335 290a 2a20 5b5b (line 35).* [[ │ │ │ │ +0001b7b0: 666f 6f5d 5d2c 2074 7261 6e73 666f 726d foo]], transform │ │ │ │ +0001b7c0: 2072 6566 6572 656e 6365 203c 323e 3a20 reference <2>: │ │ │ │ +0001b7d0: 2020 2020 204f 7665 7276 6965 772e 2020 Overview. │ │ │ │ +0001b7e0: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ +0001b7f0: 2033 3529 0a2a 205b 666f 6f2c 2e2e 2e2c 35).* [foo,..., │ │ │ │ +0001b800: 6261 725d 2c20 6d75 6c74 6970 6c65 206f bar], multiple o │ │ │ │ +0001b810: 7074 696f 6e73 2072 6566 6572 656e 6365 ptions reference │ │ │ │ +0001b820: 3a20 466f 726d 7320 6f66 2072 6566 6572 : Forms of refer │ │ │ │ +0001b830: 656e 6365 732e 0a20 2020 2020 2020 2020 ences.. │ │ │ │ 0001b840: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001b850: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001b860: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001b870: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ -0001b880: 696e 6520 3138 290a 2a20 5b66 6f6f 5d2c ine 18).* [foo], │ │ │ │ -0001b890: 206f 7074 696f 6e73 2072 6566 6572 656e options referen │ │ │ │ -0001b8a0: 6365 3a20 2020 2020 2020 2020 2020 2020 ce: │ │ │ │ -0001b8b0: 2050 6f6c 796c 696e 6520 7377 6565 7073 Polyline sweeps │ │ │ │ -0001b8c0: 2077 6974 6820 636c 6f73 7572 652e 0a20 with closure.. │ │ │ │ +0001b870: 2020 2020 2020 286c 696e 6520 3138 290a (line 18). │ │ │ │ +0001b880: 2a20 5b66 6f6f 5d2c 206f 7074 696f 6e73 * [foo], options │ │ │ │ +0001b890: 2072 6566 6572 656e 6365 3a20 2020 2020 reference: │ │ │ │ +0001b8a0: 2020 2020 2020 2020 2050 6f6c 796c 696e Polylin │ │ │ │ +0001b8b0: 6520 7377 6565 7073 2077 6974 6820 636c e sweeps with cl │ │ │ │ +0001b8c0: 6f73 7572 652e 0a20 2020 2020 2020 2020 osure.. │ │ │ │ 0001b8d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001b8e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001b8f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001b900: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ -0001b910: 696e 6520 3234 290a 2a20 5b66 6f6f 5d2c ine 24).* [foo], │ │ │ │ -0001b920: 206f 7074 696f 6e73 2072 6566 6572 656e options referen │ │ │ │ -0001b930: 6365 203c 313e 3a20 2020 2020 2020 2020 ce <1>: │ │ │ │ -0001b940: 2046 6f72 6d73 206f 6620 7265 6665 7265 Forms of refere │ │ │ │ -0001b950: 6e63 6573 2e20 2028 6c69 6e65 2031 3829 nces. (line 18) │ │ │ │ -0001b960: 0a2a 205b 666f 6f5d 2c20 7665 6374 6f72 .* [foo], vector │ │ │ │ -0001b970: 2072 6566 6572 656e 6365 3a20 2020 2020 reference: │ │ │ │ -0001b980: 2020 2020 2020 2020 2020 506f 6c79 6c69 Polyli │ │ │ │ -0001b990: 6e65 2073 7765 6570 732e 2020 2020 2020 ne sweeps. │ │ │ │ -0001b9a0: 286c 696e 6520 3230 290a 2a20 5b66 6f6f (line 20).* [foo │ │ │ │ -0001b9b0: 5d2c 2076 6563 746f 7220 7265 6665 7265 ], vector refere │ │ │ │ -0001b9c0: 6e63 6520 3c31 3e3a 2020 2020 2020 2020 nce <1>: │ │ │ │ -0001b9d0: 2020 2046 6f72 6d73 206f 6620 7265 6665 Forms of refe │ │ │ │ -0001b9e0: 7265 6e63 6573 2e20 2028 6c69 6e65 2031 rences. (line 1 │ │ │ │ -0001b9f0: 3529 0a2a 207b 207d 2c20 626c 6f63 6b20 5).* { }, block │ │ │ │ -0001ba00: 6472 6177 6162 6c65 3a20 2020 2020 2020 drawable: │ │ │ │ -0001ba10: 2020 2020 2020 2020 2020 2020 4f62 6a65 Obje │ │ │ │ -0001ba20: 6374 2074 7261 6e73 666f 726d 732e 2020 ct transforms. │ │ │ │ -0001ba30: 2020 286c 696e 6520 3234 290a 2a20 7b20 (line 24).* { │ │ │ │ -0001ba40: 7d2c 2062 6c6f 636b 2064 7261 7761 626c }, block drawabl │ │ │ │ -0001ba50: 6520 3c31 3e3a 2020 2020 2020 2020 2020 e <1>: │ │ │ │ -0001ba60: 2020 2020 204e 6573 7465 6420 7377 6565 Nested swee │ │ │ │ -0001ba70: 7073 2e20 2020 2020 2020 2028 6c69 6e65 ps. (line │ │ │ │ -0001ba80: 2032 3529 0a2a 207b 207d 2c20 626c 6f63 25).* { }, bloc │ │ │ │ -0001ba90: 6b20 6472 6177 6162 6c65 203c 323e 3a20 k drawable <2>: │ │ │ │ -0001baa0: 2020 2020 2020 2020 2020 2020 2020 5377 Sw │ │ │ │ -0001bab0: 6570 7420 626c 6f63 6b73 2e20 2020 2020 ept blocks. │ │ │ │ -0001bac0: 2020 2020 286c 696e 6520 2037 290a 2a20 (line 7).* │ │ │ │ -0001bad0: 7b20 7d2c 2062 6c6f 636b 2064 7261 7761 { }, block drawa │ │ │ │ -0001bae0: 626c 6520 3c33 3e3a 2020 2020 2020 2020 ble <3>: │ │ │ │ -0001baf0: 2020 2020 2020 2042 6c6f 636b 732e 2020 Blocks. │ │ │ │ -0001bb00: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ -0001bb10: 6e65 2020 3629 0a2a 207b 207d 2c20 626c ne 6).* { }, bl │ │ │ │ -0001bb20: 6f63 6b20 6472 6177 6162 6c65 203c 343e ock drawable <4> │ │ │ │ -0001bb30: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ -0001bb40: 4f76 6572 7669 6577 2e20 2020 2020 2020 Overview. │ │ │ │ -0001bb50: 2020 2020 2020 286c 696e 6520 3337 290a (line 37). │ │ │ │ -0001bb60: 2a20 7b66 6f6f 7d2c 2064 7261 7761 626c * {foo}, drawabl │ │ │ │ -0001bb70: 6520 7265 6665 7265 6e63 653a 2020 2020 e reference: │ │ │ │ -0001bb80: 2020 2020 2020 2020 204f 626a 6563 7420 Object │ │ │ │ -0001bb90: 7472 616e 7366 6f72 6d73 2e20 2020 2028 transforms. ( │ │ │ │ -0001bba0: 6c69 6e65 2033 3329 0a2a 207b 666f 6f7d line 33).* {foo} │ │ │ │ -0001bbb0: 2c20 6472 6177 6162 6c65 2072 6566 6572 , drawable refer │ │ │ │ -0001bbc0: 656e 6365 203c 313e 3a20 2020 2020 2020 ence <1>: │ │ │ │ -0001bbd0: 2020 466f 726d 7320 6f66 2072 6566 6572 Forms of refer │ │ │ │ -0001bbe0: 656e 6365 732e 2020 286c 696e 6520 3137 ences. (line 17 │ │ │ │ -0001bbf0: 290a 2a20 7b66 6f6f 7d2c 2064 7261 7761 ).* {foo}, drawa │ │ │ │ -0001bc00: 626c 6520 7265 6665 7265 6e63 6520 3c32 ble reference <2 │ │ │ │ -0001bc10: 3e3a 2020 2020 2020 2020 204f 7665 7276 >: Overv │ │ │ │ -0001bc20: 6965 772e 2020 2020 2020 2020 2020 2020 iew. │ │ │ │ -0001bc30: 2028 6c69 6e65 2034 3729 0a2a 207b 666f (line 47).* {fo │ │ │ │ -0001bc40: 6f7d 2c20 6472 6177 6162 6c65 2072 6566 o}, drawable ref │ │ │ │ -0001bc50: 6572 656e 6365 203c 333e 3a20 2020 2020 erence <3>: │ │ │ │ -0001bc60: 2020 2020 4f76 6572 7669 6577 2e20 2020 Overview. │ │ │ │ -0001bc70: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ -0001bc80: 3537 290a 2a20 2a2c 206d 756c 7469 706c 57).* *, multipl │ │ │ │ -0001bc90: 6963 6174 696f 6e20 6f70 6572 6174 6f72 ication operator │ │ │ │ -0001bca0: 3a20 2020 2020 2020 2020 2020 2054 776f : Two │ │ │ │ -0001bcb0: 2d6f 7065 7261 6e64 2028 6269 6e61 7279 -operand (binary │ │ │ │ -0001bcc0: 2920 666f 726d 732e 0a20 2020 2020 2020 ) forms.. │ │ │ │ +0001b900: 2020 2020 2020 286c 696e 6520 3234 290a (line 24). │ │ │ │ +0001b910: 2a20 5b66 6f6f 5d2c 206f 7074 696f 6e73 * [foo], options │ │ │ │ +0001b920: 2072 6566 6572 656e 6365 203c 313e 3a20 reference <1>: │ │ │ │ +0001b930: 2020 2020 2020 2020 2046 6f72 6d73 206f Forms o │ │ │ │ +0001b940: 6620 7265 6665 7265 6e63 6573 2e20 2028 f references. ( │ │ │ │ +0001b950: 6c69 6e65 2031 3829 0a2a 205b 666f 6f5d line 18).* [foo] │ │ │ │ +0001b960: 2c20 7665 6374 6f72 2072 6566 6572 656e , vector referen │ │ │ │ +0001b970: 6365 3a20 2020 2020 2020 2020 2020 2020 ce: │ │ │ │ +0001b980: 2020 506f 6c79 6c69 6e65 2073 7765 6570 Polyline sweep │ │ │ │ +0001b990: 732e 2020 2020 2020 286c 696e 6520 3230 s. (line 20 │ │ │ │ +0001b9a0: 290a 2a20 5b66 6f6f 5d2c 2076 6563 746f ).* [foo], vecto │ │ │ │ +0001b9b0: 7220 7265 6665 7265 6e63 6520 3c31 3e3a r reference <1>: │ │ │ │ +0001b9c0: 2020 2020 2020 2020 2020 2046 6f72 6d73 Forms │ │ │ │ +0001b9d0: 206f 6620 7265 6665 7265 6e63 6573 2e20 of references. │ │ │ │ +0001b9e0: 2028 6c69 6e65 2031 3529 0a2a 207b 207d (line 15).* { } │ │ │ │ +0001b9f0: 2c20 626c 6f63 6b20 6472 6177 6162 6c65 , block drawable │ │ │ │ +0001ba00: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +0001ba10: 2020 2020 4f62 6a65 6374 2074 7261 6e73 Object trans │ │ │ │ +0001ba20: 666f 726d 732e 2020 2020 286c 696e 6520 forms. (line │ │ │ │ +0001ba30: 3234 290a 2a20 7b20 7d2c 2062 6c6f 636b 24).* { }, block │ │ │ │ +0001ba40: 2064 7261 7761 626c 6520 3c31 3e3a 2020 drawable <1>: │ │ │ │ +0001ba50: 2020 2020 2020 2020 2020 2020 204e 6573 Nes │ │ │ │ +0001ba60: 7465 6420 7377 6565 7073 2e20 2020 2020 ted sweeps. │ │ │ │ +0001ba70: 2020 2028 6c69 6e65 2032 3529 0a2a 207b (line 25).* { │ │ │ │ +0001ba80: 207d 2c20 626c 6f63 6b20 6472 6177 6162 }, block drawab │ │ │ │ +0001ba90: 6c65 203c 323e 3a20 2020 2020 2020 2020 le <2>: │ │ │ │ +0001baa0: 2020 2020 2020 5377 6570 7420 626c 6f63 Swept bloc │ │ │ │ +0001bab0: 6b73 2e20 2020 2020 2020 2020 286c 696e ks. (lin │ │ │ │ +0001bac0: 6520 2037 290a 2a20 7b20 7d2c 2062 6c6f e 7).* { }, blo │ │ │ │ +0001bad0: 636b 2064 7261 7761 626c 6520 3c33 3e3a ck drawable <3>: │ │ │ │ +0001bae0: 2020 2020 2020 2020 2020 2020 2020 2042 B │ │ │ │ +0001baf0: 6c6f 636b 732e 2020 2020 2020 2020 2020 locks. │ │ │ │ +0001bb00: 2020 2020 2028 6c69 6e65 2020 3629 0a2a (line 6).* │ │ │ │ +0001bb10: 207b 207d 2c20 626c 6f63 6b20 6472 6177 { }, block draw │ │ │ │ +0001bb20: 6162 6c65 203c 343e 3a20 2020 2020 2020 able <4>: │ │ │ │ +0001bb30: 2020 2020 2020 2020 4f76 6572 7669 6577 Overview │ │ │ │ +0001bb40: 2e20 2020 2020 2020 2020 2020 2020 286c . (l │ │ │ │ +0001bb50: 696e 6520 3337 290a 2a20 7b66 6f6f 7d2c ine 37).* {foo}, │ │ │ │ +0001bb60: 2064 7261 7761 626c 6520 7265 6665 7265 drawable refere │ │ │ │ +0001bb70: 6e63 653a 2020 2020 2020 2020 2020 2020 nce: │ │ │ │ +0001bb80: 204f 626a 6563 7420 7472 616e 7366 6f72 Object transfor │ │ │ │ +0001bb90: 6d73 2e20 2020 2028 6c69 6e65 2033 3329 ms. (line 33) │ │ │ │ +0001bba0: 0a2a 207b 666f 6f7d 2c20 6472 6177 6162 .* {foo}, drawab │ │ │ │ +0001bbb0: 6c65 2072 6566 6572 656e 6365 203c 313e le reference <1> │ │ │ │ +0001bbc0: 3a20 2020 2020 2020 2020 466f 726d 7320 : Forms │ │ │ │ +0001bbd0: 6f66 2072 6566 6572 656e 6365 732e 2020 of references. │ │ │ │ +0001bbe0: 286c 696e 6520 3137 290a 2a20 7b66 6f6f (line 17).* {foo │ │ │ │ +0001bbf0: 7d2c 2064 7261 7761 626c 6520 7265 6665 }, drawable refe │ │ │ │ +0001bc00: 7265 6e63 6520 3c32 3e3a 2020 2020 2020 rence <2>: │ │ │ │ +0001bc10: 2020 204f 7665 7276 6965 772e 2020 2020 Overview. │ │ │ │ +0001bc20: 2020 2020 2020 2020 2028 6c69 6e65 2034 (line 4 │ │ │ │ +0001bc30: 3729 0a2a 207b 666f 6f7d 2c20 6472 6177 7).* {foo}, draw │ │ │ │ +0001bc40: 6162 6c65 2072 6566 6572 656e 6365 203c able reference < │ │ │ │ +0001bc50: 333e 3a20 2020 2020 2020 2020 4f76 6572 3>: Over │ │ │ │ +0001bc60: 7669 6577 2e20 2020 2020 2020 2020 2020 view. │ │ │ │ +0001bc70: 2020 286c 696e 6520 3537 290a 2a20 2a2c (line 57).* *, │ │ │ │ +0001bc80: 206d 756c 7469 706c 6963 6174 696f 6e20 multiplication │ │ │ │ +0001bc90: 6f70 6572 6174 6f72 3a20 2020 2020 2020 operator: │ │ │ │ +0001bca0: 2020 2020 2054 776f 2d6f 7065 7261 6e64 Two-operand │ │ │ │ +0001bcb0: 2028 6269 6e61 7279 2920 666f 726d 732e (binary) forms. │ │ │ │ +0001bcc0: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ 0001bcd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001bce0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001bcf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001bd00: 2020 2020 2020 2020 286c 696e 6520 3139 (line 19 │ │ │ │ -0001bd10: 290a 2a20 2a2c 206d 756c 7469 706c 6963 ).* *, multiplic │ │ │ │ -0001bd20: 6174 696f 6e20 6f70 6572 6174 6f72 203c ation operator < │ │ │ │ -0001bd30: 313e 3a20 2020 2020 2020 2054 776f 2d6f 1>: Two-o │ │ │ │ -0001bd40: 7065 7261 6e64 2028 6269 6e61 7279 2920 perand (binary) │ │ │ │ -0001bd50: 666f 726d 732e 0a20 2020 2020 2020 2020 forms.. │ │ │ │ +0001bd00: 286c 696e 6520 3139 290a 2a20 2a2c 206d (line 19).* *, m │ │ │ │ +0001bd10: 756c 7469 706c 6963 6174 696f 6e20 6f70 ultiplication op │ │ │ │ +0001bd20: 6572 6174 6f72 203c 313e 3a20 2020 2020 erator <1>: │ │ │ │ +0001bd30: 2020 2054 776f 2d6f 7065 7261 6e64 2028 Two-operand ( │ │ │ │ +0001bd40: 6269 6e61 7279 2920 666f 726d 732e 0a20 binary) forms.. │ │ │ │ +0001bd50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001bd60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001bd70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001bd80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001bd90: 2020 2020 2020 286c 696e 6520 3638 290a (line 68). │ │ │ │ -0001bda0: 2a20 2f2c 2064 6976 6973 696f 6e20 6f70 * /, division op │ │ │ │ -0001bdb0: 6572 6174 6f72 3a20 2020 2020 2020 2020 erator: │ │ │ │ -0001bdc0: 2020 2020 2020 2020 2054 776f 2d6f 7065 Two-ope │ │ │ │ -0001bdd0: 7261 6e64 2028 6269 6e61 7279 2920 666f rand (binary) fo │ │ │ │ -0001bde0: 726d 732e 0a20 2020 2020 2020 2020 2020 rms.. │ │ │ │ +0001bd80: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ +0001bd90: 696e 6520 3638 290a 2a20 2f2c 2064 6976 ine 68).* /, div │ │ │ │ +0001bda0: 6973 696f 6e20 6f70 6572 6174 6f72 3a20 ision operator: │ │ │ │ +0001bdb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001bdc0: 2054 776f 2d6f 7065 7261 6e64 2028 6269 Two-operand (bi │ │ │ │ +0001bdd0: 6e61 7279 2920 666f 726d 732e 0a20 2020 nary) forms.. │ │ │ │ +0001bde0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001bdf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001be00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001be10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001be20: 2020 2020 286c 696e 6520 3338 290a 2a20 (line 38).* │ │ │ │ -0001be30: 5e2c 2065 7870 6f6e 656e 7469 6174 696f ^, exponentiatio │ │ │ │ -0001be40: 6e20 6f70 6572 6174 6f72 3a20 2020 2020 n operator: │ │ │ │ -0001be50: 2020 2020 2020 2054 776f 2d6f 7065 7261 Two-opera │ │ │ │ -0001be60: 6e64 2028 6269 6e61 7279 2920 666f 726d nd (binary) form │ │ │ │ -0001be70: 732e 0a20 2020 2020 2020 2020 2020 2020 s.. │ │ │ │ +0001be10: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ +0001be20: 6520 3338 290a 2a20 5e2c 2065 7870 6f6e e 38).* ^, expon │ │ │ │ +0001be30: 656e 7469 6174 696f 6e20 6f70 6572 6174 entiation operat │ │ │ │ +0001be40: 6f72 3a20 2020 2020 2020 2020 2020 2054 or: T │ │ │ │ +0001be50: 776f 2d6f 7065 7261 6e64 2028 6269 6e61 wo-operand (bina │ │ │ │ +0001be60: 7279 2920 666f 726d 732e 0a20 2020 2020 ry) forms.. │ │ │ │ +0001be70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001be80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001be90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001bea0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001beb0: 2020 286c 696e 6520 3237 290a 2a20 2b2c (line 27).* +, │ │ │ │ -0001bec0: 2070 6c75 7320 6f70 6572 6174 6f72 3a20 plus operator: │ │ │ │ -0001bed0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001bee0: 2020 2020 2054 776f 2d6f 7065 7261 6e64 Two-operand │ │ │ │ -0001bef0: 2028 6269 6e61 7279 2920 666f 726d 732e (binary) forms. │ │ │ │ -0001bf00: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ +0001bea0: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ +0001beb0: 3237 290a 2a20 2b2c 2070 6c75 7320 6f70 27).* +, plus op │ │ │ │ +0001bec0: 6572 6174 6f72 3a20 2020 2020 2020 2020 erator: │ │ │ │ +0001bed0: 2020 2020 2020 2020 2020 2020 2054 776f Two │ │ │ │ +0001bee0: 2d6f 7065 7261 6e64 2028 6269 6e61 7279 -operand (binary │ │ │ │ +0001bef0: 2920 666f 726d 732e 0a20 2020 2020 2020 ) forms.. │ │ │ │ +0001bf00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001bf10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001bf20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001bf30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001bf40: 286c 696e 6520 3131 290a 2a20 3c3e 2c20 (line 11).* <>, │ │ │ │ -0001bf50: 636c 6f73 7572 6520 7461 673a 2020 2020 closure tag: │ │ │ │ -0001bf60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001bf70: 2020 2050 6f69 6e74 2073 7765 6570 732e Point sweeps. │ │ │ │ -0001bf80: 2020 2020 2020 2020 2028 6c69 6e65 2031 (line 1 │ │ │ │ -0001bf90: 3829 0a2a 203c 3e2c 2063 6c6f 7375 7265 8).* <>, closure │ │ │ │ -0001bfa0: 2074 6167 203c 313e 3a20 2020 2020 2020 tag <1>: │ │ │ │ -0001bfb0: 2020 2020 2020 2020 2020 2020 506f 6c79 Poly │ │ │ │ -0001bfc0: 6c69 6e65 2073 7765 6570 7320 7769 7468 line sweeps with │ │ │ │ -0001bfd0: 2063 6c6f 7375 7265 2e0a 2020 2020 2020 closure.. │ │ │ │ +0001bf30: 2020 2020 2020 2020 286c 696e 6520 3131 (line 11 │ │ │ │ +0001bf40: 290a 2a20 3c3e 2c20 636c 6f73 7572 6520 ).* <>, closure │ │ │ │ +0001bf50: 7461 673a 2020 2020 2020 2020 2020 2020 tag: │ │ │ │ +0001bf60: 2020 2020 2020 2020 2020 2050 6f69 6e74 Point │ │ │ │ +0001bf70: 2073 7765 6570 732e 2020 2020 2020 2020 sweeps. │ │ │ │ +0001bf80: 2028 6c69 6e65 2031 3829 0a2a 203c 3e2c (line 18).* <>, │ │ │ │ +0001bf90: 2063 6c6f 7375 7265 2074 6167 203c 313e closure tag <1> │ │ │ │ +0001bfa0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +0001bfb0: 2020 2020 506f 6c79 6c69 6e65 2073 7765 Polyline swe │ │ │ │ +0001bfc0: 6570 7320 7769 7468 2063 6c6f 7375 7265 eps with closure │ │ │ │ +0001bfd0: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ 0001bfe0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001bff0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001c000: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c010: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ -0001c020: 3629 0a2a 203c 3e2c 2063 6c6f 7375 7265 6).* <>, closure │ │ │ │ -0001c030: 2074 6167 203c 323e 3a20 2020 2020 2020 tag <2>: │ │ │ │ -0001c040: 2020 2020 2020 2020 2020 2020 5377 6565 Swee │ │ │ │ -0001c050: 7073 2e20 2020 2020 2020 2020 2020 2020 ps. │ │ │ │ -0001c060: 2020 286c 696e 6520 3139 290a 2a20 3c3e (line 19).* <> │ │ │ │ -0001c070: 2c20 636c 6f73 7572 6520 7461 6720 3c33 , closure tag <3 │ │ │ │ -0001c080: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ -0001c090: 2020 2020 2053 7765 7074 2070 6f69 6e74 Swept point │ │ │ │ -0001c0a0: 732e 2020 2020 2020 2020 2028 6c69 6e65 s. (line │ │ │ │ -0001c0b0: 2020 3629 0a2a 203c 3e2c 2063 6c6f 7375 6).* <>, closu │ │ │ │ -0001c0c0: 7265 2074 6167 203c 343e 3a20 2020 2020 re tag <4>: │ │ │ │ -0001c0d0: 2020 2020 2020 2020 2020 2020 2020 5377 Sw │ │ │ │ -0001c0e0: 6570 7420 706f 696e 7473 2e20 2020 2020 ept points. │ │ │ │ -0001c0f0: 2020 2020 286c 696e 6520 3133 290a 2a20 (line 13).* │ │ │ │ -0001c100: 3c3e 2c20 636c 6f73 7572 6520 7461 6720 <>, closure tag │ │ │ │ -0001c110: 3c35 3e3a 2020 2020 2020 2020 2020 2020 <5>: │ │ │ │ -0001c120: 2020 2020 2020 2053 7765 7074 206c 696e Swept lin │ │ │ │ -0001c130: 6573 2e20 2020 2020 2020 2020 2028 6c69 es. (li │ │ │ │ -0001c140: 6e65 2020 3629 0a2a 203c 3e2c 2063 6c6f ne 6).* <>, clo │ │ │ │ -0001c150: 7375 7265 2074 6167 203c 363e 3a20 2020 sure tag <6>: │ │ │ │ -0001c160: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c170: 5377 6570 7420 6c69 6e65 732e 2020 2020 Swept lines. │ │ │ │ -0001c180: 2020 2020 2020 286c 696e 6520 3238 290a (line 28). │ │ │ │ -0001c190: 2a20 3c3e 2c20 636c 6f73 7572 6520 7461 * <>, closure ta │ │ │ │ -0001c1a0: 6720 3c37 3e3a 2020 2020 2020 2020 2020 g <7>: │ │ │ │ -0001c1b0: 2020 2020 2020 2020 2053 7765 6570 2066 Sweep f │ │ │ │ -0001c1c0: 6163 6520 7370 6c69 7474 696e 672e 2028 ace splitting. ( │ │ │ │ -0001c1d0: 6c69 6e65 2031 3129 0a2a 203c 666f 6f3e line 11).* │ │ │ │ -0001c1e0: 2c20 7461 6720 7265 6665 7265 6e63 653a , tag reference: │ │ │ │ -0001c1f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c200: 2020 466f 726d 7320 6f66 2064 6566 696e Forms of defin │ │ │ │ -0001c210: 6974 696f 6e73 2e20 286c 696e 6520 3230 itions. (line 20 │ │ │ │ -0001c220: 290a 2a20 3c66 6f6f 3e2c 2074 6167 2072 ).* , tag r │ │ │ │ -0001c230: 6566 6572 656e 6365 203c 313e 3a20 2020 eference <1>: │ │ │ │ -0001c240: 2020 2020 2020 2020 2020 2046 6f72 6d73 Forms │ │ │ │ -0001c250: 206f 6620 7265 6665 7265 6e63 6573 2e20 of references. │ │ │ │ -0001c260: 2028 6c69 6e65 2031 3929 0a2a 207c 587c (line 19).* |X| │ │ │ │ -0001c270: 2c20 6d61 676e 6974 7564 6520 6f70 6572 , magnitude oper │ │ │ │ -0001c280: 6174 6f72 3a20 2020 2020 2020 2020 2020 ator: │ │ │ │ -0001c290: 2020 2020 556e 6172 7920 666f 726d 732e Unary forms. │ │ │ │ -0001c2a0: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ -0001c2b0: 3132 290a 2a20 6163 6f73 3a20 2020 2020 12).* acos: │ │ │ │ +0001c010: 2028 6c69 6e65 2020 3629 0a2a 203c 3e2c (line 6).* <>, │ │ │ │ +0001c020: 2063 6c6f 7375 7265 2074 6167 203c 323e closure tag <2> │ │ │ │ +0001c030: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +0001c040: 2020 2020 5377 6565 7073 2e20 2020 2020 Sweeps. │ │ │ │ +0001c050: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ +0001c060: 3139 290a 2a20 3c3e 2c20 636c 6f73 7572 19).* <>, closur │ │ │ │ +0001c070: 6520 7461 6720 3c33 3e3a 2020 2020 2020 e tag <3>: │ │ │ │ +0001c080: 2020 2020 2020 2020 2020 2020 2053 7765 Swe │ │ │ │ +0001c090: 7074 2070 6f69 6e74 732e 2020 2020 2020 pt points. │ │ │ │ +0001c0a0: 2020 2028 6c69 6e65 2020 3629 0a2a 203c (line 6).* < │ │ │ │ +0001c0b0: 3e2c 2063 6c6f 7375 7265 2074 6167 203c >, closure tag < │ │ │ │ +0001c0c0: 343e 3a20 2020 2020 2020 2020 2020 2020 4>: │ │ │ │ +0001c0d0: 2020 2020 2020 5377 6570 7420 706f 696e Swept poin │ │ │ │ +0001c0e0: 7473 2e20 2020 2020 2020 2020 286c 696e ts. (lin │ │ │ │ +0001c0f0: 6520 3133 290a 2a20 3c3e 2c20 636c 6f73 e 13).* <>, clos │ │ │ │ +0001c100: 7572 6520 7461 6720 3c35 3e3a 2020 2020 ure tag <5>: │ │ │ │ +0001c110: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ +0001c120: 7765 7074 206c 696e 6573 2e20 2020 2020 wept lines. │ │ │ │ +0001c130: 2020 2020 2028 6c69 6e65 2020 3629 0a2a (line 6).* │ │ │ │ +0001c140: 203c 3e2c 2063 6c6f 7375 7265 2074 6167 <>, closure tag │ │ │ │ +0001c150: 203c 363e 3a20 2020 2020 2020 2020 2020 <6>: │ │ │ │ +0001c160: 2020 2020 2020 2020 5377 6570 7420 6c69 Swept li │ │ │ │ +0001c170: 6e65 732e 2020 2020 2020 2020 2020 286c nes. (l │ │ │ │ +0001c180: 696e 6520 3238 290a 2a20 3c3e 2c20 636c ine 28).* <>, cl │ │ │ │ +0001c190: 6f73 7572 6520 7461 6720 3c37 3e3a 2020 osure tag <7>: │ │ │ │ +0001c1a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001c1b0: 2053 7765 6570 2066 6163 6520 7370 6c69 Sweep face spli │ │ │ │ +0001c1c0: 7474 696e 672e 2028 6c69 6e65 2031 3129 tting. (line 11) │ │ │ │ +0001c1d0: 0a2a 203c 666f 6f3e 2c20 7461 6720 7265 .* , tag re │ │ │ │ +0001c1e0: 6665 7265 6e63 653a 2020 2020 2020 2020 ference: │ │ │ │ +0001c1f0: 2020 2020 2020 2020 2020 466f 726d 7320 Forms │ │ │ │ +0001c200: 6f66 2064 6566 696e 6974 696f 6e73 2e20 of definitions. │ │ │ │ +0001c210: 286c 696e 6520 3230 290a 2a20 3c66 6f6f (line 20).* , tag reference │ │ │ │ +0001c230: 203c 313e 3a20 2020 2020 2020 2020 2020 <1>: │ │ │ │ +0001c240: 2020 2046 6f72 6d73 206f 6620 7265 6665 Forms of refe │ │ │ │ +0001c250: 7265 6e63 6573 2e20 2028 6c69 6e65 2031 rences. (line 1 │ │ │ │ +0001c260: 3929 0a2a 207c 587c 2c20 6d61 676e 6974 9).* |X|, magnit │ │ │ │ +0001c270: 7564 6520 6f70 6572 6174 6f72 3a20 2020 ude operator: │ │ │ │ +0001c280: 2020 2020 2020 2020 2020 2020 556e 6172 Unar │ │ │ │ +0001c290: 7920 666f 726d 732e 2020 2020 2020 2020 y forms. │ │ │ │ +0001c2a0: 2020 286c 696e 6520 3132 290a 2a20 6163 (line 12).* ac │ │ │ │ +0001c2b0: 6f73 3a20 2020 2020 2020 2020 2020 2020 os: │ │ │ │ 0001c2c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c2d0: 2020 2020 2020 2020 2020 2020 2055 6e61 Una │ │ │ │ -0001c2e0: 7279 2066 6f72 6d73 2e20 2020 2020 2020 ry forms. │ │ │ │ -0001c2f0: 2020 2028 6c69 6e65 2031 3829 0a2a 2061 (line 18).* a │ │ │ │ -0001c300: 7272 6f77 733a 2020 2020 2020 2020 2020 rrows: │ │ │ │ -0001c310: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c320: 2020 2020 2020 4166 6669 6e65 2061 7269 Affine ari │ │ │ │ -0001c330: 7468 6d65 7469 632e 2020 2020 286c 696e thmetic. (lin │ │ │ │ -0001c340: 6520 3131 290a 2a20 6172 726f 7773 203c e 11).* arrows < │ │ │ │ -0001c350: 313e 3a20 2020 2020 2020 2020 2020 2020 1>: │ │ │ │ -0001c360: 2020 2020 2020 2020 2020 2020 2020 2041 A │ │ │ │ -0001c370: 6666 696e 6520 6172 6974 686d 6574 6963 ffine arithmetic │ │ │ │ -0001c380: 2e20 2020 2028 6c69 6e65 2032 3829 0a2a . (line 28).* │ │ │ │ -0001c390: 2061 7272 6f77 7320 3c32 3e3a 2020 2020 arrows <2>: │ │ │ │ +0001c2d0: 2020 2020 2055 6e61 7279 2066 6f72 6d73 Unary forms │ │ │ │ +0001c2e0: 2e20 2020 2020 2020 2020 2028 6c69 6e65 . (line │ │ │ │ +0001c2f0: 2031 3829 0a2a 2061 7272 6f77 733a 2020 18).* arrows: │ │ │ │ +0001c300: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001c310: 2020 2020 2020 2020 2020 2020 2020 4166 Af │ │ │ │ +0001c320: 6669 6e65 2061 7269 7468 6d65 7469 632e fine arithmetic. │ │ │ │ +0001c330: 2020 2020 286c 696e 6520 3131 290a 2a20 (line 11).* │ │ │ │ +0001c340: 6172 726f 7773 203c 313e 3a20 2020 2020 arrows <1>: │ │ │ │ +0001c350: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001c360: 2020 2020 2020 2041 6666 696e 6520 6172 Affine ar │ │ │ │ +0001c370: 6974 686d 6574 6963 2e20 2020 2028 6c69 ithmetic. (li │ │ │ │ +0001c380: 6e65 2032 3829 0a2a 2061 7272 6f77 7320 ne 28).* arrows │ │ │ │ +0001c390: 3c32 3e3a 2020 2020 2020 2020 2020 2020 <2>: │ │ │ │ 0001c3a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c3b0: 2020 2020 2020 2020 4f76 6572 7669 6577 Overview │ │ │ │ -0001c3c0: 2e20 2020 2020 2020 2020 2020 2020 286c . (l │ │ │ │ -0001c3d0: 696e 6520 3639 290a 2a20 6172 726f 7773 ine 69).* arrows │ │ │ │ -0001c3e0: 203c 333e 3a20 2020 2020 2020 2020 2020 <3>: │ │ │ │ -0001c3f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c400: 2041 2074 6563 686e 6963 616c 2064 7261 A technical dra │ │ │ │ -0001c410: 7769 6e67 2e20 2028 6c69 6e65 2032 3629 wing. (line 26) │ │ │ │ -0001c420: 0a2a 2061 7272 6f77 7320 3c34 3e3a 2020 .* arrows <4>: │ │ │ │ +0001c3b0: 4f76 6572 7669 6577 2e20 2020 2020 2020 Overview. │ │ │ │ +0001c3c0: 2020 2020 2020 286c 696e 6520 3639 290a (line 69). │ │ │ │ +0001c3d0: 2a20 6172 726f 7773 203c 333e 3a20 2020 * arrows <3>: │ │ │ │ +0001c3e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001c3f0: 2020 2020 2020 2020 2041 2074 6563 686e A techn │ │ │ │ +0001c400: 6963 616c 2064 7261 7769 6e67 2e20 2028 ical drawing. ( │ │ │ │ +0001c410: 6c69 6e65 2032 3629 0a2a 2061 7272 6f77 line 26).* arrow │ │ │ │ +0001c420: 7320 3c34 3e3a 2020 2020 2020 2020 2020 s <4>: │ │ │ │ 0001c430: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c440: 2020 2020 2020 2020 2020 4120 7465 6368 A tech │ │ │ │ -0001c450: 6e69 6361 6c20 6472 6177 696e 672e 2020 nical drawing. │ │ │ │ -0001c460: 286c 696e 6520 3638 290a 2a20 6173 696e (line 68).* asin │ │ │ │ -0001c470: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ -0001c480: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c490: 2020 2055 6e61 7279 2066 6f72 6d73 2e20 Unary forms. │ │ │ │ -0001c4a0: 2020 2020 2020 2020 2028 6c69 6e65 2031 (line 1 │ │ │ │ -0001c4b0: 3729 0a2a 2061 7461 6e32 3a20 2020 2020 7).* atan2: │ │ │ │ +0001c440: 2020 4120 7465 6368 6e69 6361 6c20 6472 A technical dr │ │ │ │ +0001c450: 6177 696e 672e 2020 286c 696e 6520 3638 awing. (line 68 │ │ │ │ +0001c460: 290a 2a20 6173 696e 3a20 2020 2020 2020 ).* asin: │ │ │ │ +0001c470: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001c480: 2020 2020 2020 2020 2020 2055 6e61 7279 Unary │ │ │ │ +0001c490: 2066 6f72 6d73 2e20 2020 2020 2020 2020 forms. │ │ │ │ +0001c4a0: 2028 6c69 6e65 2031 3729 0a2a 2061 7461 (line 17).* ata │ │ │ │ +0001c4b0: 6e32 3a20 2020 2020 2020 2020 2020 2020 n2: │ │ │ │ 0001c4c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c4d0: 2020 2020 2020 2020 2020 2020 556e 6172 Unar │ │ │ │ -0001c4e0: 7920 666f 726d 732e 2020 2020 2020 2020 y forms. │ │ │ │ -0001c4f0: 2020 286c 696e 6520 3139 290a 2a20 6361 (line 19).* ca │ │ │ │ -0001c500: 6d65 7261 3a20 2020 2020 2020 2020 2020 mera: │ │ │ │ -0001c510: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c520: 2020 2020 2043 616d 6572 612e 2020 2020 Camera. │ │ │ │ -0001c530: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ -0001c540: 2020 3629 0a2a 2063 6f6e 7465 7874 3a20 6).* context: │ │ │ │ +0001c4d0: 2020 2020 556e 6172 7920 666f 726d 732e Unary forms. │ │ │ │ +0001c4e0: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ +0001c4f0: 3139 290a 2a20 6361 6d65 7261 3a20 2020 19).* camera: │ │ │ │ +0001c500: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001c510: 2020 2020 2020 2020 2020 2020 2043 616d Cam │ │ │ │ +0001c520: 6572 612e 2020 2020 2020 2020 2020 2020 era. │ │ │ │ +0001c530: 2020 2028 6c69 6e65 2020 3629 0a2a 2063 (line 6).* c │ │ │ │ +0001c540: 6f6e 7465 7874 3a20 2020 2020 2020 2020 ontext: │ │ │ │ 0001c550: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c560: 2020 2020 2020 2020 2020 2020 2020 4c61 La │ │ │ │ -0001c570: 6e67 7561 6765 2e20 2020 2020 2020 2020 nguage. │ │ │ │ -0001c580: 2020 2020 286c 696e 6520 3137 290a 2a20 (line 17).* │ │ │ │ -0001c590: 636f 733a 2020 2020 2020 2020 2020 2020 cos: │ │ │ │ -0001c5a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c5b0: 2020 2020 2020 2055 6e61 7279 2066 6f72 Unary for │ │ │ │ -0001c5c0: 6d73 2e20 2020 2020 2020 2020 2028 6c69 ms. (li │ │ │ │ -0001c5d0: 6e65 2031 3629 0a2a 2063 756c 6c3a 2020 ne 16).* cull: │ │ │ │ +0001c560: 2020 2020 2020 4c61 6e67 7561 6765 2e20 Language. │ │ │ │ +0001c570: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ +0001c580: 6520 3137 290a 2a20 636f 733a 2020 2020 e 17).* cos: │ │ │ │ +0001c590: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001c5a0: 2020 2020 2020 2020 2020 2020 2020 2055 U │ │ │ │ +0001c5b0: 6e61 7279 2066 6f72 6d73 2e20 2020 2020 nary forms. │ │ │ │ +0001c5c0: 2020 2020 2028 6c69 6e65 2031 3629 0a2a (line 16).* │ │ │ │ +0001c5d0: 2063 756c 6c3a 2020 2020 2020 2020 2020 cull: │ │ │ │ 0001c5e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c5f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c600: 4472 6177 696e 6720 6120 736f 6c69 642e Drawing a solid. │ │ │ │ -0001c610: 2020 2020 2020 286c 696e 6520 3435 290a (line 45). │ │ │ │ -0001c620: 2a20 6375 6c6c 203c 313e 3a20 2020 2020 * cull <1>: │ │ │ │ +0001c5f0: 2020 2020 2020 2020 4472 6177 696e 6720 Drawing │ │ │ │ +0001c600: 6120 736f 6c69 642e 2020 2020 2020 286c a solid. (l │ │ │ │ +0001c610: 696e 6520 3435 290a 2a20 6375 6c6c 203c ine 45).* cull < │ │ │ │ +0001c620: 313e 3a20 2020 2020 2020 2020 2020 2020 1>: │ │ │ │ 0001c630: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c640: 2020 2020 2020 2020 2050 6f6c 796c 696e Polylin │ │ │ │ -0001c650: 6520 7377 6565 7073 2e20 2020 2020 2028 e sweeps. ( │ │ │ │ -0001c660: 6c69 6e65 2020 3929 0a2a 2063 756c 6c20 line 9).* cull │ │ │ │ -0001c670: 3c32 3e3a 2020 2020 2020 2020 2020 2020 <2>: │ │ │ │ -0001c680: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c690: 2020 5472 616e 7370 6172 656e 6379 2e20 Transparency. │ │ │ │ -0001c6a0: 2020 2020 2020 2020 286c 696e 6520 3135 (line 15 │ │ │ │ -0001c6b0: 290a 2a20 6375 6c6c 203c 333e 3a20 2020 ).* cull <3>: │ │ │ │ +0001c640: 2050 6f6c 796c 696e 6520 7377 6565 7073 Polyline sweeps │ │ │ │ +0001c650: 2e20 2020 2020 2028 6c69 6e65 2020 3929 . (line 9) │ │ │ │ +0001c660: 0a2a 2063 756c 6c20 3c32 3e3a 2020 2020 .* cull <2>: │ │ │ │ +0001c670: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001c680: 2020 2020 2020 2020 2020 5472 616e 7370 Transp │ │ │ │ +0001c690: 6172 656e 6379 2e20 2020 2020 2020 2020 arency. │ │ │ │ +0001c6a0: 286c 696e 6520 3135 290a 2a20 6375 6c6c (line 15).* cull │ │ │ │ +0001c6b0: 203c 333e 3a20 2020 2020 2020 2020 2020 <3>: │ │ │ │ 0001c6c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c6d0: 2020 2020 2020 2020 2020 2041 2074 6563 A tec │ │ │ │ -0001c6e0: 686e 6963 616c 2064 7261 7769 6e67 2e20 hnical drawing. │ │ │ │ -0001c6f0: 2028 6c69 6e65 2032 3029 0a2a 2063 756c (line 20).* cul │ │ │ │ -0001c700: 6c20 3c34 3e3a 2020 2020 2020 2020 2020 l <4>: │ │ │ │ -0001c710: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c720: 2020 2020 496e 7465 726e 616c 206f 7074 Internal opt │ │ │ │ -0001c730: 696f 6e73 2e20 2020 2020 286c 696e 6520 ions. (line │ │ │ │ -0001c740: 2037 290a 2a20 6375 6c6c 203c 353e 3a20 7).* cull <5>: │ │ │ │ +0001c6d0: 2020 2041 2074 6563 686e 6963 616c 2064 A technical d │ │ │ │ +0001c6e0: 7261 7769 6e67 2e20 2028 6c69 6e65 2032 rawing. (line 2 │ │ │ │ +0001c6f0: 3029 0a2a 2063 756c 6c20 3c34 3e3a 2020 0).* cull <4>: │ │ │ │ +0001c700: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001c710: 2020 2020 2020 2020 2020 2020 496e 7465 Inte │ │ │ │ +0001c720: 726e 616c 206f 7074 696f 6e73 2e20 2020 rnal options. │ │ │ │ +0001c730: 2020 286c 696e 6520 2037 290a 2a20 6375 (line 7).* cu │ │ │ │ +0001c740: 6c6c 203c 353e 3a20 2020 2020 2020 2020 ll <5>: │ │ │ │ 0001c750: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c760: 2020 2020 2020 2020 2020 2020 2047 6c6f Glo │ │ │ │ -0001c770: 6261 6c20 6f70 7469 6f6e 732e 2020 2020 bal options. │ │ │ │ -0001c780: 2020 2028 6c69 6e65 2031 3329 0a2a 2063 (line 13).* c │ │ │ │ -0001c790: 7572 7665 3a20 2020 2020 2020 2020 2020 urve: │ │ │ │ -0001c7a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c7b0: 2020 2020 2020 4375 7276 6573 2e20 2020 Curves. │ │ │ │ -0001c7c0: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ -0001c7d0: 6520 2036 290a 2a20 6465 663a 2020 2020 e 6).* def: │ │ │ │ +0001c760: 2020 2020 2047 6c6f 6261 6c20 6f70 7469 Global opti │ │ │ │ +0001c770: 6f6e 732e 2020 2020 2020 2028 6c69 6e65 ons. (line │ │ │ │ +0001c780: 2031 3329 0a2a 2063 7572 7665 3a20 2020 13).* curve: │ │ │ │ +0001c790: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001c7a0: 2020 2020 2020 2020 2020 2020 2020 4375 Cu │ │ │ │ +0001c7b0: 7276 6573 2e20 2020 2020 2020 2020 2020 rves. │ │ │ │ +0001c7c0: 2020 2020 286c 696e 6520 2036 290a 2a20 (line 6).* │ │ │ │ +0001c7d0: 6465 663a 2020 2020 2020 2020 2020 2020 def: │ │ │ │ 0001c7e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c7f0: 2020 2020 2020 2020 2020 2020 2020 2044 D │ │ │ │ -0001c800: 7261 7769 6e67 2061 2073 6f6c 6964 2e20 rawing a solid. │ │ │ │ -0001c810: 2020 2020 2028 6c69 6e65 2020 3929 0a2a (line 9).* │ │ │ │ -0001c820: 2064 6566 203c 313e 3a20 2020 2020 2020 def <1>: │ │ │ │ +0001c7f0: 2020 2020 2020 2044 7261 7769 6e67 2061 Drawing a │ │ │ │ +0001c800: 2073 6f6c 6964 2e20 2020 2020 2028 6c69 solid. (li │ │ │ │ +0001c810: 6e65 2020 3929 0a2a 2064 6566 203c 313e ne 9).* def <1> │ │ │ │ +0001c820: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ 0001c830: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c840: 2020 2020 2020 2020 4472 6177 696e 6720 Drawing │ │ │ │ -0001c850: 6120 736f 6c69 642e 2020 2020 2020 286c a solid. (l │ │ │ │ -0001c860: 696e 6520 3232 290a 2a20 6465 6620 3c32 ine 22).* def <2 │ │ │ │ -0001c870: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ -0001c880: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c890: 204f 626a 6563 7420 7472 616e 7366 6f72 Object transfor │ │ │ │ -0001c8a0: 6d73 2e20 2020 2028 6c69 6e65 2031 3029 ms. (line 10) │ │ │ │ -0001c8b0: 0a2a 2064 6566 203c 333e 3a20 2020 2020 .* def <3>: │ │ │ │ +0001c840: 4472 6177 696e 6720 6120 736f 6c69 642e Drawing a solid. │ │ │ │ +0001c850: 2020 2020 2020 286c 696e 6520 3232 290a (line 22). │ │ │ │ +0001c860: 2a20 6465 6620 3c32 3e3a 2020 2020 2020 * def <2>: │ │ │ │ +0001c870: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001c880: 2020 2020 2020 2020 204f 626a 6563 7420 Object │ │ │ │ +0001c890: 7472 616e 7366 6f72 6d73 2e20 2020 2028 transforms. ( │ │ │ │ +0001c8a0: 6c69 6e65 2031 3029 0a2a 2064 6566 203c line 10).* def < │ │ │ │ +0001c8b0: 333e 3a20 2020 2020 2020 2020 2020 2020 3>: │ │ │ │ 0001c8c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c8d0: 2020 2020 2020 2020 2020 506f 696e 7420 Point │ │ │ │ -0001c8e0: 7377 6565 7073 2e20 2020 2020 2020 2020 sweeps. │ │ │ │ -0001c8f0: 286c 696e 6520 3139 290a 2a20 6465 6620 (line 19).* def │ │ │ │ -0001c900: 3c34 3e3a 2020 2020 2020 2020 2020 2020 <4>: │ │ │ │ -0001c910: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c920: 2020 2050 6f6c 796c 696e 6520 7377 6565 Polyline swee │ │ │ │ -0001c930: 7073 2e20 2020 2020 2028 6c69 6e65 2020 ps. (line │ │ │ │ -0001c940: 3929 0a2a 2064 6566 203c 353e 3a20 2020 9).* def <5>: │ │ │ │ +0001c8d0: 2020 506f 696e 7420 7377 6565 7073 2e20 Point sweeps. │ │ │ │ +0001c8e0: 2020 2020 2020 2020 286c 696e 6520 3139 (line 19 │ │ │ │ +0001c8f0: 290a 2a20 6465 6620 3c34 3e3a 2020 2020 ).* def <4>: │ │ │ │ +0001c900: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001c910: 2020 2020 2020 2020 2020 2050 6f6c 796c Polyl │ │ │ │ +0001c920: 696e 6520 7377 6565 7073 2e20 2020 2020 ine sweeps. │ │ │ │ +0001c930: 2028 6c69 6e65 2020 3929 0a2a 2064 6566 (line 9).* def │ │ │ │ +0001c940: 203c 353e 3a20 2020 2020 2020 2020 2020 <5>: │ │ │ │ 0001c950: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c960: 2020 2020 2020 2020 2020 2020 4e65 7374 Nest │ │ │ │ -0001c970: 6564 2073 7765 6570 732e 2020 2020 2020 ed sweeps. │ │ │ │ -0001c980: 2020 286c 696e 6520 2038 290a 2a20 6465 (line 8).* de │ │ │ │ -0001c990: 6620 3c36 3e3a 2020 2020 2020 2020 2020 f <6>: │ │ │ │ -0001c9a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001c9b0: 2020 2020 2050 6f6c 796c 696e 6520 7377 Polyline sw │ │ │ │ -0001c9c0: 6565 7073 2077 6974 6820 636c 6f73 7572 eeps with closur │ │ │ │ -0001c9d0: 652e 0a20 2020 2020 2020 2020 2020 2020 e.. │ │ │ │ +0001c960: 2020 2020 4e65 7374 6564 2073 7765 6570 Nested sweep │ │ │ │ +0001c970: 732e 2020 2020 2020 2020 286c 696e 6520 s. (line │ │ │ │ +0001c980: 2038 290a 2a20 6465 6620 3c36 3e3a 2020 8).* def <6>: │ │ │ │ +0001c990: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001c9a0: 2020 2020 2020 2020 2020 2020 2050 6f6c Pol │ │ │ │ +0001c9b0: 796c 696e 6520 7377 6565 7073 2077 6974 yline sweeps wit │ │ │ │ +0001c9c0: 6820 636c 6f73 7572 652e 0a20 2020 2020 h closure.. │ │ │ │ +0001c9d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001c9e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001c9f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001ca00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001ca10: 2020 286c 696e 6520 3130 290a 2a20 6465 (line 10).* de │ │ │ │ -0001ca20: 6620 3c37 3e3a 2020 2020 2020 2020 2020 f <7>: │ │ │ │ -0001ca30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001ca40: 2020 2020 2041 6666 696e 6520 6172 6974 Affine arit │ │ │ │ -0001ca50: 686d 6574 6963 2e20 2020 2028 6c69 6e65 hmetic. (line │ │ │ │ -0001ca60: 2031 3129 0a2a 2064 6566 203c 383e 3a20 11).* def <8>: │ │ │ │ +0001ca00: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ +0001ca10: 3130 290a 2a20 6465 6620 3c37 3e3a 2020 10).* def <7>: │ │ │ │ +0001ca20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001ca30: 2020 2020 2020 2020 2020 2020 2041 6666 Aff │ │ │ │ +0001ca40: 696e 6520 6172 6974 686d 6574 6963 2e20 ine arithmetic. │ │ │ │ +0001ca50: 2020 2028 6c69 6e65 2031 3129 0a2a 2064 (line 11).* d │ │ │ │ +0001ca60: 6566 203c 383e 3a20 2020 2020 2020 2020 ef <8>: │ │ │ │ 0001ca70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001ca80: 2020 2020 2020 2020 2020 2020 2020 4f76 Ov │ │ │ │ -0001ca90: 6572 7669 6577 2e20 2020 2020 2020 2020 erview. │ │ │ │ -0001caa0: 2020 2020 286c 696e 6520 3132 290a 2a20 (line 12).* │ │ │ │ -0001cab0: 6465 6620 3c39 3e3a 2020 2020 2020 2020 def <9>: │ │ │ │ -0001cac0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001cad0: 2020 2020 2020 204f 7665 7276 6965 772e Overview. │ │ │ │ -0001cae0: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ -0001caf0: 6e65 2033 3729 0a2a 2064 6566 203c 3130 ne 37).* def <10 │ │ │ │ -0001cb00: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ -0001cb10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001cb20: 4f76 6572 7669 6577 2e20 2020 2020 2020 Overview. │ │ │ │ -0001cb30: 2020 2020 2020 286c 696e 6520 3639 290a (line 69). │ │ │ │ -0001cb40: 2a20 6465 6620 3c31 313e 3a20 2020 2020 * def <11>: │ │ │ │ +0001ca80: 2020 2020 2020 4f76 6572 7669 6577 2e20 Overview. │ │ │ │ +0001ca90: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ +0001caa0: 6520 3132 290a 2a20 6465 6620 3c39 3e3a e 12).* def <9>: │ │ │ │ +0001cab0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001cac0: 2020 2020 2020 2020 2020 2020 2020 204f O │ │ │ │ +0001cad0: 7665 7276 6965 772e 2020 2020 2020 2020 verview. │ │ │ │ +0001cae0: 2020 2020 2028 6c69 6e65 2033 3729 0a2a (line 37).* │ │ │ │ +0001caf0: 2064 6566 203c 3130 3e3a 2020 2020 2020 def <10>: │ │ │ │ +0001cb00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001cb10: 2020 2020 2020 2020 4f76 6572 7669 6577 Overview │ │ │ │ +0001cb20: 2e20 2020 2020 2020 2020 2020 2020 286c . (l │ │ │ │ +0001cb30: 696e 6520 3639 290a 2a20 6465 6620 3c31 ine 69).* def <1 │ │ │ │ +0001cb40: 313e 3a20 2020 2020 2020 2020 2020 2020 1>: │ │ │ │ 0001cb50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001cb60: 2020 2020 2020 2020 2041 2074 6563 686e A techn │ │ │ │ -0001cb70: 6963 616c 2064 7261 7769 6e67 2e20 2028 ical drawing. ( │ │ │ │ -0001cb80: 6c69 6e65 2031 3429 0a2a 2064 6566 203c line 14).* def < │ │ │ │ -0001cb90: 3132 3e3a 2020 2020 2020 2020 2020 2020 12>: │ │ │ │ -0001cba0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001cbb0: 2020 4120 7465 6368 6e69 6361 6c20 6472 A technical dr │ │ │ │ -0001cbc0: 6177 696e 672e 2020 286c 696e 6520 3236 awing. (line 26 │ │ │ │ -0001cbd0: 290a 2a20 6465 6620 3c31 333e 3a20 2020 ).* def <13>: │ │ │ │ +0001cb60: 2041 2074 6563 686e 6963 616c 2064 7261 A technical dra │ │ │ │ +0001cb70: 7769 6e67 2e20 2028 6c69 6e65 2031 3429 wing. (line 14) │ │ │ │ +0001cb80: 0a2a 2064 6566 203c 3132 3e3a 2020 2020 .* def <12>: │ │ │ │ +0001cb90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001cba0: 2020 2020 2020 2020 2020 4120 7465 6368 A tech │ │ │ │ +0001cbb0: 6e69 6361 6c20 6472 6177 696e 672e 2020 nical drawing. │ │ │ │ +0001cbc0: 286c 696e 6520 3236 290a 2a20 6465 6620 (line 26).* def │ │ │ │ +0001cbd0: 3c31 333e 3a20 2020 2020 2020 2020 2020 <13>: │ │ │ │ 0001cbe0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001cbf0: 2020 2020 2020 2020 2020 2041 2074 6563 A tec │ │ │ │ -0001cc00: 686e 6963 616c 2064 7261 7769 6e67 2e20 hnical drawing. │ │ │ │ -0001cc10: 2028 6c69 6e65 2034 3129 0a2a 2064 6566 (line 41).* def │ │ │ │ -0001cc20: 203c 3134 3e3a 2020 2020 2020 2020 2020 <14>: │ │ │ │ -0001cc30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001cc40: 2020 2020 4120 7465 6368 6e69 6361 6c20 A technical │ │ │ │ -0001cc50: 6472 6177 696e 672e 2020 286c 696e 6520 drawing. (line │ │ │ │ -0001cc60: 3638 290a 2a20 6465 6620 3c31 353e 3a20 68).* def <15>: │ │ │ │ +0001cbf0: 2020 2041 2074 6563 686e 6963 616c 2064 A technical d │ │ │ │ +0001cc00: 7261 7769 6e67 2e20 2028 6c69 6e65 2034 rawing. (line 4 │ │ │ │ +0001cc10: 3129 0a2a 2064 6566 203c 3134 3e3a 2020 1).* def <14>: │ │ │ │ +0001cc20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001cc30: 2020 2020 2020 2020 2020 2020 4120 7465 A te │ │ │ │ +0001cc40: 6368 6e69 6361 6c20 6472 6177 696e 672e chnical drawing. │ │ │ │ +0001cc50: 2020 286c 696e 6520 3638 290a 2a20 6465 (line 68).* de │ │ │ │ +0001cc60: 6620 3c31 353e 3a20 2020 2020 2020 2020 f <15>: │ │ │ │ 0001cc70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001cc80: 2020 2020 2020 2020 2020 2020 2041 2074 A t │ │ │ │ -0001cc90: 6563 686e 6963 616c 2064 7261 7769 6e67 echnical drawing │ │ │ │ -0001cca0: 2e20 2028 6c69 6e65 2039 3529 0a2a 2064 . (line 95).* d │ │ │ │ -0001ccb0: 6566 203c 3136 3e3a 2020 2020 2020 2020 ef <16>: │ │ │ │ -0001ccc0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001ccd0: 2020 2020 2020 4120 6869 6572 6172 6368 A hierarch │ │ │ │ -0001cce0: 6963 616c 206d 6f64 656c 2e20 286c 696e ical model. (lin │ │ │ │ -0001ccf0: 6520 3130 290a 2a20 6465 6620 3c31 373e e 10).* def <17> │ │ │ │ -0001cd00: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ -0001cd10: 2020 2020 2020 2020 2020 2020 2020 2041 A │ │ │ │ -0001cd20: 2068 6965 7261 7263 6869 6361 6c20 6d6f hierarchical mo │ │ │ │ -0001cd30: 6465 6c2e 2028 6c69 6e65 2032 3329 0a2a del. (line 23).* │ │ │ │ -0001cd40: 2064 6566 203c 3138 3e3a 2020 2020 2020 def <18>: │ │ │ │ +0001cc80: 2020 2020 2041 2074 6563 686e 6963 616c A technical │ │ │ │ +0001cc90: 2064 7261 7769 6e67 2e20 2028 6c69 6e65 drawing. (line │ │ │ │ +0001cca0: 2039 3529 0a2a 2064 6566 203c 3136 3e3a 95).* def <16>: │ │ │ │ +0001ccb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001ccc0: 2020 2020 2020 2020 2020 2020 2020 4120 A │ │ │ │ +0001ccd0: 6869 6572 6172 6368 6963 616c 206d 6f64 hierarchical mod │ │ │ │ +0001cce0: 656c 2e20 286c 696e 6520 3130 290a 2a20 el. (line 10).* │ │ │ │ +0001ccf0: 6465 6620 3c31 373e 3a20 2020 2020 2020 def <17>: │ │ │ │ +0001cd00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001cd10: 2020 2020 2020 2041 2068 6965 7261 7263 A hierarc │ │ │ │ +0001cd20: 6869 6361 6c20 6d6f 6465 6c2e 2028 6c69 hical model. (li │ │ │ │ +0001cd30: 6e65 2032 3329 0a2a 2064 6566 203c 3138 ne 23).* def <18 │ │ │ │ +0001cd40: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ 0001cd50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001cd60: 2020 2020 2020 2020 4120 6869 6572 6172 A hierar │ │ │ │ -0001cd70: 6368 6963 616c 206d 6f64 656c 2e20 286c chical model. (l │ │ │ │ -0001cd80: 696e 6520 3332 290a 2a20 646f 7473 3a20 ine 32).* dots: │ │ │ │ +0001cd60: 4120 6869 6572 6172 6368 6963 616c 206d A hierarchical m │ │ │ │ +0001cd70: 6f64 656c 2e20 286c 696e 6520 3332 290a odel. (line 32). │ │ │ │ +0001cd80: 2a20 646f 7473 3a20 2020 2020 2020 2020 * dots: │ │ │ │ 0001cd90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001cda0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001cdb0: 2044 6f74 732e 2020 2020 2020 2020 2020 Dots. │ │ │ │ -0001cdc0: 2020 2020 2020 2028 6c69 6e65 2020 3629 (line 6) │ │ │ │ -0001cdd0: 0a2a 2066 696c 6c20 6f70 6163 6974 793a .* fill opacity: │ │ │ │ +0001cda0: 2020 2020 2020 2020 2044 6f74 732e 2020 Dots. │ │ │ │ +0001cdb0: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ +0001cdc0: 6c69 6e65 2020 3629 0a2a 2066 696c 6c20 line 6).* fill │ │ │ │ +0001cdd0: 6f70 6163 6974 793a 2020 2020 2020 2020 opacity: │ │ │ │ 0001cde0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001cdf0: 2020 2020 2020 2020 2020 5472 616e 7370 Transp │ │ │ │ -0001ce00: 6172 656e 6379 2e20 2020 2020 2020 2020 arency. │ │ │ │ -0001ce10: 286c 696e 6520 3130 290a 2a20 6669 6c6c (line 10).* fill │ │ │ │ -0001ce20: 2073 7479 6c65 3a20 2020 2020 2020 2020 style: │ │ │ │ -0001ce30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001ce40: 2020 2054 696b 5a2f 5047 4620 7573 6572 TikZ/PGF user │ │ │ │ -0001ce50: 2d64 6566 696e 6564 2073 7479 6c65 732e -defined styles. │ │ │ │ -0001ce60: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ +0001cdf0: 2020 5472 616e 7370 6172 656e 6379 2e20 Transparency. │ │ │ │ +0001ce00: 2020 2020 2020 2020 286c 696e 6520 3130 (line 10 │ │ │ │ +0001ce10: 290a 2a20 6669 6c6c 2073 7479 6c65 3a20 ).* fill style: │ │ │ │ +0001ce20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001ce30: 2020 2020 2020 2020 2020 2054 696b 5a2f TikZ/ │ │ │ │ +0001ce40: 5047 4620 7573 6572 2d64 6566 696e 6564 PGF user-defined │ │ │ │ +0001ce50: 2073 7479 6c65 732e 0a20 2020 2020 2020 styles.. │ │ │ │ +0001ce60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001ce70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001ce80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001ce90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001cea0: 286c 696e 6520 3235 290a 2a20 6669 6c6c (line 25).* fill │ │ │ │ -0001ceb0: 636f 6c6f 723a 2020 2020 2020 2020 2020 color: │ │ │ │ -0001cec0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001ced0: 2020 204f 626a 6563 7420 7472 616e 7366 Object transf │ │ │ │ -0001cee0: 6f72 6d73 2e20 2020 2028 6c69 6e65 2031 orms. (line 1 │ │ │ │ -0001cef0: 3029 0a2a 2066 696c 6c63 6f6c 6f72 203c 0).* fillcolor < │ │ │ │ -0001cf00: 313e 3a20 2020 2020 2020 2020 2020 2020 1>: │ │ │ │ -0001cf10: 2020 2020 2020 2020 2020 2020 506f 6c79 Poly │ │ │ │ -0001cf20: 6c69 6e65 2073 7765 6570 7320 7769 7468 line sweeps with │ │ │ │ -0001cf30: 2063 6c6f 7375 7265 2e0a 2020 2020 2020 closure.. │ │ │ │ +0001ce90: 2020 2020 2020 2020 286c 696e 6520 3235 (line 25 │ │ │ │ +0001cea0: 290a 2a20 6669 6c6c 636f 6c6f 723a 2020 ).* fillcolor: │ │ │ │ +0001ceb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001cec0: 2020 2020 2020 2020 2020 204f 626a 6563 Objec │ │ │ │ +0001ced0: 7420 7472 616e 7366 6f72 6d73 2e20 2020 t transforms. │ │ │ │ +0001cee0: 2028 6c69 6e65 2031 3029 0a2a 2066 696c (line 10).* fil │ │ │ │ +0001cef0: 6c63 6f6c 6f72 203c 313e 3a20 2020 2020 lcolor <1>: │ │ │ │ +0001cf00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001cf10: 2020 2020 506f 6c79 6c69 6e65 2073 7765 Polyline swe │ │ │ │ +0001cf20: 6570 7320 7769 7468 2063 6c6f 7375 7265 eps with closure │ │ │ │ +0001cf30: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ 0001cf40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001cf50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001cf60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001cf70: 2020 2020 2020 2020 2028 6c69 6e65 2031 (line 1 │ │ │ │ -0001cf80: 3029 0a2a 2066 696c 6c63 6f6c 6f72 203c 0).* fillcolor < │ │ │ │ -0001cf90: 323e 3a20 2020 2020 2020 2020 2020 2020 2>: │ │ │ │ -0001cfa0: 2020 2020 2020 2020 2020 2020 4f76 6572 Over │ │ │ │ -0001cfb0: 7669 6577 2e20 2020 2020 2020 2020 2020 view. │ │ │ │ -0001cfc0: 2020 286c 696e 6520 3337 290a 2a20 6672 (line 37).* fr │ │ │ │ -0001cfd0: 616d 653a 2020 2020 2020 2020 2020 2020 ame: │ │ │ │ -0001cfe0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001cff0: 2020 2020 2046 7261 6d65 2e20 2020 2020 Frame. │ │ │ │ -0001d000: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ -0001d010: 2020 3629 0a2a 2066 7261 6d65 7365 703a 6).* framesep: │ │ │ │ +0001cf70: 2028 6c69 6e65 2031 3029 0a2a 2066 696c (line 10).* fil │ │ │ │ +0001cf80: 6c63 6f6c 6f72 203c 323e 3a20 2020 2020 lcolor <2>: │ │ │ │ +0001cf90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001cfa0: 2020 2020 4f76 6572 7669 6577 2e20 2020 Overview. │ │ │ │ +0001cfb0: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ +0001cfc0: 3337 290a 2a20 6672 616d 653a 2020 2020 37).* frame: │ │ │ │ +0001cfd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001cfe0: 2020 2020 2020 2020 2020 2020 2046 7261 Fra │ │ │ │ +0001cff0: 6d65 2e20 2020 2020 2020 2020 2020 2020 me. │ │ │ │ +0001d000: 2020 2028 6c69 6e65 2020 3629 0a2a 2066 (line 6).* f │ │ │ │ +0001d010: 7261 6d65 7365 703a 2020 2020 2020 2020 ramesep: │ │ │ │ 0001d020: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d030: 2020 2020 2020 2020 2020 2020 2020 4672 Fr │ │ │ │ -0001d040: 616d 652e 2020 2020 2020 2020 2020 2020 ame. │ │ │ │ -0001d050: 2020 2020 286c 696e 6520 3131 290a 2a20 (line 11).* │ │ │ │ -0001d060: 676c 6f62 616c 3a20 2020 2020 2020 2020 global: │ │ │ │ -0001d070: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d080: 2020 2020 2020 2047 6c6f 6261 6c20 656e Global en │ │ │ │ -0001d090: 7669 726f 6e6d 656e 742e 2020 2028 6c69 vironment. (li │ │ │ │ -0001d0a0: 6e65 2031 3229 0a2a 2069 6e70 7574 3a20 ne 12).* input: │ │ │ │ +0001d030: 2020 2020 2020 4672 616d 652e 2020 2020 Frame. │ │ │ │ +0001d040: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ +0001d050: 6520 3131 290a 2a20 676c 6f62 616c 3a20 e 11).* global: │ │ │ │ +0001d060: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001d070: 2020 2020 2020 2020 2020 2020 2020 2047 G │ │ │ │ +0001d080: 6c6f 6261 6c20 656e 7669 726f 6e6d 656e lobal environmen │ │ │ │ +0001d090: 742e 2020 2028 6c69 6e65 2031 3229 0a2a t. (line 12).* │ │ │ │ +0001d0a0: 2069 6e70 7574 3a20 2020 2020 2020 2020 input: │ │ │ │ 0001d0b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d0c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d0d0: 4c61 6e67 7561 6765 2062 6173 6963 732e Language basics. │ │ │ │ -0001d0e0: 2020 2020 2020 286c 696e 6520 3139 290a (line 19). │ │ │ │ -0001d0f0: 2a20 696e 7665 7273 653a 2020 2020 2020 * inverse: │ │ │ │ +0001d0c0: 2020 2020 2020 2020 4c61 6e67 7561 6765 Language │ │ │ │ +0001d0d0: 2062 6173 6963 732e 2020 2020 2020 286c basics. (l │ │ │ │ +0001d0e0: 696e 6520 3139 290a 2a20 696e 7665 7273 ine 19).* invers │ │ │ │ +0001d0f0: 653a 2020 2020 2020 2020 2020 2020 2020 e: │ │ │ │ 0001d100: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d110: 2020 2020 2020 2020 2055 6e61 7279 2066 Unary f │ │ │ │ -0001d120: 6f72 6d73 2e20 2020 2020 2020 2020 2028 orms. ( │ │ │ │ -0001d130: 6c69 6e65 2032 3129 0a2a 206c 616e 6775 line 21).* langu │ │ │ │ -0001d140: 6167 653a 2020 2020 2020 2020 2020 2020 age: │ │ │ │ -0001d150: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d160: 2020 4c61 6e67 7561 6765 2e20 2020 2020 Language. │ │ │ │ -0001d170: 2020 2020 2020 2020 286c 696e 6520 2036 (line 6 │ │ │ │ -0001d180: 290a 2a20 6c61 7465 783a 2020 2020 2020 ).* latex: │ │ │ │ +0001d110: 2055 6e61 7279 2066 6f72 6d73 2e20 2020 Unary forms. │ │ │ │ +0001d120: 2020 2020 2020 2028 6c69 6e65 2032 3129 (line 21) │ │ │ │ +0001d130: 0a2a 206c 616e 6775 6167 653a 2020 2020 .* language: │ │ │ │ +0001d140: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001d150: 2020 2020 2020 2020 2020 4c61 6e67 7561 Langua │ │ │ │ +0001d160: 6765 2e20 2020 2020 2020 2020 2020 2020 ge. │ │ │ │ +0001d170: 286c 696e 6520 2036 290a 2a20 6c61 7465 (line 6).* late │ │ │ │ +0001d180: 783a 2020 2020 2020 2020 2020 2020 2020 x: │ │ │ │ 0001d190: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d1a0: 2020 2020 2020 2020 2020 204c 616e 6775 Langu │ │ │ │ -0001d1b0: 6167 652e 2020 2020 2020 2020 2020 2020 age. │ │ │ │ -0001d1c0: 2028 6c69 6e65 2031 3729 0a2a 206c 6179 (line 17).* lay │ │ │ │ -0001d1d0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ -0001d1e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d1f0: 2020 2020 5370 6563 6961 6c20 6f62 6a65 Special obje │ │ │ │ -0001d200: 6374 732e 2020 2020 2020 286c 696e 6520 cts. (line │ │ │ │ -0001d210: 3438 290a 2a20 6c61 7920 3c31 3e3a 2020 48).* lay <1>: │ │ │ │ +0001d1a0: 2020 204c 616e 6775 6167 652e 2020 2020 Language. │ │ │ │ +0001d1b0: 2020 2020 2020 2020 2028 6c69 6e65 2031 (line 1 │ │ │ │ +0001d1c0: 3729 0a2a 206c 6179 3a20 2020 2020 2020 7).* lay: │ │ │ │ +0001d1d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001d1e0: 2020 2020 2020 2020 2020 2020 5370 6563 Spec │ │ │ │ +0001d1f0: 6961 6c20 6f62 6a65 6374 732e 2020 2020 ial objects. │ │ │ │ +0001d200: 2020 286c 696e 6520 3438 290a 2a20 6c61 (line 48).* la │ │ │ │ +0001d210: 7920 3c31 3e3a 2020 2020 2020 2020 2020 y <1>: │ │ │ │ 0001d220: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d230: 2020 2020 2020 2020 2020 2020 2054 696b Tik │ │ │ │ -0001d240: 5a2f 5047 4620 7573 6572 2d64 6566 696e Z/PGF user-defin │ │ │ │ -0001d250: 6564 2073 7479 6c65 732e 0a20 2020 2020 ed styles.. │ │ │ │ +0001d230: 2020 2020 2054 696b 5a2f 5047 4620 7573 TikZ/PGF us │ │ │ │ +0001d240: 6572 2d64 6566 696e 6564 2073 7479 6c65 er-defined style │ │ │ │ +0001d250: 732e 0a20 2020 2020 2020 2020 2020 2020 s.. │ │ │ │ 0001d260: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001d270: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001d280: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d290: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ -0001d2a0: 3336 290a 2a20 6c61 7920 3c32 3e3a 2020 36).* lay <2>: │ │ │ │ +0001d290: 2020 286c 696e 6520 3336 290a 2a20 6c61 (line 36).* la │ │ │ │ +0001d2a0: 7920 3c32 3e3a 2020 2020 2020 2020 2020 y <2>: │ │ │ │ 0001d2b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d2c0: 2020 2020 2020 2020 2020 2020 2041 2074 A t │ │ │ │ -0001d2d0: 6563 686e 6963 616c 2064 7261 7769 6e67 echnical drawing │ │ │ │ -0001d2e0: 2e20 2028 6c69 6e65 2032 3629 0a2a 206c . (line 26).* l │ │ │ │ -0001d2f0: 6179 203c 333e 3a20 2020 2020 2020 2020 ay <3>: │ │ │ │ -0001d300: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d310: 2020 2020 2020 4120 7465 6368 6e69 6361 A technica │ │ │ │ -0001d320: 6c20 6472 6177 696e 672e 2020 286c 696e l drawing. (lin │ │ │ │ -0001d330: 6520 3236 290a 2a20 6c61 7920 3c34 3e3a e 26).* lay <4>: │ │ │ │ +0001d2c0: 2020 2020 2041 2074 6563 686e 6963 616c A technical │ │ │ │ +0001d2d0: 2064 7261 7769 6e67 2e20 2028 6c69 6e65 drawing. (line │ │ │ │ +0001d2e0: 2032 3629 0a2a 206c 6179 203c 333e 3a20 26).* lay <3>: │ │ │ │ +0001d2f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001d300: 2020 2020 2020 2020 2020 2020 2020 4120 A │ │ │ │ +0001d310: 7465 6368 6e69 6361 6c20 6472 6177 696e technical drawin │ │ │ │ +0001d320: 672e 2020 286c 696e 6520 3236 290a 2a20 g. (line 26).* │ │ │ │ +0001d330: 6c61 7920 3c34 3e3a 2020 2020 2020 2020 lay <4>: │ │ │ │ 0001d340: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d350: 2020 2020 2020 2020 2020 2020 2020 2041 A │ │ │ │ -0001d360: 2074 6563 686e 6963 616c 2064 7261 7769 technical drawi │ │ │ │ -0001d370: 6e67 2e20 2028 6c69 6e65 2039 3529 0a2a ng. (line 95).* │ │ │ │ -0001d380: 206c 6179 203c 353e 3a20 2020 2020 2020 lay <5>: │ │ │ │ +0001d350: 2020 2020 2020 2041 2074 6563 686e 6963 A technic │ │ │ │ +0001d360: 616c 2064 7261 7769 6e67 2e20 2028 6c69 al drawing. (li │ │ │ │ +0001d370: 6e65 2039 3529 0a2a 206c 6179 203c 353e ne 95).* lay <5> │ │ │ │ +0001d380: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ 0001d390: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d3a0: 2020 2020 2020 2020 496e 7465 726e 616c Internal │ │ │ │ -0001d3b0: 206f 7074 696f 6e73 2e20 2020 2020 286c options. (l │ │ │ │ -0001d3c0: 696e 6520 2037 290a 2a20 6c61 7920 3c36 ine 7).* lay <6 │ │ │ │ -0001d3d0: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ -0001d3e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d3f0: 2053 7065 6369 616c 732e 2020 2020 2020 Specials. │ │ │ │ -0001d400: 2020 2020 2020 2028 6c69 6e65 2034 3229 (line 42) │ │ │ │ -0001d410: 0a2a 206c 6179 203c 373e 3a20 2020 2020 .* lay <7>: │ │ │ │ +0001d3a0: 496e 7465 726e 616c 206f 7074 696f 6e73 Internal options │ │ │ │ +0001d3b0: 2e20 2020 2020 286c 696e 6520 2037 290a . (line 7). │ │ │ │ +0001d3c0: 2a20 6c61 7920 3c36 3e3a 2020 2020 2020 * lay <6>: │ │ │ │ +0001d3d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001d3e0: 2020 2020 2020 2020 2053 7065 6369 616c Special │ │ │ │ +0001d3f0: 732e 2020 2020 2020 2020 2020 2020 2028 s. ( │ │ │ │ +0001d400: 6c69 6e65 2034 3229 0a2a 206c 6179 203c line 42).* lay < │ │ │ │ +0001d410: 373e 3a20 2020 2020 2020 2020 2020 2020 7>: │ │ │ │ 0001d420: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d430: 2020 2020 2020 2020 2020 476c 6f62 616c Global │ │ │ │ -0001d440: 206f 7074 696f 6e73 2e20 2020 2020 2020 options. │ │ │ │ -0001d450: 286c 696e 6520 3133 290a 2a20 6c69 6e65 (line 13).* line │ │ │ │ -0001d460: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ -0001d470: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d480: 2020 2044 7261 7769 6e67 206f 7074 696f Drawing optio │ │ │ │ -0001d490: 6e73 2e20 2020 2020 2028 6c69 6e65 2020 ns. (line │ │ │ │ -0001d4a0: 3729 0a2a 206c 696e 6520 3c31 3e3a 2020 7).* line <1>: │ │ │ │ +0001d430: 2020 476c 6f62 616c 206f 7074 696f 6e73 Global options │ │ │ │ +0001d440: 2e20 2020 2020 2020 286c 696e 6520 3133 . (line 13 │ │ │ │ +0001d450: 290a 2a20 6c69 6e65 3a20 2020 2020 2020 ).* line: │ │ │ │ +0001d460: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001d470: 2020 2020 2020 2020 2020 2044 7261 7769 Drawi │ │ │ │ +0001d480: 6e67 206f 7074 696f 6e73 2e20 2020 2020 ng options. │ │ │ │ +0001d490: 2028 6c69 6e65 2020 3729 0a2a 206c 696e (line 7).* lin │ │ │ │ +0001d4a0: 6520 3c31 3e3a 2020 2020 2020 2020 2020 e <1>: │ │ │ │ 0001d4b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d4c0: 2020 2020 2020 2020 2020 2020 4f62 6a65 Obje │ │ │ │ -0001d4d0: 6374 2074 7261 6e73 666f 726d 732e 2020 ct transforms. │ │ │ │ -0001d4e0: 2020 286c 696e 6520 3130 290a 2a20 6c69 (line 10).* li │ │ │ │ -0001d4f0: 6e65 203c 323e 3a20 2020 2020 2020 2020 ne <2>: │ │ │ │ -0001d500: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d510: 2020 2020 2050 6f6c 796c 696e 6520 7377 Polyline sw │ │ │ │ -0001d520: 6565 7073 2077 6974 6820 636c 6f73 7572 eeps with closur │ │ │ │ -0001d530: 652e 0a20 2020 2020 2020 2020 2020 2020 e.. │ │ │ │ +0001d4c0: 2020 2020 4f62 6a65 6374 2074 7261 6e73 Object trans │ │ │ │ +0001d4d0: 666f 726d 732e 2020 2020 286c 696e 6520 forms. (line │ │ │ │ +0001d4e0: 3130 290a 2a20 6c69 6e65 203c 323e 3a20 10).* line <2>: │ │ │ │ +0001d4f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001d500: 2020 2020 2020 2020 2020 2020 2050 6f6c Pol │ │ │ │ +0001d510: 796c 696e 6520 7377 6565 7073 2077 6974 yline sweeps wit │ │ │ │ +0001d520: 6820 636c 6f73 7572 652e 0a20 2020 2020 h closure.. │ │ │ │ +0001d530: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001d540: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001d550: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d560: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d570: 2020 286c 696e 6520 3130 290a 2a20 6c69 (line 10).* li │ │ │ │ -0001d580: 6e65 203c 333e 3a20 2020 2020 2020 2020 ne <3>: │ │ │ │ -0001d590: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d5a0: 2020 2020 2041 6666 696e 6520 6172 6974 Affine arit │ │ │ │ -0001d5b0: 686d 6574 6963 2e20 2020 2028 6c69 6e65 hmetic. (line │ │ │ │ -0001d5c0: 2031 3129 0a2a 206c 696e 6520 3c34 3e3a 11).* line <4>: │ │ │ │ +0001d560: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ +0001d570: 3130 290a 2a20 6c69 6e65 203c 333e 3a20 10).* line <3>: │ │ │ │ +0001d580: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001d590: 2020 2020 2020 2020 2020 2020 2041 6666 Aff │ │ │ │ +0001d5a0: 696e 6520 6172 6974 686d 6574 6963 2e20 ine arithmetic. │ │ │ │ +0001d5b0: 2020 2028 6c69 6e65 2031 3129 0a2a 206c (line 11).* l │ │ │ │ +0001d5c0: 696e 6520 3c34 3e3a 2020 2020 2020 2020 ine <4>: │ │ │ │ 0001d5d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d5e0: 2020 2020 2020 2020 2020 2020 2020 4c69 Li │ │ │ │ -0001d5f0: 6e65 732e 2020 2020 2020 2020 2020 2020 nes. │ │ │ │ -0001d600: 2020 2020 286c 696e 6520 2036 290a 2a20 (line 6).* │ │ │ │ -0001d610: 6c69 6e65 203c 353e 3a20 2020 2020 2020 line <5>: │ │ │ │ -0001d620: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d630: 2020 2020 2020 2053 7765 7074 2062 6c6f Swept blo │ │ │ │ -0001d640: 636b 732e 2020 2020 2020 2020 2028 6c69 cks. (li │ │ │ │ -0001d650: 6e65 2020 3729 0a2a 206c 696e 6520 3c36 ne 7).* line <6 │ │ │ │ -0001d660: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ -0001d670: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d680: 4f76 6572 7669 6577 2e20 2020 2020 2020 Overview. │ │ │ │ -0001d690: 2020 2020 2020 286c 696e 6520 3639 290a (line 69). │ │ │ │ -0001d6a0: 2a20 6c69 6e65 203c 373e 3a20 2020 2020 * line <7>: │ │ │ │ +0001d5e0: 2020 2020 2020 4c69 6e65 732e 2020 2020 Lines. │ │ │ │ +0001d5f0: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ +0001d600: 6520 2036 290a 2a20 6c69 6e65 203c 353e e 6).* line <5> │ │ │ │ +0001d610: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +0001d620: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ +0001d630: 7765 7074 2062 6c6f 636b 732e 2020 2020 wept blocks. │ │ │ │ +0001d640: 2020 2020 2028 6c69 6e65 2020 3729 0a2a (line 7).* │ │ │ │ +0001d650: 206c 696e 6520 3c36 3e3a 2020 2020 2020 line <6>: │ │ │ │ +0001d660: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001d670: 2020 2020 2020 2020 4f76 6572 7669 6577 Overview │ │ │ │ +0001d680: 2e20 2020 2020 2020 2020 2020 2020 286c . (l │ │ │ │ +0001d690: 696e 6520 3639 290a 2a20 6c69 6e65 203c ine 69).* line < │ │ │ │ +0001d6a0: 373e 3a20 2020 2020 2020 2020 2020 2020 7>: │ │ │ │ 0001d6b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d6c0: 2020 2020 2020 2020 2041 2074 6563 686e A techn │ │ │ │ -0001d6d0: 6963 616c 2064 7261 7769 6e67 2e20 2028 ical drawing. ( │ │ │ │ -0001d6e0: 6c69 6e65 2032 3029 0a2a 206c 696e 6520 line 20).* line │ │ │ │ -0001d6f0: 3c38 3e3a 2020 2020 2020 2020 2020 2020 <8>: │ │ │ │ -0001d700: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d710: 2020 4120 7465 6368 6e69 6361 6c20 6472 A technical dr │ │ │ │ -0001d720: 6177 696e 672e 2020 286c 696e 6520 3236 awing. (line 26 │ │ │ │ -0001d730: 290a 2a20 6c69 6e65 203c 393e 3a20 2020 ).* line <9>: │ │ │ │ +0001d6c0: 2041 2074 6563 686e 6963 616c 2064 7261 A technical dra │ │ │ │ +0001d6d0: 7769 6e67 2e20 2028 6c69 6e65 2032 3029 wing. (line 20) │ │ │ │ +0001d6e0: 0a2a 206c 696e 6520 3c38 3e3a 2020 2020 .* line <8>: │ │ │ │ +0001d6f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001d700: 2020 2020 2020 2020 2020 4120 7465 6368 A tech │ │ │ │ +0001d710: 6e69 6361 6c20 6472 6177 696e 672e 2020 nical drawing. │ │ │ │ +0001d720: 286c 696e 6520 3236 290a 2a20 6c69 6e65 (line 26).* line │ │ │ │ +0001d730: 203c 393e 3a20 2020 2020 2020 2020 2020 <9>: │ │ │ │ 0001d740: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d750: 2020 2020 2020 2020 2020 2041 2074 6563 A tec │ │ │ │ -0001d760: 686e 6963 616c 2064 7261 7769 6e67 2e20 hnical drawing. │ │ │ │ -0001d770: 2028 6c69 6e65 2034 3129 0a2a 206c 696e (line 41).* lin │ │ │ │ -0001d780: 6520 3c31 303e 3a20 2020 2020 2020 2020 e <10>: │ │ │ │ -0001d790: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d7a0: 2020 2020 4120 7465 6368 6e69 6361 6c20 A technical │ │ │ │ -0001d7b0: 6472 6177 696e 672e 2020 286c 696e 6520 drawing. (line │ │ │ │ -0001d7c0: 3638 290a 2a20 6c69 6e65 203c 3131 3e3a 68).* line <11>: │ │ │ │ +0001d750: 2020 2041 2074 6563 686e 6963 616c 2064 A technical d │ │ │ │ +0001d760: 7261 7769 6e67 2e20 2028 6c69 6e65 2034 rawing. (line 4 │ │ │ │ +0001d770: 3129 0a2a 206c 696e 6520 3c31 303e 3a20 1).* line <10>: │ │ │ │ +0001d780: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001d790: 2020 2020 2020 2020 2020 2020 4120 7465 A te │ │ │ │ +0001d7a0: 6368 6e69 6361 6c20 6472 6177 696e 672e chnical drawing. │ │ │ │ +0001d7b0: 2020 286c 696e 6520 3638 290a 2a20 6c69 (line 68).* li │ │ │ │ +0001d7c0: 6e65 203c 3131 3e3a 2020 2020 2020 2020 ne <11>: │ │ │ │ 0001d7d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d7e0: 2020 2020 2020 2020 2020 2020 2041 2068 A h │ │ │ │ -0001d7f0: 6965 7261 7263 6869 6361 6c20 6d6f 6465 ierarchical mode │ │ │ │ -0001d800: 6c2e 2028 6c69 6e65 2031 3029 0a2a 206c l. (line 10).* l │ │ │ │ -0001d810: 696e 6520 7374 796c 653a 2020 2020 2020 ine style: │ │ │ │ -0001d820: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d830: 2020 2020 2020 5469 6b5a 2f50 4746 2075 TikZ/PGF u │ │ │ │ -0001d840: 7365 722d 6465 6669 6e65 6420 7374 796c ser-defined styl │ │ │ │ -0001d850: 6573 2e0a 2020 2020 2020 2020 2020 2020 es.. │ │ │ │ +0001d7e0: 2020 2020 2041 2068 6965 7261 7263 6869 A hierarchi │ │ │ │ +0001d7f0: 6361 6c20 6d6f 6465 6c2e 2028 6c69 6e65 cal model. (line │ │ │ │ +0001d800: 2031 3029 0a2a 206c 696e 6520 7374 796c 10).* line styl │ │ │ │ +0001d810: 653a 2020 2020 2020 2020 2020 2020 2020 e: │ │ │ │ +0001d820: 2020 2020 2020 2020 2020 2020 2020 5469 Ti │ │ │ │ +0001d830: 6b5a 2f50 4746 2075 7365 722d 6465 6669 kZ/PGF user-defi │ │ │ │ +0001d840: 6e65 6420 7374 796c 6573 2e0a 2020 2020 ned styles.. │ │ │ │ +0001d850: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001d860: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001d870: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d880: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d890: 2020 2028 6c69 6e65 2032 3529 0a2a 206c (line 25).* l │ │ │ │ -0001d8a0: 696e 6563 6f6c 6f72 3a20 2020 2020 2020 inecolor: │ │ │ │ -0001d8b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d8c0: 2020 2020 2020 4f62 6a65 6374 2074 7261 Object tra │ │ │ │ -0001d8d0: 6e73 666f 726d 732e 2020 2020 286c 696e nsforms. (lin │ │ │ │ -0001d8e0: 6520 3130 290a 2a20 6c69 6e65 636f 6c6f e 10).* linecolo │ │ │ │ -0001d8f0: 7220 3c31 3e3a 2020 2020 2020 2020 2020 r <1>: │ │ │ │ -0001d900: 2020 2020 2020 2020 2020 2020 2020 2046 F │ │ │ │ -0001d910: 7261 6d65 2e20 2020 2020 2020 2020 2020 rame. │ │ │ │ -0001d920: 2020 2020 2028 6c69 6e65 2031 3029 0a2a (line 10).* │ │ │ │ -0001d930: 206c 696e 6563 6f6c 6f72 203c 323e 3a20 linecolor <2>: │ │ │ │ +0001d880: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ +0001d890: 2032 3529 0a2a 206c 696e 6563 6f6c 6f72 25).* linecolor │ │ │ │ +0001d8a0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +0001d8b0: 2020 2020 2020 2020 2020 2020 2020 4f62 Ob │ │ │ │ +0001d8c0: 6a65 6374 2074 7261 6e73 666f 726d 732e ject transforms. │ │ │ │ +0001d8d0: 2020 2020 286c 696e 6520 3130 290a 2a20 (line 10).* │ │ │ │ +0001d8e0: 6c69 6e65 636f 6c6f 7220 3c31 3e3a 2020 linecolor <1>: │ │ │ │ +0001d8f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001d900: 2020 2020 2020 2046 7261 6d65 2e20 2020 Frame. │ │ │ │ +0001d910: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ +0001d920: 6e65 2031 3029 0a2a 206c 696e 6563 6f6c ne 10).* linecol │ │ │ │ +0001d930: 6f72 203c 323e 3a20 2020 2020 2020 2020 or <2>: │ │ │ │ 0001d940: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d950: 2020 2020 2020 2020 4f76 6572 7669 6577 Overview │ │ │ │ -0001d960: 2e20 2020 2020 2020 2020 2020 2020 286c . (l │ │ │ │ -0001d970: 696e 6520 3639 290a 2a20 6c69 6e65 7374 ine 69).* linest │ │ │ │ -0001d980: 796c 653a 2020 2020 2020 2020 2020 2020 yle: │ │ │ │ -0001d990: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001d9a0: 2046 7261 6d65 2e20 2020 2020 2020 2020 Frame. │ │ │ │ -0001d9b0: 2020 2020 2020 2028 6c69 6e65 2031 3029 (line 10) │ │ │ │ -0001d9c0: 0a2a 206c 696e 6573 7479 6c65 203c 313e .* linestyle <1> │ │ │ │ -0001d9d0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ -0001d9e0: 2020 2020 2020 2020 2020 4f76 6572 7669 Overvi │ │ │ │ -0001d9f0: 6577 2e20 2020 2020 2020 2020 2020 2020 ew. │ │ │ │ -0001da00: 286c 696e 6520 3639 290a 2a20 6c69 6e65 (line 69).* line │ │ │ │ -0001da10: 7374 796c 6520 3c32 3e3a 2020 2020 2020 style <2>: │ │ │ │ -0001da20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001da30: 2020 2041 2074 6563 686e 6963 616c 2064 A technical d │ │ │ │ -0001da40: 7261 7769 6e67 2e20 2028 6c69 6e65 2032 rawing. (line 2 │ │ │ │ -0001da50: 3629 0a2a 206c 696e 6573 7479 6c65 203c 6).* linestyle < │ │ │ │ -0001da60: 333e 3a20 2020 2020 2020 2020 2020 2020 3>: │ │ │ │ -0001da70: 2020 2020 2020 2020 2020 2020 4275 6773 Bugs │ │ │ │ -0001da80: 2061 6e64 2061 6e6f 6d61 6c69 6573 2e20 and anomalies. │ │ │ │ -0001da90: 2020 286c 696e 6520 2037 290a 2a20 6c69 (line 7).* li │ │ │ │ -0001daa0: 6e65 7769 6474 683a 2020 2020 2020 2020 newidth: │ │ │ │ -0001dab0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001dac0: 2020 2020 2050 6f6c 796c 696e 6520 7377 Polyline sw │ │ │ │ -0001dad0: 6565 7073 2e20 2020 2020 2028 6c69 6e65 eeps. (line │ │ │ │ -0001dae0: 2020 3929 0a2a 206c 696e 6577 6964 7468 9).* linewidth │ │ │ │ -0001daf0: 203c 313e 3a20 2020 2020 2020 2020 2020 <1>: │ │ │ │ -0001db00: 2020 2020 2020 2020 2020 2020 2020 4672 Fr │ │ │ │ -0001db10: 616d 652e 2020 2020 2020 2020 2020 2020 ame. │ │ │ │ -0001db20: 2020 2020 286c 696e 6520 3130 290a 2a20 (line 10).* │ │ │ │ -0001db30: 6c69 6e65 7769 6474 6820 3c32 3e3a 2020 linewidth <2>: │ │ │ │ -0001db40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001db50: 2020 2020 2020 204f 7665 7276 6965 772e Overview. │ │ │ │ -0001db60: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ -0001db70: 6e65 2036 3929 0a2a 206c 696e 6577 6964 ne 69).* linewid │ │ │ │ -0001db80: 7468 203c 333e 3a20 2020 2020 2020 2020 th <3>: │ │ │ │ -0001db90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001dba0: 4120 7465 6368 6e69 6361 6c20 6472 6177 A technical draw │ │ │ │ -0001dbb0: 696e 672e 2020 286c 696e 6520 3236 290a ing. (line 26). │ │ │ │ -0001dbc0: 2a20 6f70 6163 6974 793a 2020 2020 2020 * opacity: │ │ │ │ +0001d950: 4f76 6572 7669 6577 2e20 2020 2020 2020 Overview. │ │ │ │ +0001d960: 2020 2020 2020 286c 696e 6520 3639 290a (line 69). │ │ │ │ +0001d970: 2a20 6c69 6e65 7374 796c 653a 2020 2020 * linestyle: │ │ │ │ +0001d980: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001d990: 2020 2020 2020 2020 2046 7261 6d65 2e20 Frame. │ │ │ │ +0001d9a0: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ +0001d9b0: 6c69 6e65 2031 3029 0a2a 206c 696e 6573 line 10).* lines │ │ │ │ +0001d9c0: 7479 6c65 203c 313e 3a20 2020 2020 2020 tyle <1>: │ │ │ │ +0001d9d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001d9e0: 2020 4f76 6572 7669 6577 2e20 2020 2020 Overview. │ │ │ │ +0001d9f0: 2020 2020 2020 2020 286c 696e 6520 3639 (line 69 │ │ │ │ +0001da00: 290a 2a20 6c69 6e65 7374 796c 6520 3c32 ).* linestyle <2 │ │ │ │ +0001da10: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ +0001da20: 2020 2020 2020 2020 2020 2041 2074 6563 A tec │ │ │ │ +0001da30: 686e 6963 616c 2064 7261 7769 6e67 2e20 hnical drawing. │ │ │ │ +0001da40: 2028 6c69 6e65 2032 3629 0a2a 206c 696e (line 26).* lin │ │ │ │ +0001da50: 6573 7479 6c65 203c 333e 3a20 2020 2020 estyle <3>: │ │ │ │ +0001da60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001da70: 2020 2020 4275 6773 2061 6e64 2061 6e6f Bugs and ano │ │ │ │ +0001da80: 6d61 6c69 6573 2e20 2020 286c 696e 6520 malies. (line │ │ │ │ +0001da90: 2037 290a 2a20 6c69 6e65 7769 6474 683a 7).* linewidth: │ │ │ │ +0001daa0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001dab0: 2020 2020 2020 2020 2020 2020 2050 6f6c Pol │ │ │ │ +0001dac0: 796c 696e 6520 7377 6565 7073 2e20 2020 yline sweeps. │ │ │ │ +0001dad0: 2020 2028 6c69 6e65 2020 3929 0a2a 206c (line 9).* l │ │ │ │ +0001dae0: 696e 6577 6964 7468 203c 313e 3a20 2020 inewidth <1>: │ │ │ │ +0001daf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001db00: 2020 2020 2020 4672 616d 652e 2020 2020 Frame. │ │ │ │ +0001db10: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ +0001db20: 6520 3130 290a 2a20 6c69 6e65 7769 6474 e 10).* linewidt │ │ │ │ +0001db30: 6820 3c32 3e3a 2020 2020 2020 2020 2020 h <2>: │ │ │ │ +0001db40: 2020 2020 2020 2020 2020 2020 2020 204f O │ │ │ │ +0001db50: 7665 7276 6965 772e 2020 2020 2020 2020 verview. │ │ │ │ +0001db60: 2020 2020 2028 6c69 6e65 2036 3929 0a2a (line 69).* │ │ │ │ +0001db70: 206c 696e 6577 6964 7468 203c 333e 3a20 linewidth <3>: │ │ │ │ +0001db80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001db90: 2020 2020 2020 2020 4120 7465 6368 6e69 A techni │ │ │ │ +0001dba0: 6361 6c20 6472 6177 696e 672e 2020 286c cal drawing. (l │ │ │ │ +0001dbb0: 696e 6520 3236 290a 2a20 6f70 6163 6974 ine 26).* opacit │ │ │ │ +0001dbc0: 793a 2020 2020 2020 2020 2020 2020 2020 y: │ │ │ │ 0001dbd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001dbe0: 2020 2020 2020 2020 2054 7261 6e73 7061 Transpa │ │ │ │ -0001dbf0: 7265 6e63 792e 2020 2020 2020 2020 2028 rency. ( │ │ │ │ -0001dc00: 6c69 6e65 2031 3029 0a2a 2070 6572 7370 line 10).* persp │ │ │ │ -0001dc10: 6563 7469 7665 3a20 2020 2020 2020 2020 ective: │ │ │ │ -0001dc20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001dc30: 2020 5472 616e 7366 6f72 6d20 6c69 7465 Transform lite │ │ │ │ -0001dc40: 7261 6c73 2e20 2020 286c 696e 6520 3231 rals. (line 21 │ │ │ │ -0001dc50: 290a 2a20 7069 6374 7572 6562 6f78 3a20 ).* picturebox: │ │ │ │ +0001dbe0: 2054 7261 6e73 7061 7265 6e63 792e 2020 Transparency. │ │ │ │ +0001dbf0: 2020 2020 2020 2028 6c69 6e65 2031 3029 (line 10) │ │ │ │ +0001dc00: 0a2a 2070 6572 7370 6563 7469 7665 3a20 .* perspective: │ │ │ │ +0001dc10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001dc20: 2020 2020 2020 2020 2020 5472 616e 7366 Transf │ │ │ │ +0001dc30: 6f72 6d20 6c69 7465 7261 6c73 2e20 2020 orm literals. │ │ │ │ +0001dc40: 286c 696e 6520 3231 290a 2a20 7069 6374 (line 21).* pict │ │ │ │ +0001dc50: 7572 6562 6f78 3a20 2020 2020 2020 2020 urebox: │ │ │ │ 0001dc60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001dc70: 2020 2020 2020 2020 2020 2050 6963 7475 Pictu │ │ │ │ -0001dc80: 7265 2062 6f78 2e20 2020 2020 2020 2020 re box. │ │ │ │ -0001dc90: 2028 6c69 6e65 2020 3629 0a2a 2070 6f69 (line 6).* poi │ │ │ │ -0001dca0: 6e74 206c 6973 743a 2020 2020 2020 2020 nt list: │ │ │ │ -0001dcb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001dcc0: 2020 2020 496e 7465 726e 616c 206f 7074 Internal opt │ │ │ │ -0001dcd0: 696f 6e73 2e20 2020 2020 286c 696e 6520 ions. (line │ │ │ │ -0001dce0: 3234 290a 2a20 706f 6c79 676f 6e3a 2020 24).* polygon: │ │ │ │ +0001dc70: 2020 2050 6963 7475 7265 2062 6f78 2e20 Picture box. │ │ │ │ +0001dc80: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ +0001dc90: 3629 0a2a 2070 6f69 6e74 206c 6973 743a 6).* point list: │ │ │ │ +0001dca0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001dcb0: 2020 2020 2020 2020 2020 2020 496e 7465 Inte │ │ │ │ +0001dcc0: 726e 616c 206f 7074 696f 6e73 2e20 2020 rnal options. │ │ │ │ +0001dcd0: 2020 286c 696e 6520 3234 290a 2a20 706f (line 24).* po │ │ │ │ +0001dce0: 6c79 676f 6e3a 2020 2020 2020 2020 2020 lygon: │ │ │ │ 0001dcf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001dd00: 2020 2020 2020 2020 2020 2020 2048 656c Hel │ │ │ │ -0001dd10: 6c6f 2077 6f72 6c64 2e20 2020 2020 2020 lo world. │ │ │ │ -0001dd20: 2020 2028 6c69 6e65 2033 3829 0a2a 2070 (line 38).* p │ │ │ │ -0001dd30: 6f6c 7967 6f6e 203c 313e 3a20 2020 2020 olygon <1>: │ │ │ │ -0001dd40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001dd50: 2020 2020 2020 4472 6177 696e 6720 6120 Drawing a │ │ │ │ -0001dd60: 736f 6c69 642e 2020 2020 2020 286c 696e solid. (lin │ │ │ │ -0001dd70: 6520 2039 290a 2a20 706f 6c79 676f 6e20 e 9).* polygon │ │ │ │ -0001dd80: 3c32 3e3a 2020 2020 2020 2020 2020 2020 <2>: │ │ │ │ -0001dd90: 2020 2020 2020 2020 2020 2020 2020 204f O │ │ │ │ -0001dda0: 626a 6563 7420 7472 616e 7366 6f72 6d73 bject transforms │ │ │ │ -0001ddb0: 2e20 2020 2028 6c69 6e65 2031 3029 0a2a . (line 10).* │ │ │ │ -0001ddc0: 2070 6f6c 7967 6f6e 203c 333e 3a20 2020 polygon <3>: │ │ │ │ +0001dd00: 2020 2020 2048 656c 6c6f 2077 6f72 6c64 Hello world │ │ │ │ +0001dd10: 2e20 2020 2020 2020 2020 2028 6c69 6e65 . (line │ │ │ │ +0001dd20: 2033 3829 0a2a 2070 6f6c 7967 6f6e 203c 38).* polygon < │ │ │ │ +0001dd30: 313e 3a20 2020 2020 2020 2020 2020 2020 1>: │ │ │ │ +0001dd40: 2020 2020 2020 2020 2020 2020 2020 4472 Dr │ │ │ │ +0001dd50: 6177 696e 6720 6120 736f 6c69 642e 2020 awing a solid. │ │ │ │ +0001dd60: 2020 2020 286c 696e 6520 2039 290a 2a20 (line 9).* │ │ │ │ +0001dd70: 706f 6c79 676f 6e20 3c32 3e3a 2020 2020 polygon <2>: │ │ │ │ +0001dd80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001dd90: 2020 2020 2020 204f 626a 6563 7420 7472 Object tr │ │ │ │ +0001dda0: 616e 7366 6f72 6d73 2e20 2020 2028 6c69 ansforms. (li │ │ │ │ +0001ddb0: 6e65 2031 3029 0a2a 2070 6f6c 7967 6f6e ne 10).* polygon │ │ │ │ +0001ddc0: 203c 333e 3a20 2020 2020 2020 2020 2020 <3>: │ │ │ │ 0001ddd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001dde0: 2020 2020 2020 2020 4166 6669 6e65 2061 Affine a │ │ │ │ -0001ddf0: 7269 7468 6d65 7469 632e 2020 2020 286c rithmetic. (l │ │ │ │ -0001de00: 696e 6520 3131 290a 2a20 706f 6c79 676f ine 11).* polygo │ │ │ │ -0001de10: 6e20 3c34 3e3a 2020 2020 2020 2020 2020 n <4>: │ │ │ │ -0001de20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001de30: 2050 6f6c 7967 6f6e 732e 2020 2020 2020 Polygons. │ │ │ │ -0001de40: 2020 2020 2020 2028 6c69 6e65 2020 3629 (line 6) │ │ │ │ -0001de50: 0a2a 2070 6f6c 7967 6f6e 203c 353e 3a20 .* polygon <5>: │ │ │ │ +0001dde0: 4166 6669 6e65 2061 7269 7468 6d65 7469 Affine arithmeti │ │ │ │ +0001ddf0: 632e 2020 2020 286c 696e 6520 3131 290a c. (line 11). │ │ │ │ +0001de00: 2a20 706f 6c79 676f 6e20 3c34 3e3a 2020 * polygon <4>: │ │ │ │ +0001de10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001de20: 2020 2020 2020 2020 2050 6f6c 7967 6f6e Polygon │ │ │ │ +0001de30: 732e 2020 2020 2020 2020 2020 2020 2028 s. ( │ │ │ │ +0001de40: 6c69 6e65 2020 3629 0a2a 2070 6f6c 7967 line 6).* polyg │ │ │ │ +0001de50: 6f6e 203c 353e 3a20 2020 2020 2020 2020 on <5>: │ │ │ │ 0001de60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001de70: 2020 2020 2020 2020 2020 5377 6570 7420 Swept │ │ │ │ -0001de80: 626c 6f63 6b73 2e20 2020 2020 2020 2020 blocks. │ │ │ │ -0001de90: 286c 696e 6520 2037 290a 2a20 706f 6c79 (line 7).* poly │ │ │ │ -0001dea0: 676f 6e20 3c36 3e3a 2020 2020 2020 2020 gon <6>: │ │ │ │ -0001deb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001dec0: 2020 204f 7665 7276 6965 772e 2020 2020 Overview. │ │ │ │ -0001ded0: 2020 2020 2020 2020 2028 6c69 6e65 2033 (line 3 │ │ │ │ -0001dee0: 3729 0a2a 2070 726f 6a65 6374 3a20 2020 7).* project: │ │ │ │ +0001de70: 2020 5377 6570 7420 626c 6f63 6b73 2e20 Swept blocks. │ │ │ │ +0001de80: 2020 2020 2020 2020 286c 696e 6520 2037 (line 7 │ │ │ │ +0001de90: 290a 2a20 706f 6c79 676f 6e20 3c36 3e3a ).* polygon <6>: │ │ │ │ +0001dea0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001deb0: 2020 2020 2020 2020 2020 204f 7665 7276 Overv │ │ │ │ +0001dec0: 6965 772e 2020 2020 2020 2020 2020 2020 iew. │ │ │ │ +0001ded0: 2028 6c69 6e65 2033 3729 0a2a 2070 726f (line 37).* pro │ │ │ │ +0001dee0: 6a65 6374 3a20 2020 2020 2020 2020 2020 ject: │ │ │ │ 0001def0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001df00: 2020 2020 2020 2020 2020 2020 5472 616e Tran │ │ │ │ -0001df10: 7366 6f72 6d20 6c69 7465 7261 6c73 2e20 sform literals. │ │ │ │ -0001df20: 2020 286c 696e 6520 3138 290a 2a20 7072 (line 18).* pr │ │ │ │ -0001df30: 6f6a 6563 7420 3c31 3e3a 2020 2020 2020 oject <1>: │ │ │ │ -0001df40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001df50: 2020 2020 2054 7261 6e73 666f 726d 206c Transform l │ │ │ │ -0001df60: 6974 6572 616c 732e 2020 2028 6c69 6e65 iterals. (line │ │ │ │ -0001df70: 2031 3929 0a2a 2070 726f 6a65 6374 203c 19).* project < │ │ │ │ -0001df80: 323e 3a20 2020 2020 2020 2020 2020 2020 2>: │ │ │ │ -0001df90: 2020 2020 2020 2020 2020 2020 2020 5472 Tr │ │ │ │ -0001dfa0: 616e 7366 6f72 6d20 6c69 7465 7261 6c73 ansform literals │ │ │ │ -0001dfb0: 2e20 2020 286c 696e 6520 3437 290a 2a20 . (line 47).* │ │ │ │ -0001dfc0: 7073 7472 6963 6b73 3a20 2020 2020 2020 pstricks: │ │ │ │ -0001dfd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001dfe0: 2020 2020 2020 204c 616e 6775 6167 652e Language. │ │ │ │ -0001dff0: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ -0001e000: 6e65 2031 3029 0a2a 2070 7574 3a20 2020 ne 10).* put: │ │ │ │ +0001df00: 2020 2020 5472 616e 7366 6f72 6d20 6c69 Transform li │ │ │ │ +0001df10: 7465 7261 6c73 2e20 2020 286c 696e 6520 terals. (line │ │ │ │ +0001df20: 3138 290a 2a20 7072 6f6a 6563 7420 3c31 18).* project <1 │ │ │ │ +0001df30: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ +0001df40: 2020 2020 2020 2020 2020 2020 2054 7261 Tra │ │ │ │ +0001df50: 6e73 666f 726d 206c 6974 6572 616c 732e nsform literals. │ │ │ │ +0001df60: 2020 2028 6c69 6e65 2031 3929 0a2a 2070 (line 19).* p │ │ │ │ +0001df70: 726f 6a65 6374 203c 323e 3a20 2020 2020 roject <2>: │ │ │ │ +0001df80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001df90: 2020 2020 2020 5472 616e 7366 6f72 6d20 Transform │ │ │ │ +0001dfa0: 6c69 7465 7261 6c73 2e20 2020 286c 696e literals. (lin │ │ │ │ +0001dfb0: 6520 3437 290a 2a20 7073 7472 6963 6b73 e 47).* pstricks │ │ │ │ +0001dfc0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +0001dfd0: 2020 2020 2020 2020 2020 2020 2020 204c L │ │ │ │ +0001dfe0: 616e 6775 6167 652e 2020 2020 2020 2020 anguage. │ │ │ │ +0001dff0: 2020 2020 2028 6c69 6e65 2031 3029 0a2a (line 10).* │ │ │ │ +0001e000: 2070 7574 3a20 2020 2020 2020 2020 2020 put: │ │ │ │ 0001e010: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e020: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e030: 4f62 6a65 6374 2074 7261 6e73 666f 726d Object transform │ │ │ │ -0001e040: 732e 2020 2020 286c 696e 6520 3130 290a s. (line 10). │ │ │ │ -0001e050: 2a20 7075 7420 3c31 3e3a 2020 2020 2020 * put <1>: │ │ │ │ +0001e020: 2020 2020 2020 2020 4f62 6a65 6374 2074 Object t │ │ │ │ +0001e030: 7261 6e73 666f 726d 732e 2020 2020 286c ransforms. (l │ │ │ │ +0001e040: 696e 6520 3130 290a 2a20 7075 7420 3c31 ine 10).* put <1 │ │ │ │ +0001e050: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ 0001e060: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e070: 2020 2020 2020 2020 204e 6573 7465 6420 Nested │ │ │ │ -0001e080: 7377 6565 7073 2e20 2020 2020 2020 2028 sweeps. ( │ │ │ │ -0001e090: 6c69 6e65 2032 3529 0a2a 2070 7574 203c line 25).* put < │ │ │ │ -0001e0a0: 323e 3a20 2020 2020 2020 2020 2020 2020 2>: │ │ │ │ -0001e0b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e0c0: 2020 5075 7473 2e20 2020 2020 2020 2020 Puts. │ │ │ │ -0001e0d0: 2020 2020 2020 2020 286c 696e 6520 2036 (line 6 │ │ │ │ -0001e0e0: 290a 2a20 7075 7420 3c33 3e3a 2020 2020 ).* put <3>: │ │ │ │ +0001e070: 204e 6573 7465 6420 7377 6565 7073 2e20 Nested sweeps. │ │ │ │ +0001e080: 2020 2020 2020 2028 6c69 6e65 2032 3529 (line 25) │ │ │ │ +0001e090: 0a2a 2070 7574 203c 323e 3a20 2020 2020 .* put <2>: │ │ │ │ +0001e0a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001e0b0: 2020 2020 2020 2020 2020 5075 7473 2e20 Puts. │ │ │ │ +0001e0c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001e0d0: 286c 696e 6520 2036 290a 2a20 7075 7420 (line 6).* put │ │ │ │ +0001e0e0: 3c33 3e3a 2020 2020 2020 2020 2020 2020 <3>: │ │ │ │ 0001e0f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e100: 2020 2020 2020 2020 2020 2041 2068 6965 A hie │ │ │ │ -0001e110: 7261 7263 6869 6361 6c20 6d6f 6465 6c2e rarchical model. │ │ │ │ -0001e120: 2028 6c69 6e65 2033 3229 0a2a 2072 6570 (line 32).* rep │ │ │ │ -0001e130: 6561 743a 2020 2020 2020 2020 2020 2020 eat: │ │ │ │ -0001e140: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e150: 2020 2020 5265 7065 6174 6564 206f 626a Repeated obj │ │ │ │ -0001e160: 6563 7473 2e20 2020 2020 286c 696e 6520 ects. (line │ │ │ │ -0001e170: 2038 290a 2a20 7265 7065 6174 203c 313e 8).* repeat <1> │ │ │ │ -0001e180: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ -0001e190: 2020 2020 2020 2020 2020 2020 204e 6573 Nes │ │ │ │ -0001e1a0: 7465 6420 7377 6565 7073 2e20 2020 2020 ted sweeps. │ │ │ │ -0001e1b0: 2020 2028 6c69 6e65 2032 3529 0a2a 2072 (line 25).* r │ │ │ │ -0001e1c0: 6570 6561 7420 3c32 3e3a 2020 2020 2020 epeat <2>: │ │ │ │ -0001e1d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e1e0: 2020 2020 2020 506f 6c79 6c69 6e65 2073 Polyline s │ │ │ │ -0001e1f0: 7765 6570 7320 7769 7468 2063 6c6f 7375 weeps with closu │ │ │ │ -0001e200: 7265 2e0a 2020 2020 2020 2020 2020 2020 re.. │ │ │ │ +0001e100: 2020 2041 2068 6965 7261 7263 6869 6361 A hierarchica │ │ │ │ +0001e110: 6c20 6d6f 6465 6c2e 2028 6c69 6e65 2033 l model. (line 3 │ │ │ │ +0001e120: 3229 0a2a 2072 6570 6561 743a 2020 2020 2).* repeat: │ │ │ │ +0001e130: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001e140: 2020 2020 2020 2020 2020 2020 5265 7065 Repe │ │ │ │ +0001e150: 6174 6564 206f 626a 6563 7473 2e20 2020 ated objects. │ │ │ │ +0001e160: 2020 286c 696e 6520 2038 290a 2a20 7265 (line 8).* re │ │ │ │ +0001e170: 7065 6174 203c 313e 3a20 2020 2020 2020 peat <1>: │ │ │ │ +0001e180: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001e190: 2020 2020 204e 6573 7465 6420 7377 6565 Nested swee │ │ │ │ +0001e1a0: 7073 2e20 2020 2020 2020 2028 6c69 6e65 ps. (line │ │ │ │ +0001e1b0: 2032 3529 0a2a 2072 6570 6561 7420 3c32 25).* repeat <2 │ │ │ │ +0001e1c0: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ +0001e1d0: 2020 2020 2020 2020 2020 2020 2020 506f Po │ │ │ │ +0001e1e0: 6c79 6c69 6e65 2073 7765 6570 7320 7769 lyline sweeps wi │ │ │ │ +0001e1f0: 7468 2063 6c6f 7375 7265 2e0a 2020 2020 th closure.. │ │ │ │ +0001e200: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001e210: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001e220: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e230: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e240: 2020 2028 6c69 6e65 2031 3029 0a2a 2072 (line 10).* r │ │ │ │ -0001e250: 6570 6561 7420 3c33 3e3a 2020 2020 2020 epeat <3>: │ │ │ │ -0001e260: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e270: 2020 2020 2020 5265 7065 6174 732e 2020 Repeats. │ │ │ │ -0001e280: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ -0001e290: 6520 2036 290a 2a20 7265 7065 6174 203c e 6).* repeat < │ │ │ │ -0001e2a0: 343e 3a20 2020 2020 2020 2020 2020 2020 4>: │ │ │ │ -0001e2b0: 2020 2020 2020 2020 2020 2020 2020 204f O │ │ │ │ -0001e2c0: 7665 7276 6965 772e 2020 2020 2020 2020 verview. │ │ │ │ -0001e2d0: 2020 2020 2028 6c69 6e65 2035 3729 0a2a (line 57).* │ │ │ │ -0001e2e0: 2072 6f74 6174 653a 2020 2020 2020 2020 rotate: │ │ │ │ +0001e230: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ +0001e240: 2031 3029 0a2a 2072 6570 6561 7420 3c33 10).* repeat <3 │ │ │ │ +0001e250: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ +0001e260: 2020 2020 2020 2020 2020 2020 2020 5265 Re │ │ │ │ +0001e270: 7065 6174 732e 2020 2020 2020 2020 2020 peats. │ │ │ │ +0001e280: 2020 2020 286c 696e 6520 2036 290a 2a20 (line 6).* │ │ │ │ +0001e290: 7265 7065 6174 203c 343e 3a20 2020 2020 repeat <4>: │ │ │ │ +0001e2a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001e2b0: 2020 2020 2020 204f 7665 7276 6965 772e Overview. │ │ │ │ +0001e2c0: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ +0001e2d0: 6e65 2035 3729 0a2a 2072 6f74 6174 653a ne 57).* rotate: │ │ │ │ +0001e2e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001e2f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e300: 2020 2020 2020 2020 4f62 6a65 6374 2074 Object t │ │ │ │ -0001e310: 7261 6e73 666f 726d 732e 2020 2020 286c ransforms. (l │ │ │ │ -0001e320: 696e 6520 3130 290a 2a20 726f 7461 7465 ine 10).* rotate │ │ │ │ -0001e330: 203c 313e 3a20 2020 2020 2020 2020 2020 <1>: │ │ │ │ -0001e340: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e350: 204f 626a 6563 7420 7472 616e 7366 6f72 Object transfor │ │ │ │ -0001e360: 6d73 2e20 2020 2028 6c69 6e65 2033 3929 ms. (line 39) │ │ │ │ -0001e370: 0a2a 2072 6f74 6174 6520 3c32 3e3a 2020 .* rotate <2>: │ │ │ │ +0001e300: 4f62 6a65 6374 2074 7261 6e73 666f 726d Object transform │ │ │ │ +0001e310: 732e 2020 2020 286c 696e 6520 3130 290a s. (line 10). │ │ │ │ +0001e320: 2a20 726f 7461 7465 203c 313e 3a20 2020 * rotate <1>: │ │ │ │ +0001e330: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001e340: 2020 2020 2020 2020 204f 626a 6563 7420 Object │ │ │ │ +0001e350: 7472 616e 7366 6f72 6d73 2e20 2020 2028 transforms. ( │ │ │ │ +0001e360: 6c69 6e65 2033 3929 0a2a 2072 6f74 6174 line 39).* rotat │ │ │ │ +0001e370: 6520 3c32 3e3a 2020 2020 2020 2020 2020 e <2>: │ │ │ │ 0001e380: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e390: 2020 2020 2020 2020 2020 5265 7065 6174 Repeat │ │ │ │ -0001e3a0: 6564 206f 626a 6563 7473 2e20 2020 2020 ed objects. │ │ │ │ -0001e3b0: 286c 696e 6520 2038 290a 2a20 726f 7461 (line 8).* rota │ │ │ │ -0001e3c0: 7465 203c 333e 3a20 2020 2020 2020 2020 te <3>: │ │ │ │ -0001e3d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e3e0: 2020 2053 7765 7074 206f 626a 6563 7473 Swept objects │ │ │ │ -0001e3f0: 2e20 2020 2020 2020 2028 6c69 6e65 2020 . (line │ │ │ │ -0001e400: 3829 0a2a 2072 6f74 6174 6520 3c34 3e3a 8).* rotate <4>: │ │ │ │ +0001e390: 2020 5265 7065 6174 6564 206f 626a 6563 Repeated objec │ │ │ │ +0001e3a0: 7473 2e20 2020 2020 286c 696e 6520 2038 ts. (line 8 │ │ │ │ +0001e3b0: 290a 2a20 726f 7461 7465 203c 333e 3a20 ).* rotate <3>: │ │ │ │ +0001e3c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001e3d0: 2020 2020 2020 2020 2020 2053 7765 7074 Swept │ │ │ │ +0001e3e0: 206f 626a 6563 7473 2e20 2020 2020 2020 objects. │ │ │ │ +0001e3f0: 2028 6c69 6e65 2020 3829 0a2a 2072 6f74 (line 8).* rot │ │ │ │ +0001e400: 6174 6520 3c34 3e3a 2020 2020 2020 2020 ate <4>: │ │ │ │ 0001e410: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e420: 2020 2020 2020 2020 2020 2020 506f 696e Poin │ │ │ │ -0001e430: 7420 7377 6565 7073 2e20 2020 2020 2020 t sweeps. │ │ │ │ -0001e440: 2020 286c 696e 6520 3139 290a 2a20 726f (line 19).* ro │ │ │ │ -0001e450: 7461 7465 203c 353e 3a20 2020 2020 2020 tate <5>: │ │ │ │ -0001e460: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e470: 2020 2020 2050 6f6c 796c 696e 6520 7377 Polyline sw │ │ │ │ -0001e480: 6565 7073 2e20 2020 2020 2028 6c69 6e65 eeps. (line │ │ │ │ -0001e490: 2020 3929 0a2a 2072 6f74 6174 6520 3c36 9).* rotate <6 │ │ │ │ -0001e4a0: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ -0001e4b0: 2020 2020 2020 2020 2020 2020 2020 4e65 Ne │ │ │ │ -0001e4c0: 7374 6564 2073 7765 6570 732e 2020 2020 sted sweeps. │ │ │ │ -0001e4d0: 2020 2020 286c 696e 6520 2038 290a 2a20 (line 8).* │ │ │ │ -0001e4e0: 726f 7461 7465 203c 373e 3a20 2020 2020 rotate <7>: │ │ │ │ -0001e4f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e500: 2020 2020 2020 2050 6f6c 796c 696e 6520 Polyline │ │ │ │ -0001e510: 7377 6565 7073 2077 6974 6820 636c 6f73 sweeps with clos │ │ │ │ -0001e520: 7572 652e 0a20 2020 2020 2020 2020 2020 ure.. │ │ │ │ +0001e420: 2020 2020 506f 696e 7420 7377 6565 7073 Point sweeps │ │ │ │ +0001e430: 2e20 2020 2020 2020 2020 286c 696e 6520 . (line │ │ │ │ +0001e440: 3139 290a 2a20 726f 7461 7465 203c 353e 19).* rotate <5> │ │ │ │ +0001e450: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +0001e460: 2020 2020 2020 2020 2020 2020 2050 6f6c Pol │ │ │ │ +0001e470: 796c 696e 6520 7377 6565 7073 2e20 2020 yline sweeps. │ │ │ │ +0001e480: 2020 2028 6c69 6e65 2020 3929 0a2a 2072 (line 9).* r │ │ │ │ +0001e490: 6f74 6174 6520 3c36 3e3a 2020 2020 2020 otate <6>: │ │ │ │ +0001e4a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001e4b0: 2020 2020 2020 4e65 7374 6564 2073 7765 Nested swe │ │ │ │ +0001e4c0: 6570 732e 2020 2020 2020 2020 286c 696e eps. (lin │ │ │ │ +0001e4d0: 6520 2038 290a 2a20 726f 7461 7465 203c e 8).* rotate < │ │ │ │ +0001e4e0: 373e 3a20 2020 2020 2020 2020 2020 2020 7>: │ │ │ │ +0001e4f0: 2020 2020 2020 2020 2020 2020 2020 2050 P │ │ │ │ +0001e500: 6f6c 796c 696e 6520 7377 6565 7073 2077 olyline sweeps w │ │ │ │ +0001e510: 6974 6820 636c 6f73 7572 652e 0a20 2020 ith closure.. │ │ │ │ +0001e520: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001e530: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001e540: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e550: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e560: 2020 2020 286c 696e 6520 3130 290a 2a20 (line 10).* │ │ │ │ -0001e570: 726f 7461 7465 203c 383e 3a20 2020 2020 rotate <8>: │ │ │ │ -0001e580: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e590: 2020 2020 2020 2054 7261 6e73 666f 726d Transform │ │ │ │ -0001e5a0: 206c 6974 6572 616c 732e 2020 2028 6c69 literals. (li │ │ │ │ -0001e5b0: 6e65 2031 3029 0a2a 2072 6f74 6174 6520 ne 10).* rotate │ │ │ │ -0001e5c0: 3c39 3e3a 2020 2020 2020 2020 2020 2020 <9>: │ │ │ │ -0001e5d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e5e0: 4f76 6572 7669 6577 2e20 2020 2020 2020 Overview. │ │ │ │ -0001e5f0: 2020 2020 2020 286c 696e 6520 3537 290a (line 57). │ │ │ │ -0001e600: 2a20 726f 7461 7465 203c 3130 3e3a 2020 * rotate <10>: │ │ │ │ +0001e550: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ +0001e560: 6520 3130 290a 2a20 726f 7461 7465 203c e 10).* rotate < │ │ │ │ +0001e570: 383e 3a20 2020 2020 2020 2020 2020 2020 8>: │ │ │ │ +0001e580: 2020 2020 2020 2020 2020 2020 2020 2054 T │ │ │ │ +0001e590: 7261 6e73 666f 726d 206c 6974 6572 616c ransform literal │ │ │ │ +0001e5a0: 732e 2020 2028 6c69 6e65 2031 3029 0a2a s. (line 10).* │ │ │ │ +0001e5b0: 2072 6f74 6174 6520 3c39 3e3a 2020 2020 rotate <9>: │ │ │ │ +0001e5c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001e5d0: 2020 2020 2020 2020 4f76 6572 7669 6577 Overview │ │ │ │ +0001e5e0: 2e20 2020 2020 2020 2020 2020 2020 286c . (l │ │ │ │ +0001e5f0: 696e 6520 3537 290a 2a20 726f 7461 7465 ine 57).* rotate │ │ │ │ +0001e600: 203c 3130 3e3a 2020 2020 2020 2020 2020 <10>: │ │ │ │ 0001e610: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e620: 2020 2020 2020 2020 204f 7665 7276 6965 Overvie │ │ │ │ -0001e630: 772e 2020 2020 2020 2020 2020 2020 2028 w. ( │ │ │ │ -0001e640: 6c69 6e65 2036 3929 0a2a 2072 6f74 6174 line 69).* rotat │ │ │ │ -0001e650: 6520 3c31 313e 3a20 2020 2020 2020 2020 e <11>: │ │ │ │ -0001e660: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e670: 2020 4120 7465 6368 6e69 6361 6c20 6472 A technical dr │ │ │ │ -0001e680: 6177 696e 672e 2020 286c 696e 6520 3134 awing. (line 14 │ │ │ │ -0001e690: 290a 2a20 726f 7461 7465 203c 3132 3e3a ).* rotate <12>: │ │ │ │ +0001e620: 204f 7665 7276 6965 772e 2020 2020 2020 Overview. │ │ │ │ +0001e630: 2020 2020 2020 2028 6c69 6e65 2036 3929 (line 69) │ │ │ │ +0001e640: 0a2a 2072 6f74 6174 6520 3c31 313e 3a20 .* rotate <11>: │ │ │ │ +0001e650: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001e660: 2020 2020 2020 2020 2020 4120 7465 6368 A tech │ │ │ │ +0001e670: 6e69 6361 6c20 6472 6177 696e 672e 2020 nical drawing. │ │ │ │ +0001e680: 286c 696e 6520 3134 290a 2a20 726f 7461 (line 14).* rota │ │ │ │ +0001e690: 7465 203c 3132 3e3a 2020 2020 2020 2020 te <12>: │ │ │ │ 0001e6a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e6b0: 2020 2020 2020 2020 2020 2041 2068 6965 A hie │ │ │ │ -0001e6c0: 7261 7263 6869 6361 6c20 6d6f 6465 6c2e rarchical model. │ │ │ │ -0001e6d0: 2028 6c69 6e65 2031 3029 0a2a 2072 6f74 (line 10).* rot │ │ │ │ -0001e6e0: 6174 6520 3c31 333e 3a20 2020 2020 2020 ate <13>: │ │ │ │ -0001e6f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e700: 2020 2020 4120 6869 6572 6172 6368 6963 A hierarchic │ │ │ │ -0001e710: 616c 206d 6f64 656c 2e20 286c 696e 6520 al model. (line │ │ │ │ -0001e720: 3233 290a 2a20 726f 7461 7465 203c 3134 23).* rotate <14 │ │ │ │ -0001e730: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ -0001e740: 2020 2020 2020 2020 2020 2020 2041 2068 A h │ │ │ │ -0001e750: 6965 7261 7263 6869 6361 6c20 6d6f 6465 ierarchical mode │ │ │ │ -0001e760: 6c2e 2028 6c69 6e65 2033 3229 0a2a 2073 l. (line 32).* s │ │ │ │ -0001e770: 6361 6c65 3a20 2020 2020 2020 2020 2020 cale: │ │ │ │ -0001e780: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e790: 2020 2020 2020 5472 616e 7366 6f72 6d20 Transform │ │ │ │ -0001e7a0: 6c69 7465 7261 6c73 2e20 2020 286c 696e literals. (lin │ │ │ │ -0001e7b0: 6520 3136 290a 2a20 7363 616c 6520 3c31 e 16).* scale <1 │ │ │ │ -0001e7c0: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ -0001e7d0: 2020 2020 2020 2020 2020 2020 2020 2054 T │ │ │ │ -0001e7e0: 7261 6e73 666f 726d 206c 6974 6572 616c ransform literal │ │ │ │ -0001e7f0: 732e 2020 2028 6c69 6e65 2031 3729 0a2a s. (line 17).* │ │ │ │ -0001e800: 2073 6361 6c65 203c 323e 3a20 2020 2020 scale <2>: │ │ │ │ +0001e6b0: 2020 2041 2068 6965 7261 7263 6869 6361 A hierarchica │ │ │ │ +0001e6c0: 6c20 6d6f 6465 6c2e 2028 6c69 6e65 2031 l model. (line 1 │ │ │ │ +0001e6d0: 3029 0a2a 2072 6f74 6174 6520 3c31 333e 0).* rotate <13> │ │ │ │ +0001e6e0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +0001e6f0: 2020 2020 2020 2020 2020 2020 4120 6869 A hi │ │ │ │ +0001e700: 6572 6172 6368 6963 616c 206d 6f64 656c erarchical model │ │ │ │ +0001e710: 2e20 286c 696e 6520 3233 290a 2a20 726f . (line 23).* ro │ │ │ │ +0001e720: 7461 7465 203c 3134 3e3a 2020 2020 2020 tate <14>: │ │ │ │ +0001e730: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001e740: 2020 2020 2041 2068 6965 7261 7263 6869 A hierarchi │ │ │ │ +0001e750: 6361 6c20 6d6f 6465 6c2e 2028 6c69 6e65 cal model. (line │ │ │ │ +0001e760: 2033 3229 0a2a 2073 6361 6c65 3a20 2020 32).* scale: │ │ │ │ +0001e770: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001e780: 2020 2020 2020 2020 2020 2020 2020 5472 Tr │ │ │ │ +0001e790: 616e 7366 6f72 6d20 6c69 7465 7261 6c73 ansform literals │ │ │ │ +0001e7a0: 2e20 2020 286c 696e 6520 3136 290a 2a20 . (line 16).* │ │ │ │ +0001e7b0: 7363 616c 6520 3c31 3e3a 2020 2020 2020 scale <1>: │ │ │ │ +0001e7c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001e7d0: 2020 2020 2020 2054 7261 6e73 666f 726d Transform │ │ │ │ +0001e7e0: 206c 6974 6572 616c 732e 2020 2028 6c69 literals. (li │ │ │ │ +0001e7f0: 6e65 2031 3729 0a2a 2073 6361 6c65 203c ne 17).* scale < │ │ │ │ +0001e800: 323e 3a20 2020 2020 2020 2020 2020 2020 2>: │ │ │ │ 0001e810: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e820: 2020 2020 2020 2020 4120 7465 6368 6e69 A techni │ │ │ │ -0001e830: 6361 6c20 6472 6177 696e 672e 2020 286c cal drawing. (l │ │ │ │ -0001e840: 696e 6520 3431 290a 2a20 7363 616c 6520 ine 41).* scale │ │ │ │ -0001e850: 3c33 3e3a 2020 2020 2020 2020 2020 2020 <3>: │ │ │ │ -0001e860: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e870: 2041 2074 6563 686e 6963 616c 2064 7261 A technical dra │ │ │ │ -0001e880: 7769 6e67 2e20 2028 6c69 6e65 2036 3829 wing. (line 68) │ │ │ │ -0001e890: 0a2a 2073 6361 6c65 203c 343e 3a20 2020 .* scale <4>: │ │ │ │ +0001e820: 4120 7465 6368 6e69 6361 6c20 6472 6177 A technical draw │ │ │ │ +0001e830: 696e 672e 2020 286c 696e 6520 3431 290a ing. (line 41). │ │ │ │ +0001e840: 2a20 7363 616c 6520 3c33 3e3a 2020 2020 * scale <3>: │ │ │ │ +0001e850: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001e860: 2020 2020 2020 2020 2041 2074 6563 686e A techn │ │ │ │ +0001e870: 6963 616c 2064 7261 7769 6e67 2e20 2028 ical drawing. ( │ │ │ │ +0001e880: 6c69 6e65 2036 3829 0a2a 2073 6361 6c65 line 68).* scale │ │ │ │ +0001e890: 203c 343e 3a20 2020 2020 2020 2020 2020 <4>: │ │ │ │ 0001e8a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e8b0: 2020 2020 2020 2020 2020 4120 6869 6572 A hier │ │ │ │ -0001e8c0: 6172 6368 6963 616c 206d 6f64 656c 2e20 archical model. │ │ │ │ -0001e8d0: 286c 696e 6520 3332 290a 2a20 7365 743a (line 32).* set: │ │ │ │ +0001e8b0: 2020 4120 6869 6572 6172 6368 6963 616c A hierarchical │ │ │ │ +0001e8c0: 206d 6f64 656c 2e20 286c 696e 6520 3332 model. (line 32 │ │ │ │ +0001e8d0: 290a 2a20 7365 743a 2020 2020 2020 2020 ).* set: │ │ │ │ 0001e8e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e8f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e900: 2020 2047 6c6f 6261 6c20 6f70 7469 6f6e Global option │ │ │ │ -0001e910: 732e 2020 2020 2020 2028 6c69 6e65 2020 s. (line │ │ │ │ -0001e920: 3629 0a2a 2073 696e 3a20 2020 2020 2020 6).* sin: │ │ │ │ +0001e8f0: 2020 2020 2020 2020 2020 2047 6c6f 6261 Globa │ │ │ │ +0001e900: 6c20 6f70 7469 6f6e 732e 2020 2020 2020 l options. │ │ │ │ +0001e910: 2028 6c69 6e65 2020 3629 0a2a 2073 696e (line 6).* sin │ │ │ │ +0001e920: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ 0001e930: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e940: 2020 2020 2020 2020 2020 2020 556e 6172 Unar │ │ │ │ -0001e950: 7920 666f 726d 732e 2020 2020 2020 2020 y forms. │ │ │ │ -0001e960: 2020 286c 696e 6520 3135 290a 2a20 7370 (line 15).* sp │ │ │ │ -0001e970: 6563 6961 6c3a 2020 2020 2020 2020 2020 ecial: │ │ │ │ -0001e980: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001e990: 2020 2020 2053 7065 6369 616c 206f 626a Special obj │ │ │ │ -0001e9a0: 6563 7473 2e20 2020 2020 2028 6c69 6e65 ects. (line │ │ │ │ -0001e9b0: 2020 3629 0a2a 2073 7065 6369 616c 203c 6).* special < │ │ │ │ -0001e9c0: 313e 3a20 2020 2020 2020 2020 2020 2020 1>: │ │ │ │ -0001e9d0: 2020 2020 2020 2020 2020 2020 2020 5370 Sp │ │ │ │ -0001e9e0: 6563 6961 6c73 2e20 2020 2020 2020 2020 ecials. │ │ │ │ -0001e9f0: 2020 2020 286c 696e 6520 2036 290a 2a20 (line 6).* │ │ │ │ -0001ea00: 7370 6563 6961 6c20 3c32 3e3a 2020 2020 special <2>: │ │ │ │ -0001ea10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001ea20: 2020 2020 2020 204f 7665 7276 6965 772e Overview. │ │ │ │ -0001ea30: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ -0001ea40: 6e65 2036 3929 0a2a 2073 7065 6369 616c ne 69).* special │ │ │ │ -0001ea50: 203c 333e 3a20 2020 2020 2020 2020 2020 <3>: │ │ │ │ -0001ea60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001ea70: 4120 7465 6368 6e69 6361 6c20 6472 6177 A technical draw │ │ │ │ -0001ea80: 696e 672e 2020 286c 696e 6520 3236 290a ing. (line 26). │ │ │ │ -0001ea90: 2a20 7370 6563 6961 6c20 3c34 3e3a 2020 * special <4>: │ │ │ │ +0001e940: 2020 2020 556e 6172 7920 666f 726d 732e Unary forms. │ │ │ │ +0001e950: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ +0001e960: 3135 290a 2a20 7370 6563 6961 6c3a 2020 15).* special: │ │ │ │ +0001e970: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001e980: 2020 2020 2020 2020 2020 2020 2053 7065 Spe │ │ │ │ +0001e990: 6369 616c 206f 626a 6563 7473 2e20 2020 cial objects. │ │ │ │ +0001e9a0: 2020 2028 6c69 6e65 2020 3629 0a2a 2073 (line 6).* s │ │ │ │ +0001e9b0: 7065 6369 616c 203c 313e 3a20 2020 2020 pecial <1>: │ │ │ │ +0001e9c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001e9d0: 2020 2020 2020 5370 6563 6961 6c73 2e20 Specials. │ │ │ │ +0001e9e0: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ +0001e9f0: 6520 2036 290a 2a20 7370 6563 6961 6c20 e 6).* special │ │ │ │ +0001ea00: 3c32 3e3a 2020 2020 2020 2020 2020 2020 <2>: │ │ │ │ +0001ea10: 2020 2020 2020 2020 2020 2020 2020 204f O │ │ │ │ +0001ea20: 7665 7276 6965 772e 2020 2020 2020 2020 verview. │ │ │ │ +0001ea30: 2020 2020 2028 6c69 6e65 2036 3929 0a2a (line 69).* │ │ │ │ +0001ea40: 2073 7065 6369 616c 203c 333e 3a20 2020 special <3>: │ │ │ │ +0001ea50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001ea60: 2020 2020 2020 2020 4120 7465 6368 6e69 A techni │ │ │ │ +0001ea70: 6361 6c20 6472 6177 696e 672e 2020 286c cal drawing. (l │ │ │ │ +0001ea80: 696e 6520 3236 290a 2a20 7370 6563 6961 ine 26).* specia │ │ │ │ +0001ea90: 6c20 3c34 3e3a 2020 2020 2020 2020 2020 l <4>: │ │ │ │ 0001eaa0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001eab0: 2020 2020 2020 2020 2041 2074 6563 686e A techn │ │ │ │ -0001eac0: 6963 616c 2064 7261 7769 6e67 2e20 2028 ical drawing. ( │ │ │ │ -0001ead0: 6c69 6e65 2034 3129 0a2a 2073 7065 6369 line 41).* speci │ │ │ │ -0001eae0: 616c 203c 353e 3a20 2020 2020 2020 2020 al <5>: │ │ │ │ -0001eaf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001eb00: 2020 4120 7465 6368 6e69 6361 6c20 6472 A technical dr │ │ │ │ -0001eb10: 6177 696e 672e 2020 286c 696e 6520 3638 awing. (line 68 │ │ │ │ -0001eb20: 290a 2a20 7370 6563 6961 6c20 3c36 3e3a ).* special <6>: │ │ │ │ +0001eab0: 2041 2074 6563 686e 6963 616c 2064 7261 A technical dra │ │ │ │ +0001eac0: 7769 6e67 2e20 2028 6c69 6e65 2034 3129 wing. (line 41) │ │ │ │ +0001ead0: 0a2a 2073 7065 6369 616c 203c 353e 3a20 .* special <5>: │ │ │ │ +0001eae0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001eaf0: 2020 2020 2020 2020 2020 4120 7465 6368 A tech │ │ │ │ +0001eb00: 6e69 6361 6c20 6472 6177 696e 672e 2020 nical drawing. │ │ │ │ +0001eb10: 286c 696e 6520 3638 290a 2a20 7370 6563 (line 68).* spec │ │ │ │ +0001eb20: 6961 6c20 3c36 3e3a 2020 2020 2020 2020 ial <6>: │ │ │ │ 0001eb30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001eb40: 2020 2020 2020 2020 2020 2041 2074 6563 A tec │ │ │ │ -0001eb50: 686e 6963 616c 2064 7261 7769 6e67 2e20 hnical drawing. │ │ │ │ -0001eb60: 2028 6c69 6e65 2039 3529 0a2a 2073 706c (line 95).* spl │ │ │ │ -0001eb70: 6974 3a20 2020 2020 2020 2020 2020 2020 it: │ │ │ │ -0001eb80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001eb90: 2020 2020 496e 7465 726e 616c 206f 7074 Internal opt │ │ │ │ -0001eba0: 696f 6e73 2e20 2020 2020 286c 696e 6520 ions. (line │ │ │ │ -0001ebb0: 2037 290a 2a20 7370 6c69 7420 3c31 3e3a 7).* split <1>: │ │ │ │ +0001eb40: 2020 2041 2074 6563 686e 6963 616c 2064 A technical d │ │ │ │ +0001eb50: 7261 7769 6e67 2e20 2028 6c69 6e65 2039 rawing. (line 9 │ │ │ │ +0001eb60: 3529 0a2a 2073 706c 6974 3a20 2020 2020 5).* split: │ │ │ │ +0001eb70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001eb80: 2020 2020 2020 2020 2020 2020 496e 7465 Inte │ │ │ │ +0001eb90: 726e 616c 206f 7074 696f 6e73 2e20 2020 rnal options. │ │ │ │ +0001eba0: 2020 286c 696e 6520 2037 290a 2a20 7370 (line 7).* sp │ │ │ │ +0001ebb0: 6c69 7420 3c31 3e3a 2020 2020 2020 2020 lit <1>: │ │ │ │ 0001ebc0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001ebd0: 2020 2020 2020 2020 2020 2020 2047 6c6f Glo │ │ │ │ -0001ebe0: 6261 6c20 6f70 7469 6f6e 732e 2020 2020 bal options. │ │ │ │ -0001ebf0: 2020 2028 6c69 6e65 2031 3329 0a2a 2073 (line 13).* s │ │ │ │ -0001ec00: 7172 743a 2020 2020 2020 2020 2020 2020 qrt: │ │ │ │ -0001ec10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001ec20: 2020 2020 2020 556e 6172 7920 666f 726d Unary form │ │ │ │ -0001ec30: 732e 2020 2020 2020 2020 2020 286c 696e s. (lin │ │ │ │ -0001ec40: 6520 3134 290a 2a20 7377 6565 703a 2020 e 14).* sweep: │ │ │ │ +0001ebd0: 2020 2020 2047 6c6f 6261 6c20 6f70 7469 Global opti │ │ │ │ +0001ebe0: 6f6e 732e 2020 2020 2020 2028 6c69 6e65 ons. (line │ │ │ │ +0001ebf0: 2031 3329 0a2a 2073 7172 743a 2020 2020 13).* sqrt: │ │ │ │ +0001ec00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001ec10: 2020 2020 2020 2020 2020 2020 2020 556e Un │ │ │ │ +0001ec20: 6172 7920 666f 726d 732e 2020 2020 2020 ary forms. │ │ │ │ +0001ec30: 2020 2020 286c 696e 6520 3134 290a 2a20 (line 14).* │ │ │ │ +0001ec40: 7377 6565 703a 2020 2020 2020 2020 2020 sweep: │ │ │ │ 0001ec50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001ec60: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ -0001ec70: 7765 7074 206f 626a 6563 7473 2e20 2020 wept objects. │ │ │ │ -0001ec80: 2020 2020 2028 6c69 6e65 2020 3829 0a2a (line 8).* │ │ │ │ -0001ec90: 2073 7765 6570 203c 313e 3a20 2020 2020 sweep <1>: │ │ │ │ +0001ec60: 2020 2020 2020 2053 7765 7074 206f 626a Swept obj │ │ │ │ +0001ec70: 6563 7473 2e20 2020 2020 2020 2028 6c69 ects. (li │ │ │ │ +0001ec80: 6e65 2020 3829 0a2a 2073 7765 6570 203c ne 8).* sweep < │ │ │ │ +0001ec90: 313e 3a20 2020 2020 2020 2020 2020 2020 1>: │ │ │ │ 0001eca0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001ecb0: 2020 2020 2020 2020 506f 696e 7420 7377 Point sw │ │ │ │ -0001ecc0: 6565 7073 2e20 2020 2020 2020 2020 286c eeps. (l │ │ │ │ -0001ecd0: 696e 6520 3139 290a 2a20 7377 6565 7020 ine 19).* sweep │ │ │ │ -0001ece0: 3c32 3e3a 2020 2020 2020 2020 2020 2020 <2>: │ │ │ │ -0001ecf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001ed00: 2050 6f6c 796c 696e 6520 7377 6565 7073 Polyline sweeps │ │ │ │ -0001ed10: 2e20 2020 2020 2028 6c69 6e65 2020 3929 . (line 9) │ │ │ │ -0001ed20: 0a2a 2073 7765 6570 203c 333e 3a20 2020 .* sweep <3>: │ │ │ │ +0001ecb0: 506f 696e 7420 7377 6565 7073 2e20 2020 Point sweeps. │ │ │ │ +0001ecc0: 2020 2020 2020 286c 696e 6520 3139 290a (line 19). │ │ │ │ +0001ecd0: 2a20 7377 6565 7020 3c32 3e3a 2020 2020 * sweep <2>: │ │ │ │ +0001ece0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001ecf0: 2020 2020 2020 2020 2050 6f6c 796c 696e Polylin │ │ │ │ +0001ed00: 6520 7377 6565 7073 2e20 2020 2020 2028 e sweeps. ( │ │ │ │ +0001ed10: 6c69 6e65 2020 3929 0a2a 2073 7765 6570 line 9).* sweep │ │ │ │ +0001ed20: 203c 333e 3a20 2020 2020 2020 2020 2020 <3>: │ │ │ │ 0001ed30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001ed40: 2020 2020 2020 2020 2020 4e65 7374 6564 Nested │ │ │ │ -0001ed50: 2073 7765 6570 732e 2020 2020 2020 2020 sweeps. │ │ │ │ -0001ed60: 286c 696e 6520 2038 290a 2a20 7377 6565 (line 8).* swee │ │ │ │ -0001ed70: 7020 3c34 3e3a 2020 2020 2020 2020 2020 p <4>: │ │ │ │ -0001ed80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001ed90: 2020 204e 6573 7465 6420 7377 6565 7073 Nested sweeps │ │ │ │ -0001eda0: 2e20 2020 2020 2020 2028 6c69 6e65 2032 . (line 2 │ │ │ │ -0001edb0: 3229 0a2a 2073 7765 6570 203c 353e 3a20 2).* sweep <5>: │ │ │ │ +0001ed40: 2020 4e65 7374 6564 2073 7765 6570 732e Nested sweeps. │ │ │ │ +0001ed50: 2020 2020 2020 2020 286c 696e 6520 2038 (line 8 │ │ │ │ +0001ed60: 290a 2a20 7377 6565 7020 3c34 3e3a 2020 ).* sweep <4>: │ │ │ │ +0001ed70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001ed80: 2020 2020 2020 2020 2020 204e 6573 7465 Neste │ │ │ │ +0001ed90: 6420 7377 6565 7073 2e20 2020 2020 2020 d sweeps. │ │ │ │ +0001eda0: 2028 6c69 6e65 2032 3229 0a2a 2073 7765 (line 22).* swe │ │ │ │ +0001edb0: 6570 203c 353e 3a20 2020 2020 2020 2020 ep <5>: │ │ │ │ 0001edc0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001edd0: 2020 2020 2020 2020 2020 2020 506f 6c79 Poly │ │ │ │ -0001ede0: 6c69 6e65 2073 7765 6570 7320 7769 7468 line sweeps with │ │ │ │ -0001edf0: 2063 6c6f 7375 7265 2e0a 2020 2020 2020 closure.. │ │ │ │ +0001edd0: 2020 2020 506f 6c79 6c69 6e65 2073 7765 Polyline swe │ │ │ │ +0001ede0: 6570 7320 7769 7468 2063 6c6f 7375 7265 eps with closure │ │ │ │ +0001edf0: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ 0001ee00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001ee10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001ee20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001ee30: 2020 2020 2020 2020 2028 6c69 6e65 2031 (line 1 │ │ │ │ -0001ee40: 3029 0a2a 2073 7765 6570 203c 363e 3a20 0).* sweep <6>: │ │ │ │ +0001ee30: 2028 6c69 6e65 2031 3029 0a2a 2073 7765 (line 10).* swe │ │ │ │ +0001ee40: 6570 203c 363e 3a20 2020 2020 2020 2020 ep <6>: │ │ │ │ 0001ee50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001ee60: 2020 2020 2020 2020 2020 2020 5377 6565 Swee │ │ │ │ -0001ee70: 7073 2e20 2020 2020 2020 2020 2020 2020 ps. │ │ │ │ -0001ee80: 2020 286c 696e 6520 2036 290a 2a20 7377 (line 6).* sw │ │ │ │ -0001ee90: 6565 7020 3c37 3e3a 2020 2020 2020 2020 eep <7>: │ │ │ │ -0001eea0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001eeb0: 2020 2020 2041 2074 6563 686e 6963 616c A technical │ │ │ │ -0001eec0: 2064 7261 7769 6e67 2e20 2028 6c69 6e65 drawing. (line │ │ │ │ -0001eed0: 2032 3029 0a2a 2073 7765 6570 203c 383e 20).* sweep <8> │ │ │ │ -0001eee0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ -0001eef0: 2020 2020 2020 2020 2020 2020 2020 4120 A │ │ │ │ -0001ef00: 6869 6572 6172 6368 6963 616c 206d 6f64 hierarchical mod │ │ │ │ -0001ef10: 656c 2e20 286c 696e 6520 3130 290a 2a20 el. (line 10).* │ │ │ │ -0001ef20: 7377 6565 7020 3c39 3e3a 2020 2020 2020 sweep <9>: │ │ │ │ -0001ef30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001ef40: 2020 2020 2020 2041 2068 6965 7261 7263 A hierarc │ │ │ │ -0001ef50: 6869 6361 6c20 6d6f 6465 6c2e 2028 6c69 hical model. (li │ │ │ │ -0001ef60: 6e65 2032 3329 0a2a 2074 6865 6e3a 2020 ne 23).* then: │ │ │ │ +0001ee60: 2020 2020 5377 6565 7073 2e20 2020 2020 Sweeps. │ │ │ │ +0001ee70: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ +0001ee80: 2036 290a 2a20 7377 6565 7020 3c37 3e3a 6).* sweep <7>: │ │ │ │ +0001ee90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001eea0: 2020 2020 2020 2020 2020 2020 2041 2074 A t │ │ │ │ +0001eeb0: 6563 686e 6963 616c 2064 7261 7769 6e67 echnical drawing │ │ │ │ +0001eec0: 2e20 2028 6c69 6e65 2032 3029 0a2a 2073 . (line 20).* s │ │ │ │ +0001eed0: 7765 6570 203c 383e 3a20 2020 2020 2020 weep <8>: │ │ │ │ +0001eee0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001eef0: 2020 2020 2020 4120 6869 6572 6172 6368 A hierarch │ │ │ │ +0001ef00: 6963 616c 206d 6f64 656c 2e20 286c 696e ical model. (lin │ │ │ │ +0001ef10: 6520 3130 290a 2a20 7377 6565 7020 3c39 e 10).* sweep <9 │ │ │ │ +0001ef20: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ +0001ef30: 2020 2020 2020 2020 2020 2020 2020 2041 A │ │ │ │ +0001ef40: 2068 6965 7261 7263 6869 6361 6c20 6d6f hierarchical mo │ │ │ │ +0001ef50: 6465 6c2e 2028 6c69 6e65 2032 3329 0a2a del. (line 23).* │ │ │ │ +0001ef60: 2074 6865 6e3a 2020 2020 2020 2020 2020 then: │ │ │ │ 0001ef70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001ef80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001ef90: 4f62 6a65 6374 2074 7261 6e73 666f 726d Object transform │ │ │ │ -0001efa0: 732e 2020 2020 286c 696e 6520 3130 290a s. (line 10). │ │ │ │ -0001efb0: 2a20 7468 656e 203c 313e 3a20 2020 2020 * then <1>: │ │ │ │ +0001ef80: 2020 2020 2020 2020 4f62 6a65 6374 2074 Object t │ │ │ │ +0001ef90: 7261 6e73 666f 726d 732e 2020 2020 286c ransforms. (l │ │ │ │ +0001efa0: 696e 6520 3130 290a 2a20 7468 656e 203c ine 10).* then < │ │ │ │ +0001efb0: 313e 3a20 2020 2020 2020 2020 2020 2020 1>: │ │ │ │ 0001efc0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001efd0: 2020 2020 2020 2020 2050 6f6c 796c 696e Polylin │ │ │ │ -0001efe0: 6520 7377 6565 7073 2077 6974 6820 636c e sweeps with cl │ │ │ │ -0001eff0: 6f73 7572 652e 0a20 2020 2020 2020 2020 osure.. │ │ │ │ +0001efd0: 2050 6f6c 796c 696e 6520 7377 6565 7073 Polyline sweeps │ │ │ │ +0001efe0: 2077 6974 6820 636c 6f73 7572 652e 0a20 with closure.. │ │ │ │ +0001eff0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001f000: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001f010: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f020: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f030: 2020 2020 2020 286c 696e 6520 3130 290a (line 10). │ │ │ │ -0001f040: 2a20 7468 656e 203c 323e 3a20 2020 2020 * then <2>: │ │ │ │ +0001f020: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ +0001f030: 696e 6520 3130 290a 2a20 7468 656e 203c ine 10).* then < │ │ │ │ +0001f040: 323e 3a20 2020 2020 2020 2020 2020 2020 2>: │ │ │ │ 0001f050: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f060: 2020 2020 2020 2020 2054 776f 2d6f 7065 Two-ope │ │ │ │ -0001f070: 7261 6e64 2028 6269 6e61 7279 2920 666f rand (binary) fo │ │ │ │ -0001f080: 726d 732e 0a20 2020 2020 2020 2020 2020 rms.. │ │ │ │ +0001f060: 2054 776f 2d6f 7065 7261 6e64 2028 6269 Two-operand (bi │ │ │ │ +0001f070: 6e61 7279 2920 666f 726d 732e 0a20 2020 nary) forms.. │ │ │ │ +0001f080: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001f090: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001f0a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f0b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f0c0: 2020 2020 286c 696e 6520 3336 290a 2a20 (line 36).* │ │ │ │ -0001f0d0: 7468 656e 203c 333e 3a20 2020 2020 2020 then <3>: │ │ │ │ -0001f0e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f0f0: 2020 2020 2020 2054 776f 2d6f 7065 7261 Two-opera │ │ │ │ -0001f100: 6e64 2028 6269 6e61 7279 2920 666f 726d nd (binary) form │ │ │ │ -0001f110: 732e 0a20 2020 2020 2020 2020 2020 2020 s.. │ │ │ │ +0001f0b0: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ +0001f0c0: 6520 3336 290a 2a20 7468 656e 203c 333e e 36).* then <3> │ │ │ │ +0001f0d0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +0001f0e0: 2020 2020 2020 2020 2020 2020 2020 2054 T │ │ │ │ +0001f0f0: 776f 2d6f 7065 7261 6e64 2028 6269 6e61 wo-operand (bina │ │ │ │ +0001f100: 7279 2920 666f 726d 732e 0a20 2020 2020 ry) forms.. │ │ │ │ +0001f110: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001f120: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001f130: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f140: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f150: 2020 286c 696e 6520 3633 290a 2a20 7469 (line 63).* ti │ │ │ │ -0001f160: 6b7a 3a20 2020 2020 2020 2020 2020 2020 kz: │ │ │ │ -0001f170: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f180: 2020 2020 204c 616e 6775 6167 652e 2020 Language. │ │ │ │ -0001f190: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ -0001f1a0: 2031 3029 0a2a 2074 7261 6e73 6c61 7465 10).* translate │ │ │ │ -0001f1b0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ -0001f1c0: 2020 2020 2020 2020 2020 2020 2020 4f62 Ob │ │ │ │ -0001f1d0: 6a65 6374 2074 7261 6e73 666f 726d 732e ject transforms. │ │ │ │ -0001f1e0: 2020 2020 286c 696e 6520 3130 290a 2a20 (line 10).* │ │ │ │ -0001f1f0: 7472 616e 736c 6174 6520 3c31 3e3a 2020 translate <1>: │ │ │ │ -0001f200: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f210: 2020 2020 2020 204f 626a 6563 7420 7472 Object tr │ │ │ │ -0001f220: 616e 7366 6f72 6d73 2e20 2020 2028 6c69 ansforms. (li │ │ │ │ -0001f230: 6e65 2034 3729 0a2a 2074 7261 6e73 6c61 ne 47).* transla │ │ │ │ -0001f240: 7465 203c 323e 3a20 2020 2020 2020 2020 te <2>: │ │ │ │ -0001f250: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f260: 5265 7065 6174 6564 206f 626a 6563 7473 Repeated objects │ │ │ │ -0001f270: 2e20 2020 2020 286c 696e 6520 2038 290a . (line 8). │ │ │ │ -0001f280: 2a20 7472 616e 736c 6174 6520 3c33 3e3a * translate <3>: │ │ │ │ +0001f140: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ +0001f150: 3633 290a 2a20 7469 6b7a 3a20 2020 2020 63).* tikz: │ │ │ │ +0001f160: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001f170: 2020 2020 2020 2020 2020 2020 204c 616e Lan │ │ │ │ +0001f180: 6775 6167 652e 2020 2020 2020 2020 2020 guage. │ │ │ │ +0001f190: 2020 2028 6c69 6e65 2031 3029 0a2a 2074 (line 10).* t │ │ │ │ +0001f1a0: 7261 6e73 6c61 7465 3a20 2020 2020 2020 ranslate: │ │ │ │ +0001f1b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001f1c0: 2020 2020 2020 4f62 6a65 6374 2074 7261 Object tra │ │ │ │ +0001f1d0: 6e73 666f 726d 732e 2020 2020 286c 696e nsforms. (lin │ │ │ │ +0001f1e0: 6520 3130 290a 2a20 7472 616e 736c 6174 e 10).* translat │ │ │ │ +0001f1f0: 6520 3c31 3e3a 2020 2020 2020 2020 2020 e <1>: │ │ │ │ +0001f200: 2020 2020 2020 2020 2020 2020 2020 204f O │ │ │ │ +0001f210: 626a 6563 7420 7472 616e 7366 6f72 6d73 bject transforms │ │ │ │ +0001f220: 2e20 2020 2028 6c69 6e65 2034 3729 0a2a . (line 47).* │ │ │ │ +0001f230: 2074 7261 6e73 6c61 7465 203c 323e 3a20 translate <2>: │ │ │ │ +0001f240: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001f250: 2020 2020 2020 2020 5265 7065 6174 6564 Repeated │ │ │ │ +0001f260: 206f 626a 6563 7473 2e20 2020 2020 286c objects. (l │ │ │ │ +0001f270: 696e 6520 2038 290a 2a20 7472 616e 736c ine 8).* transl │ │ │ │ +0001f280: 6174 6520 3c33 3e3a 2020 2020 2020 2020 ate <3>: │ │ │ │ 0001f290: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f2a0: 2020 2020 2020 2020 2050 6f6c 796c 696e Polylin │ │ │ │ -0001f2b0: 6520 7377 6565 7073 2e20 2020 2020 2028 e sweeps. ( │ │ │ │ -0001f2c0: 6c69 6e65 2020 3929 0a2a 2074 7261 6e73 line 9).* trans │ │ │ │ -0001f2d0: 6c61 7465 203c 343e 3a20 2020 2020 2020 late <4>: │ │ │ │ -0001f2e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f2f0: 2020 506f 6c79 6c69 6e65 2073 7765 6570 Polyline sweep │ │ │ │ -0001f300: 7320 7769 7468 2063 6c6f 7375 7265 2e0a s with closure.. │ │ │ │ +0001f2a0: 2050 6f6c 796c 696e 6520 7377 6565 7073 Polyline sweeps │ │ │ │ +0001f2b0: 2e20 2020 2020 2028 6c69 6e65 2020 3929 . (line 9) │ │ │ │ +0001f2c0: 0a2a 2074 7261 6e73 6c61 7465 203c 343e .* translate <4> │ │ │ │ +0001f2d0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +0001f2e0: 2020 2020 2020 2020 2020 506f 6c79 6c69 Polyli │ │ │ │ +0001f2f0: 6e65 2073 7765 6570 7320 7769 7468 2063 ne sweeps with c │ │ │ │ +0001f300: 6c6f 7375 7265 2e0a 2020 2020 2020 2020 losure.. │ │ │ │ 0001f310: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001f320: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001f330: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f340: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ -0001f350: 6c69 6e65 2031 3029 0a2a 2074 7261 6e73 line 10).* trans │ │ │ │ -0001f360: 6c61 7465 203c 353e 3a20 2020 2020 2020 late <5>: │ │ │ │ -0001f370: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f380: 2020 5472 616e 7366 6f72 6d20 6c69 7465 Transform lite │ │ │ │ -0001f390: 7261 6c73 2e20 2020 286c 696e 6520 3135 rals. (line 15 │ │ │ │ -0001f3a0: 290a 2a20 7472 616e 736c 6174 6520 3c36 ).* translate <6 │ │ │ │ -0001f3b0: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ -0001f3c0: 2020 2020 2020 2020 2020 204f 7665 7276 Overv │ │ │ │ -0001f3d0: 6965 772e 2020 2020 2020 2020 2020 2020 iew. │ │ │ │ -0001f3e0: 2028 6c69 6e65 2035 3729 0a2a 2074 7261 (line 57).* tra │ │ │ │ -0001f3f0: 6e73 6c61 7465 203c 373e 3a20 2020 2020 nslate <7>: │ │ │ │ -0001f400: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f410: 2020 2020 4f76 6572 7669 6577 2e20 2020 Overview. │ │ │ │ -0001f420: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ -0001f430: 3639 290a 2a20 7472 616e 736c 6174 6520 69).* translate │ │ │ │ -0001f440: 3c38 3e3a 2020 2020 2020 2020 2020 2020 <8>: │ │ │ │ -0001f450: 2020 2020 2020 2020 2020 2020 2041 2068 A h │ │ │ │ -0001f460: 6965 7261 7263 6869 6361 6c20 6d6f 6465 ierarchical mode │ │ │ │ -0001f470: 6c2e 2028 6c69 6e65 2033 3229 0a2a 2074 l. (line 32).* t │ │ │ │ -0001f480: 7261 6e73 7061 6c70 6861 3a20 2020 2020 ranspalpha: │ │ │ │ -0001f490: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f4a0: 2020 2020 2020 5472 616e 7370 6172 656e Transparen │ │ │ │ -0001f4b0: 6379 2e20 2020 2020 2020 2020 286c 696e cy. (lin │ │ │ │ -0001f4c0: 6520 3130 290a 2a20 756e 6974 3a20 2020 e 10).* unit: │ │ │ │ +0001f340: 2020 2020 2020 2028 6c69 6e65 2031 3029 (line 10) │ │ │ │ +0001f350: 0a2a 2074 7261 6e73 6c61 7465 203c 353e .* translate <5> │ │ │ │ +0001f360: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +0001f370: 2020 2020 2020 2020 2020 5472 616e 7366 Transf │ │ │ │ +0001f380: 6f72 6d20 6c69 7465 7261 6c73 2e20 2020 orm literals. │ │ │ │ +0001f390: 286c 696e 6520 3135 290a 2a20 7472 616e (line 15).* tran │ │ │ │ +0001f3a0: 736c 6174 6520 3c36 3e3a 2020 2020 2020 slate <6>: │ │ │ │ +0001f3b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001f3c0: 2020 204f 7665 7276 6965 772e 2020 2020 Overview. │ │ │ │ +0001f3d0: 2020 2020 2020 2020 2028 6c69 6e65 2035 (line 5 │ │ │ │ +0001f3e0: 3729 0a2a 2074 7261 6e73 6c61 7465 203c 7).* translate < │ │ │ │ +0001f3f0: 373e 3a20 2020 2020 2020 2020 2020 2020 7>: │ │ │ │ +0001f400: 2020 2020 2020 2020 2020 2020 4f76 6572 Over │ │ │ │ +0001f410: 7669 6577 2e20 2020 2020 2020 2020 2020 view. │ │ │ │ +0001f420: 2020 286c 696e 6520 3639 290a 2a20 7472 (line 69).* tr │ │ │ │ +0001f430: 616e 736c 6174 6520 3c38 3e3a 2020 2020 anslate <8>: │ │ │ │ +0001f440: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001f450: 2020 2020 2041 2068 6965 7261 7263 6869 A hierarchi │ │ │ │ +0001f460: 6361 6c20 6d6f 6465 6c2e 2028 6c69 6e65 cal model. (line │ │ │ │ +0001f470: 2033 3229 0a2a 2074 7261 6e73 7061 6c70 32).* transpalp │ │ │ │ +0001f480: 6861 3a20 2020 2020 2020 2020 2020 2020 ha: │ │ │ │ +0001f490: 2020 2020 2020 2020 2020 2020 2020 5472 Tr │ │ │ │ +0001f4a0: 616e 7370 6172 656e 6379 2e20 2020 2020 ansparency. │ │ │ │ +0001f4b0: 2020 2020 286c 696e 6520 3130 290a 2a20 (line 10).* │ │ │ │ +0001f4c0: 756e 6974 3a20 2020 2020 2020 2020 2020 unit: │ │ │ │ 0001f4d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f4e0: 2020 2020 2020 2020 2020 2020 2020 2055 U │ │ │ │ -0001f4f0: 6e61 7279 2066 6f72 6d73 2e20 2020 2020 nary forms. │ │ │ │ -0001f500: 2020 2020 2028 6c69 6e65 2031 3329 0a2a (line 13).* │ │ │ │ -0001f510: 2075 6e69 7420 3c31 3e3a 2020 2020 2020 unit <1>: │ │ │ │ +0001f4e0: 2020 2020 2020 2055 6e61 7279 2066 6f72 Unary for │ │ │ │ +0001f4f0: 6d73 2e20 2020 2020 2020 2020 2028 6c69 ms. (li │ │ │ │ +0001f500: 6e65 2031 3329 0a2a 2075 6e69 7420 3c31 ne 13).* unit <1 │ │ │ │ +0001f510: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ 0001f520: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f530: 2020 2020 2020 2020 4120 7465 6368 6e69 A techni │ │ │ │ -0001f540: 6361 6c20 6472 6177 696e 672e 2020 286c cal drawing. (l │ │ │ │ -0001f550: 696e 6520 3431 290a 2a20 7669 6577 3a20 ine 41).* view: │ │ │ │ +0001f530: 4120 7465 6368 6e69 6361 6c20 6472 6177 A technical draw │ │ │ │ +0001f540: 696e 672e 2020 286c 696e 6520 3431 290a ing. (line 41). │ │ │ │ +0001f550: 2a20 7669 6577 3a20 2020 2020 2020 2020 * view: │ │ │ │ 0001f560: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f570: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f580: 2054 7261 6e73 666f 726d 206c 6974 6572 Transform liter │ │ │ │ -0001f590: 616c 732e 2020 2028 6c69 6e65 2032 3529 als. (line 25) │ │ │ │ -0001f5a0: 0a2a 2076 6965 7720 3c31 3e3a 2020 2020 .* view <1>: │ │ │ │ +0001f570: 2020 2020 2020 2020 2054 7261 6e73 666f Transfo │ │ │ │ +0001f580: 726d 206c 6974 6572 616c 732e 2020 2028 rm literals. ( │ │ │ │ +0001f590: 6c69 6e65 2032 3529 0a2a 2076 6965 7720 line 25).* view │ │ │ │ +0001f5a0: 3c31 3e3a 2020 2020 2020 2020 2020 2020 <1>: │ │ │ │ 0001f5b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f5c0: 2020 2020 2020 2020 2020 5472 616e 7366 Transf │ │ │ │ -0001f5d0: 6f72 6d20 6c69 7465 7261 6c73 2e20 2020 orm literals. │ │ │ │ -0001f5e0: 286c 696e 6520 3335 290a 0a1f 0a46 696c (line 35)....Fil │ │ │ │ -0001f5f0: 653a 2073 6b65 7463 682e 696e 666f 2c20 e: sketch.info, │ │ │ │ -0001f600: 204e 6f64 653a 2049 6e64 6578 2c20 2050 Node: Index, P │ │ │ │ -0001f610: 7265 763a 2049 6e64 6578 206f 6620 7379 rev: Index of sy │ │ │ │ -0001f620: 6e74 6178 2c20 2055 703a 2054 6f70 0a0a ntax, Up: Top.. │ │ │ │ -0001f630: 496e 6465 7820 6f66 2063 6f6e 6365 7074 Index of concept │ │ │ │ -0001f640: 730a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a s.************** │ │ │ │ -0001f650: 2a2a 2a0a 0a00 085b 696e 6465 7800 085d ***....[index..] │ │ │ │ -0001f660: 0a2a 204d 656e 753a 0a0a 2a20 6166 6669 .* Menu:..* affi │ │ │ │ -0001f670: 6e65 2061 7269 7468 6d65 7469 633a 2020 ne arithmetic: │ │ │ │ -0001f680: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f690: 2020 2041 6666 696e 6520 6172 6974 686d Affine arithm │ │ │ │ -0001f6a0: 6574 6963 2e20 2020 286c 696e 6520 2020 etic. (line │ │ │ │ -0001f6b0: 3829 0a2a 2061 6666 696e 6520 6172 6974 8).* affine arit │ │ │ │ -0001f6c0: 686d 6574 6963 203c 313e 3a20 2020 2020 hmetic <1>: │ │ │ │ -0001f6d0: 2020 2020 2020 2020 2020 2020 4120 7465 A te │ │ │ │ -0001f6e0: 6368 6e69 6361 6c20 6472 6177 696e 672e chnical drawing. │ │ │ │ -0001f6f0: 2028 6c69 6e65 2020 3430 290a 2a20 616c (line 40).* al │ │ │ │ -0001f700: 7465 726e 6174 6976 6573 2c20 6465 6669 ternatives, defi │ │ │ │ -0001f710: 6e69 7469 6f6e 3a20 2020 2020 2020 2020 nition: │ │ │ │ -0001f720: 2020 2020 2046 6f72 6d73 206f 6620 6465 Forms of de │ │ │ │ -0001f730: 6669 6e69 7469 6f6e 732e 0a20 2020 2020 finitions.. │ │ │ │ +0001f5c0: 2020 5472 616e 7366 6f72 6d20 6c69 7465 Transform lite │ │ │ │ +0001f5d0: 7261 6c73 2e20 2020 286c 696e 6520 3335 rals. (line 35 │ │ │ │ +0001f5e0: 290a 0a1f 0a46 696c 653a 2073 6b65 7463 )....File: sketc │ │ │ │ +0001f5f0: 682e 696e 666f 2c20 204e 6f64 653a 2049 h.info, Node: I │ │ │ │ +0001f600: 6e64 6578 2c20 2050 7265 763a 2049 6e64 ndex, Prev: Ind │ │ │ │ +0001f610: 6578 206f 6620 7379 6e74 6178 2c20 2055 ex of syntax, U │ │ │ │ +0001f620: 703a 2054 6f70 0a0a 496e 6465 7820 6f66 p: Top..Index of │ │ │ │ +0001f630: 2063 6f6e 6365 7074 730a 2a2a 2a2a 2a2a concepts.****** │ │ │ │ +0001f640: 2a2a 2a2a 2a2a 2a2a 2a2a 2a0a 0a00 085b ***********....[ │ │ │ │ +0001f650: 696e 6465 7800 085d 0a2a 204d 656e 753a index..].* Menu: │ │ │ │ +0001f660: 0a0a 2a20 6166 6669 6e65 2061 7269 7468 ..* affine arith │ │ │ │ +0001f670: 6d65 7469 633a 2020 2020 2020 2020 2020 metic: │ │ │ │ +0001f680: 2020 2020 2020 2020 2020 2041 6666 696e Affin │ │ │ │ +0001f690: 6520 6172 6974 686d 6574 6963 2e20 2020 e arithmetic. │ │ │ │ +0001f6a0: 286c 696e 6520 2020 3829 0a2a 2061 6666 (line 8).* aff │ │ │ │ +0001f6b0: 696e 6520 6172 6974 686d 6574 6963 203c ine arithmetic < │ │ │ │ +0001f6c0: 313e 3a20 2020 2020 2020 2020 2020 2020 1>: │ │ │ │ +0001f6d0: 2020 2020 4120 7465 6368 6e69 6361 6c20 A technical │ │ │ │ +0001f6e0: 6472 6177 696e 672e 2028 6c69 6e65 2020 drawing. (line │ │ │ │ +0001f6f0: 3430 290a 2a20 616c 7465 726e 6174 6976 40).* alternativ │ │ │ │ +0001f700: 6573 2c20 6465 6669 6e69 7469 6f6e 3a20 es, definition: │ │ │ │ +0001f710: 2020 2020 2020 2020 2020 2020 2046 6f72 For │ │ │ │ +0001f720: 6d73 206f 6620 6465 6669 6e69 7469 6f6e ms of definition │ │ │ │ +0001f730: 732e 0a20 2020 2020 2020 2020 2020 2020 s.. │ │ │ │ 0001f740: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001f750: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001f760: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f770: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ -0001f780: 2036 290a 2a20 6172 6775 6d65 6e74 2c20 6).* argument, │ │ │ │ -0001f790: 7370 6563 6961 6c3a 2020 2020 2020 2020 special: │ │ │ │ -0001f7a0: 2020 2020 2020 2020 2020 2020 2053 7065 Spe │ │ │ │ -0001f7b0: 6369 616c 206f 626a 6563 7473 2e20 2020 cial objects. │ │ │ │ -0001f7c0: 2020 286c 696e 6520 2032 3529 0a2a 2061 (line 25).* a │ │ │ │ -0001f7d0: 7267 756d 656e 742c 2073 7065 6369 616c rgument, special │ │ │ │ -0001f7e0: 203c 313e 3a20 2020 2020 2020 2020 2020 <1>: │ │ │ │ -0001f7f0: 2020 2020 2020 5370 6563 6961 6c73 2e20 Specials. │ │ │ │ -0001f800: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ -0001f810: 2020 3130 290a 2a20 6173 736f 6369 6174 10).* associat │ │ │ │ -0001f820: 6976 6974 792c 206f 7065 7261 746f 723a ivity, operator: │ │ │ │ -0001f830: 2020 2020 2020 2020 2020 2020 2020 2054 T │ │ │ │ -0001f840: 776f 2d6f 7065 7261 6e64 2028 6269 6e61 wo-operand (bina │ │ │ │ -0001f850: 7279 2920 666f 726d 732e 0a20 2020 2020 ry) forms.. │ │ │ │ +0001f770: 2028 6c69 6e65 2020 2036 290a 2a20 6172 (line 6).* ar │ │ │ │ +0001f780: 6775 6d65 6e74 2c20 7370 6563 6961 6c3a gument, special: │ │ │ │ +0001f790: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001f7a0: 2020 2020 2053 7065 6369 616c 206f 626a Special obj │ │ │ │ +0001f7b0: 6563 7473 2e20 2020 2020 286c 696e 6520 ects. (line │ │ │ │ +0001f7c0: 2032 3529 0a2a 2061 7267 756d 656e 742c 25).* argument, │ │ │ │ +0001f7d0: 2073 7065 6369 616c 203c 313e 3a20 2020 special <1>: │ │ │ │ +0001f7e0: 2020 2020 2020 2020 2020 2020 2020 5370 Sp │ │ │ │ +0001f7f0: 6563 6961 6c73 2e20 2020 2020 2020 2020 ecials. │ │ │ │ +0001f800: 2020 2028 6c69 6e65 2020 3130 290a 2a20 (line 10).* │ │ │ │ +0001f810: 6173 736f 6369 6174 6976 6974 792c 206f associativity, o │ │ │ │ +0001f820: 7065 7261 746f 723a 2020 2020 2020 2020 perator: │ │ │ │ +0001f830: 2020 2020 2020 2054 776f 2d6f 7065 7261 Two-opera │ │ │ │ +0001f840: 6e64 2028 6269 6e61 7279 2920 666f 726d nd (binary) form │ │ │ │ +0001f850: 732e 0a20 2020 2020 2020 2020 2020 2020 s.. │ │ │ │ 0001f860: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001f870: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001f880: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f890: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ -0001f8a0: 3538 290a 2a20 6178 6973 2c20 726f 7461 58).* axis, rota │ │ │ │ -0001f8b0: 7469 6f6e 3a20 2020 2020 2020 2020 2020 tion: │ │ │ │ -0001f8c0: 2020 2020 2020 2020 2020 2020 204f 626a Obj │ │ │ │ -0001f8d0: 6563 7420 7472 616e 7366 6f72 6d73 2e20 ect transforms. │ │ │ │ -0001f8e0: 2020 286c 696e 6520 2034 3029 0a2a 2062 (line 40).* b │ │ │ │ -0001f8f0: 6163 6b20 6661 6365 3a20 2020 2020 2020 ack face: │ │ │ │ -0001f900: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f910: 2020 2020 2020 4472 6177 696e 6720 6120 Drawing a │ │ │ │ -0001f920: 736f 6c69 642e 2020 2020 2028 6c69 6e65 solid. (line │ │ │ │ -0001f930: 2020 3335 290a 2a20 6261 7365 6c69 6e65 35).* baseline │ │ │ │ -0001f940: 2066 7261 6374 696f 6e3a 2020 2020 2020 fraction: │ │ │ │ -0001f950: 2020 2020 2020 2020 2020 2020 2020 2050 P │ │ │ │ -0001f960: 6963 7475 7265 2062 6f78 2e20 2020 2020 icture box. │ │ │ │ -0001f970: 2020 2020 286c 696e 6520 2031 3029 0a2a (line 10).* │ │ │ │ -0001f980: 2062 696e 6172 7920 666f 726d 3a20 2020 binary form: │ │ │ │ +0001f890: 2028 6c69 6e65 2020 3538 290a 2a20 6178 (line 58).* ax │ │ │ │ +0001f8a0: 6973 2c20 726f 7461 7469 6f6e 3a20 2020 is, rotation: │ │ │ │ +0001f8b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001f8c0: 2020 2020 204f 626a 6563 7420 7472 616e Object tran │ │ │ │ +0001f8d0: 7366 6f72 6d73 2e20 2020 286c 696e 6520 sforms. (line │ │ │ │ +0001f8e0: 2034 3029 0a2a 2062 6163 6b20 6661 6365 40).* back face │ │ │ │ +0001f8f0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +0001f900: 2020 2020 2020 2020 2020 2020 2020 4472 Dr │ │ │ │ +0001f910: 6177 696e 6720 6120 736f 6c69 642e 2020 awing a solid. │ │ │ │ +0001f920: 2020 2028 6c69 6e65 2020 3335 290a 2a20 (line 35).* │ │ │ │ +0001f930: 6261 7365 6c69 6e65 2066 7261 6374 696f baseline fractio │ │ │ │ +0001f940: 6e3a 2020 2020 2020 2020 2020 2020 2020 n: │ │ │ │ +0001f950: 2020 2020 2020 2050 6963 7475 7265 2062 Picture b │ │ │ │ +0001f960: 6f78 2e20 2020 2020 2020 2020 286c 696e ox. (lin │ │ │ │ +0001f970: 6520 2031 3029 0a2a 2062 696e 6172 7920 e 10).* binary │ │ │ │ +0001f980: 666f 726d 3a20 2020 2020 2020 2020 2020 form: │ │ │ │ 0001f990: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f9a0: 2020 2020 2020 2020 5477 6f2d 6f70 6572 Two-oper │ │ │ │ -0001f9b0: 616e 6420 2862 696e 6172 7929 2066 6f72 and (binary) for │ │ │ │ -0001f9c0: 6d73 2e0a 2020 2020 2020 2020 2020 2020 ms.. │ │ │ │ +0001f9a0: 5477 6f2d 6f70 6572 616e 6420 2862 696e Two-operand (bin │ │ │ │ +0001f9b0: 6172 7929 2066 6f72 6d73 2e0a 2020 2020 ary) forms.. │ │ │ │ +0001f9c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001f9d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001f9e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001f9f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001fa00: 2020 286c 696e 6520 2020 3629 0a2a 2062 (line 6).* b │ │ │ │ -0001fa10: 696e 6172 7920 7370 6163 6520 7061 7274 inary space part │ │ │ │ -0001fa20: 6974 696f 6e3a 2020 2020 2020 2020 2020 ition: │ │ │ │ -0001fa30: 2020 2020 2020 4869 6464 656e 2073 7572 Hidden sur │ │ │ │ -0001fa40: 6661 6365 2072 656d 6f76 616c 2e0a 2020 face removal.. │ │ │ │ +0001f9f0: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ +0001fa00: 2020 3629 0a2a 2062 696e 6172 7920 7370 6).* binary sp │ │ │ │ +0001fa10: 6163 6520 7061 7274 6974 696f 6e3a 2020 ace partition: │ │ │ │ +0001fa20: 2020 2020 2020 2020 2020 2020 2020 4869 Hi │ │ │ │ +0001fa30: 6464 656e 2073 7572 6661 6365 2072 656d dden surface rem │ │ │ │ +0001fa40: 6f76 616c 2e0a 2020 2020 2020 2020 2020 oval.. │ │ │ │ 0001fa50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001fa60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001fa70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001fa80: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ -0001fa90: 6520 2032 3329 0a2a 2062 696e 6172 7920 e 23).* binary │ │ │ │ -0001faa0: 7370 6163 6520 7061 7274 6974 696f 6e20 space partition │ │ │ │ -0001fab0: 3c31 3e3a 2020 2020 2020 2020 2020 2020 <1>: │ │ │ │ -0001fac0: 5374 6174 6973 7469 6373 2e20 2020 2020 Statistics. │ │ │ │ -0001fad0: 2020 2020 2028 6c69 6e65 2020 3133 290a (line 13). │ │ │ │ -0001fae0: 2a20 6269 6e61 7279 2073 7061 6365 2070 * binary space p │ │ │ │ -0001faf0: 6172 7469 7469 6f6e 203c 323e 3a20 2020 artition <2>: │ │ │ │ -0001fb00: 2020 2020 2020 2020 2043 6f6d 6d61 6e64 Command │ │ │ │ -0001fb10: 206c 696e 652e 2020 2020 2020 2020 286c line. (l │ │ │ │ -0001fb20: 696e 6520 2032 3629 0a2a 2062 6c6f 636b ine 26).* block │ │ │ │ -0001fb30: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ -0001fb40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001fb50: 2020 4f62 6a65 6374 2074 7261 6e73 666f Object transfo │ │ │ │ -0001fb60: 726d 732e 2020 2028 6c69 6e65 2020 3234 rms. (line 24 │ │ │ │ -0001fb70: 290a 2a20 626c 6f63 6b20 3c31 3e3a 2020 ).* block <1>: │ │ │ │ +0001fa80: 2020 2020 286c 696e 6520 2032 3329 0a2a (line 23).* │ │ │ │ +0001fa90: 2062 696e 6172 7920 7370 6163 6520 7061 binary space pa │ │ │ │ +0001faa0: 7274 6974 696f 6e20 3c31 3e3a 2020 2020 rtition <1>: │ │ │ │ +0001fab0: 2020 2020 2020 2020 5374 6174 6973 7469 Statisti │ │ │ │ +0001fac0: 6373 2e20 2020 2020 2020 2020 2028 6c69 cs. (li │ │ │ │ +0001fad0: 6e65 2020 3133 290a 2a20 6269 6e61 7279 ne 13).* binary │ │ │ │ +0001fae0: 2073 7061 6365 2070 6172 7469 7469 6f6e space partition │ │ │ │ +0001faf0: 203c 323e 3a20 2020 2020 2020 2020 2020 <2>: │ │ │ │ +0001fb00: 2043 6f6d 6d61 6e64 206c 696e 652e 2020 Command line. │ │ │ │ +0001fb10: 2020 2020 2020 286c 696e 6520 2032 3629 (line 26) │ │ │ │ +0001fb20: 0a2a 2062 6c6f 636b 3a20 2020 2020 2020 .* block: │ │ │ │ +0001fb30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001fb40: 2020 2020 2020 2020 2020 4f62 6a65 6374 Object │ │ │ │ +0001fb50: 2074 7261 6e73 666f 726d 732e 2020 2028 transforms. ( │ │ │ │ +0001fb60: 6c69 6e65 2020 3234 290a 2a20 626c 6f63 line 24).* bloc │ │ │ │ +0001fb70: 6b20 3c31 3e3a 2020 2020 2020 2020 2020 k <1>: │ │ │ │ 0001fb80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001fb90: 2020 2020 2020 2020 2020 2053 7765 7074 Swept │ │ │ │ -0001fba0: 2062 6c6f 636b 732e 2020 2020 2020 2020 blocks. │ │ │ │ -0001fbb0: 286c 696e 6520 2020 3729 0a2a 2062 6c6f (line 7).* blo │ │ │ │ -0001fbc0: 636b 203c 323e 3a20 2020 2020 2020 2020 ck <2>: │ │ │ │ -0001fbd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001fbe0: 2020 2020 426c 6f63 6b73 2e20 2020 2020 Blocks. │ │ │ │ -0001fbf0: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ -0001fc00: 2036 290a 2a20 626c 6f63 6b20 7377 6565 6).* block swee │ │ │ │ -0001fc10: 703a 2020 2020 2020 2020 2020 2020 2020 p: │ │ │ │ -0001fc20: 2020 2020 2020 2020 2020 2020 2053 7765 Swe │ │ │ │ -0001fc30: 7074 2062 6c6f 636b 732e 2020 2020 2020 pt blocks. │ │ │ │ -0001fc40: 2020 286c 696e 6520 2020 3629 0a2a 2062 (line 6).* b │ │ │ │ -0001fc50: 6f64 7920 706f 6c79 676f 6e3a 2020 2020 ody polygon: │ │ │ │ -0001fc60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001fc70: 2020 2020 2020 496e 7465 726e 616c 206f Internal o │ │ │ │ -0001fc80: 7074 696f 6e73 2e20 2020 2028 6c69 6e65 ptions. (line │ │ │ │ -0001fc90: 2020 3136 290a 2a20 626f 6479 2070 6f6c 16).* body pol │ │ │ │ -0001fca0: 7967 6f6e 203c 313e 3a20 2020 2020 2020 ygon <1>: │ │ │ │ -0001fcb0: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ -0001fcc0: 7765 7074 206c 696e 6573 2e20 2020 2020 wept lines. │ │ │ │ -0001fcd0: 2020 2020 286c 696e 6520 2031 3029 0a2a (line 10).* │ │ │ │ -0001fce0: 2062 6f64 7920 706f 6c79 676f 6e20 3c32 body polygon <2 │ │ │ │ -0001fcf0: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ -0001fd00: 2020 2020 2020 2020 5377 6570 7420 706f Swept po │ │ │ │ -0001fd10: 6c79 676f 6e73 2e20 2020 2020 2028 6c69 lygons. (li │ │ │ │ -0001fd20: 6e65 2020 2039 290a 2a20 626f 756e 6469 ne 9).* boundi │ │ │ │ -0001fd30: 6e67 2062 6f78 3a20 2020 2020 2020 2020 ng box: │ │ │ │ -0001fd40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001fd50: 2050 6963 7475 7265 2062 6f78 2e20 2020 Picture box. │ │ │ │ -0001fd60: 2020 2020 2020 286c 696e 6520 2031 3529 (line 15) │ │ │ │ -0001fd70: 0a2a 2042 5350 2c20 6269 6e61 7279 2073 .* BSP, binary s │ │ │ │ -0001fd80: 7061 6365 2070 6172 7469 7469 6f6e 3a20 pace partition: │ │ │ │ -0001fd90: 2020 2020 2020 2020 2020 4869 6464 656e Hidden │ │ │ │ -0001fda0: 2073 7572 6661 6365 2072 656d 6f76 616c surface removal │ │ │ │ -0001fdb0: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ +0001fb90: 2020 2053 7765 7074 2062 6c6f 636b 732e Swept blocks. │ │ │ │ +0001fba0: 2020 2020 2020 2020 286c 696e 6520 2020 (line │ │ │ │ +0001fbb0: 3729 0a2a 2062 6c6f 636b 203c 323e 3a20 7).* block <2>: │ │ │ │ +0001fbc0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001fbd0: 2020 2020 2020 2020 2020 2020 426c 6f63 Bloc │ │ │ │ +0001fbe0: 6b73 2e20 2020 2020 2020 2020 2020 2020 ks. │ │ │ │ +0001fbf0: 2028 6c69 6e65 2020 2036 290a 2a20 626c (line 6).* bl │ │ │ │ +0001fc00: 6f63 6b20 7377 6565 703a 2020 2020 2020 ock sweep: │ │ │ │ +0001fc10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001fc20: 2020 2020 2053 7765 7074 2062 6c6f 636b Swept block │ │ │ │ +0001fc30: 732e 2020 2020 2020 2020 286c 696e 6520 s. (line │ │ │ │ +0001fc40: 2020 3629 0a2a 2062 6f64 7920 706f 6c79 6).* body poly │ │ │ │ +0001fc50: 676f 6e3a 2020 2020 2020 2020 2020 2020 gon: │ │ │ │ +0001fc60: 2020 2020 2020 2020 2020 2020 2020 496e In │ │ │ │ +0001fc70: 7465 726e 616c 206f 7074 696f 6e73 2e20 ternal options. │ │ │ │ +0001fc80: 2020 2028 6c69 6e65 2020 3136 290a 2a20 (line 16).* │ │ │ │ +0001fc90: 626f 6479 2070 6f6c 7967 6f6e 203c 313e body polygon <1> │ │ │ │ +0001fca0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +0001fcb0: 2020 2020 2020 2053 7765 7074 206c 696e Swept lin │ │ │ │ +0001fcc0: 6573 2e20 2020 2020 2020 2020 286c 696e es. (lin │ │ │ │ +0001fcd0: 6520 2031 3029 0a2a 2062 6f64 7920 706f e 10).* body po │ │ │ │ +0001fce0: 6c79 676f 6e20 3c32 3e3a 2020 2020 2020 lygon <2>: │ │ │ │ +0001fcf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001fd00: 5377 6570 7420 706f 6c79 676f 6e73 2e20 Swept polygons. │ │ │ │ +0001fd10: 2020 2020 2028 6c69 6e65 2020 2039 290a (line 9). │ │ │ │ +0001fd20: 2a20 626f 756e 6469 6e67 2062 6f78 3a20 * bounding box: │ │ │ │ +0001fd30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001fd40: 2020 2020 2020 2020 2050 6963 7475 7265 Picture │ │ │ │ +0001fd50: 2062 6f78 2e20 2020 2020 2020 2020 286c box. (l │ │ │ │ +0001fd60: 696e 6520 2031 3529 0a2a 2042 5350 2c20 ine 15).* BSP, │ │ │ │ +0001fd70: 6269 6e61 7279 2073 7061 6365 2070 6172 binary space par │ │ │ │ +0001fd80: 7469 7469 6f6e 3a20 2020 2020 2020 2020 tition: │ │ │ │ +0001fd90: 2020 4869 6464 656e 2073 7572 6661 6365 Hidden surface │ │ │ │ +0001fda0: 2072 656d 6f76 616c 2e0a 2020 2020 2020 removal.. │ │ │ │ +0001fdb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001fdc0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 0001fdd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001fde0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001fdf0: 286c 696e 6520 2032 3329 0a2a 2042 5350 (line 23).* BSP │ │ │ │ -0001fe00: 2c20 6269 6e61 7279 2073 7061 6365 2070 , binary space p │ │ │ │ -0001fe10: 6172 7469 7469 6f6e 203c 313e 3a20 2020 artition <1>: │ │ │ │ -0001fe20: 2020 2020 436f 6d6d 616e 6420 6c69 6e65 Command line │ │ │ │ -0001fe30: 2e20 2020 2020 2020 2028 6c69 6e65 2020 . (line │ │ │ │ -0001fe40: 3236 290a 2a20 6361 6d65 7261 3a20 2020 26).* camera: │ │ │ │ +0001fde0: 2020 2020 2020 2020 286c 696e 6520 2032 (line 2 │ │ │ │ +0001fdf0: 3329 0a2a 2042 5350 2c20 6269 6e61 7279 3).* BSP, binary │ │ │ │ +0001fe00: 2073 7061 6365 2070 6172 7469 7469 6f6e space partition │ │ │ │ +0001fe10: 203c 313e 3a20 2020 2020 2020 436f 6d6d <1>: Comm │ │ │ │ +0001fe20: 616e 6420 6c69 6e65 2e20 2020 2020 2020 and line. │ │ │ │ +0001fe30: 2028 6c69 6e65 2020 3236 290a 2a20 6361 (line 26).* ca │ │ │ │ +0001fe40: 6d65 7261 3a20 2020 2020 2020 2020 2020 mera: │ │ │ │ 0001fe50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001fe60: 2020 2020 2020 2020 2020 2020 2043 616d Cam │ │ │ │ -0001fe70: 6572 612e 2020 2020 2020 2020 2020 2020 era. │ │ │ │ -0001fe80: 2020 286c 696e 6520 2020 3629 0a2a 2063 (line 6).* c │ │ │ │ -0001fe90: 656e 7465 7220 6f66 2072 6f74 6174 696f enter of rotatio │ │ │ │ -0001fea0: 6e3a 2020 2020 2020 2020 2020 2020 2020 n: │ │ │ │ -0001feb0: 2020 2020 2020 4f62 6a65 6374 2074 7261 Object tra │ │ │ │ -0001fec0: 6e73 666f 726d 732e 2020 2028 6c69 6e65 nsforms. (line │ │ │ │ -0001fed0: 2020 2038 290a 2a20 6365 6e74 6572 206f 8).* center o │ │ │ │ -0001fee0: 6620 726f 7461 7469 6f6e 203c 313e 3a20 f rotation <1>: │ │ │ │ -0001fef0: 2020 2020 2020 2020 2020 2020 2020 204e N │ │ │ │ -0001ff00: 6573 7465 6420 7377 6565 7073 2e20 2020 ested sweeps. │ │ │ │ -0001ff10: 2020 2020 286c 696e 6520 2020 3629 0a2a (line 6).* │ │ │ │ -0001ff20: 2063 656e 7472 6f69 643a 2020 2020 2020 centroid: │ │ │ │ +0001fe60: 2020 2020 2043 616d 6572 612e 2020 2020 Camera. │ │ │ │ +0001fe70: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ +0001fe80: 2020 3629 0a2a 2063 656e 7465 7220 6f66 6).* center of │ │ │ │ +0001fe90: 2072 6f74 6174 696f 6e3a 2020 2020 2020 rotation: │ │ │ │ +0001fea0: 2020 2020 2020 2020 2020 2020 2020 4f62 Ob │ │ │ │ +0001feb0: 6a65 6374 2074 7261 6e73 666f 726d 732e ject transforms. │ │ │ │ +0001fec0: 2020 2028 6c69 6e65 2020 2038 290a 2a20 (line 8).* │ │ │ │ +0001fed0: 6365 6e74 6572 206f 6620 726f 7461 7469 center of rotati │ │ │ │ +0001fee0: 6f6e 203c 313e 3a20 2020 2020 2020 2020 on <1>: │ │ │ │ +0001fef0: 2020 2020 2020 204e 6573 7465 6420 7377 Nested sw │ │ │ │ +0001ff00: 6565 7073 2e20 2020 2020 2020 286c 696e eeps. (lin │ │ │ │ +0001ff10: 6520 2020 3629 0a2a 2063 656e 7472 6f69 e 6).* centroi │ │ │ │ +0001ff20: 643a 2020 2020 2020 2020 2020 2020 2020 d: │ │ │ │ 0001ff30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001ff40: 2020 2020 2020 2020 4120 7465 6368 6e69 A techni │ │ │ │ -0001ff50: 6361 6c20 6472 6177 696e 672e 2028 6c69 cal drawing. (li │ │ │ │ -0001ff60: 6e65 2020 3634 290a 2a20 6365 6e74 726f ne 64).* centro │ │ │ │ -0001ff70: 6964 203c 313e 3a20 2020 2020 2020 2020 id <1>: │ │ │ │ -0001ff80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001ff90: 2041 2074 6563 686e 6963 616c 2064 7261 A technical dra │ │ │ │ -0001ffa0: 7769 6e67 2e20 286c 696e 6520 3130 3229 wing. (line 102) │ │ │ │ -0001ffb0: 0a2a 2063 6c69 7070 696e 673a 2020 2020 .* clipping: │ │ │ │ +0001ff40: 4120 7465 6368 6e69 6361 6c20 6472 6177 A technical draw │ │ │ │ +0001ff50: 696e 672e 2028 6c69 6e65 2020 3634 290a ing. (line 64). │ │ │ │ +0001ff60: 2a20 6365 6e74 726f 6964 203c 313e 3a20 * centroid <1>: │ │ │ │ +0001ff70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +0001ff80: 2020 2020 2020 2020 2041 2074 6563 686e A techn │ │ │ │ +0001ff90: 6963 616c 2064 7261 7769 6e67 2e20 286c ical drawing. (l │ │ │ │ +0001ffa0: 696e 6520 3130 3229 0a2a 2063 6c69 7070 ine 102).* clipp │ │ │ │ +0001ffb0: 696e 673a 2020 2020 2020 2020 2020 2020 ing: │ │ │ │ 0001ffc0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -0001ffd0: 2020 2020 2020 2020 2020 5069 6374 7572 Pictur │ │ │ │ -0001ffe0: 6520 626f 782e 2020 2020 2020 2020 2028 e box. ( │ │ │ │ -0001fff0: 6c69 6e65 2020 3137 290a 2a20 636c 6970 line 17).* clip │ │ │ │ -00020000: 7069 6e67 203c 313e 3a20 2020 2020 2020 ping <1>: │ │ │ │ -00020010: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020020: 2020 2043 6c69 7070 696e 672e 2020 2020 Clipping. │ │ │ │ -00020030: 2020 2020 2020 2020 286c 696e 6520 2020 (line │ │ │ │ -00020040: 3629 0a2a 2063 6c6f 7375 7265 2074 6167 6).* closure tag │ │ │ │ -00020050: 2c20 3c3e 3a20 2020 2020 2020 2020 2020 , <>: │ │ │ │ -00020060: 2020 2020 2020 2020 2020 2020 506f 696e Poin │ │ │ │ -00020070: 7420 7377 6565 7073 2e20 2020 2020 2020 t sweeps. │ │ │ │ -00020080: 2028 6c69 6e65 2020 3138 290a 2a20 636c (line 18).* cl │ │ │ │ -00020090: 6f73 7572 6520 7461 672c 203c 3e20 3c31 osure tag, <> <1 │ │ │ │ -000200a0: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ -000200b0: 2020 2020 2050 6f6c 796c 696e 6520 7377 Polyline sw │ │ │ │ -000200c0: 6565 7073 2077 6974 6820 636c 6f73 7572 eeps with closur │ │ │ │ -000200d0: 652e 0a20 2020 2020 2020 2020 2020 2020 e.. │ │ │ │ +0001ffd0: 2020 5069 6374 7572 6520 626f 782e 2020 Picture box. │ │ │ │ +0001ffe0: 2020 2020 2020 2028 6c69 6e65 2020 3137 (line 17 │ │ │ │ +0001fff0: 290a 2a20 636c 6970 7069 6e67 203c 313e ).* clipping <1> │ │ │ │ +00020000: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +00020010: 2020 2020 2020 2020 2020 2043 6c69 7070 Clipp │ │ │ │ +00020020: 696e 672e 2020 2020 2020 2020 2020 2020 ing. │ │ │ │ +00020030: 286c 696e 6520 2020 3629 0a2a 2063 6c6f (line 6).* clo │ │ │ │ +00020040: 7375 7265 2074 6167 2c20 3c3e 3a20 2020 sure tag, <>: │ │ │ │ +00020050: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00020060: 2020 2020 506f 696e 7420 7377 6565 7073 Point sweeps │ │ │ │ +00020070: 2e20 2020 2020 2020 2028 6c69 6e65 2020 . (line │ │ │ │ +00020080: 3138 290a 2a20 636c 6f73 7572 6520 7461 18).* closure ta │ │ │ │ +00020090: 672c 203c 3e20 3c31 3e3a 2020 2020 2020 g, <> <1>: │ │ │ │ +000200a0: 2020 2020 2020 2020 2020 2020 2050 6f6c Pol │ │ │ │ +000200b0: 796c 696e 6520 7377 6565 7073 2077 6974 yline sweeps wit │ │ │ │ +000200c0: 6820 636c 6f73 7572 652e 0a20 2020 2020 h closure.. │ │ │ │ +000200d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 000200e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 000200f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020100: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020110: 2028 6c69 6e65 2020 2036 290a 2a20 636c (line 6).* cl │ │ │ │ -00020120: 6f73 7572 6520 7461 672c 203c 3e20 3c32 osure tag, <> <2 │ │ │ │ -00020130: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ -00020140: 2020 2020 2053 7765 6570 732e 2020 2020 Sweeps. │ │ │ │ -00020150: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ -00020160: 2031 3929 0a2a 2063 6c6f 7375 7265 2074 19).* closure t │ │ │ │ -00020170: 6167 2c20 3c3e 203c 333e 3a20 2020 2020 ag, <> <3>: │ │ │ │ -00020180: 2020 2020 2020 2020 2020 2020 2020 5377 Sw │ │ │ │ -00020190: 6570 7420 706f 696e 7473 2e20 2020 2020 ept points. │ │ │ │ -000201a0: 2020 2028 6c69 6e65 2020 2036 290a 2a20 (line 6).* │ │ │ │ -000201b0: 636c 6f73 7572 6520 7461 672c 203c 3e20 closure tag, <> │ │ │ │ -000201c0: 3c34 3e3a 2020 2020 2020 2020 2020 2020 <4>: │ │ │ │ -000201d0: 2020 2020 2020 2053 7765 7074 2070 6f69 Swept poi │ │ │ │ -000201e0: 6e74 732e 2020 2020 2020 2020 286c 696e nts. (lin │ │ │ │ -000201f0: 6520 2031 3329 0a2a 2063 6c6f 7375 7265 e 13).* closure │ │ │ │ -00020200: 2074 6167 2c20 3c3e 203c 353e 3a20 2020 tag, <> <5>: │ │ │ │ -00020210: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020220: 5377 6570 7420 6c69 6e65 732e 2020 2020 Swept lines. │ │ │ │ -00020230: 2020 2020 2028 6c69 6e65 2020 2036 290a (line 6). │ │ │ │ -00020240: 2a20 636c 6f73 7572 6520 7461 672c 203c * closure tag, < │ │ │ │ -00020250: 3e20 3c36 3e3a 2020 2020 2020 2020 2020 > <6>: │ │ │ │ -00020260: 2020 2020 2020 2020 2053 7765 7074 206c Swept l │ │ │ │ -00020270: 696e 6573 2e20 2020 2020 2020 2020 286c ines. (l │ │ │ │ -00020280: 696e 6520 2032 3829 0a2a 2063 6c6f 7375 ine 28).* closu │ │ │ │ -00020290: 7265 2074 6167 2c20 3c3e 203c 373e 3a20 re tag, <> <7>: │ │ │ │ -000202a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000202b0: 2020 5377 6565 7020 6661 6365 2073 706c Sweep face spl │ │ │ │ -000202c0: 6974 7469 6e67 2e0a 2020 2020 2020 2020 itting.. │ │ │ │ +00020100: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ +00020110: 2036 290a 2a20 636c 6f73 7572 6520 7461 6).* closure ta │ │ │ │ +00020120: 672c 203c 3e20 3c32 3e3a 2020 2020 2020 g, <> <2>: │ │ │ │ +00020130: 2020 2020 2020 2020 2020 2020 2053 7765 Swe │ │ │ │ +00020140: 6570 732e 2020 2020 2020 2020 2020 2020 eps. │ │ │ │ +00020150: 2020 286c 696e 6520 2031 3929 0a2a 2063 (line 19).* c │ │ │ │ +00020160: 6c6f 7375 7265 2074 6167 2c20 3c3e 203c losure tag, <> < │ │ │ │ +00020170: 333e 3a20 2020 2020 2020 2020 2020 2020 3>: │ │ │ │ +00020180: 2020 2020 2020 5377 6570 7420 706f 696e Swept poin │ │ │ │ +00020190: 7473 2e20 2020 2020 2020 2028 6c69 6e65 ts. (line │ │ │ │ +000201a0: 2020 2036 290a 2a20 636c 6f73 7572 6520 6).* closure │ │ │ │ +000201b0: 7461 672c 203c 3e20 3c34 3e3a 2020 2020 tag, <> <4>: │ │ │ │ +000201c0: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ +000201d0: 7765 7074 2070 6f69 6e74 732e 2020 2020 wept points. │ │ │ │ +000201e0: 2020 2020 286c 696e 6520 2031 3329 0a2a (line 13).* │ │ │ │ +000201f0: 2063 6c6f 7375 7265 2074 6167 2c20 3c3e closure tag, <> │ │ │ │ +00020200: 203c 353e 3a20 2020 2020 2020 2020 2020 <5>: │ │ │ │ +00020210: 2020 2020 2020 2020 5377 6570 7420 6c69 Swept li │ │ │ │ +00020220: 6e65 732e 2020 2020 2020 2020 2028 6c69 nes. (li │ │ │ │ +00020230: 6e65 2020 2036 290a 2a20 636c 6f73 7572 ne 6).* closur │ │ │ │ +00020240: 6520 7461 672c 203c 3e20 3c36 3e3a 2020 e tag, <> <6>: │ │ │ │ +00020250: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00020260: 2053 7765 7074 206c 696e 6573 2e20 2020 Swept lines. │ │ │ │ +00020270: 2020 2020 2020 286c 696e 6520 2032 3829 (line 28) │ │ │ │ +00020280: 0a2a 2063 6c6f 7375 7265 2074 6167 2c20 .* closure tag, │ │ │ │ +00020290: 3c3e 203c 373e 3a20 2020 2020 2020 2020 <> <7>: │ │ │ │ +000202a0: 2020 2020 2020 2020 2020 5377 6565 7020 Sweep │ │ │ │ +000202b0: 6661 6365 2073 706c 6974 7469 6e67 2e0a face splitting.. │ │ │ │ +000202c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 000202d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 000202e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000202f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020300: 2020 2020 2020 286c 696e 6520 2031 3129 (line 11) │ │ │ │ -00020310: 0a2a 2063 6f6d 6d61 6e64 206c 696e 6520 .* command line │ │ │ │ -00020320: 6f70 7469 6f6e 3a20 2020 2020 2020 2020 option: │ │ │ │ -00020330: 2020 2020 2020 2020 2020 4865 6c6c 6f20 Hello │ │ │ │ -00020340: 776f 726c 642e 2020 2020 2020 2020 2028 world. ( │ │ │ │ -00020350: 6c69 6e65 2020 3330 290a 2a20 636f 6d6d line 30).* comm │ │ │ │ -00020360: 616e 6420 6c69 6e65 206f 7074 696f 6e73 and line options │ │ │ │ -00020370: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ -00020380: 2020 2043 6f6d 6d61 6e64 206c 696e 652e Command line. │ │ │ │ -00020390: 2020 2020 2020 2020 286c 696e 6520 2031 (line 1 │ │ │ │ -000203a0: 3429 0a2a 2063 6f6d 6d61 6e64 206c 696e 4).* command lin │ │ │ │ -000203b0: 652c 2073 6b65 7463 683a 2020 2020 2020 e, sketch: │ │ │ │ -000203c0: 2020 2020 2020 2020 2020 2020 4865 6c6c Hell │ │ │ │ -000203d0: 6f20 776f 726c 642e 2020 2020 2020 2020 o world. │ │ │ │ -000203e0: 2028 6c69 6e65 2020 2039 290a 2a20 636f (line 9).* co │ │ │ │ -000203f0: 6d6d 616e 6420 6c69 6e65 2c20 736b 6574 mmand line, sket │ │ │ │ -00020400: 6368 203c 313e 3a20 2020 2020 2020 2020 ch <1>: │ │ │ │ -00020410: 2020 2020 2043 6f6d 6d61 6e64 206c 696e Command lin │ │ │ │ -00020420: 652e 2020 2020 2020 2020 286c 696e 6520 e. (line │ │ │ │ -00020430: 2020 3629 0a2a 2063 6f6d 6d65 6e74 733a 6).* comments: │ │ │ │ +000202f0: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ +00020300: 696e 6520 2031 3129 0a2a 2063 6f6d 6d61 ine 11).* comma │ │ │ │ +00020310: 6e64 206c 696e 6520 6f70 7469 6f6e 3a20 nd line option: │ │ │ │ +00020320: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00020330: 2020 4865 6c6c 6f20 776f 726c 642e 2020 Hello world. │ │ │ │ +00020340: 2020 2020 2020 2028 6c69 6e65 2020 3330 (line 30 │ │ │ │ +00020350: 290a 2a20 636f 6d6d 616e 6420 6c69 6e65 ).* command line │ │ │ │ +00020360: 206f 7074 696f 6e73 3a20 2020 2020 2020 options: │ │ │ │ +00020370: 2020 2020 2020 2020 2020 2043 6f6d 6d61 Comma │ │ │ │ +00020380: 6e64 206c 696e 652e 2020 2020 2020 2020 nd line. │ │ │ │ +00020390: 286c 696e 6520 2031 3429 0a2a 2063 6f6d (line 14).* com │ │ │ │ +000203a0: 6d61 6e64 206c 696e 652c 2073 6b65 7463 mand line, sketc │ │ │ │ +000203b0: 683a 2020 2020 2020 2020 2020 2020 2020 h: │ │ │ │ +000203c0: 2020 2020 4865 6c6c 6f20 776f 726c 642e Hello world. │ │ │ │ +000203d0: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ +000203e0: 2039 290a 2a20 636f 6d6d 616e 6420 6c69 9).* command li │ │ │ │ +000203f0: 6e65 2c20 736b 6574 6368 203c 313e 3a20 ne, sketch <1>: │ │ │ │ +00020400: 2020 2020 2020 2020 2020 2020 2043 6f6d Com │ │ │ │ +00020410: 6d61 6e64 206c 696e 652e 2020 2020 2020 mand line. │ │ │ │ +00020420: 2020 286c 696e 6520 2020 3629 0a2a 2063 (line 6).* c │ │ │ │ +00020430: 6f6d 6d65 6e74 733a 2020 2020 2020 2020 omments: │ │ │ │ 00020440: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020450: 2020 2020 2020 2020 2020 2020 2020 4472 Dr │ │ │ │ -00020460: 6177 696e 6720 6120 736f 6c69 642e 2020 awing a solid. │ │ │ │ -00020470: 2020 2028 6c69 6e65 2020 3238 290a 2a20 (line 28).* │ │ │ │ -00020480: 636f 6d6d 656e 7473 203c 313e 3a20 2020 comments <1>: │ │ │ │ -00020490: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000204a0: 2020 2020 2020 204c 616e 6775 6167 6520 Language │ │ │ │ -000204b0: 6261 7369 6373 2e20 2020 2020 286c 696e basics. (lin │ │ │ │ -000204c0: 6520 2031 3829 0a2a 2063 6f6e 7374 7275 e 18).* constru │ │ │ │ -000204d0: 6374 6f72 3a20 2020 2020 2020 2020 2020 ctor: │ │ │ │ -000204e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000204f0: 5472 616e 7366 6f72 6d20 6c69 7465 7261 Transform litera │ │ │ │ -00020500: 6c73 2e20 2028 6c69 6e65 2020 2036 290a ls. (line 6). │ │ │ │ -00020510: 2a20 636f 6f72 6469 6e61 7465 2073 7973 * coordinate sys │ │ │ │ -00020520: 7465 6d2c 2072 6967 6874 2d68 616e 6465 tem, right-hande │ │ │ │ -00020530: 643a 2020 2020 2020 2049 6e74 726f 6475 d: Introdu │ │ │ │ -00020540: 6374 696f 6e20 6279 2065 7861 6d70 6c65 ction by example │ │ │ │ -00020550: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ +00020450: 2020 2020 2020 4472 6177 696e 6720 6120 Drawing a │ │ │ │ +00020460: 736f 6c69 642e 2020 2020 2028 6c69 6e65 solid. (line │ │ │ │ +00020470: 2020 3238 290a 2a20 636f 6d6d 656e 7473 28).* comments │ │ │ │ +00020480: 203c 313e 3a20 2020 2020 2020 2020 2020 <1>: │ │ │ │ +00020490: 2020 2020 2020 2020 2020 2020 2020 204c L │ │ │ │ +000204a0: 616e 6775 6167 6520 6261 7369 6373 2e20 anguage basics. │ │ │ │ +000204b0: 2020 2020 286c 696e 6520 2031 3829 0a2a (line 18).* │ │ │ │ +000204c0: 2063 6f6e 7374 7275 6374 6f72 3a20 2020 constructor: │ │ │ │ +000204d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +000204e0: 2020 2020 2020 2020 5472 616e 7366 6f72 Transfor │ │ │ │ +000204f0: 6d20 6c69 7465 7261 6c73 2e20 2028 6c69 m literals. (li │ │ │ │ +00020500: 6e65 2020 2036 290a 2a20 636f 6f72 6469 ne 6).* coordi │ │ │ │ +00020510: 6e61 7465 2073 7973 7465 6d2c 2072 6967 nate system, rig │ │ │ │ +00020520: 6874 2d68 616e 6465 643a 2020 2020 2020 ht-handed: │ │ │ │ +00020530: 2049 6e74 726f 6475 6374 696f 6e20 6279 Introduction by │ │ │ │ +00020540: 2065 7861 6d70 6c65 2e0a 2020 2020 2020 example.. │ │ │ │ +00020550: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00020560: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00020570: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020580: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020590: 286c 696e 6520 2031 3129 0a2a 2063 6f75 (line 11).* cou │ │ │ │ -000205a0: 6e74 6572 2d63 6c6f 636b 7769 7365 2070 nter-clockwise p │ │ │ │ -000205b0: 6f6c 7967 6f6e 2076 6572 7465 7820 6f72 olygon vertex or │ │ │ │ -000205c0: 6465 723a 2048 656c 6c6f 2077 6f72 6c64 der: Hello world │ │ │ │ -000205d0: 2e20 2020 2020 2020 2028 6c69 6e65 2020 . (line │ │ │ │ -000205e0: 3339 290a 2a20 6375 6c6c 696e 673a 2020 39).* culling: │ │ │ │ +00020580: 2020 2020 2020 2020 286c 696e 6520 2031 (line 1 │ │ │ │ +00020590: 3129 0a2a 2063 6f75 6e74 6572 2d63 6c6f 1).* counter-clo │ │ │ │ +000205a0: 636b 7769 7365 2070 6f6c 7967 6f6e 2076 ckwise polygon v │ │ │ │ +000205b0: 6572 7465 7820 6f72 6465 723a 2048 656c ertex order: Hel │ │ │ │ +000205c0: 6c6f 2077 6f72 6c64 2e20 2020 2020 2020 lo world. │ │ │ │ +000205d0: 2028 6c69 6e65 2020 3339 290a 2a20 6375 (line 39).* cu │ │ │ │ +000205e0: 6c6c 696e 673a 2020 2020 2020 2020 2020 lling: │ │ │ │ 000205f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020600: 2020 2020 2020 2020 2020 2020 2048 656c Hel │ │ │ │ -00020610: 6c6f 2077 6f72 6c64 2e20 2020 2020 2020 lo world. │ │ │ │ -00020620: 2020 286c 696e 6520 2034 3329 0a2a 2063 (line 43).* c │ │ │ │ -00020630: 756c 6c69 6e67 203c 313e 3a20 2020 2020 ulling <1>: │ │ │ │ -00020640: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020650: 2020 2020 2020 4472 6177 696e 6720 6120 Drawing a │ │ │ │ -00020660: 736f 6c69 642e 2020 2020 2028 6c69 6e65 solid. (line │ │ │ │ -00020670: 2020 3335 290a 2a20 6375 6c6c 696e 6720 35).* culling │ │ │ │ -00020680: 3c32 3e3a 2020 2020 2020 2020 2020 2020 <2>: │ │ │ │ -00020690: 2020 2020 2020 2020 2020 2020 2020 2044 D │ │ │ │ -000206a0: 7261 7769 6e67 2061 2073 6f6c 6964 2e20 rawing a solid. │ │ │ │ -000206b0: 2020 2020 286c 696e 6520 2034 3129 0a2a (line 41).* │ │ │ │ -000206c0: 2063 756c 6c69 6e67 203c 333e 3a20 2020 culling <3>: │ │ │ │ +00020600: 2020 2020 2048 656c 6c6f 2077 6f72 6c64 Hello world │ │ │ │ +00020610: 2e20 2020 2020 2020 2020 286c 696e 6520 . (line │ │ │ │ +00020620: 2034 3329 0a2a 2063 756c 6c69 6e67 203c 43).* culling < │ │ │ │ +00020630: 313e 3a20 2020 2020 2020 2020 2020 2020 1>: │ │ │ │ +00020640: 2020 2020 2020 2020 2020 2020 2020 4472 Dr │ │ │ │ +00020650: 6177 696e 6720 6120 736f 6c69 642e 2020 awing a solid. │ │ │ │ +00020660: 2020 2028 6c69 6e65 2020 3335 290a 2a20 (line 35).* │ │ │ │ +00020670: 6375 6c6c 696e 6720 3c32 3e3a 2020 2020 culling <2>: │ │ │ │ +00020680: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00020690: 2020 2020 2020 2044 7261 7769 6e67 2061 Drawing a │ │ │ │ +000206a0: 2073 6f6c 6964 2e20 2020 2020 286c 696e solid. (lin │ │ │ │ +000206b0: 6520 2034 3129 0a2a 2063 756c 6c69 6e67 e 41).* culling │ │ │ │ +000206c0: 203c 333e 3a20 2020 2020 2020 2020 2020 <3>: │ │ │ │ 000206d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000206e0: 2020 2020 2020 2020 5377 6570 7420 6c69 Swept li │ │ │ │ -000206f0: 6e65 732e 2020 2020 2020 2020 2028 6c69 nes. (li │ │ │ │ -00020700: 6e65 2020 3136 290a 2a20 6465 636c 6172 ne 16).* declar │ │ │ │ -00020710: 6174 6976 6520 6c61 6e67 7561 6765 3a20 ative language: │ │ │ │ -00020720: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020730: 204c 616e 6775 6167 6520 6261 7369 6373 Language basics │ │ │ │ -00020740: 2e20 2020 2020 286c 696e 6520 2020 3829 . (line 8) │ │ │ │ -00020750: 0a2a 2064 6566 696e 6974 696f 6e3a 2020 .* definition: │ │ │ │ +000206e0: 5377 6570 7420 6c69 6e65 732e 2020 2020 Swept lines. │ │ │ │ +000206f0: 2020 2020 2028 6c69 6e65 2020 3136 290a (line 16). │ │ │ │ +00020700: 2a20 6465 636c 6172 6174 6976 6520 6c61 * declarative la │ │ │ │ +00020710: 6e67 7561 6765 3a20 2020 2020 2020 2020 nguage: │ │ │ │ +00020720: 2020 2020 2020 2020 204c 616e 6775 6167 Languag │ │ │ │ +00020730: 6520 6261 7369 6373 2e20 2020 2020 286c e basics. (l │ │ │ │ +00020740: 696e 6520 2020 3829 0a2a 2064 6566 696e ine 8).* defin │ │ │ │ +00020750: 6974 696f 6e3a 2020 2020 2020 2020 2020 ition: │ │ │ │ 00020760: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020770: 2020 2020 2020 2020 2020 4472 6177 696e Drawin │ │ │ │ -00020780: 6720 6120 736f 6c69 642e 2020 2020 2028 g a solid. ( │ │ │ │ -00020790: 6c69 6e65 2020 3232 290a 2a20 6465 6669 line 22).* defi │ │ │ │ -000207a0: 6e69 7469 6f6e 203c 313e 3a20 2020 2020 nition <1>: │ │ │ │ -000207b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000207c0: 2020 2044 6566 696e 6974 696f 6e73 2e20 Definitions. │ │ │ │ -000207d0: 2020 2020 2020 2020 286c 696e 6520 2020 (line │ │ │ │ -000207e0: 3629 0a2a 2064 6566 696e 6974 696f 6e20 6).* definition │ │ │ │ -000207f0: 7769 7468 2061 6c74 6572 6e61 7469 7665 with alternative │ │ │ │ -00020800: 733a 2020 2020 2020 2020 2020 466f 726d s: Form │ │ │ │ -00020810: 7320 6f66 2064 6566 696e 6974 696f 6e73 s of definitions │ │ │ │ -00020820: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ +00020770: 2020 4472 6177 696e 6720 6120 736f 6c69 Drawing a soli │ │ │ │ +00020780: 642e 2020 2020 2028 6c69 6e65 2020 3232 d. (line 22 │ │ │ │ +00020790: 290a 2a20 6465 6669 6e69 7469 6f6e 203c ).* definition < │ │ │ │ +000207a0: 313e 3a20 2020 2020 2020 2020 2020 2020 1>: │ │ │ │ +000207b0: 2020 2020 2020 2020 2020 2044 6566 696e Defin │ │ │ │ +000207c0: 6974 696f 6e73 2e20 2020 2020 2020 2020 itions. │ │ │ │ +000207d0: 286c 696e 6520 2020 3629 0a2a 2064 6566 (line 6).* def │ │ │ │ +000207e0: 696e 6974 696f 6e20 7769 7468 2061 6c74 inition with alt │ │ │ │ +000207f0: 6572 6e61 7469 7665 733a 2020 2020 2020 ernatives: │ │ │ │ +00020800: 2020 2020 466f 726d 7320 6f66 2064 6566 Forms of def │ │ │ │ +00020810: 696e 6974 696f 6e73 2e0a 2020 2020 2020 initions.. │ │ │ │ +00020820: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00020830: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00020840: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020850: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020860: 286c 696e 6520 2020 3629 0a2a 2064 6566 (line 6).* def │ │ │ │ -00020870: 696e 6974 696f 6e2c 2064 7261 7761 626c inition, drawabl │ │ │ │ -00020880: 653a 2020 2020 2020 2020 2020 2020 2020 e: │ │ │ │ -00020890: 2020 2020 4f62 6a65 6374 2074 7261 6e73 Object trans │ │ │ │ -000208a0: 666f 726d 732e 2020 2028 6c69 6e65 2020 forms. (line │ │ │ │ -000208b0: 3237 290a 2a20 6465 6669 6e69 7469 6f6e 27).* definition │ │ │ │ -000208c0: 2c20 6f70 7469 6f6e 733a 2020 2020 2020 , options: │ │ │ │ -000208d0: 2020 2020 2020 2020 2020 2020 2050 6f6c Pol │ │ │ │ -000208e0: 796c 696e 6520 7377 6565 7073 2077 6974 yline sweeps wit │ │ │ │ -000208f0: 6820 636c 6f73 7572 652e 0a20 2020 2020 h closure.. │ │ │ │ +00020850: 2020 2020 2020 2020 286c 696e 6520 2020 (line │ │ │ │ +00020860: 3629 0a2a 2064 6566 696e 6974 696f 6e2c 6).* definition, │ │ │ │ +00020870: 2064 7261 7761 626c 653a 2020 2020 2020 drawable: │ │ │ │ +00020880: 2020 2020 2020 2020 2020 2020 4f62 6a65 Obje │ │ │ │ +00020890: 6374 2074 7261 6e73 666f 726d 732e 2020 ct transforms. │ │ │ │ +000208a0: 2028 6c69 6e65 2020 3237 290a 2a20 6465 (line 27).* de │ │ │ │ +000208b0: 6669 6e69 7469 6f6e 2c20 6f70 7469 6f6e finition, option │ │ │ │ +000208c0: 733a 2020 2020 2020 2020 2020 2020 2020 s: │ │ │ │ +000208d0: 2020 2020 2050 6f6c 796c 696e 6520 7377 Polyline sw │ │ │ │ +000208e0: 6565 7073 2077 6974 6820 636c 6f73 7572 eeps with closur │ │ │ │ +000208f0: 652e 0a20 2020 2020 2020 2020 2020 2020 e.. │ │ │ │ 00020900: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00020910: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00020920: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020930: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ -00020940: 3233 290a 2a20 6465 6669 6e69 7469 6f6e 23).* definition │ │ │ │ -00020950: 2c20 706f 696e 743a 2020 2020 2020 2020 , point: │ │ │ │ -00020960: 2020 2020 2020 2020 2020 2020 2044 7261 Dra │ │ │ │ -00020970: 7769 6e67 2061 2073 6f6c 6964 2e20 2020 wing a solid. │ │ │ │ -00020980: 2020 286c 696e 6520 2032 3329 0a2a 2064 (line 23).* d │ │ │ │ -00020990: 6566 696e 6974 696f 6e2c 2073 6361 6c61 efinition, scala │ │ │ │ -000209a0: 723a 2020 2020 2020 2020 2020 2020 2020 r: │ │ │ │ -000209b0: 2020 2020 2020 5377 6570 7420 6f62 6a65 Swept obje │ │ │ │ -000209c0: 6374 732e 2020 2020 2020 2028 6c69 6e65 cts. (line │ │ │ │ -000209d0: 2020 3133 290a 2a20 6465 6669 6e69 7469 13).* definiti │ │ │ │ -000209e0: 6f6e 2c20 7369 6d70 6c65 3a20 2020 2020 on, simple: │ │ │ │ -000209f0: 2020 2020 2020 2020 2020 2020 2020 2046 F │ │ │ │ -00020a00: 6f72 6d73 206f 6620 6465 6669 6e69 7469 orms of definiti │ │ │ │ -00020a10: 6f6e 732e 0a20 2020 2020 2020 2020 2020 ons.. │ │ │ │ +00020930: 2028 6c69 6e65 2020 3233 290a 2a20 6465 (line 23).* de │ │ │ │ +00020940: 6669 6e69 7469 6f6e 2c20 706f 696e 743a finition, point: │ │ │ │ +00020950: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00020960: 2020 2020 2044 7261 7769 6e67 2061 2073 Drawing a s │ │ │ │ +00020970: 6f6c 6964 2e20 2020 2020 286c 696e 6520 olid. (line │ │ │ │ +00020980: 2032 3329 0a2a 2064 6566 696e 6974 696f 23).* definitio │ │ │ │ +00020990: 6e2c 2073 6361 6c61 723a 2020 2020 2020 n, scalar: │ │ │ │ +000209a0: 2020 2020 2020 2020 2020 2020 2020 5377 Sw │ │ │ │ +000209b0: 6570 7420 6f62 6a65 6374 732e 2020 2020 ept objects. │ │ │ │ +000209c0: 2020 2028 6c69 6e65 2020 3133 290a 2a20 (line 13).* │ │ │ │ +000209d0: 6465 6669 6e69 7469 6f6e 2c20 7369 6d70 definition, simp │ │ │ │ +000209e0: 6c65 3a20 2020 2020 2020 2020 2020 2020 le: │ │ │ │ +000209f0: 2020 2020 2020 2046 6f72 6d73 206f 6620 Forms of │ │ │ │ +00020a00: 6465 6669 6e69 7469 6f6e 732e 0a20 2020 definitions.. │ │ │ │ +00020a10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00020a20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00020a30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020a40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020a50: 2020 2028 6c69 6e65 2020 2036 290a 2a20 (line 6).* │ │ │ │ -00020a60: 6465 6669 6e69 7469 6f6e 2c20 7461 673a definition, tag: │ │ │ │ -00020a70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020a80: 2020 2020 2020 2044 6566 696e 6974 696f Definitio │ │ │ │ -00020a90: 6e73 2e20 2020 2020 2020 2020 286c 696e ns. (lin │ │ │ │ -00020aa0: 6520 2031 3829 0a2a 2064 6566 696e 6974 e 18).* definit │ │ │ │ -00020ab0: 696f 6e2c 2074 6167 203c 313e 3a20 2020 ion, tag <1>: │ │ │ │ -00020ac0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020ad0: 466f 726d 7320 6f66 2064 6566 696e 6974 Forms of definit │ │ │ │ -00020ae0: 696f 6e73 2e0a 2020 2020 2020 2020 2020 ions.. │ │ │ │ +00020a40: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ +00020a50: 2020 2036 290a 2a20 6465 6669 6e69 7469 6).* definiti │ │ │ │ +00020a60: 6f6e 2c20 7461 673a 2020 2020 2020 2020 on, tag: │ │ │ │ +00020a70: 2020 2020 2020 2020 2020 2020 2020 2044 D │ │ │ │ +00020a80: 6566 696e 6974 696f 6e73 2e20 2020 2020 efinitions. │ │ │ │ +00020a90: 2020 2020 286c 696e 6520 2031 3829 0a2a (line 18).* │ │ │ │ +00020aa0: 2064 6566 696e 6974 696f 6e2c 2074 6167 definition, tag │ │ │ │ +00020ab0: 203c 313e 3a20 2020 2020 2020 2020 2020 <1>: │ │ │ │ +00020ac0: 2020 2020 2020 2020 466f 726d 7320 6f66 Forms of │ │ │ │ +00020ad0: 2064 6566 696e 6974 696f 6e73 2e0a 2020 definitions.. │ │ │ │ +00020ae0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00020af0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00020b00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020b10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020b20: 2020 2020 286c 696e 6520 2020 3729 0a2a (line 7).* │ │ │ │ -00020b30: 2064 6566 696e 6974 696f 6e2c 2074 6167 definition, tag │ │ │ │ -00020b40: 203c 323e 3a20 2020 2020 2020 2020 2020 <2>: │ │ │ │ -00020b50: 2020 2020 2020 2020 436f 6d6d 616e 6420 Command │ │ │ │ -00020b60: 6c69 6e65 2e20 2020 2020 2020 2028 6c69 line. (li │ │ │ │ -00020b70: 6e65 2020 3533 290a 2a20 6465 6669 6e69 ne 53).* defini │ │ │ │ -00020b80: 7469 6f6e 2c20 7472 616e 7366 6f72 6d3a tion, transform: │ │ │ │ -00020b90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020ba0: 204f 7665 7276 6965 772e 2020 2020 2020 Overview. │ │ │ │ -00020bb0: 2020 2020 2020 286c 696e 6520 2033 3529 (line 35) │ │ │ │ -00020bc0: 0a2a 2064 6566 696e 6974 696f 6e2c 2076 .* definition, v │ │ │ │ -00020bd0: 6563 746f 723a 2020 2020 2020 2020 2020 ector: │ │ │ │ -00020be0: 2020 2020 2020 2020 2020 506f 6c79 6c69 Polyli │ │ │ │ -00020bf0: 6e65 2073 7765 6570 732e 2020 2020 2028 ne sweeps. ( │ │ │ │ -00020c00: 6c69 6e65 2020 3139 290a 2a20 6465 7074 line 19).* dept │ │ │ │ -00020c10: 6820 736f 7274 3a20 2020 2020 2020 2020 h sort: │ │ │ │ -00020c20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020c30: 2020 2049 6e74 6572 6e61 6c20 6f70 7469 Internal opti │ │ │ │ -00020c40: 6f6e 732e 2020 2020 286c 696e 6520 2031 ons. (line 1 │ │ │ │ -00020c50: 3329 0a2a 2064 6570 7468 2073 6f72 7420 3).* depth sort │ │ │ │ -00020c60: 3c31 3e3a 2020 2020 2020 2020 2020 2020 <1>: │ │ │ │ -00020c70: 2020 2020 2020 2020 2020 2020 4869 6464 Hidd │ │ │ │ -00020c80: 656e 2073 7572 6661 6365 2072 656d 6f76 en surface remov │ │ │ │ -00020c90: 616c 2e0a 2020 2020 2020 2020 2020 2020 al.. │ │ │ │ +00020b10: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ +00020b20: 6520 2020 3729 0a2a 2064 6566 696e 6974 e 7).* definit │ │ │ │ +00020b30: 696f 6e2c 2074 6167 203c 323e 3a20 2020 ion, tag <2>: │ │ │ │ +00020b40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00020b50: 436f 6d6d 616e 6420 6c69 6e65 2e20 2020 Command line. │ │ │ │ +00020b60: 2020 2020 2028 6c69 6e65 2020 3533 290a (line 53). │ │ │ │ +00020b70: 2a20 6465 6669 6e69 7469 6f6e 2c20 7472 * definition, tr │ │ │ │ +00020b80: 616e 7366 6f72 6d3a 2020 2020 2020 2020 ansform: │ │ │ │ +00020b90: 2020 2020 2020 2020 204f 7665 7276 6965 Overvie │ │ │ │ +00020ba0: 772e 2020 2020 2020 2020 2020 2020 286c w. (l │ │ │ │ +00020bb0: 696e 6520 2033 3529 0a2a 2064 6566 696e ine 35).* defin │ │ │ │ +00020bc0: 6974 696f 6e2c 2076 6563 746f 723a 2020 ition, vector: │ │ │ │ +00020bd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00020be0: 2020 506f 6c79 6c69 6e65 2073 7765 6570 Polyline sweep │ │ │ │ +00020bf0: 732e 2020 2020 2028 6c69 6e65 2020 3139 s. (line 19 │ │ │ │ +00020c00: 290a 2a20 6465 7074 6820 736f 7274 3a20 ).* depth sort: │ │ │ │ +00020c10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00020c20: 2020 2020 2020 2020 2020 2049 6e74 6572 Inter │ │ │ │ +00020c30: 6e61 6c20 6f70 7469 6f6e 732e 2020 2020 nal options. │ │ │ │ +00020c40: 286c 696e 6520 2031 3329 0a2a 2064 6570 (line 13).* dep │ │ │ │ +00020c50: 7468 2073 6f72 7420 3c31 3e3a 2020 2020 th sort <1>: │ │ │ │ +00020c60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00020c70: 2020 2020 4869 6464 656e 2073 7572 6661 Hidden surfa │ │ │ │ +00020c80: 6365 2072 656d 6f76 616c 2e0a 2020 2020 ce removal.. │ │ │ │ +00020c90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00020ca0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00020cb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020cc0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020cd0: 2020 286c 696e 6520 2020 3629 0a2a 2064 (line 6).* d │ │ │ │ -00020ce0: 6570 7468 2073 6f72 7420 3c32 3e3a 2020 epth sort <2>: │ │ │ │ -00020cf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020d00: 2020 2020 2020 4275 6773 2061 6e64 2061 Bugs and a │ │ │ │ -00020d10: 6e6f 6d61 6c69 6573 2e20 2028 6c69 6e65 nomalies. (line │ │ │ │ -00020d20: 2020 2038 290a 2a20 6469 7265 6374 2074 8).* direct t │ │ │ │ -00020d30: 7261 6e73 666f 726d 3a20 2020 2020 2020 ransform: │ │ │ │ -00020d40: 2020 2020 2020 2020 2020 2020 2020 2054 T │ │ │ │ -00020d50: 7261 6e73 666f 726d 206c 6974 6572 616c ransform literal │ │ │ │ -00020d60: 732e 2020 286c 696e 6520 2034 3729 0a2a s. (line 47).* │ │ │ │ -00020d70: 2064 6972 6563 7420 7472 616e 7366 6f72 direct transfor │ │ │ │ -00020d80: 6d20 3c31 3e3a 2020 2020 2020 2020 2020 m <1>: │ │ │ │ -00020d90: 2020 2020 2020 2020 5472 616e 7366 6f72 Transfor │ │ │ │ -00020da0: 6d20 6c69 7465 7261 6c73 2e20 2028 6c69 m literals. (li │ │ │ │ -00020db0: 6e65 2020 3533 290a 2a20 646f 6375 6d65 ne 53).* docume │ │ │ │ -00020dc0: 6e74 2074 656d 706c 6174 653a 2020 2020 nt template: │ │ │ │ -00020dd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020de0: 2048 656c 6c6f 2077 6f72 6c64 2e20 2020 Hello world. │ │ │ │ -00020df0: 2020 2020 2020 286c 696e 6520 2033 3229 (line 32) │ │ │ │ -00020e00: 0a2a 2064 6f63 756d 656e 7420 7465 6d70 .* document temp │ │ │ │ -00020e10: 6c61 7465 203c 313e 3a20 2020 2020 2020 late <1>: │ │ │ │ -00020e20: 2020 2020 2020 2020 2020 436f 6d6d 616e Comman │ │ │ │ -00020e30: 6420 6c69 6e65 2e20 2020 2020 2020 2028 d line. ( │ │ │ │ -00020e40: 6c69 6e65 2020 3336 290a 2a20 6472 6177 line 36).* draw │ │ │ │ -00020e50: 6162 6c65 3a20 2020 2020 2020 2020 2020 able: │ │ │ │ -00020e60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020e70: 2020 204f 626a 6563 7420 7472 616e 7366 Object transf │ │ │ │ -00020e80: 6f72 6d73 2e20 2020 286c 696e 6520 2032 orms. (line 2 │ │ │ │ -00020e90: 3729 0a2a 2064 7261 7761 626c 6520 3c31 7).* drawable <1 │ │ │ │ -00020ea0: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ -00020eb0: 2020 2020 2020 2020 2020 2020 4472 6177 Draw │ │ │ │ -00020ec0: 6162 6c65 732e 2020 2020 2020 2020 2020 ables. │ │ │ │ -00020ed0: 2028 6c69 6e65 2020 2036 290a 2a20 6472 (line 6).* dr │ │ │ │ -00020ee0: 6177 6162 6c65 2064 6566 696e 6974 696f awable definitio │ │ │ │ -00020ef0: 6e3a 2020 2020 2020 2020 2020 2020 2020 n: │ │ │ │ -00020f00: 2020 2020 204f 626a 6563 7420 7472 616e Object tran │ │ │ │ -00020f10: 7366 6f72 6d73 2e20 2020 286c 696e 6520 sforms. (line │ │ │ │ -00020f20: 2032 3729 0a2a 2064 7261 7761 626c 6520 27).* drawable │ │ │ │ -00020f30: 7265 6665 7265 6e63 653a 2020 2020 2020 reference: │ │ │ │ -00020f40: 2020 2020 2020 2020 2020 2020 2020 466f Fo │ │ │ │ -00020f50: 726d 7320 6f66 2072 6566 6572 656e 6365 rms of reference │ │ │ │ -00020f60: 732e 2028 6c69 6e65 2020 3137 290a 2a20 s. (line 17).* │ │ │ │ -00020f70: 656e 6420 706f 6c79 676f 6e3a 2020 2020 end polygon: │ │ │ │ -00020f80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020f90: 2020 2020 2020 2053 7765 7074 206c 696e Swept lin │ │ │ │ -00020fa0: 6573 2e20 2020 2020 2020 2020 286c 696e es. (lin │ │ │ │ -00020fb0: 6520 2033 3829 0a2a 2065 6e64 2070 6f6c e 38).* end pol │ │ │ │ -00020fc0: 7967 6f6e 203c 313e 3a20 2020 2020 2020 ygon <1>: │ │ │ │ -00020fd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00020fe0: 5377 6570 7420 706f 6c79 676f 6e73 2e20 Swept polygons. │ │ │ │ -00020ff0: 2020 2020 2028 6c69 6e65 2020 3135 290a (line 15). │ │ │ │ -00021000: 2a20 6661 6365 733a 2020 2020 2020 2020 * faces: │ │ │ │ +00020cc0: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ +00020cd0: 2020 3629 0a2a 2064 6570 7468 2073 6f72 6).* depth sor │ │ │ │ +00020ce0: 7420 3c32 3e3a 2020 2020 2020 2020 2020 t <2>: │ │ │ │ +00020cf0: 2020 2020 2020 2020 2020 2020 2020 4275 Bu │ │ │ │ +00020d00: 6773 2061 6e64 2061 6e6f 6d61 6c69 6573 gs and anomalies │ │ │ │ +00020d10: 2e20 2028 6c69 6e65 2020 2038 290a 2a20 . (line 8).* │ │ │ │ +00020d20: 6469 7265 6374 2074 7261 6e73 666f 726d direct transform │ │ │ │ +00020d30: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +00020d40: 2020 2020 2020 2054 7261 6e73 666f 726d Transform │ │ │ │ +00020d50: 206c 6974 6572 616c 732e 2020 286c 696e literals. (lin │ │ │ │ +00020d60: 6520 2034 3729 0a2a 2064 6972 6563 7420 e 47).* direct │ │ │ │ +00020d70: 7472 616e 7366 6f72 6d20 3c31 3e3a 2020 transform <1>: │ │ │ │ +00020d80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00020d90: 5472 616e 7366 6f72 6d20 6c69 7465 7261 Transform litera │ │ │ │ +00020da0: 6c73 2e20 2028 6c69 6e65 2020 3533 290a ls. (line 53). │ │ │ │ +00020db0: 2a20 646f 6375 6d65 6e74 2074 656d 706c * document templ │ │ │ │ +00020dc0: 6174 653a 2020 2020 2020 2020 2020 2020 ate: │ │ │ │ +00020dd0: 2020 2020 2020 2020 2048 656c 6c6f 2077 Hello w │ │ │ │ +00020de0: 6f72 6c64 2e20 2020 2020 2020 2020 286c orld. (l │ │ │ │ +00020df0: 696e 6520 2033 3229 0a2a 2064 6f63 756d ine 32).* docum │ │ │ │ +00020e00: 656e 7420 7465 6d70 6c61 7465 203c 313e ent template <1> │ │ │ │ +00020e10: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +00020e20: 2020 436f 6d6d 616e 6420 6c69 6e65 2e20 Command line. │ │ │ │ +00020e30: 2020 2020 2020 2028 6c69 6e65 2020 3336 (line 36 │ │ │ │ +00020e40: 290a 2a20 6472 6177 6162 6c65 3a20 2020 ).* drawable: │ │ │ │ +00020e50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00020e60: 2020 2020 2020 2020 2020 204f 626a 6563 Objec │ │ │ │ +00020e70: 7420 7472 616e 7366 6f72 6d73 2e20 2020 t transforms. │ │ │ │ +00020e80: 286c 696e 6520 2032 3729 0a2a 2064 7261 (line 27).* dra │ │ │ │ +00020e90: 7761 626c 6520 3c31 3e3a 2020 2020 2020 wable <1>: │ │ │ │ +00020ea0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00020eb0: 2020 2020 4472 6177 6162 6c65 732e 2020 Drawables. │ │ │ │ +00020ec0: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ +00020ed0: 2036 290a 2a20 6472 6177 6162 6c65 2064 6).* drawable d │ │ │ │ +00020ee0: 6566 696e 6974 696f 6e3a 2020 2020 2020 efinition: │ │ │ │ +00020ef0: 2020 2020 2020 2020 2020 2020 204f 626a Obj │ │ │ │ +00020f00: 6563 7420 7472 616e 7366 6f72 6d73 2e20 ect transforms. │ │ │ │ +00020f10: 2020 286c 696e 6520 2032 3729 0a2a 2064 (line 27).* d │ │ │ │ +00020f20: 7261 7761 626c 6520 7265 6665 7265 6e63 rawable referenc │ │ │ │ +00020f30: 653a 2020 2020 2020 2020 2020 2020 2020 e: │ │ │ │ +00020f40: 2020 2020 2020 466f 726d 7320 6f66 2072 Forms of r │ │ │ │ +00020f50: 6566 6572 656e 6365 732e 2028 6c69 6e65 eferences. (line │ │ │ │ +00020f60: 2020 3137 290a 2a20 656e 6420 706f 6c79 17).* end poly │ │ │ │ +00020f70: 676f 6e3a 2020 2020 2020 2020 2020 2020 gon: │ │ │ │ +00020f80: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ +00020f90: 7765 7074 206c 696e 6573 2e20 2020 2020 wept lines. │ │ │ │ +00020fa0: 2020 2020 286c 696e 6520 2033 3829 0a2a (line 38).* │ │ │ │ +00020fb0: 2065 6e64 2070 6f6c 7967 6f6e 203c 313e end polygon <1> │ │ │ │ +00020fc0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +00020fd0: 2020 2020 2020 2020 5377 6570 7420 706f Swept po │ │ │ │ +00020fe0: 6c79 676f 6e73 2e20 2020 2020 2028 6c69 lygons. (li │ │ │ │ +00020ff0: 6e65 2020 3135 290a 2a20 6661 6365 733a ne 15).* faces: │ │ │ │ +00021000: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00021010: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021020: 2020 2020 2020 2020 2044 7261 7769 6e67 Drawing │ │ │ │ -00021030: 2061 2073 6f6c 6964 2e20 2020 2020 286c a solid. (l │ │ │ │ -00021040: 696e 6520 2020 3729 0a2a 2066 6163 6573 ine 7).* faces │ │ │ │ -00021050: 203c 313e 3a20 2020 2020 2020 2020 2020 <1>: │ │ │ │ -00021060: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021070: 2020 506f 6c79 6c69 6e65 2073 7765 6570 Polyline sweep │ │ │ │ -00021080: 732e 2020 2020 2028 6c69 6e65 2020 2036 s. (line 6 │ │ │ │ -00021090: 290a 2a20 6669 6c65 2c20 696e 636c 7564 ).* file, includ │ │ │ │ -000210a0: 653a 2020 2020 2020 2020 2020 2020 2020 e: │ │ │ │ -000210b0: 2020 2020 2020 2020 2020 204c 616e 6775 Langu │ │ │ │ -000210c0: 6167 6520 6261 7369 6373 2e20 2020 2020 age basics. │ │ │ │ -000210d0: 286c 696e 6520 2031 3929 0a2a 2066 696c (line 19).* fil │ │ │ │ -000210e0: 652c 2069 6e70 7574 3a20 2020 2020 2020 e, input: │ │ │ │ -000210f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021100: 2020 2020 4c61 6e67 7561 6765 2062 6173 Language bas │ │ │ │ -00021110: 6963 732e 2020 2020 2028 6c69 6e65 2020 ics. (line │ │ │ │ -00021120: 2036 290a 2a20 6672 616d 6520 626f 783a 6).* frame box: │ │ │ │ +00021020: 2044 7261 7769 6e67 2061 2073 6f6c 6964 Drawing a solid │ │ │ │ +00021030: 2e20 2020 2020 286c 696e 6520 2020 3729 . (line 7) │ │ │ │ +00021040: 0a2a 2066 6163 6573 203c 313e 3a20 2020 .* faces <1>: │ │ │ │ +00021050: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00021060: 2020 2020 2020 2020 2020 506f 6c79 6c69 Polyli │ │ │ │ +00021070: 6e65 2073 7765 6570 732e 2020 2020 2028 ne sweeps. ( │ │ │ │ +00021080: 6c69 6e65 2020 2036 290a 2a20 6669 6c65 line 6).* file │ │ │ │ +00021090: 2c20 696e 636c 7564 653a 2020 2020 2020 , include: │ │ │ │ +000210a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +000210b0: 2020 204c 616e 6775 6167 6520 6261 7369 Language basi │ │ │ │ +000210c0: 6373 2e20 2020 2020 286c 696e 6520 2031 cs. (line 1 │ │ │ │ +000210d0: 3929 0a2a 2066 696c 652c 2069 6e70 7574 9).* file, input │ │ │ │ +000210e0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +000210f0: 2020 2020 2020 2020 2020 2020 4c61 6e67 Lang │ │ │ │ +00021100: 7561 6765 2062 6173 6963 732e 2020 2020 uage basics. │ │ │ │ +00021110: 2028 6c69 6e65 2020 2036 290a 2a20 6672 (line 6).* fr │ │ │ │ +00021120: 616d 6520 626f 783a 2020 2020 2020 2020 ame box: │ │ │ │ 00021130: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021140: 2020 2020 2020 2020 2020 2020 2046 7261 Fra │ │ │ │ -00021150: 6d65 2e20 2020 2020 2020 2020 2020 2020 me. │ │ │ │ -00021160: 2020 286c 696e 6520 2020 3629 0a2a 2067 (line 6).* g │ │ │ │ -00021170: 6c6f 6261 6c20 6f70 7469 6f6e 733a 2020 lobal options: │ │ │ │ -00021180: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021190: 2020 2020 2020 4472 6177 696e 6720 6f70 Drawing op │ │ │ │ -000211a0: 7469 6f6e 732e 2020 2020 2028 6c69 6e65 tions. (line │ │ │ │ -000211b0: 2020 3138 290a 2a20 676c 6f62 616c 206f 18).* global o │ │ │ │ -000211c0: 7074 696f 6e73 203c 313e 3a20 2020 2020 ptions <1>: │ │ │ │ -000211d0: 2020 2020 2020 2020 2020 2020 2020 2047 G │ │ │ │ -000211e0: 6c6f 6261 6c20 6f70 7469 6f6e 732e 2020 lobal options. │ │ │ │ -000211f0: 2020 2020 286c 696e 6520 2020 3629 0a2a (line 6).* │ │ │ │ -00021200: 2068 656c 6978 3a20 2020 2020 2020 2020 helix: │ │ │ │ +00021140: 2020 2020 2046 7261 6d65 2e20 2020 2020 Frame. │ │ │ │ +00021150: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ +00021160: 2020 3629 0a2a 2067 6c6f 6261 6c20 6f70 6).* global op │ │ │ │ +00021170: 7469 6f6e 733a 2020 2020 2020 2020 2020 tions: │ │ │ │ +00021180: 2020 2020 2020 2020 2020 2020 2020 4472 Dr │ │ │ │ +00021190: 6177 696e 6720 6f70 7469 6f6e 732e 2020 awing options. │ │ │ │ +000211a0: 2020 2028 6c69 6e65 2020 3138 290a 2a20 (line 18).* │ │ │ │ +000211b0: 676c 6f62 616c 206f 7074 696f 6e73 203c global options < │ │ │ │ +000211c0: 313e 3a20 2020 2020 2020 2020 2020 2020 1>: │ │ │ │ +000211d0: 2020 2020 2020 2047 6c6f 6261 6c20 6f70 Global op │ │ │ │ +000211e0: 7469 6f6e 732e 2020 2020 2020 286c 696e tions. (lin │ │ │ │ +000211f0: 6520 2020 3629 0a2a 2068 656c 6978 3a20 e 6).* helix: │ │ │ │ +00021200: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00021210: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021220: 2020 2020 2020 2020 4472 6177 696e 6720 Drawing │ │ │ │ -00021230: 6120 736f 6c69 642e 2020 2020 2028 6c69 a solid. (li │ │ │ │ -00021240: 6e65 2020 3437 290a 2a20 6865 6c69 7820 ne 47).* helix │ │ │ │ -00021250: 3c31 3e3a 2020 2020 2020 2020 2020 2020 <1>: │ │ │ │ -00021260: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021270: 2050 6f6c 796c 696e 6520 7377 6565 7073 Polyline sweeps │ │ │ │ -00021280: 2e20 2020 2020 286c 696e 6520 2031 3529 . (line 15) │ │ │ │ -00021290: 0a2a 2068 656c 6c6f 2077 6f72 6c64 3a20 .* hello world: │ │ │ │ +00021220: 4472 6177 696e 6720 6120 736f 6c69 642e Drawing a solid. │ │ │ │ +00021230: 2020 2020 2028 6c69 6e65 2020 3437 290a (line 47). │ │ │ │ +00021240: 2a20 6865 6c69 7820 3c31 3e3a 2020 2020 * helix <1>: │ │ │ │ +00021250: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00021260: 2020 2020 2020 2020 2050 6f6c 796c 696e Polylin │ │ │ │ +00021270: 6520 7377 6565 7073 2e20 2020 2020 286c e sweeps. (l │ │ │ │ +00021280: 696e 6520 2031 3529 0a2a 2068 656c 6c6f ine 15).* hello │ │ │ │ +00021290: 2077 6f72 6c64 3a20 2020 2020 2020 2020 world: │ │ │ │ 000212a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000212b0: 2020 2020 2020 2020 2020 4865 6c6c 6f20 Hello │ │ │ │ -000212c0: 776f 726c 642e 2020 2020 2020 2020 2028 world. ( │ │ │ │ -000212d0: 6c69 6e65 2020 2037 290a 2a20 6869 6464 line 7).* hidd │ │ │ │ -000212e0: 656e 2073 7572 6661 6365 2061 6c67 6f72 en surface algor │ │ │ │ -000212f0: 6974 686d 3a20 2020 2020 2020 2020 2020 ithm: │ │ │ │ -00021300: 2020 2048 656c 6c6f 2077 6f72 6c64 2e20 Hello world. │ │ │ │ -00021310: 2020 2020 2020 2020 286c 696e 6520 2031 (line 1 │ │ │ │ -00021320: 3929 0a2a 2068 6964 6465 6e20 7375 7266 9).* hidden surf │ │ │ │ -00021330: 6163 6520 616c 676f 7269 7468 6d20 3c31 ace algorithm <1 │ │ │ │ -00021340: 3e3a 2020 2020 2020 2020 2020 5370 6563 >: Spec │ │ │ │ -00021350: 6961 6c20 6f62 6a65 6374 732e 2020 2020 ial objects. │ │ │ │ -00021360: 2028 6c69 6e65 2020 3438 290a 2a20 6869 (line 48).* hi │ │ │ │ -00021370: 6464 656e 2073 7572 6661 6365 2061 6c67 dden surface alg │ │ │ │ -00021380: 6f72 6974 686d 203c 323e 3a20 2020 2020 orithm <2>: │ │ │ │ -00021390: 2020 2020 2054 7261 6e73 666f 726d 206c Transform l │ │ │ │ -000213a0: 6974 6572 616c 732e 2020 286c 696e 6520 iterals. (line │ │ │ │ -000213b0: 2032 3429 0a2a 2068 6964 6465 6e20 7375 24).* hidden su │ │ │ │ -000213c0: 7266 6163 6520 616c 676f 7269 7468 6d20 rface algorithm │ │ │ │ -000213d0: 3c33 3e3a 2020 2020 2020 2020 2020 4120 <3>: A │ │ │ │ -000213e0: 7465 6368 6e69 6361 6c20 6472 6177 696e technical drawin │ │ │ │ -000213f0: 672e 2028 6c69 6e65 2020 3235 290a 2a20 g. (line 25).* │ │ │ │ -00021400: 6869 6464 656e 2073 7572 6661 6365 2061 hidden surface a │ │ │ │ -00021410: 6c67 6f72 6974 686d 203c 343e 3a20 2020 lgorithm <4>: │ │ │ │ -00021420: 2020 2020 2020 2048 6964 6465 6e20 7375 Hidden su │ │ │ │ -00021430: 7266 6163 6520 7265 6d6f 7661 6c2e 0a20 rface removal.. │ │ │ │ +000212b0: 2020 4865 6c6c 6f20 776f 726c 642e 2020 Hello world. │ │ │ │ +000212c0: 2020 2020 2020 2028 6c69 6e65 2020 2037 (line 7 │ │ │ │ +000212d0: 290a 2a20 6869 6464 656e 2073 7572 6661 ).* hidden surfa │ │ │ │ +000212e0: 6365 2061 6c67 6f72 6974 686d 3a20 2020 ce algorithm: │ │ │ │ +000212f0: 2020 2020 2020 2020 2020 2048 656c 6c6f Hello │ │ │ │ +00021300: 2077 6f72 6c64 2e20 2020 2020 2020 2020 world. │ │ │ │ +00021310: 286c 696e 6520 2031 3929 0a2a 2068 6964 (line 19).* hid │ │ │ │ +00021320: 6465 6e20 7375 7266 6163 6520 616c 676f den surface algo │ │ │ │ +00021330: 7269 7468 6d20 3c31 3e3a 2020 2020 2020 rithm <1>: │ │ │ │ +00021340: 2020 2020 5370 6563 6961 6c20 6f62 6a65 Special obje │ │ │ │ +00021350: 6374 732e 2020 2020 2028 6c69 6e65 2020 cts. (line │ │ │ │ +00021360: 3438 290a 2a20 6869 6464 656e 2073 7572 48).* hidden sur │ │ │ │ +00021370: 6661 6365 2061 6c67 6f72 6974 686d 203c face algorithm < │ │ │ │ +00021380: 323e 3a20 2020 2020 2020 2020 2054 7261 2>: Tra │ │ │ │ +00021390: 6e73 666f 726d 206c 6974 6572 616c 732e nsform literals. │ │ │ │ +000213a0: 2020 286c 696e 6520 2032 3429 0a2a 2068 (line 24).* h │ │ │ │ +000213b0: 6964 6465 6e20 7375 7266 6163 6520 616c idden surface al │ │ │ │ +000213c0: 676f 7269 7468 6d20 3c33 3e3a 2020 2020 gorithm <3>: │ │ │ │ +000213d0: 2020 2020 2020 4120 7465 6368 6e69 6361 A technica │ │ │ │ +000213e0: 6c20 6472 6177 696e 672e 2028 6c69 6e65 l drawing. (line │ │ │ │ +000213f0: 2020 3235 290a 2a20 6869 6464 656e 2073 25).* hidden s │ │ │ │ +00021400: 7572 6661 6365 2061 6c67 6f72 6974 686d urface algorithm │ │ │ │ +00021410: 203c 343e 3a20 2020 2020 2020 2020 2048 <4>: H │ │ │ │ +00021420: 6964 6465 6e20 7375 7266 6163 6520 7265 idden surface re │ │ │ │ +00021430: 6d6f 7661 6c2e 0a20 2020 2020 2020 2020 moval.. │ │ │ │ 00021440: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00021450: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00021460: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021470: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ -00021480: 6e65 2020 2036 290a 2a20 6869 6572 6172 ne 6).* hierar │ │ │ │ -00021490: 6368 6963 616c 206d 6f64 656c 3a20 2020 chical model: │ │ │ │ -000214a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000214b0: 2041 2068 6965 7261 7263 6869 6361 6c20 A hierarchical │ │ │ │ -000214c0: 6d6f 6465 6c2e 0a20 2020 2020 2020 2020 model.. │ │ │ │ +00021470: 2020 2020 2028 6c69 6e65 2020 2036 290a (line 6). │ │ │ │ +00021480: 2a20 6869 6572 6172 6368 6963 616c 206d * hierarchical m │ │ │ │ +00021490: 6f64 656c 3a20 2020 2020 2020 2020 2020 odel: │ │ │ │ +000214a0: 2020 2020 2020 2020 2041 2068 6965 7261 A hiera │ │ │ │ +000214b0: 7263 6869 6361 6c20 6d6f 6465 6c2e 0a20 rchical model.. │ │ │ │ +000214c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 000214d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 000214e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000214f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021500: 2020 2020 2028 6c69 6e65 2020 2036 290a (line 6). │ │ │ │ -00021510: 2a20 6964 656e 7469 6669 6572 733a 2020 * identifiers: │ │ │ │ +000214f0: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ +00021500: 6e65 2020 2036 290a 2a20 6964 656e 7469 ne 6).* identi │ │ │ │ +00021510: 6669 6572 733a 2020 2020 2020 2020 2020 fiers: │ │ │ │ 00021520: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021530: 2020 2020 2020 2020 2049 6465 6e74 6966 Identif │ │ │ │ -00021540: 6965 7273 2e20 2020 2020 2020 2020 286c iers. (l │ │ │ │ -00021550: 696e 6520 2020 3729 0a2a 2069 6e63 6c75 ine 7).* inclu │ │ │ │ -00021560: 6465 2066 696c 653a 2020 2020 2020 2020 de file: │ │ │ │ -00021570: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021580: 2020 4c61 6e67 7561 6765 2062 6173 6963 Language basic │ │ │ │ -00021590: 732e 2020 2020 2028 6c69 6e65 2020 3139 s. (line 19 │ │ │ │ -000215a0: 290a 2a20 696e 7075 7420 6669 6c65 3a20 ).* input file: │ │ │ │ +00021530: 2049 6465 6e74 6966 6965 7273 2e20 2020 Identifiers. │ │ │ │ +00021540: 2020 2020 2020 286c 696e 6520 2020 3729 (line 7) │ │ │ │ +00021550: 0a2a 2069 6e63 6c75 6465 2066 696c 653a .* include file: │ │ │ │ +00021560: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00021570: 2020 2020 2020 2020 2020 4c61 6e67 7561 Langua │ │ │ │ +00021580: 6765 2062 6173 6963 732e 2020 2020 2028 ge basics. ( │ │ │ │ +00021590: 6c69 6e65 2020 3139 290a 2a20 696e 7075 line 19).* inpu │ │ │ │ +000215a0: 7420 6669 6c65 3a20 2020 2020 2020 2020 t file: │ │ │ │ 000215b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000215c0: 2020 2020 2020 2020 2020 204c 616e 6775 Langu │ │ │ │ -000215d0: 6167 6520 6261 7369 6373 2e20 2020 2020 age basics. │ │ │ │ -000215e0: 286c 696e 6520 2020 3629 0a2a 2069 6e74 (line 6).* int │ │ │ │ -000215f0: 6572 6e61 6c20 6f70 7469 6f6e 3a20 2020 ernal option: │ │ │ │ -00021600: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021610: 2020 2020 5370 6563 6961 6c20 6f62 6a65 Special obje │ │ │ │ -00021620: 6374 732e 2020 2020 2028 6c69 6e65 2020 cts. (line │ │ │ │ -00021630: 3437 290a 2a20 696e 7465 726e 616c 206f 47).* internal o │ │ │ │ -00021640: 7074 696f 6e73 3a20 2020 2020 2020 2020 ptions: │ │ │ │ -00021650: 2020 2020 2020 2020 2020 2020 2049 6e74 Int │ │ │ │ -00021660: 6572 6e61 6c20 6f70 7469 6f6e 732e 2020 ernal options. │ │ │ │ -00021670: 2020 286c 696e 6520 2020 3629 0a2a 2069 (line 6).* i │ │ │ │ -00021680: 6e74 6572 6e61 6c20 6f70 7469 6f6e 7320 nternal options │ │ │ │ -00021690: 3c31 3e3a 2020 2020 2020 2020 2020 2020 <1>: │ │ │ │ -000216a0: 2020 2020 2020 476c 6f62 616c 206f 7074 Global opt │ │ │ │ -000216b0: 696f 6e73 2e20 2020 2020 2028 6c69 6e65 ions. (line │ │ │ │ -000216c0: 2020 3132 290a 2a20 6b65 7977 6f72 6473 12).* keywords │ │ │ │ -000216d0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ -000216e0: 2020 2020 2020 2020 2020 2020 2020 204b K │ │ │ │ -000216f0: 6579 2061 6e64 2072 6573 6572 7665 6420 ey and reserved │ │ │ │ -00021700: 776f 7264 732e 0a20 2020 2020 2020 2020 words.. │ │ │ │ +000215c0: 2020 204c 616e 6775 6167 6520 6261 7369 Language basi │ │ │ │ +000215d0: 6373 2e20 2020 2020 286c 696e 6520 2020 cs. (line │ │ │ │ +000215e0: 3629 0a2a 2069 6e74 6572 6e61 6c20 6f70 6).* internal op │ │ │ │ +000215f0: 7469 6f6e 3a20 2020 2020 2020 2020 2020 tion: │ │ │ │ +00021600: 2020 2020 2020 2020 2020 2020 5370 6563 Spec │ │ │ │ +00021610: 6961 6c20 6f62 6a65 6374 732e 2020 2020 ial objects. │ │ │ │ +00021620: 2028 6c69 6e65 2020 3437 290a 2a20 696e (line 47).* in │ │ │ │ +00021630: 7465 726e 616c 206f 7074 696f 6e73 3a20 ternal options: │ │ │ │ +00021640: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00021650: 2020 2020 2049 6e74 6572 6e61 6c20 6f70 Internal op │ │ │ │ +00021660: 7469 6f6e 732e 2020 2020 286c 696e 6520 tions. (line │ │ │ │ +00021670: 2020 3629 0a2a 2069 6e74 6572 6e61 6c20 6).* internal │ │ │ │ +00021680: 6f70 7469 6f6e 7320 3c31 3e3a 2020 2020 options <1>: │ │ │ │ +00021690: 2020 2020 2020 2020 2020 2020 2020 476c Gl │ │ │ │ +000216a0: 6f62 616c 206f 7074 696f 6e73 2e20 2020 obal options. │ │ │ │ +000216b0: 2020 2028 6c69 6e65 2020 3132 290a 2a20 (line 12).* │ │ │ │ +000216c0: 6b65 7977 6f72 6473 3a20 2020 2020 2020 keywords: │ │ │ │ +000216d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +000216e0: 2020 2020 2020 204b 6579 2061 6e64 2072 Key and r │ │ │ │ +000216f0: 6573 6572 7665 6420 776f 7264 732e 0a20 eserved words.. │ │ │ │ +00021700: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00021710: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00021720: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021730: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021740: 2020 2020 2028 6c69 6e65 2020 2036 290a (line 6). │ │ │ │ -00021750: 2a20 6c61 6265 6c73 3a20 2020 2020 2020 * labels: │ │ │ │ +00021730: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ +00021740: 6e65 2020 2036 290a 2a20 6c61 6265 6c73 ne 6).* labels │ │ │ │ +00021750: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ 00021760: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021770: 2020 2020 2020 2020 2053 7065 6369 616c Special │ │ │ │ -00021780: 206f 626a 6563 7473 2e20 2020 2020 286c objects. (l │ │ │ │ -00021790: 696e 6520 2020 3629 0a2a 206c 616e 6775 ine 6).* langu │ │ │ │ -000217a0: 6167 652c 2064 6563 6c61 7261 7469 7665 age, declarative │ │ │ │ -000217b0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ -000217c0: 2020 4c61 6e67 7561 6765 2062 6173 6963 Language basic │ │ │ │ -000217d0: 732e 2020 2020 2028 6c69 6e65 2020 2038 s. (line 8 │ │ │ │ -000217e0: 290a 2a20 6c61 6e67 7561 6765 2c20 6f75 ).* language, ou │ │ │ │ -000217f0: 7470 7574 3a20 2020 2020 2020 2020 2020 tput: │ │ │ │ -00021800: 2020 2020 2020 2020 2020 204c 616e 6775 Langu │ │ │ │ -00021810: 6167 652e 2020 2020 2020 2020 2020 2020 age. │ │ │ │ -00021820: 286c 696e 6520 2020 3629 0a2a 206c 616e (line 6).* lan │ │ │ │ -00021830: 6775 6167 652c 2073 6365 6e65 2064 6573 guage, scene des │ │ │ │ -00021840: 6372 6970 7469 6f6e 3a20 2020 2020 2020 cription: │ │ │ │ -00021850: 2020 2020 4c61 6e67 7561 6765 2062 6173 Language bas │ │ │ │ -00021860: 6963 732e 2020 2020 2028 6c69 6e65 2020 ics. (line │ │ │ │ -00021870: 2038 290a 2a20 6c65 7869 6361 6c20 7363 8).* lexical sc │ │ │ │ -00021880: 6f70 653a 2020 2020 2020 2020 2020 2020 ope: │ │ │ │ -00021890: 2020 2020 2020 2020 2020 2020 204f 626a Obj │ │ │ │ -000218a0: 6563 7420 7472 616e 7366 6f72 6d73 2e20 ect transforms. │ │ │ │ -000218b0: 2020 286c 696e 6520 2032 3629 0a2a 206c (line 26).* l │ │ │ │ -000218c0: 6578 6963 616c 2073 636f 7065 203c 313e exical scope <1> │ │ │ │ -000218d0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ -000218e0: 2020 2020 2020 426c 6f63 6b73 2e20 2020 Blocks. │ │ │ │ -000218f0: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ -00021900: 2020 3133 290a 2a20 6c69 6e65 2073 7765 13).* line swe │ │ │ │ -00021910: 6570 3a20 2020 2020 2020 2020 2020 2020 ep: │ │ │ │ -00021920: 2020 2020 2020 2020 2020 2020 2020 2050 P │ │ │ │ -00021930: 6f6c 796c 696e 6520 7377 6565 7073 2e20 olyline sweeps. │ │ │ │ -00021940: 2020 2020 286c 696e 6520 2020 3629 0a2a (line 6).* │ │ │ │ -00021950: 206c 696e 6520 7377 6565 7020 3c31 3e3a line sweep <1>: │ │ │ │ +00021770: 2053 7065 6369 616c 206f 626a 6563 7473 Special objects │ │ │ │ +00021780: 2e20 2020 2020 286c 696e 6520 2020 3629 . (line 6) │ │ │ │ +00021790: 0a2a 206c 616e 6775 6167 652c 2064 6563 .* language, dec │ │ │ │ +000217a0: 6c61 7261 7469 7665 3a20 2020 2020 2020 larative: │ │ │ │ +000217b0: 2020 2020 2020 2020 2020 4c61 6e67 7561 Langua │ │ │ │ +000217c0: 6765 2062 6173 6963 732e 2020 2020 2028 ge basics. ( │ │ │ │ +000217d0: 6c69 6e65 2020 2038 290a 2a20 6c61 6e67 line 8).* lang │ │ │ │ +000217e0: 7561 6765 2c20 6f75 7470 7574 3a20 2020 uage, output: │ │ │ │ +000217f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00021800: 2020 204c 616e 6775 6167 652e 2020 2020 Language. │ │ │ │ +00021810: 2020 2020 2020 2020 286c 696e 6520 2020 (line │ │ │ │ +00021820: 3629 0a2a 206c 616e 6775 6167 652c 2073 6).* language, s │ │ │ │ +00021830: 6365 6e65 2064 6573 6372 6970 7469 6f6e cene description │ │ │ │ +00021840: 3a20 2020 2020 2020 2020 2020 4c61 6e67 : Lang │ │ │ │ +00021850: 7561 6765 2062 6173 6963 732e 2020 2020 uage basics. │ │ │ │ +00021860: 2028 6c69 6e65 2020 2038 290a 2a20 6c65 (line 8).* le │ │ │ │ +00021870: 7869 6361 6c20 7363 6f70 653a 2020 2020 xical scope: │ │ │ │ +00021880: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00021890: 2020 2020 204f 626a 6563 7420 7472 616e Object tran │ │ │ │ +000218a0: 7366 6f72 6d73 2e20 2020 286c 696e 6520 sforms. (line │ │ │ │ +000218b0: 2032 3629 0a2a 206c 6578 6963 616c 2073 26).* lexical s │ │ │ │ +000218c0: 636f 7065 203c 313e 3a20 2020 2020 2020 cope <1>: │ │ │ │ +000218d0: 2020 2020 2020 2020 2020 2020 2020 426c Bl │ │ │ │ +000218e0: 6f63 6b73 2e20 2020 2020 2020 2020 2020 ocks. │ │ │ │ +000218f0: 2020 2028 6c69 6e65 2020 3133 290a 2a20 (line 13).* │ │ │ │ +00021900: 6c69 6e65 2073 7765 6570 3a20 2020 2020 line sweep: │ │ │ │ +00021910: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00021920: 2020 2020 2020 2050 6f6c 796c 696e 6520 Polyline │ │ │ │ +00021930: 7377 6565 7073 2e20 2020 2020 286c 696e sweeps. (lin │ │ │ │ +00021940: 6520 2020 3629 0a2a 206c 696e 6520 7377 e 6).* line sw │ │ │ │ +00021950: 6565 7020 3c31 3e3a 2020 2020 2020 2020 eep <1>: │ │ │ │ 00021960: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021970: 2020 2020 2020 2020 5377 6570 7420 6c69 Swept li │ │ │ │ -00021980: 6e65 732e 2020 2020 2020 2020 2028 6c69 nes. (li │ │ │ │ -00021990: 6e65 2020 2036 290a 2a20 6c69 6e65 2073 ne 6).* line s │ │ │ │ -000219a0: 7765 6570 203c 323e 3a20 2020 2020 2020 weep <2>: │ │ │ │ -000219b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000219c0: 2041 2074 6563 686e 6963 616c 2064 7261 A technical dra │ │ │ │ -000219d0: 7769 6e67 2e20 286c 696e 6520 2032 3029 wing. (line 20) │ │ │ │ -000219e0: 0a2a 206c 6974 6572 616c 2c20 706f 696e .* literal, poin │ │ │ │ -000219f0: 743a 2020 2020 2020 2020 2020 2020 2020 t: │ │ │ │ -00021a00: 2020 2020 2020 2020 2020 506f 696e 7420 Point │ │ │ │ -00021a10: 616e 6420 7665 6374 6f72 206c 6974 6572 and vector liter │ │ │ │ -00021a20: 616c 732e 0a20 2020 2020 2020 2020 2020 als.. │ │ │ │ +00021970: 5377 6570 7420 6c69 6e65 732e 2020 2020 Swept lines. │ │ │ │ +00021980: 2020 2020 2028 6c69 6e65 2020 2036 290a (line 6). │ │ │ │ +00021990: 2a20 6c69 6e65 2073 7765 6570 203c 323e * line sweep <2> │ │ │ │ +000219a0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +000219b0: 2020 2020 2020 2020 2041 2074 6563 686e A techn │ │ │ │ +000219c0: 6963 616c 2064 7261 7769 6e67 2e20 286c ical drawing. (l │ │ │ │ +000219d0: 696e 6520 2032 3029 0a2a 206c 6974 6572 ine 20).* liter │ │ │ │ +000219e0: 616c 2c20 706f 696e 743a 2020 2020 2020 al, point: │ │ │ │ +000219f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00021a00: 2020 506f 696e 7420 616e 6420 7665 6374 Point and vect │ │ │ │ +00021a10: 6f72 206c 6974 6572 616c 732e 0a20 2020 or literals.. │ │ │ │ +00021a20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00021a30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00021a40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021a50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021a60: 2020 2028 6c69 6e65 2020 2036 290a 2a20 (line 6).* │ │ │ │ -00021a70: 6c69 7465 7261 6c2c 2073 6361 6c61 723a literal, scalar: │ │ │ │ -00021a80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021a90: 2020 2020 2020 2053 6361 6c61 7220 6c69 Scalar li │ │ │ │ -00021aa0: 7465 7261 6c73 2e20 2020 2020 286c 696e terals. (lin │ │ │ │ -00021ab0: 6520 2020 3629 0a2a 206c 6974 6572 616c e 6).* literal │ │ │ │ -00021ac0: 2c20 7472 616e 7366 6f72 6d3a 2020 2020 , transform: │ │ │ │ -00021ad0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021ae0: 5472 616e 7366 6f72 6d20 6c69 7465 7261 Transform litera │ │ │ │ -00021af0: 6c73 2e20 2028 6c69 6e65 2020 2036 290a ls. (line 6). │ │ │ │ -00021b00: 2a20 6c69 7465 7261 6c2c 2076 6563 746f * literal, vecto │ │ │ │ -00021b10: 723a 2020 2020 2020 2020 2020 2020 2020 r: │ │ │ │ -00021b20: 2020 2020 2020 2020 2050 6f69 6e74 2061 Point a │ │ │ │ -00021b30: 6e64 2076 6563 746f 7220 6c69 7465 7261 nd vector litera │ │ │ │ -00021b40: 6c73 2e0a 2020 2020 2020 2020 2020 2020 ls.. │ │ │ │ +00021a50: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ +00021a60: 2020 2036 290a 2a20 6c69 7465 7261 6c2c 6).* literal, │ │ │ │ +00021a70: 2073 6361 6c61 723a 2020 2020 2020 2020 scalar: │ │ │ │ +00021a80: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ +00021a90: 6361 6c61 7220 6c69 7465 7261 6c73 2e20 calar literals. │ │ │ │ +00021aa0: 2020 2020 286c 696e 6520 2020 3629 0a2a (line 6).* │ │ │ │ +00021ab0: 206c 6974 6572 616c 2c20 7472 616e 7366 literal, transf │ │ │ │ +00021ac0: 6f72 6d3a 2020 2020 2020 2020 2020 2020 orm: │ │ │ │ +00021ad0: 2020 2020 2020 2020 5472 616e 7366 6f72 Transfor │ │ │ │ +00021ae0: 6d20 6c69 7465 7261 6c73 2e20 2028 6c69 m literals. (li │ │ │ │ +00021af0: 6e65 2020 2036 290a 2a20 6c69 7465 7261 ne 6).* litera │ │ │ │ +00021b00: 6c2c 2076 6563 746f 723a 2020 2020 2020 l, vector: │ │ │ │ +00021b10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00021b20: 2050 6f69 6e74 2061 6e64 2076 6563 746f Point and vecto │ │ │ │ +00021b30: 7220 6c69 7465 7261 6c73 2e0a 2020 2020 r literals.. │ │ │ │ +00021b40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00021b50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00021b60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021b70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021b80: 2020 286c 696e 6520 2020 3629 0a2a 206e (line 6).* n │ │ │ │ -00021b90: 6573 7469 6e67 2c20 7377 6570 7420 6f62 esting, swept ob │ │ │ │ -00021ba0: 6a65 6374 3a20 2020 2020 2020 2020 2020 ject: │ │ │ │ -00021bb0: 2020 2020 2020 4e65 7374 6564 2073 7765 Nested swe │ │ │ │ -00021bc0: 6570 732e 2020 2020 2020 2028 6c69 6e65 eps. (line │ │ │ │ -00021bd0: 2020 3232 290a 2a20 6f6e 652d 6f70 6572 22).* one-oper │ │ │ │ -00021be0: 616e 6420 666f 726d 3a20 2020 2020 2020 and form: │ │ │ │ -00021bf0: 2020 2020 2020 2020 2020 2020 2020 2055 U │ │ │ │ -00021c00: 6e61 7279 2066 6f72 6d73 2e20 2020 2020 nary forms. │ │ │ │ -00021c10: 2020 2020 286c 696e 6520 2020 3629 0a2a (line 6).* │ │ │ │ -00021c20: 206f 7065 7261 746f 7220 6173 736f 6369 operator associ │ │ │ │ -00021c30: 6174 6976 6974 793a 2020 2020 2020 2020 ativity: │ │ │ │ -00021c40: 2020 2020 2020 2020 5477 6f2d 6f70 6572 Two-oper │ │ │ │ -00021c50: 616e 6420 2862 696e 6172 7929 2066 6f72 and (binary) for │ │ │ │ -00021c60: 6d73 2e0a 2020 2020 2020 2020 2020 2020 ms.. │ │ │ │ +00021b70: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ +00021b80: 2020 3629 0a2a 206e 6573 7469 6e67 2c20 6).* nesting, │ │ │ │ +00021b90: 7377 6570 7420 6f62 6a65 6374 3a20 2020 swept object: │ │ │ │ +00021ba0: 2020 2020 2020 2020 2020 2020 2020 4e65 Ne │ │ │ │ +00021bb0: 7374 6564 2073 7765 6570 732e 2020 2020 sted sweeps. │ │ │ │ +00021bc0: 2020 2028 6c69 6e65 2020 3232 290a 2a20 (line 22).* │ │ │ │ +00021bd0: 6f6e 652d 6f70 6572 616e 6420 666f 726d one-operand form │ │ │ │ +00021be0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +00021bf0: 2020 2020 2020 2055 6e61 7279 2066 6f72 Unary for │ │ │ │ +00021c00: 6d73 2e20 2020 2020 2020 2020 286c 696e ms. (lin │ │ │ │ +00021c10: 6520 2020 3629 0a2a 206f 7065 7261 746f e 6).* operato │ │ │ │ +00021c20: 7220 6173 736f 6369 6174 6976 6974 793a r associativity: │ │ │ │ +00021c30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00021c40: 5477 6f2d 6f70 6572 616e 6420 2862 696e Two-operand (bin │ │ │ │ +00021c50: 6172 7929 2066 6f72 6d73 2e0a 2020 2020 ary) forms.. │ │ │ │ +00021c60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00021c70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00021c80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021c90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021ca0: 2020 286c 696e 6520 2035 3829 0a2a 206f (line 58).* o │ │ │ │ -00021cb0: 7065 7261 746f 7220 7072 6563 6564 656e perator preceden │ │ │ │ -00021cc0: 6365 3a20 2020 2020 2020 2020 2020 2020 ce: │ │ │ │ -00021cd0: 2020 2020 2020 5477 6f2d 6f70 6572 616e Two-operan │ │ │ │ -00021ce0: 6420 2862 696e 6172 7929 2066 6f72 6d73 d (binary) forms │ │ │ │ -00021cf0: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ +00021c90: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ +00021ca0: 2035 3829 0a2a 206f 7065 7261 746f 7220 58).* operator │ │ │ │ +00021cb0: 7072 6563 6564 656e 6365 3a20 2020 2020 precedence: │ │ │ │ +00021cc0: 2020 2020 2020 2020 2020 2020 2020 5477 Tw │ │ │ │ +00021cd0: 6f2d 6f70 6572 616e 6420 2862 696e 6172 o-operand (binar │ │ │ │ +00021ce0: 7929 2066 6f72 6d73 2e0a 2020 2020 2020 y) forms.. │ │ │ │ +00021cf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00021d00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00021d10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021d20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021d30: 286c 696e 6520 2034 3529 0a2a 206f 7074 (line 45).* opt │ │ │ │ -00021d40: 696f 6e3a 2020 2020 2020 2020 2020 2020 ion: │ │ │ │ -00021d50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021d60: 2020 2020 4472 6177 696e 6720 6f70 7469 Drawing opti │ │ │ │ -00021d70: 6f6e 732e 2020 2020 2028 6c69 6e65 2020 ons. (line │ │ │ │ -00021d80: 2036 290a 2a20 6f70 7469 6f6e 2c20 636f 6).* option, co │ │ │ │ -00021d90: 6d6d 616e 6420 6c69 6e65 3a20 2020 2020 mmand line: │ │ │ │ -00021da0: 2020 2020 2020 2020 2020 2020 2048 656c Hel │ │ │ │ -00021db0: 6c6f 2077 6f72 6c64 2e20 2020 2020 2020 lo world. │ │ │ │ -00021dc0: 2020 286c 696e 6520 2033 3029 0a2a 206f (line 30).* o │ │ │ │ -00021dd0: 7074 696f 6e2c 2069 6e74 6572 6e61 6c3a ption, internal: │ │ │ │ -00021de0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021df0: 2020 2020 2020 5370 6563 6961 6c20 6f62 Special ob │ │ │ │ -00021e00: 6a65 6374 732e 2020 2020 2028 6c69 6e65 jects. (line │ │ │ │ -00021e10: 2020 3437 290a 2a20 6f70 7469 6f6e 733a 47).* options: │ │ │ │ +00021d20: 2020 2020 2020 2020 286c 696e 6520 2034 (line 4 │ │ │ │ +00021d30: 3529 0a2a 206f 7074 696f 6e3a 2020 2020 5).* option: │ │ │ │ +00021d40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00021d50: 2020 2020 2020 2020 2020 2020 4472 6177 Draw │ │ │ │ +00021d60: 696e 6720 6f70 7469 6f6e 732e 2020 2020 ing options. │ │ │ │ +00021d70: 2028 6c69 6e65 2020 2036 290a 2a20 6f70 (line 6).* op │ │ │ │ +00021d80: 7469 6f6e 2c20 636f 6d6d 616e 6420 6c69 tion, command li │ │ │ │ +00021d90: 6e65 3a20 2020 2020 2020 2020 2020 2020 ne: │ │ │ │ +00021da0: 2020 2020 2048 656c 6c6f 2077 6f72 6c64 Hello world │ │ │ │ +00021db0: 2e20 2020 2020 2020 2020 286c 696e 6520 . (line │ │ │ │ +00021dc0: 2033 3029 0a2a 206f 7074 696f 6e2c 2069 30).* option, i │ │ │ │ +00021dd0: 6e74 6572 6e61 6c3a 2020 2020 2020 2020 nternal: │ │ │ │ +00021de0: 2020 2020 2020 2020 2020 2020 2020 5370 Sp │ │ │ │ +00021df0: 6563 6961 6c20 6f62 6a65 6374 732e 2020 ecial objects. │ │ │ │ +00021e00: 2020 2028 6c69 6e65 2020 3437 290a 2a20 (line 47).* │ │ │ │ +00021e10: 6f70 7469 6f6e 733a 2020 2020 2020 2020 options: │ │ │ │ 00021e20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021e30: 2020 2020 2020 2020 2020 2020 2020 204f O │ │ │ │ -00021e40: 7074 696f 6e73 2e20 2020 2020 2020 2020 ptions. │ │ │ │ -00021e50: 2020 2020 286c 696e 6520 2020 3629 0a2a (line 6).* │ │ │ │ -00021e60: 206f 7074 696f 6e73 2064 6566 696e 6974 options definit │ │ │ │ -00021e70: 696f 6e3a 2020 2020 2020 2020 2020 2020 ion: │ │ │ │ -00021e80: 2020 2020 2020 2020 506f 6c79 6c69 6e65 Polyline │ │ │ │ -00021e90: 2073 7765 6570 7320 7769 7468 2063 6c6f sweeps with clo │ │ │ │ -00021ea0: 7375 7265 2e0a 2020 2020 2020 2020 2020 sure.. │ │ │ │ +00021e30: 2020 2020 2020 204f 7074 696f 6e73 2e20 Options. │ │ │ │ +00021e40: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ +00021e50: 6520 2020 3629 0a2a 206f 7074 696f 6e73 e 6).* options │ │ │ │ +00021e60: 2064 6566 696e 6974 696f 6e3a 2020 2020 definition: │ │ │ │ +00021e70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00021e80: 506f 6c79 6c69 6e65 2073 7765 6570 7320 Polyline sweeps │ │ │ │ +00021e90: 7769 7468 2063 6c6f 7375 7265 2e0a 2020 with closure.. │ │ │ │ +00021ea0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00021eb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00021ec0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021ed0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021ee0: 2020 2020 286c 696e 6520 2032 3329 0a2a (line 23).* │ │ │ │ -00021ef0: 206f 7074 696f 6e73 206d 756c 7469 706c options multipl │ │ │ │ -00021f00: 6520 7265 6665 7265 6e63 653a 2020 2020 e reference: │ │ │ │ -00021f10: 2020 2020 2020 2020 466f 726d 7320 6f66 Forms of │ │ │ │ -00021f20: 2072 6566 6572 656e 6365 732e 2028 6c69 references. (li │ │ │ │ -00021f30: 6e65 2020 3138 290a 2a20 6f70 7469 6f6e ne 18).* option │ │ │ │ -00021f40: 7320 7265 6665 7265 6e63 653a 2020 2020 s reference: │ │ │ │ -00021f50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021f60: 2046 6f72 6d73 206f 6620 7265 6665 7265 Forms of refere │ │ │ │ -00021f70: 6e63 6573 2e20 286c 696e 6520 2031 3829 nces. (line 18) │ │ │ │ -00021f80: 0a2a 206f 7074 696f 6e73 2c20 636f 6d6d .* options, comm │ │ │ │ -00021f90: 616e 6420 6c69 6e65 3a20 2020 2020 2020 and line: │ │ │ │ -00021fa0: 2020 2020 2020 2020 2020 436f 6d6d 616e Comman │ │ │ │ -00021fb0: 6420 6c69 6e65 2e20 2020 2020 2020 2028 d line. ( │ │ │ │ -00021fc0: 6c69 6e65 2020 3134 290a 2a20 6f70 7469 line 14).* opti │ │ │ │ -00021fd0: 6f6e 732c 2067 6c6f 6261 6c3a 2020 2020 ons, global: │ │ │ │ -00021fe0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00021ff0: 2020 2044 7261 7769 6e67 206f 7074 696f Drawing optio │ │ │ │ -00022000: 6e73 2e20 2020 2020 286c 696e 6520 2031 ns. (line 1 │ │ │ │ -00022010: 3829 0a2a 206f 7074 696f 6e73 2c20 676c 8).* options, gl │ │ │ │ -00022020: 6f62 616c 203c 313e 3a20 2020 2020 2020 obal <1>: │ │ │ │ -00022030: 2020 2020 2020 2020 2020 2020 476c 6f62 Glob │ │ │ │ -00022040: 616c 206f 7074 696f 6e73 2e20 2020 2020 al options. │ │ │ │ -00022050: 2028 6c69 6e65 2020 2036 290a 2a20 6f70 (line 6).* op │ │ │ │ -00022060: 7469 6f6e 732c 2069 6e74 6572 6e61 6c3a tions, internal: │ │ │ │ -00022070: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00022080: 2020 2020 2049 6e74 6572 6e61 6c20 6f70 Internal op │ │ │ │ -00022090: 7469 6f6e 732e 2020 2020 286c 696e 6520 tions. (line │ │ │ │ -000220a0: 2020 3629 0a2a 206f 7074 696f 6e73 2c20 6).* options, │ │ │ │ -000220b0: 696e 7465 726e 616c 203c 313e 3a20 2020 internal <1>: │ │ │ │ -000220c0: 2020 2020 2020 2020 2020 2020 2020 476c Gl │ │ │ │ -000220d0: 6f62 616c 206f 7074 696f 6e73 2e20 2020 obal options. │ │ │ │ -000220e0: 2020 2028 6c69 6e65 2020 3132 290a 2a20 (line 12).* │ │ │ │ -000220f0: 6f70 7469 6f6e 732c 2073 7765 6570 3a20 options, sweep: │ │ │ │ -00022100: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00022110: 2020 2020 2020 2050 6f6c 796c 696e 6520 Polyline │ │ │ │ -00022120: 7377 6565 7073 2e20 2020 2020 286c 696e sweeps. (lin │ │ │ │ -00022130: 6520 2031 3629 0a2a 206f 7074 696f 6e73 e 16).* options │ │ │ │ -00022140: 2c20 7377 6565 7020 3c31 3e3a 2020 2020 , sweep <1>: │ │ │ │ -00022150: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00022160: 506f 6c79 676f 6e20 7377 6565 7073 2e20 Polygon sweeps. │ │ │ │ -00022170: 2020 2020 2028 6c69 6e65 2020 2039 290a (line 9). │ │ │ │ -00022180: 2a20 6f70 7469 6f6e 732c 2073 7765 6570 * options, sweep │ │ │ │ -00022190: 203c 323e 3a20 2020 2020 2020 2020 2020 <2>: │ │ │ │ -000221a0: 2020 2020 2020 2020 2053 7765 7074 2070 Swept p │ │ │ │ -000221b0: 6f69 6e74 732e 2020 2020 2020 2020 286c oints. (l │ │ │ │ -000221c0: 696e 6520 2032 3129 0a2a 206f 7074 696f ine 21).* optio │ │ │ │ -000221d0: 6e73 2c20 7377 6565 7020 3c33 3e3a 2020 ns, sweep <3>: │ │ │ │ -000221e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000221f0: 2020 5377 6570 7420 6c69 6e65 732e 2020 Swept lines. │ │ │ │ -00022200: 2020 2020 2020 2028 6c69 6e65 2020 3235 (line 25 │ │ │ │ -00022210: 290a 2a20 6f70 7469 6f6e 732c 2073 7765 ).* options, swe │ │ │ │ -00022220: 6570 203c 343e 3a20 2020 2020 2020 2020 ep <4>: │ │ │ │ -00022230: 2020 2020 2020 2020 2020 2053 7765 7074 Swept │ │ │ │ -00022240: 206c 696e 6573 2e20 2020 2020 2020 2020 lines. │ │ │ │ -00022250: 286c 696e 6520 2034 3829 0a2a 206f 7074 (line 48).* opt │ │ │ │ -00022260: 696f 6e73 2c20 7377 6570 7420 6f62 6a65 ions, swept obje │ │ │ │ -00022270: 6374 3a20 2020 2020 2020 2020 2020 2020 ct: │ │ │ │ -00022280: 2020 2020 506f 6c79 676f 6e20 7377 6565 Polygon swee │ │ │ │ -00022290: 7073 2e20 2020 2020 2028 6c69 6e65 2020 ps. (line │ │ │ │ -000222a0: 2038 290a 2a20 6f70 7469 6f6e 732c 2073 8).* options, s │ │ │ │ -000222b0: 7765 7074 206f 626a 6563 7420 3c31 3e3a wept object <1>: │ │ │ │ -000222c0: 2020 2020 2020 2020 2020 2020 2050 6f6c Pol │ │ │ │ -000222d0: 796c 696e 6520 7377 6565 7073 2077 6974 yline sweeps wit │ │ │ │ -000222e0: 6820 636c 6f73 7572 652e 0a20 2020 2020 h closure.. │ │ │ │ +00021ed0: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ +00021ee0: 6520 2032 3329 0a2a 206f 7074 696f 6e73 e 23).* options │ │ │ │ +00021ef0: 206d 756c 7469 706c 6520 7265 6665 7265 multiple refere │ │ │ │ +00021f00: 6e63 653a 2020 2020 2020 2020 2020 2020 nce: │ │ │ │ +00021f10: 466f 726d 7320 6f66 2072 6566 6572 656e Forms of referen │ │ │ │ +00021f20: 6365 732e 2028 6c69 6e65 2020 3138 290a ces. (line 18). │ │ │ │ +00021f30: 2a20 6f70 7469 6f6e 7320 7265 6665 7265 * options refere │ │ │ │ +00021f40: 6e63 653a 2020 2020 2020 2020 2020 2020 nce: │ │ │ │ +00021f50: 2020 2020 2020 2020 2046 6f72 6d73 206f Forms o │ │ │ │ +00021f60: 6620 7265 6665 7265 6e63 6573 2e20 286c f references. (l │ │ │ │ +00021f70: 696e 6520 2031 3829 0a2a 206f 7074 696f ine 18).* optio │ │ │ │ +00021f80: 6e73 2c20 636f 6d6d 616e 6420 6c69 6e65 ns, command line │ │ │ │ +00021f90: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +00021fa0: 2020 436f 6d6d 616e 6420 6c69 6e65 2e20 Command line. │ │ │ │ +00021fb0: 2020 2020 2020 2028 6c69 6e65 2020 3134 (line 14 │ │ │ │ +00021fc0: 290a 2a20 6f70 7469 6f6e 732c 2067 6c6f ).* options, glo │ │ │ │ +00021fd0: 6261 6c3a 2020 2020 2020 2020 2020 2020 bal: │ │ │ │ +00021fe0: 2020 2020 2020 2020 2020 2044 7261 7769 Drawi │ │ │ │ +00021ff0: 6e67 206f 7074 696f 6e73 2e20 2020 2020 ng options. │ │ │ │ +00022000: 286c 696e 6520 2031 3829 0a2a 206f 7074 (line 18).* opt │ │ │ │ +00022010: 696f 6e73 2c20 676c 6f62 616c 203c 313e ions, global <1> │ │ │ │ +00022020: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +00022030: 2020 2020 476c 6f62 616c 206f 7074 696f Global optio │ │ │ │ +00022040: 6e73 2e20 2020 2020 2028 6c69 6e65 2020 ns. (line │ │ │ │ +00022050: 2036 290a 2a20 6f70 7469 6f6e 732c 2069 6).* options, i │ │ │ │ +00022060: 6e74 6572 6e61 6c3a 2020 2020 2020 2020 nternal: │ │ │ │ +00022070: 2020 2020 2020 2020 2020 2020 2049 6e74 Int │ │ │ │ +00022080: 6572 6e61 6c20 6f70 7469 6f6e 732e 2020 ernal options. │ │ │ │ +00022090: 2020 286c 696e 6520 2020 3629 0a2a 206f (line 6).* o │ │ │ │ +000220a0: 7074 696f 6e73 2c20 696e 7465 726e 616c ptions, internal │ │ │ │ +000220b0: 203c 313e 3a20 2020 2020 2020 2020 2020 <1>: │ │ │ │ +000220c0: 2020 2020 2020 476c 6f62 616c 206f 7074 Global opt │ │ │ │ +000220d0: 696f 6e73 2e20 2020 2020 2028 6c69 6e65 ions. (line │ │ │ │ +000220e0: 2020 3132 290a 2a20 6f70 7469 6f6e 732c 12).* options, │ │ │ │ +000220f0: 2073 7765 6570 3a20 2020 2020 2020 2020 sweep: │ │ │ │ +00022100: 2020 2020 2020 2020 2020 2020 2020 2050 P │ │ │ │ +00022110: 6f6c 796c 696e 6520 7377 6565 7073 2e20 olyline sweeps. │ │ │ │ +00022120: 2020 2020 286c 696e 6520 2031 3629 0a2a (line 16).* │ │ │ │ +00022130: 206f 7074 696f 6e73 2c20 7377 6565 7020 options, sweep │ │ │ │ +00022140: 3c31 3e3a 2020 2020 2020 2020 2020 2020 <1>: │ │ │ │ +00022150: 2020 2020 2020 2020 506f 6c79 676f 6e20 Polygon │ │ │ │ +00022160: 7377 6565 7073 2e20 2020 2020 2028 6c69 sweeps. (li │ │ │ │ +00022170: 6e65 2020 2039 290a 2a20 6f70 7469 6f6e ne 9).* option │ │ │ │ +00022180: 732c 2073 7765 6570 203c 323e 3a20 2020 s, sweep <2>: │ │ │ │ +00022190: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +000221a0: 2053 7765 7074 2070 6f69 6e74 732e 2020 Swept points. │ │ │ │ +000221b0: 2020 2020 2020 286c 696e 6520 2032 3129 (line 21) │ │ │ │ +000221c0: 0a2a 206f 7074 696f 6e73 2c20 7377 6565 .* options, swee │ │ │ │ +000221d0: 7020 3c33 3e3a 2020 2020 2020 2020 2020 p <3>: │ │ │ │ +000221e0: 2020 2020 2020 2020 2020 5377 6570 7420 Swept │ │ │ │ +000221f0: 6c69 6e65 732e 2020 2020 2020 2020 2028 lines. ( │ │ │ │ +00022200: 6c69 6e65 2020 3235 290a 2a20 6f70 7469 line 25).* opti │ │ │ │ +00022210: 6f6e 732c 2073 7765 6570 203c 343e 3a20 ons, sweep <4>: │ │ │ │ +00022220: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00022230: 2020 2053 7765 7074 206c 696e 6573 2e20 Swept lines. │ │ │ │ +00022240: 2020 2020 2020 2020 286c 696e 6520 2034 (line 4 │ │ │ │ +00022250: 3829 0a2a 206f 7074 696f 6e73 2c20 7377 8).* options, sw │ │ │ │ +00022260: 6570 7420 6f62 6a65 6374 3a20 2020 2020 ept object: │ │ │ │ +00022270: 2020 2020 2020 2020 2020 2020 506f 6c79 Poly │ │ │ │ +00022280: 676f 6e20 7377 6565 7073 2e20 2020 2020 gon sweeps. │ │ │ │ +00022290: 2028 6c69 6e65 2020 2038 290a 2a20 6f70 (line 8).* op │ │ │ │ +000222a0: 7469 6f6e 732c 2073 7765 7074 206f 626a tions, swept obj │ │ │ │ +000222b0: 6563 7420 3c31 3e3a 2020 2020 2020 2020 ect <1>: │ │ │ │ +000222c0: 2020 2020 2050 6f6c 796c 696e 6520 7377 Polyline sw │ │ │ │ +000222d0: 6565 7073 2077 6974 6820 636c 6f73 7572 eeps with closur │ │ │ │ +000222e0: 652e 0a20 2020 2020 2020 2020 2020 2020 e.. │ │ │ │ 000222f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00022300: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00022310: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00022320: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ -00022330: 3232 290a 2a20 6f70 7469 6f6e 732c 2073 22).* options, s │ │ │ │ -00022340: 7765 7074 206f 626a 6563 7420 3c32 3e3a wept object <2>: │ │ │ │ -00022350: 2020 2020 2020 2020 2020 2020 2053 7765 Swe │ │ │ │ -00022360: 7074 206c 696e 6573 2e20 2020 2020 2020 pt lines. │ │ │ │ -00022370: 2020 286c 696e 6520 2032 3629 0a2a 206f (line 26).* o │ │ │ │ -00022380: 7074 696f 6e73 2c20 7377 6570 7420 6f62 ptions, swept ob │ │ │ │ -00022390: 6a65 6374 203c 333e 3a20 2020 2020 2020 ject <3>: │ │ │ │ -000223a0: 2020 2020 2020 5377 6570 7420 6c69 6e65 Swept line │ │ │ │ -000223b0: 732e 2020 2020 2020 2020 2028 6c69 6e65 s. (line │ │ │ │ -000223c0: 2020 3438 290a 2a20 6f72 6465 722c 2070 48).* order, p │ │ │ │ -000223d0: 6f6c 7967 6f6e 2076 6572 7465 783a 2020 olygon vertex: │ │ │ │ -000223e0: 2020 2020 2020 2020 2020 2020 2020 2048 H │ │ │ │ -000223f0: 656c 6c6f 2077 6f72 6c64 2e20 2020 2020 ello world. │ │ │ │ -00022400: 2020 2020 286c 696e 6520 2033 3929 0a2a (line 39).* │ │ │ │ -00022410: 206f 7264 6572 2c20 706f 6c79 676f 6e20 order, polygon │ │ │ │ -00022420: 7665 7274 6578 203c 313e 3a20 2020 2020 vertex <1>: │ │ │ │ -00022430: 2020 2020 2020 2020 5377 6570 7420 6c69 Swept li │ │ │ │ -00022440: 6e65 732e 2020 2020 2020 2020 2028 6c69 nes. (li │ │ │ │ -00022450: 6e65 2020 3134 290a 2a20 6f72 6465 722c ne 14).* order, │ │ │ │ -00022460: 2070 6f6c 7967 6f6e 2076 6572 7465 7820 polygon vertex │ │ │ │ -00022470: 3c32 3e3a 2020 2020 2020 2020 2020 2020 <2>: │ │ │ │ -00022480: 2053 7765 7074 206c 696e 6573 2e20 2020 Swept lines. │ │ │ │ -00022490: 2020 2020 2020 286c 696e 6520 2034 3029 (line 40) │ │ │ │ -000224a0: 0a2a 206f 7264 6572 2c20 706f 6c79 676f .* order, polygo │ │ │ │ -000224b0: 6e20 7665 7274 6578 203c 333e 3a20 2020 n vertex <3>: │ │ │ │ -000224c0: 2020 2020 2020 2020 2020 5377 6570 7420 Swept │ │ │ │ -000224d0: 706f 6c79 676f 6e73 2e20 2020 2020 2028 polygons. ( │ │ │ │ -000224e0: 6c69 6e65 2020 3139 290a 2a20 6f72 6465 line 19).* orde │ │ │ │ -000224f0: 722c 2070 6f6c 7967 6f6e 2076 6572 7465 r, polygon verte │ │ │ │ -00022500: 7820 3c34 3e3a 2020 2020 2020 2020 2020 x <4>: │ │ │ │ -00022510: 2020 204f 7665 7276 6965 772e 2020 2020 Overview. │ │ │ │ -00022520: 2020 2020 2020 2020 286c 696e 6520 2033 (line 3 │ │ │ │ -00022530: 3729 0a2a 206f 7264 6572 2c20 706f 6c79 7).* order, poly │ │ │ │ -00022540: 676f 6e20 7665 7274 6578 203c 353e 3a20 gon vertex <5>: │ │ │ │ -00022550: 2020 2020 2020 2020 2020 2020 4f76 6572 Over │ │ │ │ -00022560: 7669 6577 2e20 2020 2020 2020 2020 2020 view. │ │ │ │ -00022570: 2028 6c69 6e65 2020 3535 290a 2a20 6f75 (line 55).* ou │ │ │ │ -00022580: 7470 7574 206c 616e 6775 6167 653a 2020 tput language: │ │ │ │ -00022590: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000225a0: 2020 2020 204c 616e 6775 6167 652e 2020 Language. │ │ │ │ -000225b0: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ -000225c0: 2020 3629 0a2a 206f 7574 7369 6465 206f 6).* outside o │ │ │ │ -000225d0: 6620 6120 706f 6c79 676f 6e3a 2020 2020 f a polygon: │ │ │ │ -000225e0: 2020 2020 2020 2020 2020 2020 2020 4865 He │ │ │ │ -000225f0: 6c6c 6f20 776f 726c 642e 2020 2020 2020 llo world. │ │ │ │ -00022600: 2020 2028 6c69 6e65 2020 3337 290a 2a20 (line 37).* │ │ │ │ -00022610: 7061 7261 6c6c 656c 2070 726f 6a65 6374 parallel project │ │ │ │ -00022620: 696f 6e3a 2020 2020 2020 2020 2020 2020 ion: │ │ │ │ -00022630: 2020 2020 2020 2048 656c 6c6f 2077 6f72 Hello wor │ │ │ │ -00022640: 6c64 2e20 2020 2020 2020 2020 286c 696e ld. (lin │ │ │ │ -00022650: 6520 2032 3629 0a2a 2070 6172 616c 6c65 e 26).* paralle │ │ │ │ -00022660: 6c20 7072 6f6a 6563 7469 6f6e 203c 313e l projection <1> │ │ │ │ -00022670: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ -00022680: 5472 616e 7366 6f72 6d20 6c69 7465 7261 Transform litera │ │ │ │ -00022690: 6c73 2e20 2028 6c69 6e65 2020 3138 290a ls. (line 18). │ │ │ │ -000226a0: 2a20 7061 7261 6c6c 656c 2070 726f 6a65 * parallel proje │ │ │ │ -000226b0: 6374 696f 6e20 3c32 3e3a 2020 2020 2020 ction <2>: │ │ │ │ -000226c0: 2020 2020 2020 2020 2050 6963 7475 7265 Picture │ │ │ │ -000226d0: 2062 6f78 2e20 2020 2020 2020 2020 286c box. (l │ │ │ │ -000226e0: 696e 6520 2031 3529 0a2a 2070 6172 656e ine 15).* paren │ │ │ │ -000226f0: 7468 6573 6573 3a20 2020 2020 2020 2020 theses: │ │ │ │ -00022700: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00022710: 2020 5477 6f2d 6f70 6572 616e 6420 2862 Two-operand (b │ │ │ │ -00022720: 696e 6172 7929 2066 6f72 6d73 2e0a 2020 inary) forms.. │ │ │ │ +00022320: 2028 6c69 6e65 2020 3232 290a 2a20 6f70 (line 22).* op │ │ │ │ +00022330: 7469 6f6e 732c 2073 7765 7074 206f 626a tions, swept obj │ │ │ │ +00022340: 6563 7420 3c32 3e3a 2020 2020 2020 2020 ect <2>: │ │ │ │ +00022350: 2020 2020 2053 7765 7074 206c 696e 6573 Swept lines │ │ │ │ +00022360: 2e20 2020 2020 2020 2020 286c 696e 6520 . (line │ │ │ │ +00022370: 2032 3629 0a2a 206f 7074 696f 6e73 2c20 26).* options, │ │ │ │ +00022380: 7377 6570 7420 6f62 6a65 6374 203c 333e swept object <3> │ │ │ │ +00022390: 3a20 2020 2020 2020 2020 2020 2020 5377 : Sw │ │ │ │ +000223a0: 6570 7420 6c69 6e65 732e 2020 2020 2020 ept lines. │ │ │ │ +000223b0: 2020 2028 6c69 6e65 2020 3438 290a 2a20 (line 48).* │ │ │ │ +000223c0: 6f72 6465 722c 2070 6f6c 7967 6f6e 2076 order, polygon v │ │ │ │ +000223d0: 6572 7465 783a 2020 2020 2020 2020 2020 ertex: │ │ │ │ +000223e0: 2020 2020 2020 2048 656c 6c6f 2077 6f72 Hello wor │ │ │ │ +000223f0: 6c64 2e20 2020 2020 2020 2020 286c 696e ld. (lin │ │ │ │ +00022400: 6520 2033 3929 0a2a 206f 7264 6572 2c20 e 39).* order, │ │ │ │ +00022410: 706f 6c79 676f 6e20 7665 7274 6578 203c polygon vertex < │ │ │ │ +00022420: 313e 3a20 2020 2020 2020 2020 2020 2020 1>: │ │ │ │ +00022430: 5377 6570 7420 6c69 6e65 732e 2020 2020 Swept lines. │ │ │ │ +00022440: 2020 2020 2028 6c69 6e65 2020 3134 290a (line 14). │ │ │ │ +00022450: 2a20 6f72 6465 722c 2070 6f6c 7967 6f6e * order, polygon │ │ │ │ +00022460: 2076 6572 7465 7820 3c32 3e3a 2020 2020 vertex <2>: │ │ │ │ +00022470: 2020 2020 2020 2020 2053 7765 7074 206c Swept l │ │ │ │ +00022480: 696e 6573 2e20 2020 2020 2020 2020 286c ines. (l │ │ │ │ +00022490: 696e 6520 2034 3029 0a2a 206f 7264 6572 ine 40).* order │ │ │ │ +000224a0: 2c20 706f 6c79 676f 6e20 7665 7274 6578 , polygon vertex │ │ │ │ +000224b0: 203c 333e 3a20 2020 2020 2020 2020 2020 <3>: │ │ │ │ +000224c0: 2020 5377 6570 7420 706f 6c79 676f 6e73 Swept polygons │ │ │ │ +000224d0: 2e20 2020 2020 2028 6c69 6e65 2020 3139 . (line 19 │ │ │ │ +000224e0: 290a 2a20 6f72 6465 722c 2070 6f6c 7967 ).* order, polyg │ │ │ │ +000224f0: 6f6e 2076 6572 7465 7820 3c34 3e3a 2020 on vertex <4>: │ │ │ │ +00022500: 2020 2020 2020 2020 2020 204f 7665 7276 Overv │ │ │ │ +00022510: 6965 772e 2020 2020 2020 2020 2020 2020 iew. │ │ │ │ +00022520: 286c 696e 6520 2033 3729 0a2a 206f 7264 (line 37).* ord │ │ │ │ +00022530: 6572 2c20 706f 6c79 676f 6e20 7665 7274 er, polygon vert │ │ │ │ +00022540: 6578 203c 353e 3a20 2020 2020 2020 2020 ex <5>: │ │ │ │ +00022550: 2020 2020 4f76 6572 7669 6577 2e20 2020 Overview. │ │ │ │ +00022560: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ +00022570: 3535 290a 2a20 6f75 7470 7574 206c 616e 55).* output lan │ │ │ │ +00022580: 6775 6167 653a 2020 2020 2020 2020 2020 guage: │ │ │ │ +00022590: 2020 2020 2020 2020 2020 2020 204c 616e Lan │ │ │ │ +000225a0: 6775 6167 652e 2020 2020 2020 2020 2020 guage. │ │ │ │ +000225b0: 2020 286c 696e 6520 2020 3629 0a2a 206f (line 6).* o │ │ │ │ +000225c0: 7574 7369 6465 206f 6620 6120 706f 6c79 utside of a poly │ │ │ │ +000225d0: 676f 6e3a 2020 2020 2020 2020 2020 2020 gon: │ │ │ │ +000225e0: 2020 2020 2020 4865 6c6c 6f20 776f 726c Hello worl │ │ │ │ +000225f0: 642e 2020 2020 2020 2020 2028 6c69 6e65 d. (line │ │ │ │ +00022600: 2020 3337 290a 2a20 7061 7261 6c6c 656c 37).* parallel │ │ │ │ +00022610: 2070 726f 6a65 6374 696f 6e3a 2020 2020 projection: │ │ │ │ +00022620: 2020 2020 2020 2020 2020 2020 2020 2048 H │ │ │ │ +00022630: 656c 6c6f 2077 6f72 6c64 2e20 2020 2020 ello world. │ │ │ │ +00022640: 2020 2020 286c 696e 6520 2032 3629 0a2a (line 26).* │ │ │ │ +00022650: 2070 6172 616c 6c65 6c20 7072 6f6a 6563 parallel projec │ │ │ │ +00022660: 7469 6f6e 203c 313e 3a20 2020 2020 2020 tion <1>: │ │ │ │ +00022670: 2020 2020 2020 2020 5472 616e 7366 6f72 Transfor │ │ │ │ +00022680: 6d20 6c69 7465 7261 6c73 2e20 2028 6c69 m literals. (li │ │ │ │ +00022690: 6e65 2020 3138 290a 2a20 7061 7261 6c6c ne 18).* parall │ │ │ │ +000226a0: 656c 2070 726f 6a65 6374 696f 6e20 3c32 el projection <2 │ │ │ │ +000226b0: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ +000226c0: 2050 6963 7475 7265 2062 6f78 2e20 2020 Picture box. │ │ │ │ +000226d0: 2020 2020 2020 286c 696e 6520 2031 3529 (line 15) │ │ │ │ +000226e0: 0a2a 2070 6172 656e 7468 6573 6573 3a20 .* parentheses: │ │ │ │ +000226f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00022700: 2020 2020 2020 2020 2020 5477 6f2d 6f70 Two-op │ │ │ │ +00022710: 6572 616e 6420 2862 696e 6172 7929 2066 erand (binary) f │ │ │ │ +00022720: 6f72 6d73 2e0a 2020 2020 2020 2020 2020 orms.. │ │ │ │ 00022730: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00022740: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00022750: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00022760: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ -00022770: 6520 2035 3829 0a2a 2070 6572 7370 6563 e 58).* perspec │ │ │ │ -00022780: 7469 7665 2070 726f 6a65 6374 696f 6e3a tive projection: │ │ │ │ -00022790: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000227a0: 5472 616e 7366 6f72 6d20 6c69 7465 7261 Transform litera │ │ │ │ -000227b0: 6c73 2e20 2028 6c69 6e65 2020 3139 290a ls. (line 19). │ │ │ │ -000227c0: 2a20 7065 7273 7065 6374 6976 6520 7072 * perspective pr │ │ │ │ -000227d0: 6f6a 6563 7469 6f6e 203c 313e 3a20 2020 ojection <1>: │ │ │ │ -000227e0: 2020 2020 2020 2020 2054 7261 6e73 666f Transfo │ │ │ │ -000227f0: 726d 206c 6974 6572 616c 732e 2020 286c rm literals. (l │ │ │ │ -00022800: 696e 6520 2032 3129 0a2a 2070 6572 7370 ine 21).* persp │ │ │ │ -00022810: 6563 7469 7665 2070 726f 6a65 6374 696f ective projectio │ │ │ │ -00022820: 6e20 3c32 3e3a 2020 2020 2020 2020 2020 n <2>: │ │ │ │ -00022830: 2020 4f76 6572 7669 6577 2e20 2020 2020 Overview. │ │ │ │ -00022840: 2020 2020 2020 2028 6c69 6e65 2020 2037 (line 7 │ │ │ │ -00022850: 290a 2a20 7069 6374 7572 6520 626f 783a ).* picture box: │ │ │ │ +00022760: 2020 2020 286c 696e 6520 2035 3829 0a2a (line 58).* │ │ │ │ +00022770: 2070 6572 7370 6563 7469 7665 2070 726f perspective pro │ │ │ │ +00022780: 6a65 6374 696f 6e3a 2020 2020 2020 2020 jection: │ │ │ │ +00022790: 2020 2020 2020 2020 5472 616e 7366 6f72 Transfor │ │ │ │ +000227a0: 6d20 6c69 7465 7261 6c73 2e20 2028 6c69 m literals. (li │ │ │ │ +000227b0: 6e65 2020 3139 290a 2a20 7065 7273 7065 ne 19).* perspe │ │ │ │ +000227c0: 6374 6976 6520 7072 6f6a 6563 7469 6f6e ctive projection │ │ │ │ +000227d0: 203c 313e 3a20 2020 2020 2020 2020 2020 <1>: │ │ │ │ +000227e0: 2054 7261 6e73 666f 726d 206c 6974 6572 Transform liter │ │ │ │ +000227f0: 616c 732e 2020 286c 696e 6520 2032 3129 als. (line 21) │ │ │ │ +00022800: 0a2a 2070 6572 7370 6563 7469 7665 2070 .* perspective p │ │ │ │ +00022810: 726f 6a65 6374 696f 6e20 3c32 3e3a 2020 rojection <2>: │ │ │ │ +00022820: 2020 2020 2020 2020 2020 4f76 6572 7669 Overvi │ │ │ │ +00022830: 6577 2e20 2020 2020 2020 2020 2020 2028 ew. ( │ │ │ │ +00022840: 6c69 6e65 2020 2037 290a 2a20 7069 6374 line 7).* pict │ │ │ │ +00022850: 7572 6520 626f 783a 2020 2020 2020 2020 ure box: │ │ │ │ 00022860: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00022870: 2020 2020 2020 2020 2020 2050 6963 7475 Pictu │ │ │ │ -00022880: 7265 2062 6f78 2e20 2020 2020 2020 2020 re box. │ │ │ │ -00022890: 286c 696e 6520 2020 3629 0a2a 2070 6c61 (line 6).* pla │ │ │ │ -000228a0: 6e61 7269 7479 206f 6620 706f 6c79 676f narity of polygo │ │ │ │ -000228b0: 6e73 3a20 2020 2020 2020 2020 2020 2020 ns: │ │ │ │ -000228c0: 2020 2020 506f 6c79 676f 6e73 2e20 2020 Polygons. │ │ │ │ -000228d0: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ -000228e0: 3130 290a 2a20 706c 616e 6172 6974 7920 10).* planarity │ │ │ │ -000228f0: 6f66 2070 6f6c 7967 6f6e 7320 3c31 3e3a of polygons <1>: │ │ │ │ -00022900: 2020 2020 2020 2020 2020 2020 2053 7765 Swe │ │ │ │ -00022910: 6570 2066 6163 6520 7370 6c69 7474 696e ep face splittin │ │ │ │ -00022920: 672e 0a20 2020 2020 2020 2020 2020 2020 g.. │ │ │ │ +00022870: 2020 2050 6963 7475 7265 2062 6f78 2e20 Picture box. │ │ │ │ +00022880: 2020 2020 2020 2020 286c 696e 6520 2020 (line │ │ │ │ +00022890: 3629 0a2a 2070 6c61 6e61 7269 7479 206f 6).* planarity o │ │ │ │ +000228a0: 6620 706f 6c79 676f 6e73 3a20 2020 2020 f polygons: │ │ │ │ +000228b0: 2020 2020 2020 2020 2020 2020 506f 6c79 Poly │ │ │ │ +000228c0: 676f 6e73 2e20 2020 2020 2020 2020 2020 gons. │ │ │ │ +000228d0: 2028 6c69 6e65 2020 3130 290a 2a20 706c (line 10).* pl │ │ │ │ +000228e0: 616e 6172 6974 7920 6f66 2070 6f6c 7967 anarity of polyg │ │ │ │ +000228f0: 6f6e 7320 3c31 3e3a 2020 2020 2020 2020 ons <1>: │ │ │ │ +00022900: 2020 2020 2053 7765 6570 2066 6163 6520 Sweep face │ │ │ │ +00022910: 7370 6c69 7474 696e 672e 0a20 2020 2020 splitting.. │ │ │ │ +00022920: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00022930: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00022940: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00022950: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00022960: 2028 6c69 6e65 2020 2037 290a 2a20 706f (line 7).* po │ │ │ │ -00022970: 696e 7420 6465 6669 6e69 7469 6f6e 3a20 int definition: │ │ │ │ -00022980: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00022990: 2020 2020 2044 7261 7769 6e67 2061 2073 Drawing a s │ │ │ │ -000229a0: 6f6c 6964 2e20 2020 2020 286c 696e 6520 olid. (line │ │ │ │ -000229b0: 2032 3329 0a2a 2070 6f69 6e74 206c 6973 23).* point lis │ │ │ │ -000229c0: 743a 2020 2020 2020 2020 2020 2020 2020 t: │ │ │ │ -000229d0: 2020 2020 2020 2020 2020 2020 2020 5377 Sw │ │ │ │ -000229e0: 6570 7420 706f 696e 7473 2e20 2020 2020 ept points. │ │ │ │ -000229f0: 2020 2028 6c69 6e65 2020 2039 290a 2a20 (line 9).* │ │ │ │ -00022a00: 706f 696e 7420 6c69 7465 7261 6c3a 2020 point literal: │ │ │ │ -00022a10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00022a20: 2020 2020 2020 2050 6f69 6e74 2061 6e64 Point and │ │ │ │ -00022a30: 2076 6563 746f 7220 6c69 7465 7261 6c73 vector literals │ │ │ │ -00022a40: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ +00022950: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ +00022960: 2037 290a 2a20 706f 696e 7420 6465 6669 7).* point defi │ │ │ │ +00022970: 6e69 7469 6f6e 3a20 2020 2020 2020 2020 nition: │ │ │ │ +00022980: 2020 2020 2020 2020 2020 2020 2044 7261 Dra │ │ │ │ +00022990: 7769 6e67 2061 2073 6f6c 6964 2e20 2020 wing a solid. │ │ │ │ +000229a0: 2020 286c 696e 6520 2032 3329 0a2a 2070 (line 23).* p │ │ │ │ +000229b0: 6f69 6e74 206c 6973 743a 2020 2020 2020 oint list: │ │ │ │ +000229c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +000229d0: 2020 2020 2020 5377 6570 7420 706f 696e Swept poin │ │ │ │ +000229e0: 7473 2e20 2020 2020 2020 2028 6c69 6e65 ts. (line │ │ │ │ +000229f0: 2020 2039 290a 2a20 706f 696e 7420 6c69 9).* point li │ │ │ │ +00022a00: 7465 7261 6c3a 2020 2020 2020 2020 2020 teral: │ │ │ │ +00022a10: 2020 2020 2020 2020 2020 2020 2020 2050 P │ │ │ │ +00022a20: 6f69 6e74 2061 6e64 2076 6563 746f 7220 oint and vector │ │ │ │ +00022a30: 6c69 7465 7261 6c73 2e0a 2020 2020 2020 literals.. │ │ │ │ +00022a40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00022a50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00022a60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00022a70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00022a80: 286c 696e 6520 2020 3629 0a2a 2070 6f69 (line 6).* poi │ │ │ │ -00022a90: 6e74 2072 6566 6572 656e 6365 3a20 2020 nt reference: │ │ │ │ -00022aa0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00022ab0: 2020 2020 466f 726d 7320 6f66 2072 6566 Forms of ref │ │ │ │ -00022ac0: 6572 656e 6365 732e 2028 6c69 6e65 2020 erences. (line │ │ │ │ -00022ad0: 3134 290a 2a20 706f 696e 7420 7377 6565 14).* point swee │ │ │ │ -00022ae0: 703a 2020 2020 2020 2020 2020 2020 2020 p: │ │ │ │ -00022af0: 2020 2020 2020 2020 2020 2020 2053 7765 Swe │ │ │ │ -00022b00: 7074 206f 626a 6563 7473 2e20 2020 2020 pt objects. │ │ │ │ -00022b10: 2020 286c 696e 6520 2031 3129 0a2a 2070 (line 11).* p │ │ │ │ -00022b20: 6f69 6e74 2073 7765 6570 203c 313e 3a20 oint sweep <1>: │ │ │ │ -00022b30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00022b40: 2020 2020 2020 5377 6570 7420 706f 696e Swept poin │ │ │ │ -00022b50: 7473 2e20 2020 2020 2020 2028 6c69 6e65 ts. (line │ │ │ │ -00022b60: 2020 2036 290a 2a20 706f 6c79 676f 6e20 6).* polygon │ │ │ │ -00022b70: 7377 6565 703a 2020 2020 2020 2020 2020 sweep: │ │ │ │ -00022b80: 2020 2020 2020 2020 2020 2020 2020 2050 P │ │ │ │ -00022b90: 6f6c 7967 6f6e 2073 7765 6570 732e 2020 olygon sweeps. │ │ │ │ -00022ba0: 2020 2020 286c 696e 6520 2020 3629 0a2a (line 6).* │ │ │ │ -00022bb0: 2070 6f6c 7967 6f6e 2073 7765 6570 203c polygon sweep < │ │ │ │ -00022bc0: 313e 3a20 2020 2020 2020 2020 2020 2020 1>: │ │ │ │ -00022bd0: 2020 2020 2020 2020 5377 6570 7420 706f Swept po │ │ │ │ -00022be0: 6c79 676f 6e73 2e20 2020 2020 2028 6c69 lygons. (li │ │ │ │ -00022bf0: 6e65 2020 2036 290a 2a20 706f 6c79 676f ne 6).* polygo │ │ │ │ -00022c00: 6e20 7377 6565 7020 3c32 3e3a 2020 2020 n sweep <2>: │ │ │ │ -00022c10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00022c20: 2041 2068 6965 7261 7263 6869 6361 6c20 A hierarchical │ │ │ │ -00022c30: 6d6f 6465 6c2e 0a20 2020 2020 2020 2020 model.. │ │ │ │ +00022a70: 2020 2020 2020 2020 286c 696e 6520 2020 (line │ │ │ │ +00022a80: 3629 0a2a 2070 6f69 6e74 2072 6566 6572 6).* point refer │ │ │ │ +00022a90: 656e 6365 3a20 2020 2020 2020 2020 2020 ence: │ │ │ │ +00022aa0: 2020 2020 2020 2020 2020 2020 466f 726d Form │ │ │ │ +00022ab0: 7320 6f66 2072 6566 6572 656e 6365 732e s of references. │ │ │ │ +00022ac0: 2028 6c69 6e65 2020 3134 290a 2a20 706f (line 14).* po │ │ │ │ +00022ad0: 696e 7420 7377 6565 703a 2020 2020 2020 int sweep: │ │ │ │ +00022ae0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00022af0: 2020 2020 2053 7765 7074 206f 626a 6563 Swept objec │ │ │ │ +00022b00: 7473 2e20 2020 2020 2020 286c 696e 6520 ts. (line │ │ │ │ +00022b10: 2031 3129 0a2a 2070 6f69 6e74 2073 7765 11).* point swe │ │ │ │ +00022b20: 6570 203c 313e 3a20 2020 2020 2020 2020 ep <1>: │ │ │ │ +00022b30: 2020 2020 2020 2020 2020 2020 2020 5377 Sw │ │ │ │ +00022b40: 6570 7420 706f 696e 7473 2e20 2020 2020 ept points. │ │ │ │ +00022b50: 2020 2028 6c69 6e65 2020 2036 290a 2a20 (line 6).* │ │ │ │ +00022b60: 706f 6c79 676f 6e20 7377 6565 703a 2020 polygon sweep: │ │ │ │ +00022b70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00022b80: 2020 2020 2020 2050 6f6c 7967 6f6e 2073 Polygon s │ │ │ │ +00022b90: 7765 6570 732e 2020 2020 2020 286c 696e weeps. (lin │ │ │ │ +00022ba0: 6520 2020 3629 0a2a 2070 6f6c 7967 6f6e e 6).* polygon │ │ │ │ +00022bb0: 2073 7765 6570 203c 313e 3a20 2020 2020 sweep <1>: │ │ │ │ +00022bc0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00022bd0: 5377 6570 7420 706f 6c79 676f 6e73 2e20 Swept polygons. │ │ │ │ +00022be0: 2020 2020 2028 6c69 6e65 2020 2036 290a (line 6). │ │ │ │ +00022bf0: 2a20 706f 6c79 676f 6e20 7377 6565 7020 * polygon sweep │ │ │ │ +00022c00: 3c32 3e3a 2020 2020 2020 2020 2020 2020 <2>: │ │ │ │ +00022c10: 2020 2020 2020 2020 2041 2068 6965 7261 A hiera │ │ │ │ +00022c20: 7263 6869 6361 6c20 6d6f 6465 6c2e 0a20 rchical model.. │ │ │ │ +00022c30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00022c40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00022c50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00022c60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00022c70: 2020 2020 2028 6c69 6e65 2031 3232 290a (line 122). │ │ │ │ -00022c80: 2a20 706f 6c79 676f 6e20 7665 7274 6578 * polygon vertex │ │ │ │ -00022c90: 206f 7264 6572 3a20 2020 2020 2020 2020 order: │ │ │ │ -00022ca0: 2020 2020 2020 2020 2048 656c 6c6f 2077 Hello w │ │ │ │ -00022cb0: 6f72 6c64 2e20 2020 2020 2020 2020 286c orld. (l │ │ │ │ -00022cc0: 696e 6520 2033 3929 0a2a 2070 6f6c 7967 ine 39).* polyg │ │ │ │ -00022cd0: 6f6e 2076 6572 7465 7820 6f72 6465 7220 on vertex order │ │ │ │ -00022ce0: 3c31 3e3a 2020 2020 2020 2020 2020 2020 <1>: │ │ │ │ -00022cf0: 2020 5377 6570 7420 6c69 6e65 732e 2020 Swept lines. │ │ │ │ -00022d00: 2020 2020 2020 2028 6c69 6e65 2020 3134 (line 14 │ │ │ │ -00022d10: 290a 2a20 706f 6c79 676f 6e20 7665 7274 ).* polygon vert │ │ │ │ -00022d20: 6578 206f 7264 6572 203c 323e 3a20 2020 ex order <2>: │ │ │ │ -00022d30: 2020 2020 2020 2020 2020 2053 7765 7074 Swept │ │ │ │ -00022d40: 206c 696e 6573 2e20 2020 2020 2020 2020 lines. │ │ │ │ -00022d50: 286c 696e 6520 2034 3029 0a2a 2070 6f6c (line 40).* pol │ │ │ │ -00022d60: 7967 6f6e 2076 6572 7465 7820 6f72 6465 ygon vertex orde │ │ │ │ -00022d70: 7220 3c33 3e3a 2020 2020 2020 2020 2020 r <3>: │ │ │ │ -00022d80: 2020 2020 5377 6570 7420 706f 6c79 676f Swept polygo │ │ │ │ -00022d90: 6e73 2e20 2020 2020 2028 6c69 6e65 2020 ns. (line │ │ │ │ -00022da0: 3139 290a 2a20 706f 6c79 676f 6e20 7665 19).* polygon ve │ │ │ │ -00022db0: 7274 6578 206f 7264 6572 203c 343e 3a20 rtex order <4>: │ │ │ │ -00022dc0: 2020 2020 2020 2020 2020 2020 204f 7665 Ove │ │ │ │ -00022dd0: 7276 6965 772e 2020 2020 2020 2020 2020 rview. │ │ │ │ -00022de0: 2020 286c 696e 6520 2033 3729 0a2a 2070 (line 37).* p │ │ │ │ -00022df0: 6f6c 7967 6f6e 2076 6572 7465 7820 6f72 olygon vertex or │ │ │ │ -00022e00: 6465 7220 3c35 3e3a 2020 2020 2020 2020 der <5>: │ │ │ │ -00022e10: 2020 2020 2020 4f76 6572 7669 6577 2e20 Overview. │ │ │ │ -00022e20: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ -00022e30: 2020 3535 290a 2a20 706f 6c79 676f 6e2c 55).* polygon, │ │ │ │ -00022e40: 2062 6f64 793a 2020 2020 2020 2020 2020 body: │ │ │ │ -00022e50: 2020 2020 2020 2020 2020 2020 2020 2049 I │ │ │ │ -00022e60: 6e74 6572 6e61 6c20 6f70 7469 6f6e 732e nternal options. │ │ │ │ -00022e70: 2020 2020 286c 696e 6520 2031 3629 0a2a (line 16).* │ │ │ │ -00022e80: 2070 6f6c 7967 6f6e 2c20 626f 6479 203c polygon, body < │ │ │ │ -00022e90: 313e 3a20 2020 2020 2020 2020 2020 2020 1>: │ │ │ │ -00022ea0: 2020 2020 2020 2020 5377 6570 7420 6c69 Swept li │ │ │ │ -00022eb0: 6e65 732e 2020 2020 2020 2020 2028 6c69 nes. (li │ │ │ │ -00022ec0: 6e65 2020 3130 290a 2a20 706f 6c79 676f ne 10).* polygo │ │ │ │ -00022ed0: 6e2c 2062 6f64 7920 3c32 3e3a 2020 2020 n, body <2>: │ │ │ │ -00022ee0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00022ef0: 2053 7765 7074 2070 6f6c 7967 6f6e 732e Swept polygons. │ │ │ │ -00022f00: 2020 2020 2020 286c 696e 6520 2020 3929 (line 9) │ │ │ │ -00022f10: 0a2a 2070 6f6c 7967 6f6e 2c20 656e 643a .* polygon, end: │ │ │ │ +00022c60: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ +00022c70: 6e65 2031 3232 290a 2a20 706f 6c79 676f ne 122).* polygo │ │ │ │ +00022c80: 6e20 7665 7274 6578 206f 7264 6572 3a20 n vertex order: │ │ │ │ +00022c90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00022ca0: 2048 656c 6c6f 2077 6f72 6c64 2e20 2020 Hello world. │ │ │ │ +00022cb0: 2020 2020 2020 286c 696e 6520 2033 3929 (line 39) │ │ │ │ +00022cc0: 0a2a 2070 6f6c 7967 6f6e 2076 6572 7465 .* polygon verte │ │ │ │ +00022cd0: 7820 6f72 6465 7220 3c31 3e3a 2020 2020 x order <1>: │ │ │ │ +00022ce0: 2020 2020 2020 2020 2020 5377 6570 7420 Swept │ │ │ │ +00022cf0: 6c69 6e65 732e 2020 2020 2020 2020 2028 lines. ( │ │ │ │ +00022d00: 6c69 6e65 2020 3134 290a 2a20 706f 6c79 line 14).* poly │ │ │ │ +00022d10: 676f 6e20 7665 7274 6578 206f 7264 6572 gon vertex order │ │ │ │ +00022d20: 203c 323e 3a20 2020 2020 2020 2020 2020 <2>: │ │ │ │ +00022d30: 2020 2053 7765 7074 206c 696e 6573 2e20 Swept lines. │ │ │ │ +00022d40: 2020 2020 2020 2020 286c 696e 6520 2034 (line 4 │ │ │ │ +00022d50: 3029 0a2a 2070 6f6c 7967 6f6e 2076 6572 0).* polygon ver │ │ │ │ +00022d60: 7465 7820 6f72 6465 7220 3c33 3e3a 2020 tex order <3>: │ │ │ │ +00022d70: 2020 2020 2020 2020 2020 2020 5377 6570 Swep │ │ │ │ +00022d80: 7420 706f 6c79 676f 6e73 2e20 2020 2020 t polygons. │ │ │ │ +00022d90: 2028 6c69 6e65 2020 3139 290a 2a20 706f (line 19).* po │ │ │ │ +00022da0: 6c79 676f 6e20 7665 7274 6578 206f 7264 lygon vertex ord │ │ │ │ +00022db0: 6572 203c 343e 3a20 2020 2020 2020 2020 er <4>: │ │ │ │ +00022dc0: 2020 2020 204f 7665 7276 6965 772e 2020 Overview. │ │ │ │ +00022dd0: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ +00022de0: 2033 3729 0a2a 2070 6f6c 7967 6f6e 2076 37).* polygon v │ │ │ │ +00022df0: 6572 7465 7820 6f72 6465 7220 3c35 3e3a ertex order <5>: │ │ │ │ +00022e00: 2020 2020 2020 2020 2020 2020 2020 4f76 Ov │ │ │ │ +00022e10: 6572 7669 6577 2e20 2020 2020 2020 2020 erview. │ │ │ │ +00022e20: 2020 2028 6c69 6e65 2020 3535 290a 2a20 (line 55).* │ │ │ │ +00022e30: 706f 6c79 676f 6e2c 2062 6f64 793a 2020 polygon, body: │ │ │ │ +00022e40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00022e50: 2020 2020 2020 2049 6e74 6572 6e61 6c20 Internal │ │ │ │ +00022e60: 6f70 7469 6f6e 732e 2020 2020 286c 696e options. (lin │ │ │ │ +00022e70: 6520 2031 3629 0a2a 2070 6f6c 7967 6f6e e 16).* polygon │ │ │ │ +00022e80: 2c20 626f 6479 203c 313e 3a20 2020 2020 , body <1>: │ │ │ │ +00022e90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00022ea0: 5377 6570 7420 6c69 6e65 732e 2020 2020 Swept lines. │ │ │ │ +00022eb0: 2020 2020 2028 6c69 6e65 2020 3130 290a (line 10). │ │ │ │ +00022ec0: 2a20 706f 6c79 676f 6e2c 2062 6f64 7920 * polygon, body │ │ │ │ +00022ed0: 3c32 3e3a 2020 2020 2020 2020 2020 2020 <2>: │ │ │ │ +00022ee0: 2020 2020 2020 2020 2053 7765 7074 2070 Swept p │ │ │ │ +00022ef0: 6f6c 7967 6f6e 732e 2020 2020 2020 286c olygons. (l │ │ │ │ +00022f00: 696e 6520 2020 3929 0a2a 2070 6f6c 7967 ine 9).* polyg │ │ │ │ +00022f10: 6f6e 2c20 656e 643a 2020 2020 2020 2020 on, end: │ │ │ │ 00022f20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00022f30: 2020 2020 2020 2020 2020 5377 6570 7420 Swept │ │ │ │ -00022f40: 6c69 6e65 732e 2020 2020 2020 2020 2028 lines. ( │ │ │ │ -00022f50: 6c69 6e65 2020 3338 290a 2a20 706f 6c79 line 38).* poly │ │ │ │ -00022f60: 676f 6e2c 2065 6e64 203c 313e 3a20 2020 gon, end <1>: │ │ │ │ -00022f70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00022f80: 2020 2053 7765 7074 2070 6f6c 7967 6f6e Swept polygon │ │ │ │ -00022f90: 732e 2020 2020 2020 286c 696e 6520 2031 s. (line 1 │ │ │ │ -00022fa0: 3529 0a2a 2070 6f6c 7967 6f6e 2c20 6f75 5).* polygon, ou │ │ │ │ -00022fb0: 7473 6964 6520 6f66 3a20 2020 2020 2020 tside of: │ │ │ │ -00022fc0: 2020 2020 2020 2020 2020 2020 4865 6c6c Hell │ │ │ │ -00022fd0: 6f20 776f 726c 642e 2020 2020 2020 2020 o world. │ │ │ │ -00022fe0: 2028 6c69 6e65 2020 3337 290a 2a20 706f (line 37).* po │ │ │ │ -00022ff0: 6c79 676f 6e2c 2070 6c61 6e61 723a 2020 lygon, planar: │ │ │ │ -00023000: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00023010: 2020 2020 2050 6f6c 7967 6f6e 732e 2020 Polygons. │ │ │ │ -00023020: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ -00023030: 2031 3029 0a2a 2070 6f6c 7967 6f6e 2c20 10).* polygon, │ │ │ │ -00023040: 706c 616e 6172 203c 313e 3a20 2020 2020 planar <1>: │ │ │ │ -00023050: 2020 2020 2020 2020 2020 2020 2020 5377 Sw │ │ │ │ -00023060: 6565 7020 6661 6365 2073 706c 6974 7469 eep face splitti │ │ │ │ -00023070: 6e67 2e0a 2020 2020 2020 2020 2020 2020 ng.. │ │ │ │ +00022f30: 2020 5377 6570 7420 6c69 6e65 732e 2020 Swept lines. │ │ │ │ +00022f40: 2020 2020 2020 2028 6c69 6e65 2020 3338 (line 38 │ │ │ │ +00022f50: 290a 2a20 706f 6c79 676f 6e2c 2065 6e64 ).* polygon, end │ │ │ │ +00022f60: 203c 313e 3a20 2020 2020 2020 2020 2020 <1>: │ │ │ │ +00022f70: 2020 2020 2020 2020 2020 2053 7765 7074 Swept │ │ │ │ +00022f80: 2070 6f6c 7967 6f6e 732e 2020 2020 2020 polygons. │ │ │ │ +00022f90: 286c 696e 6520 2031 3529 0a2a 2070 6f6c (line 15).* pol │ │ │ │ +00022fa0: 7967 6f6e 2c20 6f75 7473 6964 6520 6f66 ygon, outside of │ │ │ │ +00022fb0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +00022fc0: 2020 2020 4865 6c6c 6f20 776f 726c 642e Hello world. │ │ │ │ +00022fd0: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ +00022fe0: 3337 290a 2a20 706f 6c79 676f 6e2c 2070 37).* polygon, p │ │ │ │ +00022ff0: 6c61 6e61 723a 2020 2020 2020 2020 2020 lanar: │ │ │ │ +00023000: 2020 2020 2020 2020 2020 2020 2050 6f6c Pol │ │ │ │ +00023010: 7967 6f6e 732e 2020 2020 2020 2020 2020 ygons. │ │ │ │ +00023020: 2020 286c 696e 6520 2031 3029 0a2a 2070 (line 10).* p │ │ │ │ +00023030: 6f6c 7967 6f6e 2c20 706c 616e 6172 203c olygon, planar < │ │ │ │ +00023040: 313e 3a20 2020 2020 2020 2020 2020 2020 1>: │ │ │ │ +00023050: 2020 2020 2020 5377 6565 7020 6661 6365 Sweep face │ │ │ │ +00023060: 2073 706c 6974 7469 6e67 2e0a 2020 2020 splitting.. │ │ │ │ +00023070: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00023080: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00023090: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000230a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000230b0: 2020 286c 696e 6520 2020 3729 0a2a 2070 (line 7).* p │ │ │ │ -000230c0: 7265 6365 6465 6e63 652c 206f 7065 7261 recedence, opera │ │ │ │ -000230d0: 746f 723a 2020 2020 2020 2020 2020 2020 tor: │ │ │ │ -000230e0: 2020 2020 2020 5477 6f2d 6f70 6572 616e Two-operan │ │ │ │ -000230f0: 6420 2862 696e 6172 7929 2066 6f72 6d73 d (binary) forms │ │ │ │ -00023100: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ +000230a0: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ +000230b0: 2020 3729 0a2a 2070 7265 6365 6465 6e63 7).* precedenc │ │ │ │ +000230c0: 652c 206f 7065 7261 746f 723a 2020 2020 e, operator: │ │ │ │ +000230d0: 2020 2020 2020 2020 2020 2020 2020 5477 Tw │ │ │ │ +000230e0: 6f2d 6f70 6572 616e 6420 2862 696e 6172 o-operand (binar │ │ │ │ +000230f0: 7929 2066 6f72 6d73 2e0a 2020 2020 2020 y) forms.. │ │ │ │ +00023100: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00023110: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00023120: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00023130: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00023140: 286c 696e 6520 2034 3529 0a2a 2070 726f (line 45).* pro │ │ │ │ -00023150: 6772 616d 2c20 6865 6c6c 6f20 776f 726c gram, hello worl │ │ │ │ -00023160: 643a 2020 2020 2020 2020 2020 2020 2020 d: │ │ │ │ -00023170: 2020 2020 4865 6c6c 6f20 776f 726c 642e Hello world. │ │ │ │ -00023180: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ -00023190: 2037 290a 2a20 7072 6f6a 6563 7469 6f6e 7).* projection │ │ │ │ -000231a0: 2c20 7061 7261 6c6c 656c 3a20 2020 2020 , parallel: │ │ │ │ -000231b0: 2020 2020 2020 2020 2020 2020 2048 656c Hel │ │ │ │ -000231c0: 6c6f 2077 6f72 6c64 2e20 2020 2020 2020 lo world. │ │ │ │ -000231d0: 2020 286c 696e 6520 2032 3629 0a2a 2070 (line 26).* p │ │ │ │ -000231e0: 726f 6a65 6374 696f 6e2c 2070 6172 616c rojection, paral │ │ │ │ -000231f0: 6c65 6c20 3c31 3e3a 2020 2020 2020 2020 lel <1>: │ │ │ │ -00023200: 2020 2020 2020 5472 616e 7366 6f72 6d20 Transform │ │ │ │ -00023210: 6c69 7465 7261 6c73 2e20 2028 6c69 6e65 literals. (line │ │ │ │ -00023220: 2020 3138 290a 2a20 7072 6f6a 6563 7469 18).* projecti │ │ │ │ -00023230: 6f6e 2c20 7061 7261 6c6c 656c 203c 323e on, parallel <2> │ │ │ │ -00023240: 3a20 2020 2020 2020 2020 2020 2020 2050 : P │ │ │ │ -00023250: 6963 7475 7265 2062 6f78 2e20 2020 2020 icture box. │ │ │ │ -00023260: 2020 2020 286c 696e 6520 2031 3529 0a2a (line 15).* │ │ │ │ -00023270: 2070 726f 6a65 6374 696f 6e2c 2070 6572 projection, per │ │ │ │ -00023280: 7370 6563 7469 7665 3a20 2020 2020 2020 spective: │ │ │ │ -00023290: 2020 2020 2020 2020 5472 616e 7366 6f72 Transfor │ │ │ │ -000232a0: 6d20 6c69 7465 7261 6c73 2e20 2028 6c69 m literals. (li │ │ │ │ -000232b0: 6e65 2020 3139 290a 2a20 7072 6f6a 6563 ne 19).* projec │ │ │ │ -000232c0: 7469 6f6e 2c20 7065 7273 7065 6374 6976 tion, perspectiv │ │ │ │ -000232d0: 6520 3c31 3e3a 2020 2020 2020 2020 2020 e <1>: │ │ │ │ -000232e0: 2054 7261 6e73 666f 726d 206c 6974 6572 Transform liter │ │ │ │ -000232f0: 616c 732e 2020 286c 696e 6520 2032 3129 als. (line 21) │ │ │ │ -00023300: 0a2a 2070 726f 6a65 6374 696f 6e2c 2070 .* projection, p │ │ │ │ -00023310: 6572 7370 6563 7469 7665 203c 323e 3a20 erspective <2>: │ │ │ │ -00023320: 2020 2020 2020 2020 2020 4f76 6572 7669 Overvi │ │ │ │ -00023330: 6577 2e20 2020 2020 2020 2020 2020 2028 ew. ( │ │ │ │ -00023340: 6c69 6e65 2020 2037 290a 2a20 7073 6575 line 7).* pseu │ │ │ │ -00023350: 646f 2d6f 7074 696f 6e73 3a20 2020 2020 do-options: │ │ │ │ -00023360: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00023370: 2020 2054 696b 5a2f 5047 4620 7573 6572 TikZ/PGF user │ │ │ │ -00023380: 2d64 6566 696e 6564 2073 7479 6c65 732e -defined styles. │ │ │ │ -00023390: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ +00023130: 2020 2020 2020 2020 286c 696e 6520 2034 (line 4 │ │ │ │ +00023140: 3529 0a2a 2070 726f 6772 616d 2c20 6865 5).* program, he │ │ │ │ +00023150: 6c6c 6f20 776f 726c 643a 2020 2020 2020 llo world: │ │ │ │ +00023160: 2020 2020 2020 2020 2020 2020 4865 6c6c Hell │ │ │ │ +00023170: 6f20 776f 726c 642e 2020 2020 2020 2020 o world. │ │ │ │ +00023180: 2028 6c69 6e65 2020 2037 290a 2a20 7072 (line 7).* pr │ │ │ │ +00023190: 6f6a 6563 7469 6f6e 2c20 7061 7261 6c6c ojection, parall │ │ │ │ +000231a0: 656c 3a20 2020 2020 2020 2020 2020 2020 el: │ │ │ │ +000231b0: 2020 2020 2048 656c 6c6f 2077 6f72 6c64 Hello world │ │ │ │ +000231c0: 2e20 2020 2020 2020 2020 286c 696e 6520 . (line │ │ │ │ +000231d0: 2032 3629 0a2a 2070 726f 6a65 6374 696f 26).* projectio │ │ │ │ +000231e0: 6e2c 2070 6172 616c 6c65 6c20 3c31 3e3a n, parallel <1>: │ │ │ │ +000231f0: 2020 2020 2020 2020 2020 2020 2020 5472 Tr │ │ │ │ +00023200: 616e 7366 6f72 6d20 6c69 7465 7261 6c73 ansform literals │ │ │ │ +00023210: 2e20 2028 6c69 6e65 2020 3138 290a 2a20 . (line 18).* │ │ │ │ +00023220: 7072 6f6a 6563 7469 6f6e 2c20 7061 7261 projection, para │ │ │ │ +00023230: 6c6c 656c 203c 323e 3a20 2020 2020 2020 llel <2>: │ │ │ │ +00023240: 2020 2020 2020 2050 6963 7475 7265 2062 Picture b │ │ │ │ +00023250: 6f78 2e20 2020 2020 2020 2020 286c 696e ox. (lin │ │ │ │ +00023260: 6520 2031 3529 0a2a 2070 726f 6a65 6374 e 15).* project │ │ │ │ +00023270: 696f 6e2c 2070 6572 7370 6563 7469 7665 ion, perspective │ │ │ │ +00023280: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +00023290: 5472 616e 7366 6f72 6d20 6c69 7465 7261 Transform litera │ │ │ │ +000232a0: 6c73 2e20 2028 6c69 6e65 2020 3139 290a ls. (line 19). │ │ │ │ +000232b0: 2a20 7072 6f6a 6563 7469 6f6e 2c20 7065 * projection, pe │ │ │ │ +000232c0: 7273 7065 6374 6976 6520 3c31 3e3a 2020 rspective <1>: │ │ │ │ +000232d0: 2020 2020 2020 2020 2054 7261 6e73 666f Transfo │ │ │ │ +000232e0: 726d 206c 6974 6572 616c 732e 2020 286c rm literals. (l │ │ │ │ +000232f0: 696e 6520 2032 3129 0a2a 2070 726f 6a65 ine 21).* proje │ │ │ │ +00023300: 6374 696f 6e2c 2070 6572 7370 6563 7469 ction, perspecti │ │ │ │ +00023310: 7665 203c 323e 3a20 2020 2020 2020 2020 ve <2>: │ │ │ │ +00023320: 2020 4f76 6572 7669 6577 2e20 2020 2020 Overview. │ │ │ │ +00023330: 2020 2020 2020 2028 6c69 6e65 2020 2037 (line 7 │ │ │ │ +00023340: 290a 2a20 7073 6575 646f 2d6f 7074 696f ).* pseudo-optio │ │ │ │ +00023350: 6e73 3a20 2020 2020 2020 2020 2020 2020 ns: │ │ │ │ +00023360: 2020 2020 2020 2020 2020 2054 696b 5a2f TikZ/ │ │ │ │ +00023370: 5047 4620 7573 6572 2d64 6566 696e 6564 PGF user-defined │ │ │ │ +00023380: 2073 7479 6c65 732e 0a20 2020 2020 2020 styles.. │ │ │ │ +00023390: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 000233a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 000233b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000233c0: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ -000233d0: 6c69 6e65 2020 3235 290a 2a20 7073 6672 line 25).* psfr │ │ │ │ -000233e0: 616d 6562 6f78 3a20 2020 2020 2020 2020 amebox: │ │ │ │ -000233f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00023400: 2020 2046 7261 6d65 2e20 2020 2020 2020 Frame. │ │ │ │ -00023410: 2020 2020 2020 2020 286c 696e 6520 2020 (line │ │ │ │ -00023420: 3829 0a2a 2070 7370 6963 7475 7265 3a20 8).* pspicture: │ │ │ │ +000233c0: 2020 2020 2020 2028 6c69 6e65 2020 3235 (line 25 │ │ │ │ +000233d0: 290a 2a20 7073 6672 616d 6562 6f78 3a20 ).* psframebox: │ │ │ │ +000233e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +000233f0: 2020 2020 2020 2020 2020 2046 7261 6d65 Frame │ │ │ │ +00023400: 2e20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ +00023410: 286c 696e 6520 2020 3829 0a2a 2070 7370 (line 8).* psp │ │ │ │ +00023420: 6963 7475 7265 3a20 2020 2020 2020 2020 icture: │ │ │ │ 00023430: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00023440: 2020 2020 2020 2020 2020 2020 5069 6374 Pict │ │ │ │ -00023450: 7572 6520 626f 782e 2020 2020 2020 2020 ure box. │ │ │ │ -00023460: 2028 6c69 6e65 2020 3130 290a 2a20 5053 (line 10).* PS │ │ │ │ -00023470: 5472 6963 6b73 3a20 2020 2020 2020 2020 Tricks: │ │ │ │ -00023480: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00023490: 2020 2020 2041 626f 7574 2073 6b65 7463 About sketc │ │ │ │ -000234a0: 682e 2020 2020 2020 2020 286c 696e 6520 h. (line │ │ │ │ -000234b0: 2032 3129 0a2a 2071 756f 7469 6e67 2c20 21).* quoting, │ │ │ │ -000234c0: 7370 6563 6961 6c3a 2020 2020 2020 2020 special: │ │ │ │ -000234d0: 2020 2020 2020 2020 2020 2020 2020 5370 Sp │ │ │ │ -000234e0: 6563 6961 6c20 6f62 6a65 6374 732e 2020 ecial objects. │ │ │ │ -000234f0: 2020 2028 6c69 6e65 2020 3230 290a 2a20 (line 20).* │ │ │ │ -00023500: 7175 6f74 696e 672c 2073 7065 6369 616c quoting, special │ │ │ │ -00023510: 203c 313e 3a20 2020 2020 2020 2020 2020 <1>: │ │ │ │ -00023520: 2020 2020 2020 2053 7065 6369 616c 732e Specials. │ │ │ │ -00023530: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ -00023540: 6520 2020 3829 0a2a 2072 6566 6572 656e e 8).* referen │ │ │ │ -00023550: 6365 2c20 6472 6177 6162 6c65 3a20 2020 ce, drawable: │ │ │ │ -00023560: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00023570: 4f62 6a65 6374 2074 7261 6e73 666f 726d Object transform │ │ │ │ -00023580: 732e 2020 2028 6c69 6e65 2020 3333 290a s. (line 33). │ │ │ │ -00023590: 2a20 7265 6665 7265 6e63 652c 2064 7261 * reference, dra │ │ │ │ -000235a0: 7761 626c 6520 3c31 3e3a 2020 2020 2020 wable <1>: │ │ │ │ -000235b0: 2020 2020 2020 2020 2046 6f72 6d73 206f Forms o │ │ │ │ -000235c0: 6620 7265 6665 7265 6e63 6573 2e20 286c f references. (l │ │ │ │ -000235d0: 696e 6520 2031 3729 0a2a 2072 6566 6572 ine 17).* refer │ │ │ │ -000235e0: 656e 6365 2c20 6472 6177 6162 6c65 203c ence, drawable < │ │ │ │ -000235f0: 323e 3a20 2020 2020 2020 2020 2020 2020 2>: │ │ │ │ -00023600: 2020 4f76 6572 7669 6577 2e20 2020 2020 Overview. │ │ │ │ -00023610: 2020 2020 2020 2028 6c69 6e65 2020 3437 (line 47 │ │ │ │ -00023620: 290a 2a20 7265 6665 7265 6e63 652c 2064 ).* reference, d │ │ │ │ -00023630: 7261 7761 626c 6520 3c33 3e3a 2020 2020 rawable <3>: │ │ │ │ -00023640: 2020 2020 2020 2020 2020 204f 7665 7276 Overv │ │ │ │ -00023650: 6965 772e 2020 2020 2020 2020 2020 2020 iew. │ │ │ │ -00023660: 286c 696e 6520 2035 3729 0a2a 2072 6566 (line 57).* ref │ │ │ │ -00023670: 6572 656e 6365 2c20 6d75 6c74 6970 6c65 erence, multiple │ │ │ │ -00023680: 206f 7074 696f 6e73 3a20 2020 2020 2020 options: │ │ │ │ -00023690: 2020 2020 466f 726d 7320 6f66 2072 6566 Forms of ref │ │ │ │ -000236a0: 6572 656e 6365 732e 2028 6c69 6e65 2020 erences. (line │ │ │ │ -000236b0: 3138 290a 2a20 7265 6665 7265 6e63 652c 18).* reference, │ │ │ │ -000236c0: 206f 7074 696f 6e73 3a20 2020 2020 2020 options: │ │ │ │ -000236d0: 2020 2020 2020 2020 2020 2020 2050 6f6c Pol │ │ │ │ -000236e0: 796c 696e 6520 7377 6565 7073 2077 6974 yline sweeps wit │ │ │ │ -000236f0: 6820 636c 6f73 7572 652e 0a20 2020 2020 h closure.. │ │ │ │ +00023440: 2020 2020 5069 6374 7572 6520 626f 782e Picture box. │ │ │ │ +00023450: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ +00023460: 3130 290a 2a20 5053 5472 6963 6b73 3a20 10).* PSTricks: │ │ │ │ +00023470: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00023480: 2020 2020 2020 2020 2020 2020 2041 626f Abo │ │ │ │ +00023490: 7574 2073 6b65 7463 682e 2020 2020 2020 ut sketch. │ │ │ │ +000234a0: 2020 286c 696e 6520 2032 3129 0a2a 2071 (line 21).* q │ │ │ │ +000234b0: 756f 7469 6e67 2c20 7370 6563 6961 6c3a uoting, special: │ │ │ │ +000234c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +000234d0: 2020 2020 2020 5370 6563 6961 6c20 6f62 Special ob │ │ │ │ +000234e0: 6a65 6374 732e 2020 2020 2028 6c69 6e65 jects. (line │ │ │ │ +000234f0: 2020 3230 290a 2a20 7175 6f74 696e 672c 20).* quoting, │ │ │ │ +00023500: 2073 7065 6369 616c 203c 313e 3a20 2020 special <1>: │ │ │ │ +00023510: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ +00023520: 7065 6369 616c 732e 2020 2020 2020 2020 pecials. │ │ │ │ +00023530: 2020 2020 286c 696e 6520 2020 3829 0a2a (line 8).* │ │ │ │ +00023540: 2072 6566 6572 656e 6365 2c20 6472 6177 reference, draw │ │ │ │ +00023550: 6162 6c65 3a20 2020 2020 2020 2020 2020 able: │ │ │ │ +00023560: 2020 2020 2020 2020 4f62 6a65 6374 2074 Object t │ │ │ │ +00023570: 7261 6e73 666f 726d 732e 2020 2028 6c69 ransforms. (li │ │ │ │ +00023580: 6e65 2020 3333 290a 2a20 7265 6665 7265 ne 33).* refere │ │ │ │ +00023590: 6e63 652c 2064 7261 7761 626c 6520 3c31 nce, drawable <1 │ │ │ │ +000235a0: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ +000235b0: 2046 6f72 6d73 206f 6620 7265 6665 7265 Forms of refere │ │ │ │ +000235c0: 6e63 6573 2e20 286c 696e 6520 2031 3729 nces. (line 17) │ │ │ │ +000235d0: 0a2a 2072 6566 6572 656e 6365 2c20 6472 .* reference, dr │ │ │ │ +000235e0: 6177 6162 6c65 203c 323e 3a20 2020 2020 awable <2>: │ │ │ │ +000235f0: 2020 2020 2020 2020 2020 4f76 6572 7669 Overvi │ │ │ │ +00023600: 6577 2e20 2020 2020 2020 2020 2020 2028 ew. ( │ │ │ │ +00023610: 6c69 6e65 2020 3437 290a 2a20 7265 6665 line 47).* refe │ │ │ │ +00023620: 7265 6e63 652c 2064 7261 7761 626c 6520 rence, drawable │ │ │ │ +00023630: 3c33 3e3a 2020 2020 2020 2020 2020 2020 <3>: │ │ │ │ +00023640: 2020 204f 7665 7276 6965 772e 2020 2020 Overview. │ │ │ │ +00023650: 2020 2020 2020 2020 286c 696e 6520 2035 (line 5 │ │ │ │ +00023660: 3729 0a2a 2072 6566 6572 656e 6365 2c20 7).* reference, │ │ │ │ +00023670: 6d75 6c74 6970 6c65 206f 7074 696f 6e73 multiple options │ │ │ │ +00023680: 3a20 2020 2020 2020 2020 2020 466f 726d : Form │ │ │ │ +00023690: 7320 6f66 2072 6566 6572 656e 6365 732e s of references. │ │ │ │ +000236a0: 2028 6c69 6e65 2020 3138 290a 2a20 7265 (line 18).* re │ │ │ │ +000236b0: 6665 7265 6e63 652c 206f 7074 696f 6e73 ference, options │ │ │ │ +000236c0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +000236d0: 2020 2020 2050 6f6c 796c 696e 6520 7377 Polyline sw │ │ │ │ +000236e0: 6565 7073 2077 6974 6820 636c 6f73 7572 eeps with closur │ │ │ │ +000236f0: 652e 0a20 2020 2020 2020 2020 2020 2020 e.. │ │ │ │ 00023700: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00023710: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00023720: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00023730: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ -00023740: 3234 290a 2a20 7265 6665 7265 6e63 652c 24).* reference, │ │ │ │ -00023750: 206f 7074 696f 6e73 203c 313e 3a20 2020 options <1>: │ │ │ │ -00023760: 2020 2020 2020 2020 2020 2020 2046 6f72 For │ │ │ │ -00023770: 6d73 206f 6620 7265 6665 7265 6e63 6573 ms of references │ │ │ │ -00023780: 2e20 286c 696e 6520 2031 3829 0a2a 2072 . (line 18).* r │ │ │ │ -00023790: 6566 6572 656e 6365 2c20 706f 696e 743a eference, point: │ │ │ │ -000237a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000237b0: 2020 2020 2020 4472 6177 696e 6720 6120 Drawing a │ │ │ │ -000237c0: 736f 6c69 642e 2020 2020 2028 6c69 6e65 solid. (line │ │ │ │ -000237d0: 2020 3233 290a 2a20 7265 6665 7265 6e63 23).* referenc │ │ │ │ -000237e0: 652c 2070 6f69 6e74 203c 313e 3a20 2020 e, point <1>: │ │ │ │ -000237f0: 2020 2020 2020 2020 2020 2020 2020 2046 F │ │ │ │ -00023800: 6f72 6d73 206f 6620 7265 6665 7265 6e63 orms of referenc │ │ │ │ -00023810: 6573 2e20 286c 696e 6520 2031 3429 0a2a es. (line 14).* │ │ │ │ -00023820: 2072 6566 6572 656e 6365 2c20 7363 616c reference, scal │ │ │ │ -00023830: 6172 3a20 2020 2020 2020 2020 2020 2020 ar: │ │ │ │ -00023840: 2020 2020 2020 2020 5377 6570 7420 6f62 Swept ob │ │ │ │ -00023850: 6a65 6374 732e 2020 2020 2020 2028 6c69 jects. (li │ │ │ │ -00023860: 6e65 2020 3133 290a 2a20 7265 6665 7265 ne 13).* refere │ │ │ │ -00023870: 6e63 652c 2073 6361 6c61 7220 3c31 3e3a nce, scalar <1>: │ │ │ │ -00023880: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00023890: 2046 6f72 6d73 206f 6620 7265 6665 7265 Forms of refere │ │ │ │ -000238a0: 6e63 6573 2e20 286c 696e 6520 2031 3329 nces. (line 13) │ │ │ │ -000238b0: 0a2a 2072 6566 6572 656e 6365 2c20 7461 .* reference, ta │ │ │ │ -000238c0: 673a 2020 2020 2020 2020 2020 2020 2020 g: │ │ │ │ -000238d0: 2020 2020 2020 2020 2020 466f 726d 7320 Forms │ │ │ │ -000238e0: 6f66 2064 6566 696e 6974 696f 6e73 2e0a of definitions.. │ │ │ │ +00023730: 2028 6c69 6e65 2020 3234 290a 2a20 7265 (line 24).* re │ │ │ │ +00023740: 6665 7265 6e63 652c 206f 7074 696f 6e73 ference, options │ │ │ │ +00023750: 203c 313e 3a20 2020 2020 2020 2020 2020 <1>: │ │ │ │ +00023760: 2020 2020 2046 6f72 6d73 206f 6620 7265 Forms of re │ │ │ │ +00023770: 6665 7265 6e63 6573 2e20 286c 696e 6520 ferences. (line │ │ │ │ +00023780: 2031 3829 0a2a 2072 6566 6572 656e 6365 18).* reference │ │ │ │ +00023790: 2c20 706f 696e 743a 2020 2020 2020 2020 , point: │ │ │ │ +000237a0: 2020 2020 2020 2020 2020 2020 2020 4472 Dr │ │ │ │ +000237b0: 6177 696e 6720 6120 736f 6c69 642e 2020 awing a solid. │ │ │ │ +000237c0: 2020 2028 6c69 6e65 2020 3233 290a 2a20 (line 23).* │ │ │ │ +000237d0: 7265 6665 7265 6e63 652c 2070 6f69 6e74 reference, point │ │ │ │ +000237e0: 203c 313e 3a20 2020 2020 2020 2020 2020 <1>: │ │ │ │ +000237f0: 2020 2020 2020 2046 6f72 6d73 206f 6620 Forms of │ │ │ │ +00023800: 7265 6665 7265 6e63 6573 2e20 286c 696e references. (lin │ │ │ │ +00023810: 6520 2031 3429 0a2a 2072 6566 6572 656e e 14).* referen │ │ │ │ +00023820: 6365 2c20 7363 616c 6172 3a20 2020 2020 ce, scalar: │ │ │ │ +00023830: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00023840: 5377 6570 7420 6f62 6a65 6374 732e 2020 Swept objects. │ │ │ │ +00023850: 2020 2020 2028 6c69 6e65 2020 3133 290a (line 13). │ │ │ │ +00023860: 2a20 7265 6665 7265 6e63 652c 2073 6361 * reference, sca │ │ │ │ +00023870: 6c61 7220 3c31 3e3a 2020 2020 2020 2020 lar <1>: │ │ │ │ +00023880: 2020 2020 2020 2020 2046 6f72 6d73 206f Forms o │ │ │ │ +00023890: 6620 7265 6665 7265 6e63 6573 2e20 286c f references. (l │ │ │ │ +000238a0: 696e 6520 2031 3329 0a2a 2072 6566 6572 ine 13).* refer │ │ │ │ +000238b0: 656e 6365 2c20 7461 673a 2020 2020 2020 ence, tag: │ │ │ │ +000238c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +000238d0: 2020 466f 726d 7320 6f66 2064 6566 696e Forms of defin │ │ │ │ +000238e0: 6974 696f 6e73 2e0a 2020 2020 2020 2020 itions.. │ │ │ │ 000238f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00023900: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00023910: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00023920: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ -00023930: 696e 6520 2032 3029 0a2a 2072 6566 6572 ine 20).* refer │ │ │ │ -00023940: 656e 6365 2c20 7461 6720 3c31 3e3a 2020 ence, tag <1>: │ │ │ │ -00023950: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00023960: 2020 466f 726d 7320 6f66 2072 6566 6572 Forms of refer │ │ │ │ -00023970: 656e 6365 732e 2028 6c69 6e65 2020 3139 ences. (line 19 │ │ │ │ -00023980: 290a 2a20 7265 6665 7265 6e63 652c 2074 ).* reference, t │ │ │ │ -00023990: 7261 6e73 666f 726d 3a20 2020 2020 2020 ransform: │ │ │ │ -000239a0: 2020 2020 2020 2020 2020 2046 6f72 6d73 Forms │ │ │ │ -000239b0: 206f 6620 7265 6665 7265 6e63 6573 2e20 of references. │ │ │ │ -000239c0: 286c 696e 6520 2031 3629 0a2a 2072 6566 (line 16).* ref │ │ │ │ -000239d0: 6572 656e 6365 2c20 7472 616e 7366 6f72 erence, transfor │ │ │ │ -000239e0: 6d20 3c31 3e3a 2020 2020 2020 2020 2020 m <1>: │ │ │ │ -000239f0: 2020 2020 4f76 6572 7669 6577 2e20 2020 Overview. │ │ │ │ -00023a00: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ -00023a10: 3335 290a 2a20 7265 6665 7265 6e63 652c 35).* reference, │ │ │ │ -00023a20: 2076 6563 746f 723a 2020 2020 2020 2020 vector: │ │ │ │ -00023a30: 2020 2020 2020 2020 2020 2020 2050 6f6c Pol │ │ │ │ -00023a40: 796c 696e 6520 7377 6565 7073 2e20 2020 yline sweeps. │ │ │ │ -00023a50: 2020 286c 696e 6520 2032 3029 0a2a 2072 (line 20).* r │ │ │ │ -00023a60: 6566 6572 656e 6365 2c20 7665 6374 6f72 eference, vector │ │ │ │ -00023a70: 203c 313e 3a20 2020 2020 2020 2020 2020 <1>: │ │ │ │ -00023a80: 2020 2020 2020 466f 726d 7320 6f66 2072 Forms of r │ │ │ │ -00023a90: 6566 6572 656e 6365 732e 2028 6c69 6e65 eferences. (line │ │ │ │ -00023aa0: 2020 3135 290a 2a20 7265 7065 6174 6564 15).* repeated │ │ │ │ -00023ab0: 206f 626a 6563 743a 2020 2020 2020 2020 object: │ │ │ │ -00023ac0: 2020 2020 2020 2020 2020 2020 2020 2052 R │ │ │ │ -00023ad0: 6570 6561 7473 2e20 2020 2020 2020 2020 epeats. │ │ │ │ -00023ae0: 2020 2020 286c 696e 6520 2020 3629 0a2a (line 6).* │ │ │ │ -00023af0: 2072 6573 6572 7665 6420 776f 7264 733a reserved words: │ │ │ │ +00023920: 2020 2020 2020 286c 696e 6520 2032 3029 (line 20) │ │ │ │ +00023930: 0a2a 2072 6566 6572 656e 6365 2c20 7461 .* reference, ta │ │ │ │ +00023940: 6720 3c31 3e3a 2020 2020 2020 2020 2020 g <1>: │ │ │ │ +00023950: 2020 2020 2020 2020 2020 466f 726d 7320 Forms │ │ │ │ +00023960: 6f66 2072 6566 6572 656e 6365 732e 2028 of references. ( │ │ │ │ +00023970: 6c69 6e65 2020 3139 290a 2a20 7265 6665 line 19).* refe │ │ │ │ +00023980: 7265 6e63 652c 2074 7261 6e73 666f 726d rence, transform │ │ │ │ +00023990: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +000239a0: 2020 2046 6f72 6d73 206f 6620 7265 6665 Forms of refe │ │ │ │ +000239b0: 7265 6e63 6573 2e20 286c 696e 6520 2031 rences. (line 1 │ │ │ │ +000239c0: 3629 0a2a 2072 6566 6572 656e 6365 2c20 6).* reference, │ │ │ │ +000239d0: 7472 616e 7366 6f72 6d20 3c31 3e3a 2020 transform <1>: │ │ │ │ +000239e0: 2020 2020 2020 2020 2020 2020 4f76 6572 Over │ │ │ │ +000239f0: 7669 6577 2e20 2020 2020 2020 2020 2020 view. │ │ │ │ +00023a00: 2028 6c69 6e65 2020 3335 290a 2a20 7265 (line 35).* re │ │ │ │ +00023a10: 6665 7265 6e63 652c 2076 6563 746f 723a ference, vector: │ │ │ │ +00023a20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00023a30: 2020 2020 2050 6f6c 796c 696e 6520 7377 Polyline sw │ │ │ │ +00023a40: 6565 7073 2e20 2020 2020 286c 696e 6520 eeps. (line │ │ │ │ +00023a50: 2032 3029 0a2a 2072 6566 6572 656e 6365 20).* reference │ │ │ │ +00023a60: 2c20 7665 6374 6f72 203c 313e 3a20 2020 , vector <1>: │ │ │ │ +00023a70: 2020 2020 2020 2020 2020 2020 2020 466f Fo │ │ │ │ +00023a80: 726d 7320 6f66 2072 6566 6572 656e 6365 rms of reference │ │ │ │ +00023a90: 732e 2028 6c69 6e65 2020 3135 290a 2a20 s. (line 15).* │ │ │ │ +00023aa0: 7265 7065 6174 6564 206f 626a 6563 743a repeated object: │ │ │ │ +00023ab0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00023ac0: 2020 2020 2020 2052 6570 6561 7473 2e20 Repeats. │ │ │ │ +00023ad0: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ +00023ae0: 6520 2020 3629 0a2a 2072 6573 6572 7665 e 6).* reserve │ │ │ │ +00023af0: 6420 776f 7264 733a 2020 2020 2020 2020 d words: │ │ │ │ 00023b00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00023b10: 2020 2020 2020 2020 4b65 7920 616e 6420 Key and │ │ │ │ -00023b20: 7265 7365 7276 6564 2077 6f72 6473 2e0a reserved words.. │ │ │ │ +00023b10: 4b65 7920 616e 6420 7265 7365 7276 6564 Key and reserved │ │ │ │ +00023b20: 2077 6f72 6473 2e0a 2020 2020 2020 2020 words.. │ │ │ │ 00023b30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00023b40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00023b50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00023b60: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ -00023b70: 696e 6520 2031 3129 0a2a 2072 6967 6874 ine 11).* right │ │ │ │ -00023b80: 2068 616e 6420 7275 6c65 3a20 2020 2020 hand rule: │ │ │ │ -00023b90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00023ba0: 2020 4f62 6a65 6374 2074 7261 6e73 666f Object transfo │ │ │ │ -00023bb0: 726d 732e 2020 2028 6c69 6e65 2020 3431 rms. (line 41 │ │ │ │ -00023bc0: 290a 2a20 7269 6768 742d 6861 6e64 2063 ).* right-hand c │ │ │ │ -00023bd0: 6f6f 7264 696e 6174 6520 7379 7374 656d oordinate system │ │ │ │ -00023be0: 3a20 2020 2020 2020 2020 2049 6e74 726f : Intro │ │ │ │ -00023bf0: 6475 6374 696f 6e20 6279 2065 7861 6d70 duction by examp │ │ │ │ -00023c00: 6c65 2e0a 2020 2020 2020 2020 2020 2020 le.. │ │ │ │ +00023b60: 2020 2020 2020 286c 696e 6520 2031 3129 (line 11) │ │ │ │ +00023b70: 0a2a 2072 6967 6874 2068 616e 6420 7275 .* right hand ru │ │ │ │ +00023b80: 6c65 3a20 2020 2020 2020 2020 2020 2020 le: │ │ │ │ +00023b90: 2020 2020 2020 2020 2020 4f62 6a65 6374 Object │ │ │ │ +00023ba0: 2074 7261 6e73 666f 726d 732e 2020 2028 transforms. ( │ │ │ │ +00023bb0: 6c69 6e65 2020 3431 290a 2a20 7269 6768 line 41).* righ │ │ │ │ +00023bc0: 742d 6861 6e64 2063 6f6f 7264 696e 6174 t-hand coordinat │ │ │ │ +00023bd0: 6520 7379 7374 656d 3a20 2020 2020 2020 e system: │ │ │ │ +00023be0: 2020 2049 6e74 726f 6475 6374 696f 6e20 Introduction │ │ │ │ +00023bf0: 6279 2065 7861 6d70 6c65 2e0a 2020 2020 by example.. │ │ │ │ +00023c00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00023c10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00023c20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00023c30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00023c40: 2020 286c 696e 6520 2031 3129 0a2a 2072 (line 11).* r │ │ │ │ -00023c50: 6f74 6174 696f 6e3a 2020 2020 2020 2020 otation: │ │ │ │ -00023c60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00023c70: 2020 2020 2020 4f62 6a65 6374 2074 7261 Object tra │ │ │ │ -00023c80: 6e73 666f 726d 732e 2020 2028 6c69 6e65 nsforms. (line │ │ │ │ -00023c90: 2020 3339 290a 2a20 726f 7461 7469 6f6e 39).* rotation │ │ │ │ -00023ca0: 2074 7261 6e73 666f 726d 3a20 2020 2020 transform: │ │ │ │ -00023cb0: 2020 2020 2020 2020 2020 2020 2020 2054 T │ │ │ │ -00023cc0: 7261 6e73 666f 726d 206c 6974 6572 616c ransform literal │ │ │ │ -00023cd0: 732e 2020 286c 696e 6520 2031 3029 0a2a s. (line 10).* │ │ │ │ -00023ce0: 2072 6f74 6174 696f 6e20 7472 616e 7366 rotation transf │ │ │ │ -00023cf0: 6f72 6d20 3c31 3e3a 2020 2020 2020 2020 orm <1>: │ │ │ │ -00023d00: 2020 2020 2020 2020 4120 6869 6572 6172 A hierar │ │ │ │ -00023d10: 6368 6963 616c 206d 6f64 656c 2e0a 2020 chical model.. │ │ │ │ +00023c30: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ +00023c40: 2031 3129 0a2a 2072 6f74 6174 696f 6e3a 11).* rotation: │ │ │ │ +00023c50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00023c60: 2020 2020 2020 2020 2020 2020 2020 4f62 Ob │ │ │ │ +00023c70: 6a65 6374 2074 7261 6e73 666f 726d 732e ject transforms. │ │ │ │ +00023c80: 2020 2028 6c69 6e65 2020 3339 290a 2a20 (line 39).* │ │ │ │ +00023c90: 726f 7461 7469 6f6e 2074 7261 6e73 666f rotation transfo │ │ │ │ +00023ca0: 726d 3a20 2020 2020 2020 2020 2020 2020 rm: │ │ │ │ +00023cb0: 2020 2020 2020 2054 7261 6e73 666f 726d Transform │ │ │ │ +00023cc0: 206c 6974 6572 616c 732e 2020 286c 696e literals. (lin │ │ │ │ +00023cd0: 6520 2031 3029 0a2a 2072 6f74 6174 696f e 10).* rotatio │ │ │ │ +00023ce0: 6e20 7472 616e 7366 6f72 6d20 3c31 3e3a n transform <1>: │ │ │ │ +00023cf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00023d00: 4120 6869 6572 6172 6368 6963 616c 206d A hierarchical m │ │ │ │ +00023d10: 6f64 656c 2e0a 2020 2020 2020 2020 2020 odel.. │ │ │ │ 00023d20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00023d30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00023d40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00023d50: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ -00023d60: 6520 2034 3829 0a2a 2072 6f74 6174 696f e 48).* rotatio │ │ │ │ -00023d70: 6e20 7472 616e 7366 6f72 6d20 3c32 3e3a n transform <2>: │ │ │ │ -00023d80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00023d90: 4120 6869 6572 6172 6368 6963 616c 206d A hierarchical m │ │ │ │ -00023da0: 6f64 656c 2e0a 2020 2020 2020 2020 2020 odel.. │ │ │ │ +00023d50: 2020 2020 286c 696e 6520 2034 3829 0a2a (line 48).* │ │ │ │ +00023d60: 2072 6f74 6174 696f 6e20 7472 616e 7366 rotation transf │ │ │ │ +00023d70: 6f72 6d20 3c32 3e3a 2020 2020 2020 2020 orm <2>: │ │ │ │ +00023d80: 2020 2020 2020 2020 4120 6869 6572 6172 A hierar │ │ │ │ +00023d90: 6368 6963 616c 206d 6f64 656c 2e0a 2020 chical model.. │ │ │ │ +00023da0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00023db0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00023dc0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00023dd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00023de0: 2020 2020 286c 696e 6520 2035 3829 0a2a (line 58).* │ │ │ │ -00023df0: 2072 6f74 6174 696f 6e20 7472 616e 7366 rotation transf │ │ │ │ -00023e00: 6f72 6d20 3c33 3e3a 2020 2020 2020 2020 orm <3>: │ │ │ │ -00023e10: 2020 2020 2020 2020 4120 6869 6572 6172 A hierar │ │ │ │ -00023e20: 6368 6963 616c 206d 6f64 656c 2e0a 2020 chical model.. │ │ │ │ +00023dd0: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ +00023de0: 6520 2035 3829 0a2a 2072 6f74 6174 696f e 58).* rotatio │ │ │ │ +00023df0: 6e20 7472 616e 7366 6f72 6d20 3c33 3e3a n transform <3>: │ │ │ │ +00023e00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00023e10: 4120 6869 6572 6172 6368 6963 616c 206d A hierarchical m │ │ │ │ +00023e20: 6f64 656c 2e0a 2020 2020 2020 2020 2020 odel.. │ │ │ │ 00023e30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00023e40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00023e50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00023e60: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ -00023e70: 6520 2037 3829 0a2a 2072 6f74 6174 696f e 78).* rotatio │ │ │ │ -00023e80: 6e20 7472 616e 7366 6f72 6d20 3c34 3e3a n transform <4>: │ │ │ │ -00023e90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00023ea0: 4120 6869 6572 6172 6368 6963 616c 206d A hierarchical m │ │ │ │ -00023eb0: 6f64 656c 2e0a 2020 2020 2020 2020 2020 odel.. │ │ │ │ +00023e60: 2020 2020 286c 696e 6520 2037 3829 0a2a (line 78).* │ │ │ │ +00023e70: 2072 6f74 6174 696f 6e20 7472 616e 7366 rotation transf │ │ │ │ +00023e80: 6f72 6d20 3c34 3e3a 2020 2020 2020 2020 orm <4>: │ │ │ │ +00023e90: 2020 2020 2020 2020 4120 6869 6572 6172 A hierar │ │ │ │ +00023ea0: 6368 6963 616c 206d 6f64 656c 2e0a 2020 chical model.. │ │ │ │ +00023eb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00023ec0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00023ed0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00023ee0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00023ef0: 2020 2020 286c 696e 6520 2039 3329 0a2a (line 93).* │ │ │ │ -00023f00: 2072 6f74 6174 696f 6e2c 2063 656e 7465 rotation, cente │ │ │ │ -00023f10: 7220 6f66 3a20 2020 2020 2020 2020 2020 r of: │ │ │ │ -00023f20: 2020 2020 2020 2020 4f62 6a65 6374 2074 Object t │ │ │ │ -00023f30: 7261 6e73 666f 726d 732e 2020 2028 6c69 ransforms. (li │ │ │ │ -00023f40: 6e65 2020 2038 290a 2a20 726f 7461 7469 ne 8).* rotati │ │ │ │ -00023f50: 6f6e 2c20 6365 6e74 6572 206f 6620 3c31 on, center of <1 │ │ │ │ -00023f60: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ -00023f70: 204e 6573 7465 6420 7377 6565 7073 2e20 Nested sweeps. │ │ │ │ -00023f80: 2020 2020 2020 286c 696e 6520 2020 3629 (line 6) │ │ │ │ -00023f90: 0a2a 2072 756e 6e69 6e67 2073 6b65 7463 .* running sketc │ │ │ │ -00023fa0: 683a 2020 2020 2020 2020 2020 2020 2020 h: │ │ │ │ -00023fb0: 2020 2020 2020 2020 2020 4865 6c6c 6f20 Hello │ │ │ │ -00023fc0: 776f 726c 642e 2020 2020 2020 2020 2028 world. ( │ │ │ │ -00023fd0: 6c69 6e65 2020 2039 290a 2a20 7363 616c line 9).* scal │ │ │ │ -00023fe0: 6172 2064 6566 696e 6974 696f 6e3a 2020 ar definition: │ │ │ │ -00023ff0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00024000: 2020 2053 7765 7074 206f 626a 6563 7473 Swept objects │ │ │ │ -00024010: 2e20 2020 2020 2020 286c 696e 6520 2031 . (line 1 │ │ │ │ -00024020: 3329 0a2a 2073 6361 6c61 7220 6c69 7465 3).* scalar lite │ │ │ │ -00024030: 7261 6c3a 2020 2020 2020 2020 2020 2020 ral: │ │ │ │ -00024040: 2020 2020 2020 2020 2020 2020 5363 616c Scal │ │ │ │ -00024050: 6172 206c 6974 6572 616c 732e 2020 2020 ar literals. │ │ │ │ -00024060: 2028 6c69 6e65 2020 2036 290a 2a20 7363 (line 6).* sc │ │ │ │ -00024070: 616c 6172 2072 6566 6572 656e 6365 3a20 alar reference: │ │ │ │ -00024080: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00024090: 2020 2020 2046 6f72 6d73 206f 6620 7265 Forms of re │ │ │ │ -000240a0: 6665 7265 6e63 6573 2e20 286c 696e 6520 ferences. (line │ │ │ │ -000240b0: 2031 3329 0a2a 2073 6361 6c65 2074 7261 13).* scale tra │ │ │ │ -000240c0: 6e73 666f 726d 3a20 2020 2020 2020 2020 nsform: │ │ │ │ -000240d0: 2020 2020 2020 2020 2020 2020 2020 5472 Tr │ │ │ │ -000240e0: 616e 7366 6f72 6d20 6c69 7465 7261 6c73 ansform literals │ │ │ │ -000240f0: 2e20 2028 6c69 6e65 2020 3136 290a 2a20 . (line 16).* │ │ │ │ -00024100: 7363 616c 6520 7472 616e 7366 6f72 6d20 scale transform │ │ │ │ -00024110: 3c31 3e3a 2020 2020 2020 2020 2020 2020 <1>: │ │ │ │ -00024120: 2020 2020 2020 2054 7261 6e73 666f 726d Transform │ │ │ │ -00024130: 206c 6974 6572 616c 732e 2020 286c 696e literals. (lin │ │ │ │ -00024140: 6520 2031 3729 0a2a 2073 6365 6e65 2064 e 17).* scene d │ │ │ │ -00024150: 6573 6372 6970 7469 6f6e 206c 616e 6775 escription langu │ │ │ │ -00024160: 6167 653a 2020 2020 2020 2020 2020 2020 age: │ │ │ │ -00024170: 4c61 6e67 7561 6765 2062 6173 6963 732e Language basics. │ │ │ │ -00024180: 2020 2020 2028 6c69 6e65 2020 2038 290a (line 8). │ │ │ │ -00024190: 2a20 7363 656e 6520 6465 7363 7269 7074 * scene descript │ │ │ │ -000241a0: 696f 6e20 6c61 6e67 7561 6765 203c 313e ion language <1> │ │ │ │ -000241b0: 3a20 2020 2020 2020 2042 7569 6c64 696e : Buildin │ │ │ │ -000241c0: 6720 6120 6472 6177 696e 672e 2020 286c g a drawing. (l │ │ │ │ -000241d0: 696e 6520 2020 3729 0a2a 2073 636f 7065 ine 7).* scope │ │ │ │ -000241e0: 2c20 6964 656e 7469 6669 6572 3a20 2020 , identifier: │ │ │ │ -000241f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00024200: 2020 4f62 6a65 6374 2074 7261 6e73 666f Object transfo │ │ │ │ -00024210: 726d 732e 2020 2028 6c69 6e65 2020 3236 rms. (line 26 │ │ │ │ -00024220: 290a 2a20 7363 6f70 652c 2069 6465 6e74 ).* scope, ident │ │ │ │ -00024230: 6966 6965 7220 3c31 3e3a 2020 2020 2020 ifier <1>: │ │ │ │ -00024240: 2020 2020 2020 2020 2020 2042 6c6f 636b Block │ │ │ │ -00024250: 732e 2020 2020 2020 2020 2020 2020 2020 s. │ │ │ │ -00024260: 286c 696e 6520 2031 3329 0a2a 2073 696d (line 13).* sim │ │ │ │ -00024270: 706c 6520 6465 6669 6e69 7469 6f6e 3a20 ple definition: │ │ │ │ -00024280: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00024290: 2020 2020 466f 726d 7320 6f66 2064 6566 Forms of def │ │ │ │ -000242a0: 696e 6974 696f 6e73 2e0a 2020 2020 2020 initions.. │ │ │ │ +00023ee0: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ +00023ef0: 6520 2039 3329 0a2a 2072 6f74 6174 696f e 93).* rotatio │ │ │ │ +00023f00: 6e2c 2063 656e 7465 7220 6f66 3a20 2020 n, center of: │ │ │ │ +00023f10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00023f20: 4f62 6a65 6374 2074 7261 6e73 666f 726d Object transform │ │ │ │ +00023f30: 732e 2020 2028 6c69 6e65 2020 2038 290a s. (line 8). │ │ │ │ +00023f40: 2a20 726f 7461 7469 6f6e 2c20 6365 6e74 * rotation, cent │ │ │ │ +00023f50: 6572 206f 6620 3c31 3e3a 2020 2020 2020 er of <1>: │ │ │ │ +00023f60: 2020 2020 2020 2020 204e 6573 7465 6420 Nested │ │ │ │ +00023f70: 7377 6565 7073 2e20 2020 2020 2020 286c sweeps. (l │ │ │ │ +00023f80: 696e 6520 2020 3629 0a2a 2072 756e 6e69 ine 6).* runni │ │ │ │ +00023f90: 6e67 2073 6b65 7463 683a 2020 2020 2020 ng sketch: │ │ │ │ +00023fa0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00023fb0: 2020 4865 6c6c 6f20 776f 726c 642e 2020 Hello world. │ │ │ │ +00023fc0: 2020 2020 2020 2028 6c69 6e65 2020 2039 (line 9 │ │ │ │ +00023fd0: 290a 2a20 7363 616c 6172 2064 6566 696e ).* scalar defin │ │ │ │ +00023fe0: 6974 696f 6e3a 2020 2020 2020 2020 2020 ition: │ │ │ │ +00023ff0: 2020 2020 2020 2020 2020 2053 7765 7074 Swept │ │ │ │ +00024000: 206f 626a 6563 7473 2e20 2020 2020 2020 objects. │ │ │ │ +00024010: 286c 696e 6520 2031 3329 0a2a 2073 6361 (line 13).* sca │ │ │ │ +00024020: 6c61 7220 6c69 7465 7261 6c3a 2020 2020 lar literal: │ │ │ │ +00024030: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00024040: 2020 2020 5363 616c 6172 206c 6974 6572 Scalar liter │ │ │ │ +00024050: 616c 732e 2020 2020 2028 6c69 6e65 2020 als. (line │ │ │ │ +00024060: 2036 290a 2a20 7363 616c 6172 2072 6566 6).* scalar ref │ │ │ │ +00024070: 6572 656e 6365 3a20 2020 2020 2020 2020 erence: │ │ │ │ +00024080: 2020 2020 2020 2020 2020 2020 2046 6f72 For │ │ │ │ +00024090: 6d73 206f 6620 7265 6665 7265 6e63 6573 ms of references │ │ │ │ +000240a0: 2e20 286c 696e 6520 2031 3329 0a2a 2073 . (line 13).* s │ │ │ │ +000240b0: 6361 6c65 2074 7261 6e73 666f 726d 3a20 cale transform: │ │ │ │ +000240c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +000240d0: 2020 2020 2020 5472 616e 7366 6f72 6d20 Transform │ │ │ │ +000240e0: 6c69 7465 7261 6c73 2e20 2028 6c69 6e65 literals. (line │ │ │ │ +000240f0: 2020 3136 290a 2a20 7363 616c 6520 7472 16).* scale tr │ │ │ │ +00024100: 616e 7366 6f72 6d20 3c31 3e3a 2020 2020 ansform <1>: │ │ │ │ +00024110: 2020 2020 2020 2020 2020 2020 2020 2054 T │ │ │ │ +00024120: 7261 6e73 666f 726d 206c 6974 6572 616c ransform literal │ │ │ │ +00024130: 732e 2020 286c 696e 6520 2031 3729 0a2a s. (line 17).* │ │ │ │ +00024140: 2073 6365 6e65 2064 6573 6372 6970 7469 scene descripti │ │ │ │ +00024150: 6f6e 206c 616e 6775 6167 653a 2020 2020 on language: │ │ │ │ +00024160: 2020 2020 2020 2020 4c61 6e67 7561 6765 Language │ │ │ │ +00024170: 2062 6173 6963 732e 2020 2020 2028 6c69 basics. (li │ │ │ │ +00024180: 6e65 2020 2038 290a 2a20 7363 656e 6520 ne 8).* scene │ │ │ │ +00024190: 6465 7363 7269 7074 696f 6e20 6c61 6e67 description lang │ │ │ │ +000241a0: 7561 6765 203c 313e 3a20 2020 2020 2020 uage <1>: │ │ │ │ +000241b0: 2042 7569 6c64 696e 6720 6120 6472 6177 Building a draw │ │ │ │ +000241c0: 696e 672e 2020 286c 696e 6520 2020 3729 ing. (line 7) │ │ │ │ +000241d0: 0a2a 2073 636f 7065 2c20 6964 656e 7469 .* scope, identi │ │ │ │ +000241e0: 6669 6572 3a20 2020 2020 2020 2020 2020 fier: │ │ │ │ +000241f0: 2020 2020 2020 2020 2020 4f62 6a65 6374 Object │ │ │ │ +00024200: 2074 7261 6e73 666f 726d 732e 2020 2028 transforms. ( │ │ │ │ +00024210: 6c69 6e65 2020 3236 290a 2a20 7363 6f70 line 26).* scop │ │ │ │ +00024220: 652c 2069 6465 6e74 6966 6965 7220 3c31 e, identifier <1 │ │ │ │ +00024230: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ +00024240: 2020 2042 6c6f 636b 732e 2020 2020 2020 Blocks. │ │ │ │ +00024250: 2020 2020 2020 2020 286c 696e 6520 2031 (line 1 │ │ │ │ +00024260: 3329 0a2a 2073 696d 706c 6520 6465 6669 3).* simple defi │ │ │ │ +00024270: 6e69 7469 6f6e 3a20 2020 2020 2020 2020 nition: │ │ │ │ +00024280: 2020 2020 2020 2020 2020 2020 466f 726d Form │ │ │ │ +00024290: 7320 6f66 2064 6566 696e 6974 696f 6e73 s of definitions │ │ │ │ +000242a0: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ 000242b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 000242c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 000242d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000242e0: 2020 2020 2020 2020 286c 696e 6520 2020 (line │ │ │ │ -000242f0: 3629 0a2a 2073 6f6c 6964 3a20 2020 2020 6).* solid: │ │ │ │ +000242e0: 286c 696e 6520 2020 3629 0a2a 2073 6f6c (line 6).* sol │ │ │ │ +000242f0: 6964 3a20 2020 2020 2020 2020 2020 2020 id: │ │ │ │ 00024300: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00024310: 2020 2020 2020 2020 2020 2020 4472 6177 Draw │ │ │ │ -00024320: 696e 6720 6120 736f 6c69 642e 2020 2020 ing a solid. │ │ │ │ -00024330: 2028 6c69 6e65 2020 2036 290a 2a20 7370 (line 6).* sp │ │ │ │ -00024340: 6563 6961 6c20 6172 6775 6d65 6e74 2073 ecial argument s │ │ │ │ -00024350: 7562 7374 6974 7574 696f 6e3a 2020 2020 ubstitution: │ │ │ │ -00024360: 2020 2020 2053 7065 6369 616c 206f 626a Special obj │ │ │ │ -00024370: 6563 7473 2e20 2020 2020 286c 696e 6520 ects. (line │ │ │ │ -00024380: 2032 3829 0a2a 2073 7065 6369 616c 2061 28).* special a │ │ │ │ -00024390: 7267 756d 656e 7420 7375 6273 7469 7475 rgument substitu │ │ │ │ -000243a0: 7469 6f6e 203c 313e 3a20 2020 2020 5370 tion <1>: Sp │ │ │ │ -000243b0: 6563 6961 6c73 2e20 2020 2020 2020 2020 ecials. │ │ │ │ -000243c0: 2020 2028 6c69 6e65 2020 3130 290a 2a20 (line 10).* │ │ │ │ -000243d0: 7370 6563 6961 6c20 6f62 6a65 6374 3a20 special object: │ │ │ │ -000243e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000243f0: 2020 2020 2020 2053 7065 6369 616c 206f Special o │ │ │ │ -00024400: 626a 6563 7473 2e20 2020 2020 286c 696e bjects. (lin │ │ │ │ -00024410: 6520 2020 3629 0a2a 2073 7065 6369 616c e 6).* special │ │ │ │ -00024420: 206f 626a 6563 7473 3a20 2020 2020 2020 objects: │ │ │ │ -00024430: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00024440: 4120 7465 6368 6e69 6361 6c20 6472 6177 A technical draw │ │ │ │ -00024450: 696e 672e 2028 6c69 6e65 2020 3338 290a ing. (line 38). │ │ │ │ -00024460: 2a20 7370 6c69 7474 696e 672c 206c 696e * splitting, lin │ │ │ │ -00024470: 6520 616e 6420 7375 7266 6163 653a 2020 e and surface: │ │ │ │ -00024480: 2020 2020 2020 2020 2048 656c 6c6f 2077 Hello w │ │ │ │ -00024490: 6f72 6c64 2e20 2020 2020 2020 2020 286c orld. (l │ │ │ │ -000244a0: 696e 6520 2031 3929 0a2a 2073 706c 6974 ine 19).* split │ │ │ │ -000244b0: 7469 6e67 2c20 6c69 6e65 2061 6e64 2073 ting, line and s │ │ │ │ -000244c0: 7572 6661 6365 203c 313e 3a20 2020 2020 urface <1>: │ │ │ │ -000244d0: 2020 4869 6464 656e 2073 7572 6661 6365 Hidden surface │ │ │ │ -000244e0: 2072 656d 6f76 616c 2e0a 2020 2020 2020 removal.. │ │ │ │ +00024310: 2020 2020 4472 6177 696e 6720 6120 736f Drawing a so │ │ │ │ +00024320: 6c69 642e 2020 2020 2028 6c69 6e65 2020 lid. (line │ │ │ │ +00024330: 2036 290a 2a20 7370 6563 6961 6c20 6172 6).* special ar │ │ │ │ +00024340: 6775 6d65 6e74 2073 7562 7374 6974 7574 gument substitut │ │ │ │ +00024350: 696f 6e3a 2020 2020 2020 2020 2053 7065 ion: Spe │ │ │ │ +00024360: 6369 616c 206f 626a 6563 7473 2e20 2020 cial objects. │ │ │ │ +00024370: 2020 286c 696e 6520 2032 3829 0a2a 2073 (line 28).* s │ │ │ │ +00024380: 7065 6369 616c 2061 7267 756d 656e 7420 pecial argument │ │ │ │ +00024390: 7375 6273 7469 7475 7469 6f6e 203c 313e substitution <1> │ │ │ │ +000243a0: 3a20 2020 2020 5370 6563 6961 6c73 2e20 : Specials. │ │ │ │ +000243b0: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ +000243c0: 2020 3130 290a 2a20 7370 6563 6961 6c20 10).* special │ │ │ │ +000243d0: 6f62 6a65 6374 3a20 2020 2020 2020 2020 object: │ │ │ │ +000243e0: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ +000243f0: 7065 6369 616c 206f 626a 6563 7473 2e20 pecial objects. │ │ │ │ +00024400: 2020 2020 286c 696e 6520 2020 3629 0a2a (line 6).* │ │ │ │ +00024410: 2073 7065 6369 616c 206f 626a 6563 7473 special objects │ │ │ │ +00024420: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +00024430: 2020 2020 2020 2020 4120 7465 6368 6e69 A techni │ │ │ │ +00024440: 6361 6c20 6472 6177 696e 672e 2028 6c69 cal drawing. (li │ │ │ │ +00024450: 6e65 2020 3338 290a 2a20 7370 6c69 7474 ne 38).* splitt │ │ │ │ +00024460: 696e 672c 206c 696e 6520 616e 6420 7375 ing, line and su │ │ │ │ +00024470: 7266 6163 653a 2020 2020 2020 2020 2020 rface: │ │ │ │ +00024480: 2048 656c 6c6f 2077 6f72 6c64 2e20 2020 Hello world. │ │ │ │ +00024490: 2020 2020 2020 286c 696e 6520 2031 3929 (line 19) │ │ │ │ +000244a0: 0a2a 2073 706c 6974 7469 6e67 2c20 6c69 .* splitting, li │ │ │ │ +000244b0: 6e65 2061 6e64 2073 7572 6661 6365 203c ne and surface < │ │ │ │ +000244c0: 313e 3a20 2020 2020 2020 4869 6464 656e 1>: Hidden │ │ │ │ +000244d0: 2073 7572 6661 6365 2072 656d 6f76 616c surface removal │ │ │ │ +000244e0: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ 000244f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00024500: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00024510: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00024520: 2020 2020 2020 2020 286c 696e 6520 2032 (line 2 │ │ │ │ -00024530: 3129 0a2a 2073 7562 7374 6974 7574 696f 1).* substitutio │ │ │ │ -00024540: 6e2c 2073 7065 6369 616c 3a20 2020 2020 n, special: │ │ │ │ -00024550: 2020 2020 2020 2020 2020 2020 5370 6563 Spec │ │ │ │ -00024560: 6961 6c20 6f62 6a65 6374 732e 2020 2020 ial objects. │ │ │ │ -00024570: 2028 6c69 6e65 2020 3238 290a 2a20 7375 (line 28).* su │ │ │ │ -00024580: 7266 6163 653a 2020 2020 2020 2020 2020 rface: │ │ │ │ -00024590: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000245a0: 2020 2020 2050 6f6c 796c 696e 6520 7377 Polyline sw │ │ │ │ -000245b0: 6565 7073 2e20 2020 2020 286c 696e 6520 eeps. (line │ │ │ │ -000245c0: 2020 3629 0a2a 2073 7765 6570 3a20 2020 6).* sweep: │ │ │ │ +00024520: 286c 696e 6520 2032 3129 0a2a 2073 7562 (line 21).* sub │ │ │ │ +00024530: 7374 6974 7574 696f 6e2c 2073 7065 6369 stitution, speci │ │ │ │ +00024540: 616c 3a20 2020 2020 2020 2020 2020 2020 al: │ │ │ │ +00024550: 2020 2020 5370 6563 6961 6c20 6f62 6a65 Special obje │ │ │ │ +00024560: 6374 732e 2020 2020 2028 6c69 6e65 2020 cts. (line │ │ │ │ +00024570: 3238 290a 2a20 7375 7266 6163 653a 2020 28).* surface: │ │ │ │ +00024580: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00024590: 2020 2020 2020 2020 2020 2020 2050 6f6c Pol │ │ │ │ +000245a0: 796c 696e 6520 7377 6565 7073 2e20 2020 yline sweeps. │ │ │ │ +000245b0: 2020 286c 696e 6520 2020 3629 0a2a 2073 (line 6).* s │ │ │ │ +000245c0: 7765 6570 3a20 2020 2020 2020 2020 2020 weep: │ │ │ │ 000245d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000245e0: 2020 2020 2020 2020 2020 2020 2020 5377 Sw │ │ │ │ -000245f0: 6570 7420 6f62 6a65 6374 732e 2020 2020 ept objects. │ │ │ │ -00024600: 2020 2028 6c69 6e65 2020 2036 290a 2a20 (line 6).* │ │ │ │ -00024610: 7377 6570 7420 626f 636b 3a20 2020 2020 swept bock: │ │ │ │ -00024620: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00024630: 2020 2020 2020 2053 7765 7074 2062 6c6f Swept blo │ │ │ │ -00024640: 636b 732e 2020 2020 2020 2020 286c 696e cks. (lin │ │ │ │ -00024650: 6520 2020 3629 0a2a 2073 7765 7074 206c e 6).* swept l │ │ │ │ -00024660: 696e 653a 2020 2020 2020 2020 2020 2020 ine: │ │ │ │ -00024670: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00024680: 506f 6c79 6c69 6e65 2073 7765 6570 732e Polyline sweeps. │ │ │ │ -00024690: 2020 2020 2028 6c69 6e65 2020 2036 290a (line 6). │ │ │ │ -000246a0: 2a20 7377 6570 7420 6c69 6e65 203c 313e * swept line <1> │ │ │ │ -000246b0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ -000246c0: 2020 2020 2020 2020 2053 7765 7074 206c Swept l │ │ │ │ -000246d0: 696e 6573 2e20 2020 2020 2020 2020 286c ines. (l │ │ │ │ -000246e0: 696e 6520 2020 3629 0a2a 2073 7765 7074 ine 6).* swept │ │ │ │ -000246f0: 206c 696e 6520 3c32 3e3a 2020 2020 2020 line <2>: │ │ │ │ -00024700: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00024710: 2020 4120 7465 6368 6e69 6361 6c20 6472 A technical dr │ │ │ │ -00024720: 6177 696e 672e 2028 6c69 6e65 2020 3230 awing. (line 20 │ │ │ │ -00024730: 290a 2a20 7377 6570 7420 6f62 6a65 6374 ).* swept object │ │ │ │ -00024740: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ -00024750: 2020 2020 2020 2020 2020 2053 7765 7074 Swept │ │ │ │ -00024760: 206f 626a 6563 7473 2e20 2020 2020 2020 objects. │ │ │ │ -00024770: 286c 696e 6520 2020 3629 0a2a 2073 7765 (line 6).* swe │ │ │ │ -00024780: 7074 206f 626a 6563 7420 3c31 3e3a 2020 pt object <1>: │ │ │ │ -00024790: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000247a0: 2020 2020 5377 6565 7073 2e20 2020 2020 Sweeps. │ │ │ │ -000247b0: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ -000247c0: 2039 290a 2a20 7377 6570 7420 706f 696e 9).* swept poin │ │ │ │ -000247d0: 743a 2020 2020 2020 2020 2020 2020 2020 t: │ │ │ │ -000247e0: 2020 2020 2020 2020 2020 2020 2053 7765 Swe │ │ │ │ -000247f0: 7074 206f 626a 6563 7473 2e20 2020 2020 pt objects. │ │ │ │ -00024800: 2020 286c 696e 6520 2031 3129 0a2a 2073 (line 11).* s │ │ │ │ -00024810: 7765 7074 2070 6f69 6e74 203c 313e 3a20 wept point <1>: │ │ │ │ -00024820: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00024830: 2020 2020 2020 5377 6570 7420 706f 696e Swept poin │ │ │ │ -00024840: 7473 2e20 2020 2020 2020 2028 6c69 6e65 ts. (line │ │ │ │ -00024850: 2020 2036 290a 2a20 7377 6570 7420 706f 6).* swept po │ │ │ │ -00024860: 6c79 676f 6e3a 2020 2020 2020 2020 2020 lygon: │ │ │ │ -00024870: 2020 2020 2020 2020 2020 2020 2020 2050 P │ │ │ │ -00024880: 6f6c 7967 6f6e 2073 7765 6570 732e 2020 olygon sweeps. │ │ │ │ -00024890: 2020 2020 286c 696e 6520 2020 3629 0a2a (line 6).* │ │ │ │ -000248a0: 2073 7765 7074 2070 6f6c 7967 6f6e 203c swept polygon < │ │ │ │ -000248b0: 313e 3a20 2020 2020 2020 2020 2020 2020 1>: │ │ │ │ -000248c0: 2020 2020 2020 2020 4120 6869 6572 6172 A hierar │ │ │ │ -000248d0: 6368 6963 616c 206d 6f64 656c 2e0a 2020 chical model.. │ │ │ │ +000245e0: 2020 2020 2020 5377 6570 7420 6f62 6a65 Swept obje │ │ │ │ +000245f0: 6374 732e 2020 2020 2020 2028 6c69 6e65 cts. (line │ │ │ │ +00024600: 2020 2036 290a 2a20 7377 6570 7420 626f 6).* swept bo │ │ │ │ +00024610: 636b 3a20 2020 2020 2020 2020 2020 2020 ck: │ │ │ │ +00024620: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ +00024630: 7765 7074 2062 6c6f 636b 732e 2020 2020 wept blocks. │ │ │ │ +00024640: 2020 2020 286c 696e 6520 2020 3629 0a2a (line 6).* │ │ │ │ +00024650: 2073 7765 7074 206c 696e 653a 2020 2020 swept line: │ │ │ │ +00024660: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00024670: 2020 2020 2020 2020 506f 6c79 6c69 6e65 Polyline │ │ │ │ +00024680: 2073 7765 6570 732e 2020 2020 2028 6c69 sweeps. (li │ │ │ │ +00024690: 6e65 2020 2036 290a 2a20 7377 6570 7420 ne 6).* swept │ │ │ │ +000246a0: 6c69 6e65 203c 313e 3a20 2020 2020 2020 line <1>: │ │ │ │ +000246b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +000246c0: 2053 7765 7074 206c 696e 6573 2e20 2020 Swept lines. │ │ │ │ +000246d0: 2020 2020 2020 286c 696e 6520 2020 3629 (line 6) │ │ │ │ +000246e0: 0a2a 2073 7765 7074 206c 696e 6520 3c32 .* swept line <2 │ │ │ │ +000246f0: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ +00024700: 2020 2020 2020 2020 2020 4120 7465 6368 A tech │ │ │ │ +00024710: 6e69 6361 6c20 6472 6177 696e 672e 2028 nical drawing. ( │ │ │ │ +00024720: 6c69 6e65 2020 3230 290a 2a20 7377 6570 line 20).* swep │ │ │ │ +00024730: 7420 6f62 6a65 6374 3a20 2020 2020 2020 t object: │ │ │ │ +00024740: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00024750: 2020 2053 7765 7074 206f 626a 6563 7473 Swept objects │ │ │ │ +00024760: 2e20 2020 2020 2020 286c 696e 6520 2020 . (line │ │ │ │ +00024770: 3629 0a2a 2073 7765 7074 206f 626a 6563 6).* swept objec │ │ │ │ +00024780: 7420 3c31 3e3a 2020 2020 2020 2020 2020 t <1>: │ │ │ │ +00024790: 2020 2020 2020 2020 2020 2020 5377 6565 Swee │ │ │ │ +000247a0: 7073 2e20 2020 2020 2020 2020 2020 2020 ps. │ │ │ │ +000247b0: 2028 6c69 6e65 2020 2039 290a 2a20 7377 (line 9).* sw │ │ │ │ +000247c0: 6570 7420 706f 696e 743a 2020 2020 2020 ept point: │ │ │ │ +000247d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +000247e0: 2020 2020 2053 7765 7074 206f 626a 6563 Swept objec │ │ │ │ +000247f0: 7473 2e20 2020 2020 2020 286c 696e 6520 ts. (line │ │ │ │ +00024800: 2031 3129 0a2a 2073 7765 7074 2070 6f69 11).* swept poi │ │ │ │ +00024810: 6e74 203c 313e 3a20 2020 2020 2020 2020 nt <1>: │ │ │ │ +00024820: 2020 2020 2020 2020 2020 2020 2020 5377 Sw │ │ │ │ +00024830: 6570 7420 706f 696e 7473 2e20 2020 2020 ept points. │ │ │ │ +00024840: 2020 2028 6c69 6e65 2020 2036 290a 2a20 (line 6).* │ │ │ │ +00024850: 7377 6570 7420 706f 6c79 676f 6e3a 2020 swept polygon: │ │ │ │ +00024860: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00024870: 2020 2020 2020 2050 6f6c 7967 6f6e 2073 Polygon s │ │ │ │ +00024880: 7765 6570 732e 2020 2020 2020 286c 696e weeps. (lin │ │ │ │ +00024890: 6520 2020 3629 0a2a 2073 7765 7074 2070 e 6).* swept p │ │ │ │ +000248a0: 6f6c 7967 6f6e 203c 313e 3a20 2020 2020 olygon <1>: │ │ │ │ +000248b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +000248c0: 4120 6869 6572 6172 6368 6963 616c 206d A hierarchical m │ │ │ │ +000248d0: 6f64 656c 2e0a 2020 2020 2020 2020 2020 odel.. │ │ │ │ 000248e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 000248f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00024900: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00024910: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ -00024920: 6520 3132 3229 0a2a 2074 6167 2064 6566 e 122).* tag def │ │ │ │ -00024930: 696e 6974 696f 6e3a 2020 2020 2020 2020 inition: │ │ │ │ -00024940: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00024950: 4465 6669 6e69 7469 6f6e 732e 2020 2020 Definitions. │ │ │ │ -00024960: 2020 2020 2028 6c69 6e65 2020 3138 290a (line 18). │ │ │ │ -00024970: 2a20 7461 6720 6465 6669 6e69 7469 6f6e * tag definition │ │ │ │ -00024980: 203c 313e 3a20 2020 2020 2020 2020 2020 <1>: │ │ │ │ -00024990: 2020 2020 2020 2020 2046 6f72 6d73 206f Forms o │ │ │ │ -000249a0: 6620 6465 6669 6e69 7469 6f6e 732e 0a20 f definitions.. │ │ │ │ +00024910: 2020 2020 286c 696e 6520 3132 3229 0a2a (line 122).* │ │ │ │ +00024920: 2074 6167 2064 6566 696e 6974 696f 6e3a tag definition: │ │ │ │ +00024930: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00024940: 2020 2020 2020 2020 4465 6669 6e69 7469 Definiti │ │ │ │ +00024950: 6f6e 732e 2020 2020 2020 2020 2028 6c69 ons. (li │ │ │ │ +00024960: 6e65 2020 3138 290a 2a20 7461 6720 6465 ne 18).* tag de │ │ │ │ +00024970: 6669 6e69 7469 6f6e 203c 313e 3a20 2020 finition <1>: │ │ │ │ +00024980: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00024990: 2046 6f72 6d73 206f 6620 6465 6669 6e69 Forms of defini │ │ │ │ +000249a0: 7469 6f6e 732e 0a20 2020 2020 2020 2020 tions.. │ │ │ │ 000249b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 000249c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 000249d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000249e0: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ -000249f0: 6e65 2020 2037 290a 2a20 7461 6720 6465 ne 7).* tag de │ │ │ │ -00024a00: 6669 6e69 7469 6f6e 203c 323e 3a20 2020 finition <2>: │ │ │ │ -00024a10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00024a20: 2043 6f6d 6d61 6e64 206c 696e 652e 2020 Command line. │ │ │ │ -00024a30: 2020 2020 2020 286c 696e 6520 2035 3329 (line 53) │ │ │ │ -00024a40: 0a2a 2074 6167 2072 6566 6572 656e 6365 .* tag reference │ │ │ │ -00024a50: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ -00024a60: 2020 2020 2020 2020 2020 466f 726d 7320 Forms │ │ │ │ -00024a70: 6f66 2064 6566 696e 6974 696f 6e73 2e0a of definitions.. │ │ │ │ +000249e0: 2020 2020 2028 6c69 6e65 2020 2037 290a (line 7). │ │ │ │ +000249f0: 2a20 7461 6720 6465 6669 6e69 7469 6f6e * tag definition │ │ │ │ +00024a00: 203c 323e 3a20 2020 2020 2020 2020 2020 <2>: │ │ │ │ +00024a10: 2020 2020 2020 2020 2043 6f6d 6d61 6e64 Command │ │ │ │ +00024a20: 206c 696e 652e 2020 2020 2020 2020 286c line. (l │ │ │ │ +00024a30: 696e 6520 2035 3329 0a2a 2074 6167 2072 ine 53).* tag r │ │ │ │ +00024a40: 6566 6572 656e 6365 3a20 2020 2020 2020 eference: │ │ │ │ +00024a50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00024a60: 2020 466f 726d 7320 6f66 2064 6566 696e Forms of defin │ │ │ │ +00024a70: 6974 696f 6e73 2e0a 2020 2020 2020 2020 itions.. │ │ │ │ 00024a80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00024a90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00024aa0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00024ab0: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ -00024ac0: 696e 6520 2032 3029 0a2a 2074 6167 2072 ine 20).* tag r │ │ │ │ -00024ad0: 6566 6572 656e 6365 203c 313e 3a20 2020 eference <1>: │ │ │ │ -00024ae0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00024af0: 2020 466f 726d 7320 6f66 2072 6566 6572 Forms of refer │ │ │ │ -00024b00: 656e 6365 732e 2028 6c69 6e65 2020 3139 ences. (line 19 │ │ │ │ -00024b10: 290a 2a20 7465 6d70 6c61 7465 2c20 646f ).* template, do │ │ │ │ -00024b20: 6375 6d65 6e74 3a20 2020 2020 2020 2020 cument: │ │ │ │ -00024b30: 2020 2020 2020 2020 2020 2048 656c 6c6f Hello │ │ │ │ -00024b40: 2077 6f72 6c64 2e20 2020 2020 2020 2020 world. │ │ │ │ -00024b50: 286c 696e 6520 2033 3229 0a2a 2074 656d (line 32).* tem │ │ │ │ -00024b60: 706c 6174 652c 2064 6f63 756d 656e 7420 plate, document │ │ │ │ -00024b70: 3c31 3e3a 2020 2020 2020 2020 2020 2020 <1>: │ │ │ │ -00024b80: 2020 2020 436f 6d6d 616e 6420 6c69 6e65 Command line │ │ │ │ -00024b90: 2e20 2020 2020 2020 2028 6c69 6e65 2020 . (line │ │ │ │ -00024ba0: 3336 290a 2a20 7465 7472 6168 6564 726f 36).* tetrahedro │ │ │ │ -00024bb0: 6e3a 2020 2020 2020 2020 2020 2020 2020 n: │ │ │ │ -00024bc0: 2020 2020 2020 2020 2020 2020 2044 7261 Dra │ │ │ │ -00024bd0: 7769 6e67 2061 2073 6f6c 6964 2e20 2020 wing a solid. │ │ │ │ -00024be0: 2020 286c 696e 6520 2020 3929 0a2a 2074 (line 9).* t │ │ │ │ -00024bf0: 6963 6b20 6f70 6572 6174 6f72 2028 2729 ick operator (') │ │ │ │ -00024c00: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ -00024c10: 2020 2020 2020 4166 6669 6e65 2061 7269 Affine ari │ │ │ │ -00024c20: 7468 6d65 7469 632e 2020 2028 6c69 6e65 thmetic. (line │ │ │ │ -00024c30: 2020 3337 290a 2a20 7469 636b 206f 7065 37).* tick ope │ │ │ │ -00024c40: 7261 746f 7220 2827 2920 3c31 3e3a 2020 rator (') <1>: │ │ │ │ -00024c50: 2020 2020 2020 2020 2020 2020 2020 2054 T │ │ │ │ -00024c60: 776f 2d6f 7065 7261 6e64 2028 6269 6e61 wo-operand (bina │ │ │ │ -00024c70: 7279 2920 666f 726d 732e 0a20 2020 2020 ry) forms.. │ │ │ │ +00024ab0: 2020 2020 2020 286c 696e 6520 2032 3029 (line 20) │ │ │ │ +00024ac0: 0a2a 2074 6167 2072 6566 6572 656e 6365 .* tag reference │ │ │ │ +00024ad0: 203c 313e 3a20 2020 2020 2020 2020 2020 <1>: │ │ │ │ +00024ae0: 2020 2020 2020 2020 2020 466f 726d 7320 Forms │ │ │ │ +00024af0: 6f66 2072 6566 6572 656e 6365 732e 2028 of references. ( │ │ │ │ +00024b00: 6c69 6e65 2020 3139 290a 2a20 7465 6d70 line 19).* temp │ │ │ │ +00024b10: 6c61 7465 2c20 646f 6375 6d65 6e74 3a20 late, document: │ │ │ │ +00024b20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00024b30: 2020 2048 656c 6c6f 2077 6f72 6c64 2e20 Hello world. │ │ │ │ +00024b40: 2020 2020 2020 2020 286c 696e 6520 2033 (line 3 │ │ │ │ +00024b50: 3229 0a2a 2074 656d 706c 6174 652c 2064 2).* template, d │ │ │ │ +00024b60: 6f63 756d 656e 7420 3c31 3e3a 2020 2020 ocument <1>: │ │ │ │ +00024b70: 2020 2020 2020 2020 2020 2020 436f 6d6d Comm │ │ │ │ +00024b80: 616e 6420 6c69 6e65 2e20 2020 2020 2020 and line. │ │ │ │ +00024b90: 2028 6c69 6e65 2020 3336 290a 2a20 7465 (line 36).* te │ │ │ │ +00024ba0: 7472 6168 6564 726f 6e3a 2020 2020 2020 trahedron: │ │ │ │ +00024bb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00024bc0: 2020 2020 2044 7261 7769 6e67 2061 2073 Drawing a s │ │ │ │ +00024bd0: 6f6c 6964 2e20 2020 2020 286c 696e 6520 olid. (line │ │ │ │ +00024be0: 2020 3929 0a2a 2074 6963 6b20 6f70 6572 9).* tick oper │ │ │ │ +00024bf0: 6174 6f72 2028 2729 3a20 2020 2020 2020 ator ('): │ │ │ │ +00024c00: 2020 2020 2020 2020 2020 2020 2020 4166 Af │ │ │ │ +00024c10: 6669 6e65 2061 7269 7468 6d65 7469 632e fine arithmetic. │ │ │ │ +00024c20: 2020 2028 6c69 6e65 2020 3337 290a 2a20 (line 37).* │ │ │ │ +00024c30: 7469 636b 206f 7065 7261 746f 7220 2827 tick operator (' │ │ │ │ +00024c40: 2920 3c31 3e3a 2020 2020 2020 2020 2020 ) <1>: │ │ │ │ +00024c50: 2020 2020 2020 2054 776f 2d6f 7065 7261 Two-opera │ │ │ │ +00024c60: 6e64 2028 6269 6e61 7279 2920 666f 726d nd (binary) form │ │ │ │ +00024c70: 732e 0a20 2020 2020 2020 2020 2020 2020 s.. │ │ │ │ 00024c80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00024c90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00024ca0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00024cb0: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ -00024cc0: 3431 290a 2a20 5469 6b5a 2f50 4746 3a20 41).* TikZ/PGF: │ │ │ │ +00024cb0: 2028 6c69 6e65 2020 3431 290a 2a20 5469 (line 41).* Ti │ │ │ │ +00024cc0: 6b5a 2f50 4746 3a20 2020 2020 2020 2020 kZ/PGF: │ │ │ │ 00024cd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00024ce0: 2020 2020 2020 2020 2020 2020 2041 626f Abo │ │ │ │ -00024cf0: 7574 2073 6b65 7463 682e 2020 2020 2020 ut sketch. │ │ │ │ -00024d00: 2020 286c 696e 6520 2032 3229 0a2a 2074 (line 22).* t │ │ │ │ -00024d10: 6f72 6f69 643a 2020 2020 2020 2020 2020 oroid: │ │ │ │ -00024d20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00024d30: 2020 2020 2020 4e65 7374 6564 2073 7765 Nested swe │ │ │ │ -00024d40: 6570 732e 2020 2020 2020 2028 6c69 6e65 eps. (line │ │ │ │ -00024d50: 2020 2038 290a 2a20 7472 616e 7366 6f72 8).* transfor │ │ │ │ -00024d60: 6d3a 2020 2020 2020 2020 2020 2020 2020 m: │ │ │ │ -00024d70: 2020 2020 2020 2020 2020 2020 2020 204f O │ │ │ │ -00024d80: 626a 6563 7420 7472 616e 7366 6f72 6d73 bject transforms │ │ │ │ -00024d90: 2e20 2020 286c 696e 6520 2020 3629 0a2a . (line 6).* │ │ │ │ -00024da0: 2074 7261 6e73 666f 726d 203c 313e 3a20 transform <1>: │ │ │ │ +00024ce0: 2020 2020 2041 626f 7574 2073 6b65 7463 About sketc │ │ │ │ +00024cf0: 682e 2020 2020 2020 2020 286c 696e 6520 h. (line │ │ │ │ +00024d00: 2032 3229 0a2a 2074 6f72 6f69 643a 2020 22).* toroid: │ │ │ │ +00024d10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00024d20: 2020 2020 2020 2020 2020 2020 2020 4e65 Ne │ │ │ │ +00024d30: 7374 6564 2073 7765 6570 732e 2020 2020 sted sweeps. │ │ │ │ +00024d40: 2020 2028 6c69 6e65 2020 2038 290a 2a20 (line 8).* │ │ │ │ +00024d50: 7472 616e 7366 6f72 6d3a 2020 2020 2020 transform: │ │ │ │ +00024d60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00024d70: 2020 2020 2020 204f 626a 6563 7420 7472 Object tr │ │ │ │ +00024d80: 616e 7366 6f72 6d73 2e20 2020 286c 696e ansforms. (lin │ │ │ │ +00024d90: 6520 2020 3629 0a2a 2074 7261 6e73 666f e 6).* transfo │ │ │ │ +00024da0: 726d 203c 313e 3a20 2020 2020 2020 2020 rm <1>: │ │ │ │ 00024db0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00024dc0: 2020 2020 2020 2020 5477 6f2d 6f70 6572 Two-oper │ │ │ │ -00024dd0: 616e 6420 2862 696e 6172 7929 2066 6f72 and (binary) for │ │ │ │ -00024de0: 6d73 2e0a 2020 2020 2020 2020 2020 2020 ms.. │ │ │ │ +00024dc0: 5477 6f2d 6f70 6572 616e 6420 2862 696e Two-operand (bin │ │ │ │ +00024dd0: 6172 7929 2066 6f72 6d73 2e0a 2020 2020 ary) forms.. │ │ │ │ +00024de0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00024df0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00024e00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00024e10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00024e20: 2020 286c 696e 6520 2032 3829 0a2a 2074 (line 28).* t │ │ │ │ -00024e30: 7261 6e73 666f 726d 203c 323e 3a20 2020 ransform <2>: │ │ │ │ -00024e40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00024e50: 2020 2020 2020 5377 6565 7073 2e20 2020 Sweeps. │ │ │ │ -00024e60: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ -00024e70: 2020 3131 290a 2a20 7472 616e 7366 6f72 11).* transfor │ │ │ │ -00024e80: 6d20 3c33 3e3a 2020 2020 2020 2020 2020 m <3>: │ │ │ │ -00024e90: 2020 2020 2020 2020 2020 2020 2020 2052 R │ │ │ │ -00024ea0: 6570 6561 7473 2e20 2020 2020 2020 2020 epeats. │ │ │ │ -00024eb0: 2020 2020 286c 696e 6520 2020 3929 0a2a (line 9).* │ │ │ │ -00024ec0: 2074 7261 6e73 666f 726d 203c 343e 3a20 transform <4>: │ │ │ │ +00024e10: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ +00024e20: 2032 3829 0a2a 2074 7261 6e73 666f 726d 28).* transform │ │ │ │ +00024e30: 203c 323e 3a20 2020 2020 2020 2020 2020 <2>: │ │ │ │ +00024e40: 2020 2020 2020 2020 2020 2020 2020 5377 Sw │ │ │ │ +00024e50: 6565 7073 2e20 2020 2020 2020 2020 2020 eeps. │ │ │ │ +00024e60: 2020 2028 6c69 6e65 2020 3131 290a 2a20 (line 11).* │ │ │ │ +00024e70: 7472 616e 7366 6f72 6d20 3c33 3e3a 2020 transform <3>: │ │ │ │ +00024e80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00024e90: 2020 2020 2020 2052 6570 6561 7473 2e20 Repeats. │ │ │ │ +00024ea0: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ +00024eb0: 6520 2020 3929 0a2a 2074 7261 6e73 666f e 9).* transfo │ │ │ │ +00024ec0: 726d 203c 343e 3a20 2020 2020 2020 2020 rm <4>: │ │ │ │ 00024ed0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00024ee0: 2020 2020 2020 2020 4f76 6572 7669 6577 Overview │ │ │ │ -00024ef0: 2e20 2020 2020 2020 2020 2020 2028 6c69 . (li │ │ │ │ -00024f00: 6e65 2020 2037 290a 2a20 7472 616e 7366 ne 7).* transf │ │ │ │ -00024f10: 6f72 6d20 6465 6669 6e69 7469 6f6e 3a20 orm definition: │ │ │ │ -00024f20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00024f30: 204f 7665 7276 6965 772e 2020 2020 2020 Overview. │ │ │ │ -00024f40: 2020 2020 2020 286c 696e 6520 2033 3529 (line 35) │ │ │ │ -00024f50: 0a2a 2074 7261 6e73 666f 726d 206c 6974 .* transform lit │ │ │ │ -00024f60: 6572 616c 3a20 2020 2020 2020 2020 2020 eral: │ │ │ │ -00024f70: 2020 2020 2020 2020 2020 5472 616e 7366 Transf │ │ │ │ -00024f80: 6f72 6d20 6c69 7465 7261 6c73 2e20 2028 orm literals. ( │ │ │ │ -00024f90: 6c69 6e65 2020 2036 290a 2a20 7472 616e line 6).* tran │ │ │ │ -00024fa0: 7366 6f72 6d20 7265 6665 7265 6e63 653a sform reference: │ │ │ │ -00024fb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00024fc0: 2020 2046 6f72 6d73 206f 6620 7265 6665 Forms of refe │ │ │ │ -00024fd0: 7265 6e63 6573 2e20 286c 696e 6520 2031 rences. (line 1 │ │ │ │ -00024fe0: 3629 0a2a 2074 7261 6e73 666f 726d 2072 6).* transform r │ │ │ │ -00024ff0: 6566 6572 656e 6365 203c 313e 3a20 2020 eference <1>: │ │ │ │ -00025000: 2020 2020 2020 2020 2020 2020 4f76 6572 Over │ │ │ │ -00025010: 7669 6577 2e20 2020 2020 2020 2020 2020 view. │ │ │ │ -00025020: 2028 6c69 6e65 2020 3335 290a 2a20 7472 (line 35).* tr │ │ │ │ -00025030: 616e 7366 6f72 6d2c 2064 6972 6563 743a ansform, direct: │ │ │ │ -00025040: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00025050: 2020 2020 2054 7261 6e73 666f 726d 206c Transform l │ │ │ │ -00025060: 6974 6572 616c 732e 2020 286c 696e 6520 iterals. (line │ │ │ │ -00025070: 2034 3729 0a2a 2074 7261 6e73 666f 726d 47).* transform │ │ │ │ -00025080: 2c20 6469 7265 6374 203c 313e 3a20 2020 , direct <1>: │ │ │ │ -00025090: 2020 2020 2020 2020 2020 2020 2020 5472 Tr │ │ │ │ -000250a0: 616e 7366 6f72 6d20 6c69 7465 7261 6c73 ansform literals │ │ │ │ -000250b0: 2e20 2028 6c69 6e65 2020 3533 290a 2a20 . (line 53).* │ │ │ │ -000250c0: 7472 616e 7366 6f72 6d2c 2072 6f74 6174 transform, rotat │ │ │ │ -000250d0: 696f 6e3a 2020 2020 2020 2020 2020 2020 ion: │ │ │ │ -000250e0: 2020 2020 2020 2054 7261 6e73 666f 726d Transform │ │ │ │ -000250f0: 206c 6974 6572 616c 732e 2020 286c 696e literals. (lin │ │ │ │ -00025100: 6520 2031 3029 0a2a 2074 7261 6e73 666f e 10).* transfo │ │ │ │ -00025110: 726d 2c20 726f 7461 7469 6f6e 203c 313e rm, rotation <1> │ │ │ │ -00025120: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ -00025130: 4120 6869 6572 6172 6368 6963 616c 206d A hierarchical m │ │ │ │ -00025140: 6f64 656c 2e0a 2020 2020 2020 2020 2020 odel.. │ │ │ │ +00024ee0: 4f76 6572 7669 6577 2e20 2020 2020 2020 Overview. │ │ │ │ +00024ef0: 2020 2020 2028 6c69 6e65 2020 2037 290a (line 7). │ │ │ │ +00024f00: 2a20 7472 616e 7366 6f72 6d20 6465 6669 * transform defi │ │ │ │ +00024f10: 6e69 7469 6f6e 3a20 2020 2020 2020 2020 nition: │ │ │ │ +00024f20: 2020 2020 2020 2020 204f 7665 7276 6965 Overvie │ │ │ │ +00024f30: 772e 2020 2020 2020 2020 2020 2020 286c w. (l │ │ │ │ +00024f40: 696e 6520 2033 3529 0a2a 2074 7261 6e73 ine 35).* trans │ │ │ │ +00024f50: 666f 726d 206c 6974 6572 616c 3a20 2020 form literal: │ │ │ │ +00024f60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00024f70: 2020 5472 616e 7366 6f72 6d20 6c69 7465 Transform lite │ │ │ │ +00024f80: 7261 6c73 2e20 2028 6c69 6e65 2020 2036 rals. (line 6 │ │ │ │ +00024f90: 290a 2a20 7472 616e 7366 6f72 6d20 7265 ).* transform re │ │ │ │ +00024fa0: 6665 7265 6e63 653a 2020 2020 2020 2020 ference: │ │ │ │ +00024fb0: 2020 2020 2020 2020 2020 2046 6f72 6d73 Forms │ │ │ │ +00024fc0: 206f 6620 7265 6665 7265 6e63 6573 2e20 of references. │ │ │ │ +00024fd0: 286c 696e 6520 2031 3629 0a2a 2074 7261 (line 16).* tra │ │ │ │ +00024fe0: 6e73 666f 726d 2072 6566 6572 656e 6365 nsform reference │ │ │ │ +00024ff0: 203c 313e 3a20 2020 2020 2020 2020 2020 <1>: │ │ │ │ +00025000: 2020 2020 4f76 6572 7669 6577 2e20 2020 Overview. │ │ │ │ +00025010: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ +00025020: 3335 290a 2a20 7472 616e 7366 6f72 6d2c 35).* transform, │ │ │ │ +00025030: 2064 6972 6563 743a 2020 2020 2020 2020 direct: │ │ │ │ +00025040: 2020 2020 2020 2020 2020 2020 2054 7261 Tra │ │ │ │ +00025050: 6e73 666f 726d 206c 6974 6572 616c 732e nsform literals. │ │ │ │ +00025060: 2020 286c 696e 6520 2034 3729 0a2a 2074 (line 47).* t │ │ │ │ +00025070: 7261 6e73 666f 726d 2c20 6469 7265 6374 ransform, direct │ │ │ │ +00025080: 203c 313e 3a20 2020 2020 2020 2020 2020 <1>: │ │ │ │ +00025090: 2020 2020 2020 5472 616e 7366 6f72 6d20 Transform │ │ │ │ +000250a0: 6c69 7465 7261 6c73 2e20 2028 6c69 6e65 literals. (line │ │ │ │ +000250b0: 2020 3533 290a 2a20 7472 616e 7366 6f72 53).* transfor │ │ │ │ +000250c0: 6d2c 2072 6f74 6174 696f 6e3a 2020 2020 m, rotation: │ │ │ │ +000250d0: 2020 2020 2020 2020 2020 2020 2020 2054 T │ │ │ │ +000250e0: 7261 6e73 666f 726d 206c 6974 6572 616c ransform literal │ │ │ │ +000250f0: 732e 2020 286c 696e 6520 2031 3029 0a2a s. (line 10).* │ │ │ │ +00025100: 2074 7261 6e73 666f 726d 2c20 726f 7461 transform, rota │ │ │ │ +00025110: 7469 6f6e 203c 313e 3a20 2020 2020 2020 tion <1>: │ │ │ │ +00025120: 2020 2020 2020 2020 4120 6869 6572 6172 A hierar │ │ │ │ +00025130: 6368 6963 616c 206d 6f64 656c 2e0a 2020 chical model.. │ │ │ │ +00025140: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00025150: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00025160: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00025170: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00025180: 2020 2020 286c 696e 6520 2034 3829 0a2a (line 48).* │ │ │ │ -00025190: 2074 7261 6e73 666f 726d 2c20 726f 7461 transform, rota │ │ │ │ -000251a0: 7469 6f6e 203c 323e 3a20 2020 2020 2020 tion <2>: │ │ │ │ -000251b0: 2020 2020 2020 2020 4120 6869 6572 6172 A hierar │ │ │ │ -000251c0: 6368 6963 616c 206d 6f64 656c 2e0a 2020 chical model.. │ │ │ │ +00025170: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ +00025180: 6520 2034 3829 0a2a 2074 7261 6e73 666f e 48).* transfo │ │ │ │ +00025190: 726d 2c20 726f 7461 7469 6f6e 203c 323e rm, rotation <2> │ │ │ │ +000251a0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +000251b0: 4120 6869 6572 6172 6368 6963 616c 206d A hierarchical m │ │ │ │ +000251c0: 6f64 656c 2e0a 2020 2020 2020 2020 2020 odel.. │ │ │ │ 000251d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 000251e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 000251f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00025200: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ -00025210: 6520 2035 3829 0a2a 2074 7261 6e73 666f e 58).* transfo │ │ │ │ -00025220: 726d 2c20 726f 7461 7469 6f6e 203c 333e rm, rotation <3> │ │ │ │ -00025230: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ -00025240: 4120 6869 6572 6172 6368 6963 616c 206d A hierarchical m │ │ │ │ -00025250: 6f64 656c 2e0a 2020 2020 2020 2020 2020 odel.. │ │ │ │ +00025200: 2020 2020 286c 696e 6520 2035 3829 0a2a (line 58).* │ │ │ │ +00025210: 2074 7261 6e73 666f 726d 2c20 726f 7461 transform, rota │ │ │ │ +00025220: 7469 6f6e 203c 333e 3a20 2020 2020 2020 tion <3>: │ │ │ │ +00025230: 2020 2020 2020 2020 4120 6869 6572 6172 A hierar │ │ │ │ +00025240: 6368 6963 616c 206d 6f64 656c 2e0a 2020 chical model.. │ │ │ │ +00025250: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00025260: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00025270: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00025280: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00025290: 2020 2020 286c 696e 6520 2037 3829 0a2a (line 78).* │ │ │ │ -000252a0: 2074 7261 6e73 666f 726d 2c20 726f 7461 transform, rota │ │ │ │ -000252b0: 7469 6f6e 203c 343e 3a20 2020 2020 2020 tion <4>: │ │ │ │ -000252c0: 2020 2020 2020 2020 4120 6869 6572 6172 A hierar │ │ │ │ -000252d0: 6368 6963 616c 206d 6f64 656c 2e0a 2020 chical model.. │ │ │ │ +00025280: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ +00025290: 6520 2037 3829 0a2a 2074 7261 6e73 666f e 78).* transfo │ │ │ │ +000252a0: 726d 2c20 726f 7461 7469 6f6e 203c 343e rm, rotation <4> │ │ │ │ +000252b0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ +000252c0: 4120 6869 6572 6172 6368 6963 616c 206d A hierarchical m │ │ │ │ +000252d0: 6f64 656c 2e0a 2020 2020 2020 2020 2020 odel.. │ │ │ │ 000252e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 000252f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00025300: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00025310: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ -00025320: 6520 2039 3329 0a2a 2074 7261 6e73 666f e 93).* transfo │ │ │ │ -00025330: 726d 2c20 7363 616c 653a 2020 2020 2020 rm, scale: │ │ │ │ -00025340: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00025350: 5472 616e 7366 6f72 6d20 6c69 7465 7261 Transform litera │ │ │ │ -00025360: 6c73 2e20 2028 6c69 6e65 2020 3136 290a ls. (line 16). │ │ │ │ -00025370: 2a20 7472 616e 7366 6f72 6d2c 2073 6361 * transform, sca │ │ │ │ -00025380: 6c65 203c 313e 3a20 2020 2020 2020 2020 le <1>: │ │ │ │ -00025390: 2020 2020 2020 2020 2054 7261 6e73 666f Transfo │ │ │ │ -000253a0: 726d 206c 6974 6572 616c 732e 2020 286c rm literals. (l │ │ │ │ -000253b0: 696e 6520 2031 3729 0a2a 2074 7261 6e73 ine 17).* trans │ │ │ │ -000253c0: 666f 726d 2c20 7472 616e 736c 6174 696f form, translatio │ │ │ │ -000253d0: 6e3a 2020 2020 2020 2020 2020 2020 2020 n: │ │ │ │ -000253e0: 2020 4f62 6a65 6374 2074 7261 6e73 666f Object transfo │ │ │ │ -000253f0: 726d 732e 2020 2028 6c69 6e65 2020 3437 rms. (line 47 │ │ │ │ -00025400: 290a 2a20 7472 616e 7366 6f72 6d2c 2074 ).* transform, t │ │ │ │ -00025410: 7261 6e73 6c61 7469 6f6e 203c 313e 3a20 ranslation <1>: │ │ │ │ -00025420: 2020 2020 2020 2020 2020 2054 7261 6e73 Trans │ │ │ │ -00025430: 666f 726d 206c 6974 6572 616c 732e 2020 form literals. │ │ │ │ -00025440: 286c 696e 6520 2031 3529 0a2a 2074 7261 (line 15).* tra │ │ │ │ -00025450: 6e73 666f 726d 2c20 7472 616e 736c 6174 nsform, translat │ │ │ │ -00025460: 696f 6e20 3c32 3e3a 2020 2020 2020 2020 ion <2>: │ │ │ │ -00025470: 2020 2020 4120 6869 6572 6172 6368 6963 A hierarchic │ │ │ │ -00025480: 616c 206d 6f64 656c 2e0a 2020 2020 2020 al model.. │ │ │ │ +00025310: 2020 2020 286c 696e 6520 2039 3329 0a2a (line 93).* │ │ │ │ +00025320: 2074 7261 6e73 666f 726d 2c20 7363 616c transform, scal │ │ │ │ +00025330: 653a 2020 2020 2020 2020 2020 2020 2020 e: │ │ │ │ +00025340: 2020 2020 2020 2020 5472 616e 7366 6f72 Transfor │ │ │ │ +00025350: 6d20 6c69 7465 7261 6c73 2e20 2028 6c69 m literals. (li │ │ │ │ +00025360: 6e65 2020 3136 290a 2a20 7472 616e 7366 ne 16).* transf │ │ │ │ +00025370: 6f72 6d2c 2073 6361 6c65 203c 313e 3a20 orm, scale <1>: │ │ │ │ +00025380: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00025390: 2054 7261 6e73 666f 726d 206c 6974 6572 Transform liter │ │ │ │ +000253a0: 616c 732e 2020 286c 696e 6520 2031 3729 als. (line 17) │ │ │ │ +000253b0: 0a2a 2074 7261 6e73 666f 726d 2c20 7472 .* transform, tr │ │ │ │ +000253c0: 616e 736c 6174 696f 6e3a 2020 2020 2020 anslation: │ │ │ │ +000253d0: 2020 2020 2020 2020 2020 4f62 6a65 6374 Object │ │ │ │ +000253e0: 2074 7261 6e73 666f 726d 732e 2020 2028 transforms. ( │ │ │ │ +000253f0: 6c69 6e65 2020 3437 290a 2a20 7472 616e line 47).* tran │ │ │ │ +00025400: 7366 6f72 6d2c 2074 7261 6e73 6c61 7469 sform, translati │ │ │ │ +00025410: 6f6e 203c 313e 3a20 2020 2020 2020 2020 on <1>: │ │ │ │ +00025420: 2020 2054 7261 6e73 666f 726d 206c 6974 Transform lit │ │ │ │ +00025430: 6572 616c 732e 2020 286c 696e 6520 2031 erals. (line 1 │ │ │ │ +00025440: 3529 0a2a 2074 7261 6e73 666f 726d 2c20 5).* transform, │ │ │ │ +00025450: 7472 616e 736c 6174 696f 6e20 3c32 3e3a translation <2>: │ │ │ │ +00025460: 2020 2020 2020 2020 2020 2020 4120 6869 A hi │ │ │ │ +00025470: 6572 6172 6368 6963 616c 206d 6f64 656c erarchical model │ │ │ │ +00025480: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ 00025490: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 000254a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 000254b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000254c0: 2020 2020 2020 2020 286c 696e 6520 2034 (line 4 │ │ │ │ -000254d0: 3729 0a2a 2074 7261 6e73 666f 726d 2c20 7).* transform, │ │ │ │ -000254e0: 7669 6577 3a20 2020 2020 2020 2020 2020 view: │ │ │ │ -000254f0: 2020 2020 2020 2020 2020 2020 5472 616e Tran │ │ │ │ -00025500: 7366 6f72 6d20 6c69 7465 7261 6c73 2e20 sform literals. │ │ │ │ -00025510: 2028 6c69 6e65 2020 3235 290a 2a20 7472 (line 25).* tr │ │ │ │ -00025520: 616e 7366 6f72 6d2c 2076 6965 7720 3c31 ansform, view <1 │ │ │ │ -00025530: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ -00025540: 2020 2020 2054 7261 6e73 666f 726d 206c Transform l │ │ │ │ -00025550: 6974 6572 616c 732e 2020 286c 696e 6520 iterals. (line │ │ │ │ -00025560: 2033 3529 0a2a 2074 7261 6e73 6c61 7469 35).* translati │ │ │ │ -00025570: 6f6e 2074 7261 6e73 666f 726d 3a20 2020 on transform: │ │ │ │ -00025580: 2020 2020 2020 2020 2020 2020 2020 4f62 Ob │ │ │ │ -00025590: 6a65 6374 2074 7261 6e73 666f 726d 732e ject transforms. │ │ │ │ -000255a0: 2020 2028 6c69 6e65 2020 3437 290a 2a20 (line 47).* │ │ │ │ -000255b0: 7472 616e 736c 6174 696f 6e20 7472 616e translation tran │ │ │ │ -000255c0: 7366 6f72 6d20 3c31 3e3a 2020 2020 2020 sform <1>: │ │ │ │ -000255d0: 2020 2020 2020 2054 7261 6e73 666f 726d Transform │ │ │ │ -000255e0: 206c 6974 6572 616c 732e 2020 286c 696e literals. (lin │ │ │ │ -000255f0: 6520 2031 3529 0a2a 2074 7261 6e73 6c61 e 15).* transla │ │ │ │ -00025600: 7469 6f6e 2074 7261 6e73 666f 726d 203c tion transform < │ │ │ │ -00025610: 323e 3a20 2020 2020 2020 2020 2020 2020 2>: │ │ │ │ -00025620: 4120 6869 6572 6172 6368 6963 616c 206d A hierarchical m │ │ │ │ -00025630: 6f64 656c 2e0a 2020 2020 2020 2020 2020 odel.. │ │ │ │ +000254c0: 286c 696e 6520 2034 3729 0a2a 2074 7261 (line 47).* tra │ │ │ │ +000254d0: 6e73 666f 726d 2c20 7669 6577 3a20 2020 nsform, view: │ │ │ │ +000254e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +000254f0: 2020 2020 5472 616e 7366 6f72 6d20 6c69 Transform li │ │ │ │ +00025500: 7465 7261 6c73 2e20 2028 6c69 6e65 2020 terals. (line │ │ │ │ +00025510: 3235 290a 2a20 7472 616e 7366 6f72 6d2c 25).* transform, │ │ │ │ +00025520: 2076 6965 7720 3c31 3e3a 2020 2020 2020 view <1>: │ │ │ │ +00025530: 2020 2020 2020 2020 2020 2020 2054 7261 Tra │ │ │ │ +00025540: 6e73 666f 726d 206c 6974 6572 616c 732e nsform literals. │ │ │ │ +00025550: 2020 286c 696e 6520 2033 3529 0a2a 2074 (line 35).* t │ │ │ │ +00025560: 7261 6e73 6c61 7469 6f6e 2074 7261 6e73 ranslation trans │ │ │ │ +00025570: 666f 726d 3a20 2020 2020 2020 2020 2020 form: │ │ │ │ +00025580: 2020 2020 2020 4f62 6a65 6374 2074 7261 Object tra │ │ │ │ +00025590: 6e73 666f 726d 732e 2020 2028 6c69 6e65 nsforms. (line │ │ │ │ +000255a0: 2020 3437 290a 2a20 7472 616e 736c 6174 47).* translat │ │ │ │ +000255b0: 696f 6e20 7472 616e 7366 6f72 6d20 3c31 ion transform <1 │ │ │ │ +000255c0: 3e3a 2020 2020 2020 2020 2020 2020 2054 >: T │ │ │ │ +000255d0: 7261 6e73 666f 726d 206c 6974 6572 616c ransform literal │ │ │ │ +000255e0: 732e 2020 286c 696e 6520 2031 3529 0a2a s. (line 15).* │ │ │ │ +000255f0: 2074 7261 6e73 6c61 7469 6f6e 2074 7261 translation tra │ │ │ │ +00025600: 6e73 666f 726d 203c 323e 3a20 2020 2020 nsform <2>: │ │ │ │ +00025610: 2020 2020 2020 2020 4120 6869 6572 6172 A hierar │ │ │ │ +00025620: 6368 6963 616c 206d 6f64 656c 2e0a 2020 chical model.. │ │ │ │ +00025630: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00025640: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00025650: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00025660: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00025670: 2020 2020 286c 696e 6520 2034 3729 0a2a (line 47).* │ │ │ │ -00025680: 2074 7261 6e73 7061 7265 6e63 793a 2020 transparency: │ │ │ │ +00025660: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ +00025670: 6520 2034 3729 0a2a 2074 7261 6e73 7061 e 47).* transpa │ │ │ │ +00025680: 7265 6e63 793a 2020 2020 2020 2020 2020 rency: │ │ │ │ 00025690: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000256a0: 2020 2020 2020 2020 5472 616e 7370 6172 Transpar │ │ │ │ -000256b0: 656e 6379 2e20 2020 2020 2020 2028 6c69 ency. (li │ │ │ │ -000256c0: 6e65 2020 2036 290a 2a20 7477 6f2d 6f70 ne 6).* two-op │ │ │ │ -000256d0: 6572 616e 6420 666f 726d 3a20 2020 2020 erand form: │ │ │ │ -000256e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000256f0: 2054 776f 2d6f 7065 7261 6e64 2028 6269 Two-operand (bi │ │ │ │ -00025700: 6e61 7279 2920 666f 726d 732e 0a20 2020 nary) forms.. │ │ │ │ +000256a0: 5472 616e 7370 6172 656e 6379 2e20 2020 Transparency. │ │ │ │ +000256b0: 2020 2020 2028 6c69 6e65 2020 2036 290a (line 6). │ │ │ │ +000256c0: 2a20 7477 6f2d 6f70 6572 616e 6420 666f * two-operand fo │ │ │ │ +000256d0: 726d 3a20 2020 2020 2020 2020 2020 2020 rm: │ │ │ │ +000256e0: 2020 2020 2020 2020 2054 776f 2d6f 7065 Two-ope │ │ │ │ +000256f0: 7261 6e64 2028 6269 6e61 7279 2920 666f rand (binary) fo │ │ │ │ +00025700: 726d 732e 0a20 2020 2020 2020 2020 2020 rms.. │ │ │ │ 00025710: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00025720: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00025730: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00025740: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ -00025750: 2020 2036 290a 2a20 756e 6172 7920 666f 6).* unary fo │ │ │ │ -00025760: 726d 3a20 2020 2020 2020 2020 2020 2020 rm: │ │ │ │ -00025770: 2020 2020 2020 2020 2020 2020 2020 2055 U │ │ │ │ -00025780: 6e61 7279 2066 6f72 6d73 2e20 2020 2020 nary forms. │ │ │ │ -00025790: 2020 2020 286c 696e 6520 2020 3629 0a2a (line 6).* │ │ │ │ -000257a0: 2076 6563 746f 723a 2020 2020 2020 2020 vector: │ │ │ │ +00025740: 2020 2028 6c69 6e65 2020 2036 290a 2a20 (line 6).* │ │ │ │ +00025750: 756e 6172 7920 666f 726d 3a20 2020 2020 unary form: │ │ │ │ +00025760: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00025770: 2020 2020 2020 2055 6e61 7279 2066 6f72 Unary for │ │ │ │ +00025780: 6d73 2e20 2020 2020 2020 2020 286c 696e ms. (lin │ │ │ │ +00025790: 6520 2020 3629 0a2a 2076 6563 746f 723a e 6).* vector: │ │ │ │ +000257a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 000257b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000257c0: 2020 2020 2020 2020 4f62 6a65 6374 2074 Object t │ │ │ │ -000257d0: 7261 6e73 666f 726d 732e 2020 2028 6c69 ransforms. (li │ │ │ │ -000257e0: 6e65 2020 3438 290a 2a20 7665 6374 6f72 ne 48).* vector │ │ │ │ -000257f0: 2064 6566 696e 6974 696f 6e3a 2020 2020 definition: │ │ │ │ -00025800: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00025810: 2050 6f6c 796c 696e 6520 7377 6565 7073 Polyline sweeps │ │ │ │ -00025820: 2e20 2020 2020 286c 696e 6520 2031 3929 . (line 19) │ │ │ │ -00025830: 0a2a 2076 6563 746f 7220 6c69 7465 7261 .* vector litera │ │ │ │ -00025840: 6c3a 2020 2020 2020 2020 2020 2020 2020 l: │ │ │ │ -00025850: 2020 2020 2020 2020 2020 506f 696e 7420 Point │ │ │ │ -00025860: 616e 6420 7665 6374 6f72 206c 6974 6572 and vector liter │ │ │ │ -00025870: 616c 732e 0a20 2020 2020 2020 2020 2020 als.. │ │ │ │ +000257c0: 4f62 6a65 6374 2074 7261 6e73 666f 726d Object transform │ │ │ │ +000257d0: 732e 2020 2028 6c69 6e65 2020 3438 290a s. (line 48). │ │ │ │ +000257e0: 2a20 7665 6374 6f72 2064 6566 696e 6974 * vector definit │ │ │ │ +000257f0: 696f 6e3a 2020 2020 2020 2020 2020 2020 ion: │ │ │ │ +00025800: 2020 2020 2020 2020 2050 6f6c 796c 696e Polylin │ │ │ │ +00025810: 6520 7377 6565 7073 2e20 2020 2020 286c e sweeps. (l │ │ │ │ +00025820: 696e 6520 2031 3929 0a2a 2076 6563 746f ine 19).* vecto │ │ │ │ +00025830: 7220 6c69 7465 7261 6c3a 2020 2020 2020 r literal: │ │ │ │ +00025840: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00025850: 2020 506f 696e 7420 616e 6420 7665 6374 Point and vect │ │ │ │ +00025860: 6f72 206c 6974 6572 616c 732e 0a20 2020 or literals.. │ │ │ │ +00025870: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00025880: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ 00025890: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000258a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000258b0: 2020 2028 6c69 6e65 2020 2036 290a 2a20 (line 6).* │ │ │ │ -000258c0: 7665 6374 6f72 2072 6566 6572 656e 6365 vector reference │ │ │ │ -000258d0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ -000258e0: 2020 2020 2020 2046 6f72 6d73 206f 6620 Forms of │ │ │ │ -000258f0: 7265 6665 7265 6e63 6573 2e20 286c 696e references. (lin │ │ │ │ -00025900: 6520 2031 3529 0a2a 2076 6965 7720 7472 e 15).* view tr │ │ │ │ -00025910: 616e 7366 6f72 6d3a 2020 2020 2020 2020 ansform: │ │ │ │ -00025920: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00025930: 5472 616e 7366 6f72 6d20 6c69 7465 7261 Transform litera │ │ │ │ -00025940: 6c73 2e20 2028 6c69 6e65 2020 3235 290a ls. (line 25). │ │ │ │ -00025950: 2a20 7669 6577 2074 7261 6e73 666f 726d * view transform │ │ │ │ -00025960: 203c 313e 3a20 2020 2020 2020 2020 2020 <1>: │ │ │ │ -00025970: 2020 2020 2020 2020 2054 7261 6e73 666f Transfo │ │ │ │ -00025980: 726d 206c 6974 6572 616c 732e 2020 286c rm literals. (l │ │ │ │ -00025990: 696e 6520 2033 3529 0a2a 2076 6972 7475 ine 35).* virtu │ │ │ │ -000259a0: 616c 2063 616d 6572 613a 2020 2020 2020 al camera: │ │ │ │ -000259b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -000259c0: 2020 4f76 6572 7669 6577 2e20 2020 2020 Overview. │ │ │ │ -000259d0: 2020 2020 2020 2028 6c69 6e65 2020 3831 (line 81 │ │ │ │ -000259e0: 290a 2a20 7768 6974 6520 7370 6163 653a ).* white space: │ │ │ │ +000258a0: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ +000258b0: 2020 2036 290a 2a20 7665 6374 6f72 2072 6).* vector r │ │ │ │ +000258c0: 6566 6572 656e 6365 3a20 2020 2020 2020 eference: │ │ │ │ +000258d0: 2020 2020 2020 2020 2020 2020 2020 2046 F │ │ │ │ +000258e0: 6f72 6d73 206f 6620 7265 6665 7265 6e63 orms of referenc │ │ │ │ +000258f0: 6573 2e20 286c 696e 6520 2031 3529 0a2a es. (line 15).* │ │ │ │ +00025900: 2076 6965 7720 7472 616e 7366 6f72 6d3a view transform: │ │ │ │ +00025910: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00025920: 2020 2020 2020 2020 5472 616e 7366 6f72 Transfor │ │ │ │ +00025930: 6d20 6c69 7465 7261 6c73 2e20 2028 6c69 m literals. (li │ │ │ │ +00025940: 6e65 2020 3235 290a 2a20 7669 6577 2074 ne 25).* view t │ │ │ │ +00025950: 7261 6e73 666f 726d 203c 313e 3a20 2020 ransform <1>: │ │ │ │ +00025960: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00025970: 2054 7261 6e73 666f 726d 206c 6974 6572 Transform liter │ │ │ │ +00025980: 616c 732e 2020 286c 696e 6520 2033 3529 als. (line 35) │ │ │ │ +00025990: 0a2a 2076 6972 7475 616c 2063 616d 6572 .* virtual camer │ │ │ │ +000259a0: 613a 2020 2020 2020 2020 2020 2020 2020 a: │ │ │ │ +000259b0: 2020 2020 2020 2020 2020 4f76 6572 7669 Overvi │ │ │ │ +000259c0: 6577 2e20 2020 2020 2020 2020 2020 2028 ew. ( │ │ │ │ +000259d0: 6c69 6e65 2020 3831 290a 2a20 7768 6974 line 81).* whit │ │ │ │ +000259e0: 6520 7370 6163 653a 2020 2020 2020 2020 e space: │ │ │ │ 000259f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00025a00: 2020 2020 2020 2020 2020 2044 7261 7769 Drawi │ │ │ │ -00025a10: 6e67 2061 2073 6f6c 6964 2e20 2020 2020 ng a solid. │ │ │ │ -00025a20: 286c 696e 6520 2032 3529 0a2a 2077 6869 (line 25).* whi │ │ │ │ -00025a30: 7465 2073 7061 6365 203c 313e 3a20 2020 te space <1>: │ │ │ │ -00025a40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00025a50: 2020 2020 4472 6177 696e 6720 6120 736f Drawing a so │ │ │ │ -00025a60: 6c69 642e 2020 2020 2028 6c69 6e65 2020 lid. (line │ │ │ │ -00025a70: 3239 290a 2a20 7768 6974 6520 7370 6163 29).* white spac │ │ │ │ -00025a80: 6520 3c32 3e3a 2020 2020 2020 2020 2020 e <2>: │ │ │ │ -00025a90: 2020 2020 2020 2020 2020 2020 204f 626a Obj │ │ │ │ -00025aa0: 6563 7420 7472 616e 7366 6f72 6d73 2e20 ect transforms. │ │ │ │ -00025ab0: 2020 286c 696e 6520 2033 3229 0a2a 2077 (line 32).* w │ │ │ │ -00025ac0: 6869 7465 2073 7061 6365 203c 333e 3a20 hite space <3>: │ │ │ │ -00025ad0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ -00025ae0: 2020 2020 2020 4c61 6e67 7561 6765 2062 Language b │ │ │ │ -00025af0: 6173 6963 732e 2020 2020 2028 6c69 6e65 asics. (line │ │ │ │ -00025b00: 2020 3136 290a 0a1f 0a54 6167 2054 6162 16)....Tag Tab │ │ │ │ -00025b10: 6c65 3a0a 4e6f 6465 3a20 546f 707f 3131 le:.Node: Top.11 │ │ │ │ -00025b20: 3635 0a4e 6f64 653a 2041 626f 7574 2073 65.Node: About s │ │ │ │ -00025b30: 6b65 7463 687f 3731 3837 0a4e 6f64 653a ketch.7187.Node: │ │ │ │ -00025b40: 2052 6570 6f72 7469 6e67 2062 7567 737f Reporting bugs. │ │ │ │ -00025b50: 3834 3439 0a4e 6f64 653a 2043 6f6e 7472 8449.Node: Contr │ │ │ │ -00025b60: 6962 7574 696f 6e73 7f39 3438 380a 5265 ibutions.9488.Re │ │ │ │ -00025b70: 663a 2053 6f6c 6964 2063 6f69 6c20 6578 f: Solid coil ex │ │ │ │ -00025b80: 616d 706c 657f 3939 3036 0a4e 6f64 653a ample.9906.Node: │ │ │ │ -00025b90: 2049 6e74 726f 6475 6374 696f 6e20 6279 Introduction by │ │ │ │ -00025ba0: 2065 7861 6d70 6c65 7f39 3930 370a 4e6f example.9907.No │ │ │ │ -00025bb0: 6465 3a20 4865 6c6c 6f20 776f 726c 647f de: Hello world. │ │ │ │ -00025bc0: 3130 3934 310a 5265 663a 2048 656c 6c6f 10941.Ref: Hello │ │ │ │ -00025bd0: 2077 6f72 6c64 2d46 6f6f 746e 6f74 652d world-Footnote- │ │ │ │ -00025be0: 317f 3133 3133 330a 4e6f 6465 3a20 4472 1.13133.Node: Dr │ │ │ │ -00025bf0: 6177 696e 6720 6f70 7469 6f6e 737f 3133 awing options.13 │ │ │ │ -00025c00: 3139 320a 4e6f 6465 3a20 4472 6177 696e 192.Node: Drawin │ │ │ │ -00025c10: 6720 6120 736f 6c69 647f 3134 3337 380a g a solid.14378. │ │ │ │ -00025c20: 5265 663a 2048 656c 6978 2077 6974 6820 Ref: Helix with │ │ │ │ -00025c30: 6375 6c6c 2073 6574 2066 616c 7365 2074 cull set false t │ │ │ │ -00025c40: 6865 6e20 7472 7565 7f31 3637 3531 0a4e hen true.16751.N │ │ │ │ -00025c50: 6f64 653a 2053 7065 6369 616c 206f 626a ode: Special obj │ │ │ │ -00025c60: 6563 7473 7f31 3732 3834 0a4e 6f64 653a ects.17284.Node: │ │ │ │ -00025c70: 204f 626a 6563 7420 7472 616e 7366 6f72 Object transfor │ │ │ │ -00025c80: 6d73 7f32 3033 3832 0a52 6566 3a20 5269 ms.20382.Ref: Ri │ │ │ │ -00025c90: 6768 7420 6861 6e64 2072 756c 657f 3232 ght hand rule.22 │ │ │ │ -00025ca0: 3633 390a 4e6f 6465 3a20 5265 7065 6174 639.Node: Repeat │ │ │ │ -00025cb0: 6564 206f 626a 6563 7473 7f32 3330 3837 ed objects.23087 │ │ │ │ -00025cc0: 0a4e 6f64 653a 2053 7765 7074 206f 626a .Node: Swept obj │ │ │ │ -00025cd0: 6563 7473 7f32 3336 3436 0a4e 6f64 653a ects.23646.Node: │ │ │ │ -00025ce0: 2050 6f69 6e74 2073 7765 6570 737f 3234 Point sweeps.24 │ │ │ │ -00025cf0: 3735 390a 4e6f 6465 3a20 506f 6c79 6c69 759.Node: Polyli │ │ │ │ -00025d00: 6e65 2073 7765 6570 737f 3235 3737 310a ne sweeps.25771. │ │ │ │ -00025d10: 4e6f 6465 3a20 4e65 7374 6564 2073 7765 Node: Nested swe │ │ │ │ -00025d20: 6570 737f 3236 3730 370a 4e6f 6465 3a20 eps.26707.Node: │ │ │ │ -00025d30: 506f 6c79 676f 6e20 7377 6565 7073 7f32 Polygon sweeps.2 │ │ │ │ -00025d40: 3830 3139 0a4e 6f64 653a 2050 6f6c 796c 8019.Node: Polyl │ │ │ │ -00025d50: 696e 6520 7377 6565 7073 2077 6974 6820 ine sweeps with │ │ │ │ -00025d60: 636c 6f73 7572 657f 3238 3437 320a 4e6f closure.28472.No │ │ │ │ -00025d70: 6465 3a20 4166 6669 6e65 2061 7269 7468 de: Affine arith │ │ │ │ -00025d80: 6d65 7469 637f 3330 3137 310a 4e6f 6465 metic.30171.Node │ │ │ │ -00025d90: 3a20 4d6f 7265 2074 6f20 6c65 6172 6e7f : More to learn. │ │ │ │ -00025da0: 3332 3130 390a 4e6f 6465 3a20 496e 7075 32109.Node: Inpu │ │ │ │ -00025db0: 7420 6c61 6e67 7561 6765 7f33 3234 3939 t language.32499 │ │ │ │ -00025dc0: 0a4e 6f64 653a 204c 616e 6775 6167 6520 .Node: Language │ │ │ │ -00025dd0: 6261 7369 6373 7f33 3239 3634 0a4e 6f64 basics.32964.Nod │ │ │ │ -00025de0: 653a 2049 6465 6e74 6966 6965 7273 7f33 e: Identifiers.3 │ │ │ │ -00025df0: 3434 3032 0a4e 6f64 653a 204b 6579 2061 4402.Node: Key a │ │ │ │ -00025e00: 6e64 2072 6573 6572 7665 6420 776f 7264 nd reserved word │ │ │ │ -00025e10: 737f 3334 3939 330a 4e6f 6465 3a20 4c69 s.34993.Node: Li │ │ │ │ -00025e20: 7465 7261 6c73 7f33 3538 3636 0a4e 6f64 terals.35866.Nod │ │ │ │ -00025e30: 653a 2053 6361 6c61 7220 6c69 7465 7261 e: Scalar litera │ │ │ │ -00025e40: 6c73 7f33 3633 3430 0a4e 6f64 653a 2050 ls.36340.Node: P │ │ │ │ -00025e50: 6f69 6e74 2061 6e64 2076 6563 746f 7220 oint and vector │ │ │ │ -00025e60: 6c69 7465 7261 6c73 7f33 3637 3231 0a4e literals.36721.N │ │ │ │ -00025e70: 6f64 653a 2054 7261 6e73 666f 726d 206c ode: Transform l │ │ │ │ -00025e80: 6974 6572 616c 737f 3337 3039 380a 4e6f iterals.37098.No │ │ │ │ -00025e90: 6465 3a20 4172 6974 686d 6574 6963 7f34 de: Arithmetic.4 │ │ │ │ -00025ea0: 3231 3738 0a4e 6f64 653a 2054 776f 2d6f 2178.Node: Two-o │ │ │ │ -00025eb0: 7065 7261 6e64 2028 6269 6e61 7279 2920 perand (binary) │ │ │ │ -00025ec0: 666f 726d 737f 3432 3534 360a 4e6f 6465 forms.42546.Node │ │ │ │ -00025ed0: 3a20 556e 6172 7920 666f 726d 737f 3436 : Unary forms.46 │ │ │ │ -00025ee0: 3232 370a 4e6f 6465 3a20 4f70 7469 6f6e 227.Node: Option │ │ │ │ -00025ef0: 737f 3437 3537 350a 4e6f 6465 3a20 5053 s.47575.Node: PS │ │ │ │ -00025f00: 5472 6963 6b73 206f 7074 696f 6e73 7f34 Tricks options.4 │ │ │ │ -00025f10: 3832 3934 0a4e 6f64 653a 2054 696b 5a2f 8294.Node: TikZ/ │ │ │ │ -00025f20: 5047 4620 6f70 7469 6f6e 737f 3439 3430 PGF options.4940 │ │ │ │ -00025f30: 360a 4e6f 6465 3a20 446f 7473 2069 6e20 6.Node: Dots in │ │ │ │ -00025f40: 5469 6b5a 2f50 4746 7f35 3131 3437 0a4e TikZ/PGF.51147.N │ │ │ │ -00025f50: 6f64 653a 2054 696b 5a2f 5047 4620 7573 ode: TikZ/PGF us │ │ │ │ -00025f60: 6572 2d64 6566 696e 6564 2073 7479 6c65 er-defined style │ │ │ │ -00025f70: 737f 3531 3736 380a 5265 663a 2054 696b s.51768.Ref: Tik │ │ │ │ -00025f80: 5a2f 5047 4620 7573 6572 2d64 6566 696e Z/PGF user-defin │ │ │ │ -00025f90: 6564 2073 7479 6c65 732d 466f 6f74 6e6f ed styles-Footno │ │ │ │ -00025fa0: 7465 2d31 7f35 3338 3236 0a4e 6f64 653a te-1.53826.Node: │ │ │ │ -00025fb0: 2054 7261 6e73 7061 7265 6e63 797f 3533 Transparency.53 │ │ │ │ -00025fc0: 3838 320a 4e6f 6465 3a20 496e 7465 726e 882.Node: Intern │ │ │ │ -00025fd0: 616c 206f 7074 696f 6e73 7f35 3437 3330 al options.54730 │ │ │ │ -00025fe0: 0a4e 6f64 653a 2044 7261 7761 626c 6573 .Node: Drawables │ │ │ │ -00025ff0: 7f35 3635 3031 0a4e 6f64 653a 2044 6f74 .56501.Node: Dot │ │ │ │ -00026000: 737f 3537 3530 300a 4e6f 6465 3a20 4c69 s.57500.Node: Li │ │ │ │ -00026010: 6e65 737f 3537 3734 300a 4e6f 6465 3a20 nes.57740.Node: │ │ │ │ -00026020: 4375 7276 6573 7f35 3739 3739 0a4e 6f64 Curves.57979.Nod │ │ │ │ -00026030: 653a 2050 6f6c 7967 6f6e 737f 3538 3238 e: Polygons.5828 │ │ │ │ -00026040: 390a 4e6f 6465 3a20 5370 6563 6961 6c73 9.Node: Specials │ │ │ │ -00026050: 7f35 3837 3236 0a4e 6f64 653a 2053 7765 .58726.Node: Swe │ │ │ │ -00026060: 6570 737f 3631 3130 310a 4e6f 6465 3a20 eps.61101.Node: │ │ │ │ -00026070: 5377 6570 7420 706f 696e 7473 7f36 3233 Swept points.623 │ │ │ │ -00026080: 3834 0a4e 6f64 653a 2053 7765 7074 206c 84.Node: Swept l │ │ │ │ -00026090: 696e 6573 7f36 3334 3833 0a4e 6f64 653a ines.63483.Node: │ │ │ │ -000260a0: 2053 7765 7074 2070 6f6c 7967 6f6e 737f Swept polygons. │ │ │ │ -000260b0: 3636 3130 390a 4e6f 6465 3a20 5377 6570 66109.Node: Swep │ │ │ │ -000260c0: 7420 626c 6f63 6b73 7f36 3736 3832 0a4e t blocks.67682.N │ │ │ │ -000260d0: 6f64 653a 2053 7765 6570 2066 6163 6520 ode: Sweep face │ │ │ │ -000260e0: 7370 6c69 7474 696e 677f 3638 3235 300a splitting.68250. │ │ │ │ -000260f0: 4e6f 6465 3a20 426c 6f63 6b73 7f36 3838 Node: Blocks.688 │ │ │ │ -00026100: 3536 0a4e 6f64 653a 2052 6570 6561 7473 56.Node: Repeats │ │ │ │ -00026110: 7f36 3934 3631 0a4e 6f64 653a 2050 7574 .69461.Node: Put │ │ │ │ -00026120: 737f 3730 3131 310a 4e6f 6465 3a20 4465 s.70111.Node: De │ │ │ │ -00026130: 6669 6e69 7469 6f6e 737f 3730 3239 360a finitions.70296. │ │ │ │ -00026140: 4e6f 6465 3a20 466f 726d 7320 6f66 2064 Node: Forms of d │ │ │ │ -00026150: 6566 696e 6974 696f 6e73 7f37 3135 3432 efinitions.71542 │ │ │ │ -00026160: 0a4e 6f64 653a 2046 6f72 6d73 206f 6620 .Node: Forms of │ │ │ │ -00026170: 7265 6665 7265 6e63 6573 7f37 3234 3639 references.72469 │ │ │ │ -00026180: 0a4e 6f64 653a 2047 6c6f 6261 6c20 656e .Node: Global en │ │ │ │ -00026190: 7669 726f 6e6d 656e 747f 3733 3532 300a vironment.73520. │ │ │ │ -000261a0: 4e6f 6465 3a20 476c 6f62 616c 206f 7074 Node: Global opt │ │ │ │ -000261b0: 696f 6e73 7f37 3434 3232 0a4e 6f64 653a ions.74422.Node: │ │ │ │ -000261c0: 2043 616d 6572 617f 3734 3938 350a 4e6f Camera.74985.No │ │ │ │ -000261d0: 6465 3a20 5069 6374 7572 6520 626f 787f de: Picture box. │ │ │ │ -000261e0: 3735 3339 360a 4e6f 6465 3a20 4672 616d 75396.Node: Fram │ │ │ │ -000261f0: 657f 3736 3434 370a 4e6f 6465 3a20 4c61 e.76447.Node: La │ │ │ │ -00026200: 6e67 7561 6765 7f37 3639 3135 0a4e 6f64 nguage.76915.Nod │ │ │ │ -00026210: 653a 2042 7569 6c64 696e 6720 6120 6472 e: Building a dr │ │ │ │ -00026220: 6177 696e 677f 3737 3933 380a 4e6f 6465 awing.77938.Node │ │ │ │ -00026230: 3a20 4f76 6572 7669 6577 7f37 3837 3437 : Overview.78747 │ │ │ │ -00026240: 0a4e 6f64 653a 2041 2074 6563 686e 6963 .Node: A technic │ │ │ │ -00026250: 616c 2064 7261 7769 6e67 7f38 3632 3831 al drawing.86281 │ │ │ │ -00026260: 0a4e 6f64 653a 2041 2068 6965 7261 7263 .Node: A hierarc │ │ │ │ -00026270: 6869 6361 6c20 6d6f 6465 6c7f 3931 3039 hical model.9109 │ │ │ │ -00026280: 360a 4e6f 6465 3a20 4361 7665 6174 737f 6.Node: Caveats. │ │ │ │ -00026290: 3937 3535 310a 4e6f 6465 3a20 4c69 6d69 97551.Node: Limi │ │ │ │ -000262a0: 7473 206f 6e20 6572 726f 7220 6465 7465 ts on error dete │ │ │ │ -000262b0: 6374 696f 6e7f 3938 3133 330a 4e6f 6465 ction.98133.Node │ │ │ │ -000262c0: 3a20 436c 6970 7069 6e67 7f39 3936 3139 : Clipping.99619 │ │ │ │ -000262d0: 0a4e 6f64 653a 2048 6964 6465 6e20 7375 .Node: Hidden su │ │ │ │ -000262e0: 7266 6163 6520 7265 6d6f 7661 6c7f 3130 rface removal.10 │ │ │ │ -000262f0: 3030 3336 0a52 6566 3a20 4869 6464 656e 0036.Ref: Hidden │ │ │ │ -00026300: 2073 7572 6661 6365 2072 656d 6f76 616c surface removal │ │ │ │ -00026310: 2d46 6f6f 746e 6f74 652d 317f 3130 3134 -Footnote-1.1014 │ │ │ │ -00026320: 3538 0a52 6566 3a20 4869 6464 656e 2073 58.Ref: Hidden s │ │ │ │ -00026330: 7572 6661 6365 2072 656d 6f76 616c 2d46 urface removal-F │ │ │ │ -00026340: 6f6f 746e 6f74 652d 327f 3130 3136 3337 ootnote-2.101637 │ │ │ │ -00026350: 0a4e 6f64 653a 2053 7461 7469 7374 6963 .Node: Statistic │ │ │ │ -00026360: 737f 3130 3230 3233 0a4e 6f64 653a 2042 s.102023.Node: B │ │ │ │ -00026370: 7567 7320 616e 6420 616e 6f6d 616c 6965 ugs and anomalie │ │ │ │ -00026380: 737f 3130 3333 3230 0a52 6566 3a20 4275 s.103320.Ref: Bu │ │ │ │ -00026390: 6773 2061 6e64 2061 6e6f 6d61 6c69 6573 gs and anomalies │ │ │ │ -000263a0: 2d46 6f6f 746e 6f74 652d 317f 3130 3531 -Footnote-1.1051 │ │ │ │ -000263b0: 3739 0a4e 6f64 653a 2043 6f6d 6d61 6e64 79.Node: Command │ │ │ │ -000263c0: 206c 696e 657f 3130 3532 3738 0a4e 6f64 line.105278.Nod │ │ │ │ -000263d0: 653a 2049 6e73 7461 6c6c 696e 6720 736b e: Installing sk │ │ │ │ -000263e0: 6574 6368 7f31 3038 3033 380a 4e6f 6465 etch.108038.Node │ │ │ │ -000263f0: 3a20 496e 6465 7820 6f66 2073 796e 7461 : Index of synta │ │ │ │ -00026400: 787f 3131 3131 3231 0a4e 6f64 653a 2049 x.111121.Node: I │ │ │ │ -00026410: 6e64 6578 7f31 3238 3439 310a 1f0a 456e ndex.128491...En │ │ │ │ -00026420: 6420 5461 6720 5461 626c 650a 0a1f 0a4c d Tag Table....L │ │ │ │ -00026430: 6f63 616c 2056 6172 6961 626c 6573 3a0a ocal Variables:. │ │ │ │ -00026440: 636f 6469 6e67 3a20 7574 662d 380a 456e coding: utf-8.En │ │ │ │ -00026450: 643a 0a d:. │ │ │ │ +00025a00: 2020 2044 7261 7769 6e67 2061 2073 6f6c Drawing a sol │ │ │ │ +00025a10: 6964 2e20 2020 2020 286c 696e 6520 2032 id. (line 2 │ │ │ │ +00025a20: 3529 0a2a 2077 6869 7465 2073 7061 6365 5).* white space │ │ │ │ +00025a30: 203c 313e 3a20 2020 2020 2020 2020 2020 <1>: │ │ │ │ +00025a40: 2020 2020 2020 2020 2020 2020 4472 6177 Draw │ │ │ │ +00025a50: 696e 6720 6120 736f 6c69 642e 2020 2020 ing a solid. │ │ │ │ +00025a60: 2028 6c69 6e65 2020 3239 290a 2a20 7768 (line 29).* wh │ │ │ │ +00025a70: 6974 6520 7370 6163 6520 3c32 3e3a 2020 ite space <2>: │ │ │ │ +00025a80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00025a90: 2020 2020 204f 626a 6563 7420 7472 616e Object tran │ │ │ │ +00025aa0: 7366 6f72 6d73 2e20 2020 286c 696e 6520 sforms. (line │ │ │ │ +00025ab0: 2033 3229 0a2a 2077 6869 7465 2073 7061 32).* white spa │ │ │ │ +00025ac0: 6365 203c 333e 3a20 2020 2020 2020 2020 ce <3>: │ │ │ │ +00025ad0: 2020 2020 2020 2020 2020 2020 2020 4c61 La │ │ │ │ +00025ae0: 6e67 7561 6765 2062 6173 6963 732e 2020 nguage basics. │ │ │ │ +00025af0: 2020 2028 6c69 6e65 2020 3136 290a 0a1f (line 16)... │ │ │ │ +00025b00: 0a54 6167 2054 6162 6c65 3a0a 4e6f 6465 .Tag Table:.Node │ │ │ │ +00025b10: 3a20 546f 707f 3131 3631 0a4e 6f64 653a : Top.1161.Node: │ │ │ │ +00025b20: 2041 626f 7574 2073 6b65 7463 687f 3731 About sketch.71 │ │ │ │ +00025b30: 3739 0a4e 6f64 653a 2052 6570 6f72 7469 79.Node: Reporti │ │ │ │ +00025b40: 6e67 2062 7567 737f 3834 3431 0a4e 6f64 ng bugs.8441.Nod │ │ │ │ +00025b50: 653a 2043 6f6e 7472 6962 7574 696f 6e73 e: Contributions │ │ │ │ +00025b60: 7f39 3438 300a 5265 663a 2053 6f6c 6964 .9480.Ref: Solid │ │ │ │ +00025b70: 2063 6f69 6c20 6578 616d 706c 657f 3938 coil example.98 │ │ │ │ +00025b80: 3938 0a4e 6f64 653a 2049 6e74 726f 6475 98.Node: Introdu │ │ │ │ +00025b90: 6374 696f 6e20 6279 2065 7861 6d70 6c65 ction by example │ │ │ │ +00025ba0: 7f39 3839 390a 4e6f 6465 3a20 4865 6c6c .9899.Node: Hell │ │ │ │ +00025bb0: 6f20 776f 726c 647f 3130 3933 330a 5265 o world.10933.Re │ │ │ │ +00025bc0: 663a 2048 656c 6c6f 2077 6f72 6c64 2d46 f: Hello world-F │ │ │ │ +00025bd0: 6f6f 746e 6f74 652d 317f 3133 3132 350a ootnote-1.13125. │ │ │ │ +00025be0: 4e6f 6465 3a20 4472 6177 696e 6720 6f70 Node: Drawing op │ │ │ │ +00025bf0: 7469 6f6e 737f 3133 3138 340a 4e6f 6465 tions.13184.Node │ │ │ │ +00025c00: 3a20 4472 6177 696e 6720 6120 736f 6c69 : Drawing a soli │ │ │ │ +00025c10: 647f 3134 3337 300a 5265 663a 2048 656c d.14370.Ref: Hel │ │ │ │ +00025c20: 6978 2077 6974 6820 6375 6c6c 2073 6574 ix with cull set │ │ │ │ +00025c30: 2066 616c 7365 2074 6865 6e20 7472 7565 false then true │ │ │ │ +00025c40: 7f31 3637 3433 0a4e 6f64 653a 2053 7065 .16743.Node: Spe │ │ │ │ +00025c50: 6369 616c 206f 626a 6563 7473 7f31 3732 cial objects.172 │ │ │ │ +00025c60: 3736 0a4e 6f64 653a 204f 626a 6563 7420 76.Node: Object │ │ │ │ +00025c70: 7472 616e 7366 6f72 6d73 7f32 3033 3734 transforms.20374 │ │ │ │ +00025c80: 0a52 6566 3a20 5269 6768 7420 6861 6e64 .Ref: Right hand │ │ │ │ +00025c90: 2072 756c 657f 3232 3633 310a 4e6f 6465 rule.22631.Node │ │ │ │ +00025ca0: 3a20 5265 7065 6174 6564 206f 626a 6563 : Repeated objec │ │ │ │ +00025cb0: 7473 7f32 3330 3739 0a4e 6f64 653a 2053 ts.23079.Node: S │ │ │ │ +00025cc0: 7765 7074 206f 626a 6563 7473 7f32 3336 wept objects.236 │ │ │ │ +00025cd0: 3338 0a4e 6f64 653a 2050 6f69 6e74 2073 38.Node: Point s │ │ │ │ +00025ce0: 7765 6570 737f 3234 3735 310a 4e6f 6465 weeps.24751.Node │ │ │ │ +00025cf0: 3a20 506f 6c79 6c69 6e65 2073 7765 6570 : Polyline sweep │ │ │ │ +00025d00: 737f 3235 3736 330a 4e6f 6465 3a20 4e65 s.25763.Node: Ne │ │ │ │ +00025d10: 7374 6564 2073 7765 6570 737f 3236 3639 sted sweeps.2669 │ │ │ │ +00025d20: 390a 4e6f 6465 3a20 506f 6c79 676f 6e20 9.Node: Polygon │ │ │ │ +00025d30: 7377 6565 7073 7f32 3830 3131 0a4e 6f64 sweeps.28011.Nod │ │ │ │ +00025d40: 653a 2050 6f6c 796c 696e 6520 7377 6565 e: Polyline swee │ │ │ │ +00025d50: 7073 2077 6974 6820 636c 6f73 7572 657f ps with closure. │ │ │ │ +00025d60: 3238 3436 340a 4e6f 6465 3a20 4166 6669 28464.Node: Affi │ │ │ │ +00025d70: 6e65 2061 7269 7468 6d65 7469 637f 3330 ne arithmetic.30 │ │ │ │ +00025d80: 3136 330a 4e6f 6465 3a20 4d6f 7265 2074 163.Node: More t │ │ │ │ +00025d90: 6f20 6c65 6172 6e7f 3332 3130 310a 4e6f o learn.32101.No │ │ │ │ +00025da0: 6465 3a20 496e 7075 7420 6c61 6e67 7561 de: Input langua │ │ │ │ +00025db0: 6765 7f33 3234 3931 0a4e 6f64 653a 204c ge.32491.Node: L │ │ │ │ +00025dc0: 616e 6775 6167 6520 6261 7369 6373 7f33 anguage basics.3 │ │ │ │ +00025dd0: 3239 3536 0a4e 6f64 653a 2049 6465 6e74 2956.Node: Ident │ │ │ │ +00025de0: 6966 6965 7273 7f33 3433 3934 0a4e 6f64 ifiers.34394.Nod │ │ │ │ +00025df0: 653a 204b 6579 2061 6e64 2072 6573 6572 e: Key and reser │ │ │ │ +00025e00: 7665 6420 776f 7264 737f 3334 3938 350a ved words.34985. │ │ │ │ +00025e10: 4e6f 6465 3a20 4c69 7465 7261 6c73 7f33 Node: Literals.3 │ │ │ │ +00025e20: 3538 3538 0a4e 6f64 653a 2053 6361 6c61 5858.Node: Scala │ │ │ │ +00025e30: 7220 6c69 7465 7261 6c73 7f33 3633 3332 r literals.36332 │ │ │ │ +00025e40: 0a4e 6f64 653a 2050 6f69 6e74 2061 6e64 .Node: Point and │ │ │ │ +00025e50: 2076 6563 746f 7220 6c69 7465 7261 6c73 vector literals │ │ │ │ +00025e60: 7f33 3637 3133 0a4e 6f64 653a 2054 7261 .36713.Node: Tra │ │ │ │ +00025e70: 6e73 666f 726d 206c 6974 6572 616c 737f nsform literals. │ │ │ │ +00025e80: 3337 3039 300a 4e6f 6465 3a20 4172 6974 37090.Node: Arit │ │ │ │ +00025e90: 686d 6574 6963 7f34 3231 3730 0a4e 6f64 hmetic.42170.Nod │ │ │ │ +00025ea0: 653a 2054 776f 2d6f 7065 7261 6e64 2028 e: Two-operand ( │ │ │ │ +00025eb0: 6269 6e61 7279 2920 666f 726d 737f 3432 binary) forms.42 │ │ │ │ +00025ec0: 3533 380a 4e6f 6465 3a20 556e 6172 7920 538.Node: Unary │ │ │ │ +00025ed0: 666f 726d 737f 3436 3231 390a 4e6f 6465 forms.46219.Node │ │ │ │ +00025ee0: 3a20 4f70 7469 6f6e 737f 3437 3536 370a : Options.47567. │ │ │ │ +00025ef0: 4e6f 6465 3a20 5053 5472 6963 6b73 206f Node: PSTricks o │ │ │ │ +00025f00: 7074 696f 6e73 7f34 3832 3836 0a4e 6f64 ptions.48286.Nod │ │ │ │ +00025f10: 653a 2054 696b 5a2f 5047 4620 6f70 7469 e: TikZ/PGF opti │ │ │ │ +00025f20: 6f6e 737f 3439 3339 380a 4e6f 6465 3a20 ons.49398.Node: │ │ │ │ +00025f30: 446f 7473 2069 6e20 5469 6b5a 2f50 4746 Dots in TikZ/PGF │ │ │ │ +00025f40: 7f35 3131 3339 0a4e 6f64 653a 2054 696b .51139.Node: Tik │ │ │ │ +00025f50: 5a2f 5047 4620 7573 6572 2d64 6566 696e Z/PGF user-defin │ │ │ │ +00025f60: 6564 2073 7479 6c65 737f 3531 3736 300a ed styles.51760. │ │ │ │ +00025f70: 5265 663a 2054 696b 5a2f 5047 4620 7573 Ref: TikZ/PGF us │ │ │ │ +00025f80: 6572 2d64 6566 696e 6564 2073 7479 6c65 er-defined style │ │ │ │ +00025f90: 732d 466f 6f74 6e6f 7465 2d31 7f35 3338 s-Footnote-1.538 │ │ │ │ +00025fa0: 3138 0a4e 6f64 653a 2054 7261 6e73 7061 18.Node: Transpa │ │ │ │ +00025fb0: 7265 6e63 797f 3533 3837 340a 4e6f 6465 rency.53874.Node │ │ │ │ +00025fc0: 3a20 496e 7465 726e 616c 206f 7074 696f : Internal optio │ │ │ │ +00025fd0: 6e73 7f35 3437 3232 0a4e 6f64 653a 2044 ns.54722.Node: D │ │ │ │ +00025fe0: 7261 7761 626c 6573 7f35 3634 3933 0a4e rawables.56493.N │ │ │ │ +00025ff0: 6f64 653a 2044 6f74 737f 3537 3439 320a ode: Dots.57492. │ │ │ │ +00026000: 4e6f 6465 3a20 4c69 6e65 737f 3537 3733 Node: Lines.5773 │ │ │ │ +00026010: 320a 4e6f 6465 3a20 4375 7276 6573 7f35 2.Node: Curves.5 │ │ │ │ +00026020: 3739 3731 0a4e 6f64 653a 2050 6f6c 7967 7971.Node: Polyg │ │ │ │ +00026030: 6f6e 737f 3538 3238 310a 4e6f 6465 3a20 ons.58281.Node: │ │ │ │ +00026040: 5370 6563 6961 6c73 7f35 3837 3138 0a4e Specials.58718.N │ │ │ │ +00026050: 6f64 653a 2053 7765 6570 737f 3631 3039 ode: Sweeps.6109 │ │ │ │ +00026060: 330a 4e6f 6465 3a20 5377 6570 7420 706f 3.Node: Swept po │ │ │ │ +00026070: 696e 7473 7f36 3233 3736 0a4e 6f64 653a ints.62376.Node: │ │ │ │ +00026080: 2053 7765 7074 206c 696e 6573 7f36 3334 Swept lines.634 │ │ │ │ +00026090: 3735 0a4e 6f64 653a 2053 7765 7074 2070 75.Node: Swept p │ │ │ │ +000260a0: 6f6c 7967 6f6e 737f 3636 3130 310a 4e6f olygons.66101.No │ │ │ │ +000260b0: 6465 3a20 5377 6570 7420 626c 6f63 6b73 de: Swept blocks │ │ │ │ +000260c0: 7f36 3736 3734 0a4e 6f64 653a 2053 7765 .67674.Node: Swe │ │ │ │ +000260d0: 6570 2066 6163 6520 7370 6c69 7474 696e ep face splittin │ │ │ │ +000260e0: 677f 3638 3234 320a 4e6f 6465 3a20 426c g.68242.Node: Bl │ │ │ │ +000260f0: 6f63 6b73 7f36 3838 3438 0a4e 6f64 653a ocks.68848.Node: │ │ │ │ +00026100: 2052 6570 6561 7473 7f36 3934 3533 0a4e Repeats.69453.N │ │ │ │ +00026110: 6f64 653a 2050 7574 737f 3730 3130 330a ode: Puts.70103. │ │ │ │ +00026120: 4e6f 6465 3a20 4465 6669 6e69 7469 6f6e Node: Definition │ │ │ │ +00026130: 737f 3730 3238 380a 4e6f 6465 3a20 466f s.70288.Node: Fo │ │ │ │ +00026140: 726d 7320 6f66 2064 6566 696e 6974 696f rms of definitio │ │ │ │ +00026150: 6e73 7f37 3135 3334 0a4e 6f64 653a 2046 ns.71534.Node: F │ │ │ │ +00026160: 6f72 6d73 206f 6620 7265 6665 7265 6e63 orms of referenc │ │ │ │ +00026170: 6573 7f37 3234 3631 0a4e 6f64 653a 2047 es.72461.Node: G │ │ │ │ +00026180: 6c6f 6261 6c20 656e 7669 726f 6e6d 656e lobal environmen │ │ │ │ +00026190: 747f 3733 3531 320a 4e6f 6465 3a20 476c t.73512.Node: Gl │ │ │ │ +000261a0: 6f62 616c 206f 7074 696f 6e73 7f37 3434 obal options.744 │ │ │ │ +000261b0: 3134 0a4e 6f64 653a 2043 616d 6572 617f 14.Node: Camera. │ │ │ │ +000261c0: 3734 3937 370a 4e6f 6465 3a20 5069 6374 74977.Node: Pict │ │ │ │ +000261d0: 7572 6520 626f 787f 3735 3338 380a 4e6f ure box.75388.No │ │ │ │ +000261e0: 6465 3a20 4672 616d 657f 3736 3433 390a de: Frame.76439. │ │ │ │ +000261f0: 4e6f 6465 3a20 4c61 6e67 7561 6765 7f37 Node: Language.7 │ │ │ │ +00026200: 3639 3037 0a4e 6f64 653a 2042 7569 6c64 6907.Node: Build │ │ │ │ +00026210: 696e 6720 6120 6472 6177 696e 677f 3737 ing a drawing.77 │ │ │ │ +00026220: 3933 300a 4e6f 6465 3a20 4f76 6572 7669 930.Node: Overvi │ │ │ │ +00026230: 6577 7f37 3837 3339 0a4e 6f64 653a 2041 ew.78739.Node: A │ │ │ │ +00026240: 2074 6563 686e 6963 616c 2064 7261 7769 technical drawi │ │ │ │ +00026250: 6e67 7f38 3632 3733 0a4e 6f64 653a 2041 ng.86273.Node: A │ │ │ │ +00026260: 2068 6965 7261 7263 6869 6361 6c20 6d6f hierarchical mo │ │ │ │ +00026270: 6465 6c7f 3931 3038 380a 4e6f 6465 3a20 del.91088.Node: │ │ │ │ +00026280: 4361 7665 6174 737f 3937 3534 330a 4e6f Caveats.97543.No │ │ │ │ +00026290: 6465 3a20 4c69 6d69 7473 206f 6e20 6572 de: Limits on er │ │ │ │ +000262a0: 726f 7220 6465 7465 6374 696f 6e7f 3938 ror detection.98 │ │ │ │ +000262b0: 3132 350a 4e6f 6465 3a20 436c 6970 7069 125.Node: Clippi │ │ │ │ +000262c0: 6e67 7f39 3936 3131 0a4e 6f64 653a 2048 ng.99611.Node: H │ │ │ │ +000262d0: 6964 6465 6e20 7375 7266 6163 6520 7265 idden surface re │ │ │ │ +000262e0: 6d6f 7661 6c7f 3130 3030 3238 0a52 6566 moval.100028.Ref │ │ │ │ +000262f0: 3a20 4869 6464 656e 2073 7572 6661 6365 : Hidden surface │ │ │ │ +00026300: 2072 656d 6f76 616c 2d46 6f6f 746e 6f74 removal-Footnot │ │ │ │ +00026310: 652d 317f 3130 3134 3530 0a52 6566 3a20 e-1.101450.Ref: │ │ │ │ +00026320: 4869 6464 656e 2073 7572 6661 6365 2072 Hidden surface r │ │ │ │ +00026330: 656d 6f76 616c 2d46 6f6f 746e 6f74 652d emoval-Footnote- │ │ │ │ +00026340: 327f 3130 3136 3239 0a4e 6f64 653a 2053 2.101629.Node: S │ │ │ │ +00026350: 7461 7469 7374 6963 737f 3130 3230 3135 tatistics.102015 │ │ │ │ +00026360: 0a4e 6f64 653a 2042 7567 7320 616e 6420 .Node: Bugs and │ │ │ │ +00026370: 616e 6f6d 616c 6965 737f 3130 3333 3132 anomalies.103312 │ │ │ │ +00026380: 0a52 6566 3a20 4275 6773 2061 6e64 2061 .Ref: Bugs and a │ │ │ │ +00026390: 6e6f 6d61 6c69 6573 2d46 6f6f 746e 6f74 nomalies-Footnot │ │ │ │ +000263a0: 652d 317f 3130 3531 3731 0a4e 6f64 653a e-1.105171.Node: │ │ │ │ +000263b0: 2043 6f6d 6d61 6e64 206c 696e 657f 3130 Command line.10 │ │ │ │ +000263c0: 3532 3730 0a4e 6f64 653a 2049 6e73 7461 5270.Node: Insta │ │ │ │ +000263d0: 6c6c 696e 6720 736b 6574 6368 7f31 3038 lling sketch.108 │ │ │ │ +000263e0: 3033 300a 4e6f 6465 3a20 496e 6465 7820 030.Node: Index │ │ │ │ +000263f0: 6f66 2073 796e 7461 787f 3131 3131 3133 of syntax.111113 │ │ │ │ +00026400: 0a4e 6f64 653a 2049 6e64 6578 7f31 3238 .Node: Index.128 │ │ │ │ +00026410: 3438 330a 1f0a 456e 6420 5461 6720 5461 483...End Tag Ta │ │ │ │ +00026420: 626c 650a 0a1f 0a4c 6f63 616c 2056 6172 ble....Local Var │ │ │ │ +00026430: 6961 626c 6573 3a0a 636f 6469 6e67 3a20 iables:.coding: │ │ │ │ +00026440: 7574 662d 380a 456e 643a 0a utf-8.End:.