From 0f0083ba276be079248ccdd4c64c55ff67abb6c6 Mon Sep 17 00:00:00 2001 From: Pomax Date: Thu, 20 Aug 2020 09:50:44 -0700 Subject: [PATCH] reorganised the latex images --- chapters/flattening/quadratic.js | 2 +- .../abc}/059000c5c8a37dcc8d7fa04154a05df3.svg | 0 .../abc}/12aaf0d7fd20b3c551a0ec76b18bd7d2.svg | 0 .../abc}/34fe255294faf45ab02128f7997b92ce.svg | 0 .../abc}/385d1fd4aecbd2066e6e284a84408be6.svg | 0 .../abc}/62f2f984e43a22a6b4bda4d399dedfc6.svg | 0 .../abc}/b4987e9b77b0df604238b88596c5f7c3.svg | 0 .../50679d61424222d7b6b97eb3aa663582.svg | 1 + .../a9af1c06a00bb3c4af816a138fb0a66d.svg | 1 + .../c78b203ff33e5c1606728b552505d61c.svg | 1 + .../d480a9aa41917e5230d432cdbd6899b1.svg | 1 + .../5509919419288129322cfbd4c60d0a4f.svg | 0 .../cb24cda7f7f4bbf3be7104c460e0ec9f.svg | 0 .../d0d93f1cc26b560309dade1f1aa012f2.svg | 0 .../d3003177813309f88f58a1f515f5df9f.svg | 0 .../e168758d35b8f6781617eda5a32b20bf.svg | 0 .../e96dd431f6ef9433ccf25909dddd5bca.svg | 0 .../15f9e6eea05599fe6a5eac609ca42cfa.svg | 0 .../6aad9d1ec548943ee9e7c5ffc9ced9fd.svg | 0 .../b8c1ed97fb04474733b41daf2ac1a259.svg | 0 .../c32c4cabe4193e4b4c5e1d0e46aacf72.svg | 0 .../d17627b7f5db3f8a2be3422bbee4f2b7.svg | 0 .../0f3451c711c0fe5d0b018aa4aa77d855.svg | 0 .../4c8f9814c50c708757eeb5a68afabb7f.svg | 0 .../763838ea6f9e6c6aa63ea5f9c6d9542f.svg | 0 .../7962d6fea86da6f53a7269fba30f0138.svg | 0 .../892209dad8fd1f839470dd061e870913.svg | 0 .../adac18ea69cc58e01c8d5e15498e4aa6.svg | 0 .../cf45d1ea00d4866abc8a058b130299b4.svg | 0 .../0430e8c7f7d4ec80e6527f96f3d56e5c.svg | 0 .../058fa85ac31eb666857a860fdedd79df.svg | 0 .../10025fdab2b3fd20f5d389cbe7e3e3ce.svg | 0 .../20684d22b3ddc52fd6abde8ce56608a9.svg | 0 .../2f85d84f0e3dd14cc25e48583aed3822.svg | 0 .../4230e959138d8400e04abf316360009a.svg | 0 .../63ccae0ebe0ca70dc2afb507ab32e4bd.svg | 0 .../83262761bb7fa9b832fe483ded436973.svg | 0 .../8cbef24b8c3b26f9daf2f89d27d36e95.svg | 0 .../add5f7fb210a306fe9ff933113f6fb91.svg | 0 .../d089cc0687982a3302249bb82af3fc16.svg | 0 .../f3261ad2802d980ebe6e35b272375700.svg | 0 .../06ae1e3fdc660e59d618e0760e8e9ab5.svg | 0 .../169fd85a95e4d16fe289a75583017a11.svg | 0 .../1811b59c5ab9233f08590396e5d03303.svg | 0 .../1b8a782f7540503d38067317e4cd00b0.svg | 0 .../26363fc09f8cf2d41ea5b4256656bb6d.svg | 0 .../3ea54fe939d076f8db605c5b480e7db0.svg | 0 .../4d524810417b4caffedd13af23135f5b.svg | 0 .../5f2750de827497375d9a915f96686885.svg | 0 .../78ac9df086ec19147414359369b563fc.svg | 0 .../79e333cd0c569657eea033b04fb5e61b.svg | 0 .../841fb6a2a035c9bcf5a2d46f2a67709b.svg | 0 .../8f56909fcb62b8eef18b9b9559575c13.svg | 0 .../9215d05705c8e8a7ebd718ae6f690371.svg | 0 .../a47b072a325812ac4f0ff52c22792588.svg | 0 .../b21386f86bef8894f108c5441dad10de.svg | 0 .../ba31c32eba62f1e3b15066cd5ddda597.svg | 0 .../cbdd46d5e2e1a6202ef46fb03711ebe4.svg | 0 .../cc1e2ff43350c32f0ae9ba9a7652b8fb.svg | 0 .../e3d30ab368dcead1411532ce3814d3f3.svg | 0 .../eae7f01976e511ee38b08b6edc8765d2.svg | 0 .../f08e34395ce2812276fd70548f805041.svg | 0 .../f2b2a16a41d134ce0dfd544ab77ff25e.svg | 0 .../f41487aff3e34fafd5d4ee5979f133f1.svg | 0 .../f814bb8d627f9c8f33b347c1cf13d4c7.svg | 0 .../7754bc3c96ae3c90162fec3bd46bedff.svg | 0 .../8374c4190d6213b0ac0621481afaa754.svg | 0 .../9e4d886c372f916f6511c41245ceee39.svg | 0 .../a127f926eced2751a09c54bf7c361b4a.svg | 0 .../adbd056f4b8fcd05b1d4f2fce27d7657.svg | 0 .../b5d864e9ed0c44c56d454fbaa4218d5e.svg | 0 .../c22f6d343ee0cce7bff6a617c946ca17.svg | 0 .../df87674db0f31fc3944aaeb6b890e196.svg | 0 .../e1059e611aa1e51db41f9ce0b4ebb95a.svg | 0 .../ef3ab62bb896019c6157c85aae5d1ed3.svg | 0 .../fe32474b4616ee9478e1308308f1b6bf.svg | 0 .../0364731626a530c8a9b30f424ada53c5.svg | 0 .../05d36e051a38905dcb81e65db8261f24.svg | 0 .../178a838274748439778e2a29f5a27d0b.svg | 0 .../195790bae7de813aec342ea82b5d8781.svg | 0 .../3189cac1ddac07c1487e1e51740ecc88.svg | 0 .../49dbf244d50c787a4ab18694488d9b69.svg | 0 .../877f9c217c51c0087be751a7580ed459.svg | 0 .../a4f0dafbfe80c88723c3cc22277a9682.svg | 0 .../acbc5efb06bc34571ccc0322376e0b9b.svg | 0 .../dfb83eec053c30e0a41b0a52aba24cd4.svg | 0 .../e2258660a796dcd6189a6f5e14326dad.svg | 0 .../e75a848f5f8aead495e35175e2955e06.svg | 0 .../ee08d86b7497c7ab042ee899bf15d453.svg | 0 .../fe32474b4616ee9478e1308308f1b6bf.svg | 1 + .../14cb9fbbaae9e7d87ae6bef3ea7a782e.svg | 1 + .../2af72ea0c3517bc05f36a08cbbed6002.svg | 0 .../c0d4dbc07b8ec7c0a18ea43c8a386935.svg | 0 .../6ed4fd2ead35c57984caddf9fe375a5f.svg | 0 .../828333034b4fed8e248683760d6bc6f4.svg | 0 .../d9c893051586eb8d9de51c0ae1ef8fae.svg | 0 .../03ec73258d5c95eed39a2ea8665e0b07.svg | 0 .../08f4beaebf83dca594ad125bdca7e436.svg | 0 .../283bc9e8fe59a78d3c74860f62a66ecb.svg | 0 .../2b8334727d3b004c6e87263fec6b32b7.svg | 0 .../2bef3da3828d63d690460ce9947dbde2.svg | 0 .../2d42758fba3370f52191306752c2705c.svg | 0 .../4ffad56e281ee79d0688e93033429f0a.svg | 0 .../5f7fcb86ae1c19612b9fe02e23229e31.svg | 0 .../6202d7bd150c852b432d807c40fb1647.svg | 0 .../78b8ba1aba2e4c9ad3f7890299c90152.svg | 0 .../7e5d59272621baf942bc722208ce70c2.svg | 0 .../7eada6f12045423de24d9a2ab8e293b1.svg | 0 .../875ca8eea72e727ccb881b4c0b6a3224.svg | 0 .../8d09f2be2c6db79ee966f170ffc25815.svg | 0 .../9151c0fdf9689ee598a2d029ab2ffe34.svg | 0 .../94acb5850778dcb16c2ba3cfa676f537.svg | 0 .../ab334858d3fa309cc1a5ba535a2ca168.svg | 0 .../bd8e8e294eec10d2bf6ef857c7c0c2c2.svg | 0 .../d84d1c71a3ce1918f53eaf8f9fe98ac4.svg | 0 .../03967e3ecdbff78684995ca9c22a6106.svg | 0 .../14cb9fbbaae9e7d87ae6bef3ea7a782e.svg | 0 .../2622790efa97f1915e7998787d8ce977.svg | 0 .../28991bba7c13698619f36b6261d91d68.svg | 0 .../514090a0fd6c64b7d85a9dc5721a0fa6.svg | 0 .../6770214cceeb0e13e371bd908867751f.svg | 0 .../89ceb6024ead6f710e3e0f09d2864f43.svg | 0 .../95a0cd4cc919a3fd5b192ffeb00c231e.svg | 0 .../b7815b1502029ed9d805b6ba0801a53f.svg | 0 .../bd3c740be364071c86ccf42b99d5eba4.svg | 0 .../c010c0df4bb911b84da6e9d379617e4b.svg | 0 .../c7b13e6507450b3da7dc4ce3c10c370f.svg | 0 .../e755c2adfec5d266c50e064407ca369b.svg | 0 .../eb4442acc5bc17f4649eb04b2953ed9b.svg | 0 .../fb823558e99662b24d46ae55ac93ce38.svg | 0 .../066a910ae6aba69c40a338320759cdd1.svg | 1 + .../0f5cffd58e864fec6739a57664eb8cbd.svg | 1 + .../1caef9931f954e32eae5067b732c1018.svg | 1 + .../2adc12d0cff01d40d9e1702014a7dc19.svg | 1 + .../4cf6fb369841e2c5d36e5567a8db4306.svg | 1 + .../6e15c433dc2340271e007742009e3532.svg | 0 .../741097d69c182e8742695af23980bd8f.svg | 0 .../9a6d17c362980775f1425d0d2ad9a36a.svg | 1 + .../9c18f76e76cf684ecd217ad8facc2e93.svg | 1 + .../bb06cb82d372f822a7b35e661502bd72.svg | 1 + .../c605597fb629b964921c6a4bca7fa4c9.svg | 0 .../e107caca1577e44293cd207388ac939c.svg | 1 + .../f24fd5e27968d96957ba706b16d8e90b.svg | 0 .../a75e84f0e7f92c2f3e8ef10b49744ba5.svg | 0 .../b80a1cac1f9ec476d6f6646ce0e154e7.svg | 1 + .../d930dea961b40f4810708bd6746221a2.svg | 1 + .../f41f553d448de8559d68fccd9c2f27d4.svg | 0 .../0ec5cc72a428d75defb480530b50d720.svg | 0 .../1c0367fad2a0d6946db1f55a8520793a.svg | 0 .../6db78123d4b676ffdf85d53670c77468.svg | 0 .../997a8cc704c0ab0e364cb8b532df90b0.svg | 0 .../c621cc41f6f22ee1beedbcb510fa5b6b.svg | 0 .../d9e66caeb45b6643112ce3d971b17e5b.svg | 0 .../ddc6f99a543afad25c55cf16b9deeed9.svg | 0 .../e06ec558d99b53e559d24524f4201951.svg | 0 .../4d4a648e8cac72a7041555ff885cbc2b.png | Bin 0 -> 8097 bytes .../6fd4fa0aca97b89939624de9339acf11.png | Bin 8531 -> 0 bytes .../1679090a942a43d27f886f236fc8d62b.svg | 0 .../2029bca9f4fa15739553636af99b70a8.svg | 0 .../4b5c7d0bf0fcd769db007dd98d4a024d.svg | 0 .../4d78ebcf8626f777725d67d3672fa480.svg | 0 .../7c9762c0e04693eb743905cdc0487f8b.svg | 0 .../97b34ad5920612574d1b2a1a9d22d571.svg | 0 .../b2433959e1f451fa3bf238fc37e04527.svg | 0 .../bafdb6583323bda71d9a15c02d1fdec2.svg | 0 .../009c671bc526b5d75c30411c3c3a7e91.svg | 0 .../24bdad213879407a35b23c18394293aa.svg | 0 .../5aea6d4d5855135051715fb1cc0ec531.svg | 0 .../6da69918482a0b6b84d90a72dbeae9dd.svg | 0 .../77a11d65d7cffc4b84a85c4bec837792.svg | 0 .../9bc905d79bb22580b8c1cd75a791db73.svg | 0 .../c1f815481ad5132bebc1b1f0a3edf20f.svg | 0 .../e0d89b48cd11a726c00a2f689d48d57c.svg | 0 .../e524525c62234ce616a1e51c9848c169.svg | 0 .../e94ae04eb5732c05d38fa1c97a2a25b0.svg | 0 .../0d2e895e767c4cecb0fccafee1273152.svg | 0 .../0f84dbf6e3ea7db732ceb9d71caf9b22.svg | 0 .../19049f556723a4f2d985a631a91ae290.svg | 0 .../278b67e9b908f4abcf2e9d069a6b29a4.svg | 0 .../2f2bec1e77039a40c31220f5bf83641a.svg | 0 .../3ed7fa50bf68beef4c77d23e665063d2.svg | 0 .../4063d3462c179e91bb5f97c5e763560a.svg | 0 .../567c29ee78b49c700f54b17780682543.svg | 0 .../5e3fae45d325d0f0681731fb606b6fbc.svg | 0 .../6aeb749eb26f5a9199c1b16d7d421dc0.svg | 0 .../77a11d65d7cffc4b84a85c4bec837792.svg | 1 + .../7d629178a5fb985a35770002d1912535.svg | 0 .../859b7bc7b78e8e297ae5fddd9be40ab7.svg | 0 .../8fb4faa046191480e89052102ecd3678.svg | 0 .../a34473afe7a4160b45ce0f2a770fad99.svg | 0 .../a56f198daab08d20ef666599af14f513.svg | 0 .../abb3edce2229312f351d81092ba2145b.svg | 0 .../b5cf45e4b34fdd18f599b79549844d45.svg | 0 .../c1fcb64541c09e6d180c3d4a5511858e.svg | 0 .../c58330e12d25c678b593ddbd4afa7c52.svg | 0 .../c79b607a92c42789fde57c6a8c4259fd.svg | 0 .../d0a2afc05a974e7e25ce0564505818be.svg | 0 .../daaae36f13bb97f2a7ac21eec6903755.svg | 0 .../dbdbbe9aed4dacb1c1c5ae29b4371870.svg | 0 .../e16eba6dfb9f0b8d1abc3e1cd3ba63a2.svg | 0 .../e9f64464287d3d5c6a4cbe64e21746c8.svg | 0 .../f2695b6d6417c60343b4934dae8118f8.svg | 0 .../524206c49f317d27d8e07a310b24a7a3.svg | 0 .../7bba0a4fd605e023cda922de125b3e32.svg | 0 .../94f61d17f896aebddcf5a7c676aee7d1.svg | 0 .../1d4be24e5896dce3c16c8e71f9cc8881.svg | 0 .../1d586b939b44ff9bdb42562a12ac2779.svg | 0 .../5bfee4f2ae27304475673d0596e42f9a.svg | 0 .../b262e50c085815421d94e120fc17f1c8.svg | 0 .../fa6c243de2aa78b7451e0086848dfdfc.svg | 0 .../009715fce01e46e7c07f87a8192a8c62.svg | 1 + .../2a55cb2d23c25408aa10cfd8db13278b.svg | 1 + .../2dd2f89d1c762991a86526490a3deef6.svg | 1 + .../6101b2f8b69ebabba4a2c88456a32aa0.svg | 1 + .../d236b7b2ad46c8ced1b43bb2a496379a.svg | 1 + .../deec095950fcd1f9c980be76a7093fe6.svg | 1 + .../408dd95905a5f001179c4da6051e49c5.svg | 0 .../8c1b570b3efdfbbc39ddedb4adcaaff6.svg | 0 .../1244a85c1f9044b6f77cb709c682159c.svg | 1 + .../41e184228d85023abdadd6ce2acb54c7.svg | 1 + .../4541eeb2113d81cbc0c0a56122570d48.png | Bin 10756 -> 10557 bytes .../483c89c8726f7fd0dca0b7de339b04bd.svg | 1 + .../4debbed5922d2bd84fd322c616872d20.svg | 1 + .../773fdc86b686647c823b4f499aca3a35.svg | 1 + .../7a9120997e4a4855ecda435553a7bbdf.svg | 1 + .../b2fda1dcce5bb13317aa42ebf5e7ea6c.svg | 1 + .../d52f60b331c1b8d6733eb5217adfbc4d.svg | 1 + .../dd8d8d98f66ce9f51b95cbf48225e97b.svg | 1 + .../faf29599c9307f930ec28065c96fde2a.svg | 1 + .../02457b19087540dfb144978419524a85.svg | 1 + .../3fd61ab3fe88f694e70f61e4f8ea056b.svg | 1 + .../4df088f01d0fd4de84a50bbc2e25f8a7.svg | 0 .../b5aa26284ba3df74970a95cb047a841d.svg | 1 + .../9ab2b830fe7fb73350c19bde04e9441b.svg | 0 .../9df91c28af38c1ba2e2d38d2714c9446.svg | 0 .../de3bd3e271d72194c730d0ae44f031a8.svg | 0 .../009715fce01e46e7c07f87a8192a8c62.svg | 1 - .../02457b19087540dfb144978419524a85.svg | 1 - .../066a910ae6aba69c40a338320759cdd1.svg | 1 - .../0f5cffd58e864fec6739a57664eb8cbd.svg | 1 - .../1244a85c1f9044b6f77cb709c682159c.svg | 1 - .../1caef9931f954e32eae5067b732c1018.svg | 1 - .../2a55cb2d23c25408aa10cfd8db13278b.svg | 1 - .../2adc12d0cff01d40d9e1702014a7dc19.svg | 1 - .../2dd2f89d1c762991a86526490a3deef6.svg | 1 - .../3fd61ab3fe88f694e70f61e4f8ea056b.svg | 1 - .../41e184228d85023abdadd6ce2acb54c7.svg | 1 - .../483c89c8726f7fd0dca0b7de339b04bd.svg | 1 - .../4cf6fb369841e2c5d36e5567a8db4306.svg | 1 - .../4debbed5922d2bd84fd322c616872d20.svg | 1 - .../50679d61424222d7b6b97eb3aa663582.svg | 1 - .../6101b2f8b69ebabba4a2c88456a32aa0.svg | 1 - .../773fdc86b686647c823b4f499aca3a35.svg | 1 - .../7a9120997e4a4855ecda435553a7bbdf.svg | 1 - .../9a6d17c362980775f1425d0d2ad9a36a.svg | 1 - .../9c18f76e76cf684ecd217ad8facc2e93.svg | 1 - .../a9af1c06a00bb3c4af816a138fb0a66d.svg | 1 - .../b2fda1dcce5bb13317aa42ebf5e7ea6c.svg | 1 - .../b5aa26284ba3df74970a95cb047a841d.svg | 1 - .../b80a1cac1f9ec476d6f6646ce0e154e7.svg | 1 - .../bb06cb82d372f822a7b35e661502bd72.svg | 1 - .../c78b203ff33e5c1606728b552505d61c.svg | 1 - .../d236b7b2ad46c8ced1b43bb2a496379a.svg | 1 - .../d480a9aa41917e5230d432cdbd6899b1.svg | 1 - .../d52f60b331c1b8d6733eb5217adfbc4d.svg | 1 - .../d930dea961b40f4810708bd6746221a2.svg | 1 - .../dd8d8d98f66ce9f51b95cbf48225e97b.svg | 1 - .../deec095950fcd1f9c980be76a7093fe6.svg | 1 - .../e107caca1577e44293cd207388ac939c.svg | 1 - .../faf29599c9307f930ec28065c96fde2a.svg | 1 - index.html | 544 +++++++++--------- ja-JP/index.html | 516 ++++++++--------- tools/build/latex/latex-to-svg.js | 18 +- zh-CN/index.html | 544 +++++++++--------- 274 files changed, 851 insertions(+), 844 deletions(-) rename images/{latex => chapters/abc}/059000c5c8a37dcc8d7fa04154a05df3.svg (100%) rename images/{latex => chapters/abc}/12aaf0d7fd20b3c551a0ec76b18bd7d2.svg (100%) rename images/{latex => chapters/abc}/34fe255294faf45ab02128f7997b92ce.svg (100%) rename images/{latex => chapters/abc}/385d1fd4aecbd2066e6e284a84408be6.svg (100%) rename images/{latex => chapters/abc}/62f2f984e43a22a6b4bda4d399dedfc6.svg (100%) rename images/{latex => chapters/abc}/b4987e9b77b0df604238b88596c5f7c3.svg (100%) create mode 100644 images/chapters/aligning/50679d61424222d7b6b97eb3aa663582.svg create mode 100644 images/chapters/aligning/a9af1c06a00bb3c4af816a138fb0a66d.svg create mode 100644 images/chapters/aligning/c78b203ff33e5c1606728b552505d61c.svg create mode 100644 images/chapters/aligning/d480a9aa41917e5230d432cdbd6899b1.svg rename images/{latex => chapters/arclength}/5509919419288129322cfbd4c60d0a4f.svg (100%) rename images/{latex => chapters/arclength}/cb24cda7f7f4bbf3be7104c460e0ec9f.svg (100%) rename images/{latex => chapters/arclength}/d0d93f1cc26b560309dade1f1aa012f2.svg (100%) rename images/{latex => chapters/arclength}/d3003177813309f88f58a1f515f5df9f.svg (100%) rename images/{latex => chapters/arclength}/e168758d35b8f6781617eda5a32b20bf.svg (100%) rename images/{latex => chapters/arclength}/e96dd431f6ef9433ccf25909dddd5bca.svg (100%) rename images/{latex => chapters/bsplined}/15f9e6eea05599fe6a5eac609ca42cfa.svg (100%) rename images/{latex => chapters/bsplined}/6aad9d1ec548943ee9e7c5ffc9ced9fd.svg (100%) rename images/{latex => chapters/bsplined}/b8c1ed97fb04474733b41daf2ac1a259.svg (100%) rename images/{latex => chapters/bsplined}/c32c4cabe4193e4b4c5e1d0e46aacf72.svg (100%) rename images/{latex => chapters/bsplined}/d17627b7f5db3f8a2be3422bbee4f2b7.svg (100%) rename images/{latex => chapters/bsplines}/0f3451c711c0fe5d0b018aa4aa77d855.svg (100%) rename images/{latex => chapters/bsplines}/4c8f9814c50c708757eeb5a68afabb7f.svg (100%) rename images/{latex => chapters/bsplines}/763838ea6f9e6c6aa63ea5f9c6d9542f.svg (100%) rename images/{latex => chapters/bsplines}/7962d6fea86da6f53a7269fba30f0138.svg (100%) rename images/{latex => chapters/bsplines}/892209dad8fd1f839470dd061e870913.svg (100%) rename images/{latex => chapters/bsplines}/adac18ea69cc58e01c8d5e15498e4aa6.svg (100%) rename images/{latex => chapters/bsplines}/cf45d1ea00d4866abc8a058b130299b4.svg (100%) rename images/{latex => chapters/canonical}/0430e8c7f7d4ec80e6527f96f3d56e5c.svg (100%) rename images/{latex => chapters/canonical}/058fa85ac31eb666857a860fdedd79df.svg (100%) rename images/{latex => chapters/canonical}/10025fdab2b3fd20f5d389cbe7e3e3ce.svg (100%) rename images/{latex => chapters/canonical}/20684d22b3ddc52fd6abde8ce56608a9.svg (100%) rename images/{latex => chapters/canonical}/2f85d84f0e3dd14cc25e48583aed3822.svg (100%) rename images/{latex => chapters/canonical}/4230e959138d8400e04abf316360009a.svg (100%) rename images/{latex => chapters/canonical}/63ccae0ebe0ca70dc2afb507ab32e4bd.svg (100%) rename images/{latex => chapters/canonical}/83262761bb7fa9b832fe483ded436973.svg (100%) rename images/{latex => chapters/canonical}/8cbef24b8c3b26f9daf2f89d27d36e95.svg (100%) rename images/{latex => chapters/canonical}/add5f7fb210a306fe9ff933113f6fb91.svg (100%) rename images/{latex => chapters/canonical}/d089cc0687982a3302249bb82af3fc16.svg (100%) rename images/{latex => chapters/canonical}/f3261ad2802d980ebe6e35b272375700.svg (100%) rename images/{latex => chapters/catmullconv}/06ae1e3fdc660e59d618e0760e8e9ab5.svg (100%) rename images/{latex => chapters/catmullconv}/169fd85a95e4d16fe289a75583017a11.svg (100%) rename images/{latex => chapters/catmullconv}/1811b59c5ab9233f08590396e5d03303.svg (100%) rename images/{latex => chapters/catmullconv}/1b8a782f7540503d38067317e4cd00b0.svg (100%) rename images/{latex => chapters/catmullconv}/26363fc09f8cf2d41ea5b4256656bb6d.svg (100%) rename images/{latex => chapters/catmullconv}/3ea54fe939d076f8db605c5b480e7db0.svg (100%) rename images/{latex => chapters/catmullconv}/4d524810417b4caffedd13af23135f5b.svg (100%) rename images/{latex => chapters/catmullconv}/5f2750de827497375d9a915f96686885.svg (100%) rename images/{latex => chapters/catmullconv}/78ac9df086ec19147414359369b563fc.svg (100%) rename images/{latex => chapters/catmullconv}/79e333cd0c569657eea033b04fb5e61b.svg (100%) rename images/{latex => chapters/catmullconv}/841fb6a2a035c9bcf5a2d46f2a67709b.svg (100%) rename images/{latex => chapters/catmullconv}/8f56909fcb62b8eef18b9b9559575c13.svg (100%) rename images/{latex => chapters/catmullconv}/9215d05705c8e8a7ebd718ae6f690371.svg (100%) rename images/{latex => chapters/catmullconv}/a47b072a325812ac4f0ff52c22792588.svg (100%) rename images/{latex => chapters/catmullconv}/b21386f86bef8894f108c5441dad10de.svg (100%) rename images/{latex => chapters/catmullconv}/ba31c32eba62f1e3b15066cd5ddda597.svg (100%) rename images/{latex => chapters/catmullconv}/cbdd46d5e2e1a6202ef46fb03711ebe4.svg (100%) rename images/{latex => chapters/catmullconv}/cc1e2ff43350c32f0ae9ba9a7652b8fb.svg (100%) rename images/{latex => chapters/catmullconv}/e3d30ab368dcead1411532ce3814d3f3.svg (100%) rename images/{latex => chapters/catmullconv}/eae7f01976e511ee38b08b6edc8765d2.svg (100%) rename images/{latex => chapters/catmullconv}/f08e34395ce2812276fd70548f805041.svg (100%) rename images/{latex => chapters/catmullconv}/f2b2a16a41d134ce0dfd544ab77ff25e.svg (100%) rename images/{latex => chapters/catmullconv}/f41487aff3e34fafd5d4ee5979f133f1.svg (100%) rename images/{latex => chapters/catmullconv}/f814bb8d627f9c8f33b347c1cf13d4c7.svg (100%) rename images/{latex => chapters/circles}/7754bc3c96ae3c90162fec3bd46bedff.svg (100%) rename images/{latex => chapters/circles}/8374c4190d6213b0ac0621481afaa754.svg (100%) rename images/{latex => chapters/circles}/9e4d886c372f916f6511c41245ceee39.svg (100%) rename images/{latex => chapters/circles}/a127f926eced2751a09c54bf7c361b4a.svg (100%) rename images/{latex => chapters/circles}/adbd056f4b8fcd05b1d4f2fce27d7657.svg (100%) rename images/{latex => chapters/circles}/b5d864e9ed0c44c56d454fbaa4218d5e.svg (100%) rename images/{latex => chapters/circles}/c22f6d343ee0cce7bff6a617c946ca17.svg (100%) rename images/{latex => chapters/circles}/df87674db0f31fc3944aaeb6b890e196.svg (100%) rename images/{latex => chapters/circles}/e1059e611aa1e51db41f9ce0b4ebb95a.svg (100%) rename images/{latex => chapters/circles}/ef3ab62bb896019c6157c85aae5d1ed3.svg (100%) rename images/{latex => chapters/circles}/fe32474b4616ee9478e1308308f1b6bf.svg (100%) rename images/{latex => chapters/circles_cubic}/0364731626a530c8a9b30f424ada53c5.svg (100%) rename images/{latex => chapters/circles_cubic}/05d36e051a38905dcb81e65db8261f24.svg (100%) rename images/{latex => chapters/circles_cubic}/178a838274748439778e2a29f5a27d0b.svg (100%) rename images/{latex => chapters/circles_cubic}/195790bae7de813aec342ea82b5d8781.svg (100%) rename images/{latex => chapters/circles_cubic}/3189cac1ddac07c1487e1e51740ecc88.svg (100%) rename images/{latex => chapters/circles_cubic}/49dbf244d50c787a4ab18694488d9b69.svg (100%) rename images/{latex => chapters/circles_cubic}/877f9c217c51c0087be751a7580ed459.svg (100%) rename images/{latex => chapters/circles_cubic}/a4f0dafbfe80c88723c3cc22277a9682.svg (100%) rename images/{latex => chapters/circles_cubic}/acbc5efb06bc34571ccc0322376e0b9b.svg (100%) rename images/{latex => chapters/circles_cubic}/dfb83eec053c30e0a41b0a52aba24cd4.svg (100%) rename images/{latex => chapters/circles_cubic}/e2258660a796dcd6189a6f5e14326dad.svg (100%) rename images/{latex => chapters/circles_cubic}/e75a848f5f8aead495e35175e2955e06.svg (100%) rename images/{latex => chapters/circles_cubic}/ee08d86b7497c7ab042ee899bf15d453.svg (100%) create mode 100644 images/chapters/circles_cubic/fe32474b4616ee9478e1308308f1b6bf.svg create mode 100644 images/chapters/control/14cb9fbbaae9e7d87ae6bef3ea7a782e.svg rename images/{latex => chapters/control}/2af72ea0c3517bc05f36a08cbbed6002.svg (100%) rename images/{latex => chapters/control}/c0d4dbc07b8ec7c0a18ea43c8a386935.svg (100%) rename images/{latex => chapters/curvature}/6ed4fd2ead35c57984caddf9fe375a5f.svg (100%) rename images/{latex => chapters/curvature}/828333034b4fed8e248683760d6bc6f4.svg (100%) rename images/{latex => chapters/curvature}/d9c893051586eb8d9de51c0ae1ef8fae.svg (100%) rename images/{latex => chapters/curvefitting}/03ec73258d5c95eed39a2ea8665e0b07.svg (100%) rename images/{latex => chapters/curvefitting}/08f4beaebf83dca594ad125bdca7e436.svg (100%) rename images/{latex => chapters/curvefitting}/283bc9e8fe59a78d3c74860f62a66ecb.svg (100%) rename images/{latex => chapters/curvefitting}/2b8334727d3b004c6e87263fec6b32b7.svg (100%) rename images/{latex => chapters/curvefitting}/2bef3da3828d63d690460ce9947dbde2.svg (100%) rename images/{latex => chapters/curvefitting}/2d42758fba3370f52191306752c2705c.svg (100%) rename images/{latex => chapters/curvefitting}/4ffad56e281ee79d0688e93033429f0a.svg (100%) rename images/{latex => chapters/curvefitting}/5f7fcb86ae1c19612b9fe02e23229e31.svg (100%) rename images/{latex => chapters/curvefitting}/6202d7bd150c852b432d807c40fb1647.svg (100%) rename images/{latex => chapters/curvefitting}/78b8ba1aba2e4c9ad3f7890299c90152.svg (100%) rename images/{latex => chapters/curvefitting}/7e5d59272621baf942bc722208ce70c2.svg (100%) rename images/{latex => chapters/curvefitting}/7eada6f12045423de24d9a2ab8e293b1.svg (100%) rename images/{latex => chapters/curvefitting}/875ca8eea72e727ccb881b4c0b6a3224.svg (100%) rename images/{latex => chapters/curvefitting}/8d09f2be2c6db79ee966f170ffc25815.svg (100%) rename images/{latex => chapters/curvefitting}/9151c0fdf9689ee598a2d029ab2ffe34.svg (100%) rename images/{latex => chapters/curvefitting}/94acb5850778dcb16c2ba3cfa676f537.svg (100%) rename images/{latex => chapters/curvefitting}/ab334858d3fa309cc1a5ba535a2ca168.svg (100%) rename images/{latex => chapters/curvefitting}/bd8e8e294eec10d2bf6ef857c7c0c2c2.svg (100%) rename images/{latex => chapters/curvefitting}/d84d1c71a3ce1918f53eaf8f9fe98ac4.svg (100%) rename images/{latex => chapters/derivatives}/03967e3ecdbff78684995ca9c22a6106.svg (100%) rename images/{latex => chapters/derivatives}/14cb9fbbaae9e7d87ae6bef3ea7a782e.svg (100%) rename images/{latex => chapters/derivatives}/2622790efa97f1915e7998787d8ce977.svg (100%) rename images/{latex => chapters/derivatives}/28991bba7c13698619f36b6261d91d68.svg (100%) rename images/{latex => chapters/derivatives}/514090a0fd6c64b7d85a9dc5721a0fa6.svg (100%) rename images/{latex => chapters/derivatives}/6770214cceeb0e13e371bd908867751f.svg (100%) rename images/{latex => chapters/derivatives}/89ceb6024ead6f710e3e0f09d2864f43.svg (100%) rename images/{latex => chapters/derivatives}/95a0cd4cc919a3fd5b192ffeb00c231e.svg (100%) rename images/{latex => chapters/derivatives}/b7815b1502029ed9d805b6ba0801a53f.svg (100%) rename images/{latex => chapters/derivatives}/bd3c740be364071c86ccf42b99d5eba4.svg (100%) rename images/{latex => chapters/derivatives}/c010c0df4bb911b84da6e9d379617e4b.svg (100%) rename images/{latex => chapters/derivatives}/c7b13e6507450b3da7dc4ce3c10c370f.svg (100%) rename images/{latex => chapters/derivatives}/e755c2adfec5d266c50e064407ca369b.svg (100%) rename images/{latex => chapters/derivatives}/eb4442acc5bc17f4649eb04b2953ed9b.svg (100%) rename images/{latex => chapters/derivatives}/fb823558e99662b24d46ae55ac93ce38.svg (100%) create mode 100644 images/chapters/explanation/066a910ae6aba69c40a338320759cdd1.svg create mode 100644 images/chapters/explanation/0f5cffd58e864fec6739a57664eb8cbd.svg create mode 100644 images/chapters/explanation/1caef9931f954e32eae5067b732c1018.svg create mode 100644 images/chapters/explanation/2adc12d0cff01d40d9e1702014a7dc19.svg create mode 100644 images/chapters/explanation/4cf6fb369841e2c5d36e5567a8db4306.svg rename images/{latex => chapters/explanation}/6e15c433dc2340271e007742009e3532.svg (100%) rename images/{latex => chapters/explanation}/741097d69c182e8742695af23980bd8f.svg (100%) create mode 100644 images/chapters/explanation/9a6d17c362980775f1425d0d2ad9a36a.svg create mode 100644 images/chapters/explanation/9c18f76e76cf684ecd217ad8facc2e93.svg create mode 100644 images/chapters/explanation/bb06cb82d372f822a7b35e661502bd72.svg rename images/{latex => chapters/explanation}/c605597fb629b964921c6a4bca7fa4c9.svg (100%) create mode 100644 images/chapters/explanation/e107caca1577e44293cd207388ac939c.svg rename images/{latex => chapters/explanation}/f24fd5e27968d96957ba706b16d8e90b.svg (100%) rename images/{latex => chapters/extended}/a75e84f0e7f92c2f3e8ef10b49744ba5.svg (100%) create mode 100644 images/chapters/extended/b80a1cac1f9ec476d6f6646ce0e154e7.svg create mode 100644 images/chapters/extended/d930dea961b40f4810708bd6746221a2.svg rename images/{latex => chapters/extended}/f41f553d448de8559d68fccd9c2f27d4.svg (100%) rename images/{latex => chapters/extremities}/0ec5cc72a428d75defb480530b50d720.svg (100%) rename images/{latex => chapters/extremities}/1c0367fad2a0d6946db1f55a8520793a.svg (100%) rename images/{latex => chapters/extremities}/6db78123d4b676ffdf85d53670c77468.svg (100%) rename images/{latex => chapters/extremities}/997a8cc704c0ab0e364cb8b532df90b0.svg (100%) rename images/{latex => chapters/extremities}/c621cc41f6f22ee1beedbcb510fa5b6b.svg (100%) rename images/{latex => chapters/extremities}/d9e66caeb45b6643112ce3d971b17e5b.svg (100%) rename images/{latex => chapters/extremities}/ddc6f99a543afad25c55cf16b9deeed9.svg (100%) rename images/{latex => chapters/extremities}/e06ec558d99b53e559d24524f4201951.svg (100%) create mode 100644 images/chapters/flattening/4d4a648e8cac72a7041555ff885cbc2b.png delete mode 100644 images/chapters/flattening/6fd4fa0aca97b89939624de9339acf11.png rename images/{latex => chapters/inflections}/1679090a942a43d27f886f236fc8d62b.svg (100%) rename images/{latex => chapters/inflections}/2029bca9f4fa15739553636af99b70a8.svg (100%) rename images/{latex => chapters/inflections}/4b5c7d0bf0fcd769db007dd98d4a024d.svg (100%) rename images/{latex => chapters/inflections}/4d78ebcf8626f777725d67d3672fa480.svg (100%) rename images/{latex => chapters/inflections}/7c9762c0e04693eb743905cdc0487f8b.svg (100%) rename images/{latex => chapters/inflections}/97b34ad5920612574d1b2a1a9d22d571.svg (100%) rename images/{latex => chapters/inflections}/b2433959e1f451fa3bf238fc37e04527.svg (100%) rename images/{latex => chapters/inflections}/bafdb6583323bda71d9a15c02d1fdec2.svg (100%) rename images/{latex => chapters/matrix}/009c671bc526b5d75c30411c3c3a7e91.svg (100%) rename images/{latex => chapters/matrix}/24bdad213879407a35b23c18394293aa.svg (100%) rename images/{latex => chapters/matrix}/5aea6d4d5855135051715fb1cc0ec531.svg (100%) rename images/{latex => chapters/matrix}/6da69918482a0b6b84d90a72dbeae9dd.svg (100%) rename images/{latex => chapters/matrix}/77a11d65d7cffc4b84a85c4bec837792.svg (100%) rename images/{latex => chapters/matrix}/9bc905d79bb22580b8c1cd75a791db73.svg (100%) rename images/{latex => chapters/matrix}/c1f815481ad5132bebc1b1f0a3edf20f.svg (100%) rename images/{latex => chapters/matrix}/e0d89b48cd11a726c00a2f689d48d57c.svg (100%) rename images/{latex => chapters/matrix}/e524525c62234ce616a1e51c9848c169.svg (100%) rename images/{latex => chapters/matrix}/e94ae04eb5732c05d38fa1c97a2a25b0.svg (100%) rename images/{latex => chapters/matrixsplit}/0d2e895e767c4cecb0fccafee1273152.svg (100%) rename images/{latex => chapters/matrixsplit}/0f84dbf6e3ea7db732ceb9d71caf9b22.svg (100%) rename images/{latex => chapters/matrixsplit}/19049f556723a4f2d985a631a91ae290.svg (100%) rename images/{latex => chapters/matrixsplit}/278b67e9b908f4abcf2e9d069a6b29a4.svg (100%) rename images/{latex => chapters/matrixsplit}/2f2bec1e77039a40c31220f5bf83641a.svg (100%) rename images/{latex => chapters/matrixsplit}/3ed7fa50bf68beef4c77d23e665063d2.svg (100%) rename images/{latex => chapters/matrixsplit}/4063d3462c179e91bb5f97c5e763560a.svg (100%) rename images/{latex => chapters/matrixsplit}/567c29ee78b49c700f54b17780682543.svg (100%) rename images/{latex => chapters/matrixsplit}/5e3fae45d325d0f0681731fb606b6fbc.svg (100%) rename images/{latex => chapters/matrixsplit}/6aeb749eb26f5a9199c1b16d7d421dc0.svg (100%) create mode 100644 images/chapters/matrixsplit/77a11d65d7cffc4b84a85c4bec837792.svg rename images/{latex => chapters/matrixsplit}/7d629178a5fb985a35770002d1912535.svg (100%) rename images/{latex => chapters/matrixsplit}/859b7bc7b78e8e297ae5fddd9be40ab7.svg (100%) rename images/{latex => chapters/matrixsplit}/8fb4faa046191480e89052102ecd3678.svg (100%) rename images/{latex => chapters/matrixsplit}/a34473afe7a4160b45ce0f2a770fad99.svg (100%) rename images/{latex => chapters/matrixsplit}/a56f198daab08d20ef666599af14f513.svg (100%) rename images/{latex => chapters/matrixsplit}/abb3edce2229312f351d81092ba2145b.svg (100%) rename images/{latex => chapters/matrixsplit}/b5cf45e4b34fdd18f599b79549844d45.svg (100%) rename images/{latex => chapters/matrixsplit}/c1fcb64541c09e6d180c3d4a5511858e.svg (100%) rename images/{latex => chapters/matrixsplit}/c58330e12d25c678b593ddbd4afa7c52.svg (100%) rename images/{latex => chapters/matrixsplit}/c79b607a92c42789fde57c6a8c4259fd.svg (100%) rename images/{latex => chapters/matrixsplit}/d0a2afc05a974e7e25ce0564505818be.svg (100%) rename images/{latex => chapters/matrixsplit}/daaae36f13bb97f2a7ac21eec6903755.svg (100%) rename images/{latex => chapters/matrixsplit}/dbdbbe9aed4dacb1c1c5ae29b4371870.svg (100%) rename images/{latex => chapters/matrixsplit}/e16eba6dfb9f0b8d1abc3e1cd3ba63a2.svg (100%) rename images/{latex => chapters/matrixsplit}/e9f64464287d3d5c6a4cbe64e21746c8.svg (100%) rename images/{latex => chapters/matrixsplit}/f2695b6d6417c60343b4934dae8118f8.svg (100%) rename images/{latex => chapters/moulding}/524206c49f317d27d8e07a310b24a7a3.svg (100%) rename images/{latex => chapters/moulding}/7bba0a4fd605e023cda922de125b3e32.svg (100%) rename images/{latex => chapters/moulding}/94f61d17f896aebddcf5a7c676aee7d1.svg (100%) rename images/{latex => chapters/offsetting}/1d4be24e5896dce3c16c8e71f9cc8881.svg (100%) rename images/{latex => chapters/offsetting}/1d586b939b44ff9bdb42562a12ac2779.svg (100%) rename images/{latex => chapters/offsetting}/5bfee4f2ae27304475673d0596e42f9a.svg (100%) rename images/{latex => chapters/offsetting}/b262e50c085815421d94e120fc17f1c8.svg (100%) rename images/{latex => chapters/offsetting}/fa6c243de2aa78b7451e0086848dfdfc.svg (100%) create mode 100644 images/chapters/pointvectors/009715fce01e46e7c07f87a8192a8c62.svg create mode 100644 images/chapters/pointvectors/2a55cb2d23c25408aa10cfd8db13278b.svg create mode 100644 images/chapters/pointvectors/2dd2f89d1c762991a86526490a3deef6.svg create mode 100644 images/chapters/pointvectors/6101b2f8b69ebabba4a2c88456a32aa0.svg create mode 100644 images/chapters/pointvectors/d236b7b2ad46c8ced1b43bb2a496379a.svg create mode 100644 images/chapters/pointvectors/deec095950fcd1f9c980be76a7093fe6.svg rename images/{latex => chapters/polybezier}/408dd95905a5f001179c4da6051e49c5.svg (100%) rename images/{latex => chapters/polybezier}/8c1b570b3efdfbbc39ddedb4adcaaff6.svg (100%) create mode 100644 images/chapters/reordering/1244a85c1f9044b6f77cb709c682159c.svg create mode 100644 images/chapters/reordering/41e184228d85023abdadd6ce2acb54c7.svg create mode 100644 images/chapters/reordering/483c89c8726f7fd0dca0b7de339b04bd.svg create mode 100644 images/chapters/reordering/4debbed5922d2bd84fd322c616872d20.svg create mode 100644 images/chapters/reordering/773fdc86b686647c823b4f499aca3a35.svg create mode 100644 images/chapters/reordering/7a9120997e4a4855ecda435553a7bbdf.svg create mode 100644 images/chapters/reordering/b2fda1dcce5bb13317aa42ebf5e7ea6c.svg create mode 100644 images/chapters/reordering/d52f60b331c1b8d6733eb5217adfbc4d.svg create mode 100644 images/chapters/reordering/dd8d8d98f66ce9f51b95cbf48225e97b.svg create mode 100644 images/chapters/reordering/faf29599c9307f930ec28065c96fde2a.svg create mode 100644 images/chapters/weightcontrol/02457b19087540dfb144978419524a85.svg create mode 100644 images/chapters/weightcontrol/3fd61ab3fe88f694e70f61e4f8ea056b.svg rename images/{latex => chapters/whatis}/4df088f01d0fd4de84a50bbc2e25f8a7.svg (100%) create mode 100644 images/chapters/whatis/b5aa26284ba3df74970a95cb047a841d.svg rename images/{latex => chapters/yforx}/9ab2b830fe7fb73350c19bde04e9441b.svg (100%) rename images/{latex => chapters/yforx}/9df91c28af38c1ba2e2d38d2714c9446.svg (100%) rename images/{latex => chapters/yforx}/de3bd3e271d72194c730d0ae44f031a8.svg (100%) delete mode 100644 images/latex/009715fce01e46e7c07f87a8192a8c62.svg delete mode 100644 images/latex/02457b19087540dfb144978419524a85.svg delete mode 100644 images/latex/066a910ae6aba69c40a338320759cdd1.svg delete mode 100644 images/latex/0f5cffd58e864fec6739a57664eb8cbd.svg delete mode 100644 images/latex/1244a85c1f9044b6f77cb709c682159c.svg delete mode 100644 images/latex/1caef9931f954e32eae5067b732c1018.svg delete mode 100644 images/latex/2a55cb2d23c25408aa10cfd8db13278b.svg delete mode 100644 images/latex/2adc12d0cff01d40d9e1702014a7dc19.svg delete mode 100644 images/latex/2dd2f89d1c762991a86526490a3deef6.svg delete mode 100644 images/latex/3fd61ab3fe88f694e70f61e4f8ea056b.svg delete mode 100644 images/latex/41e184228d85023abdadd6ce2acb54c7.svg delete mode 100644 images/latex/483c89c8726f7fd0dca0b7de339b04bd.svg delete mode 100644 images/latex/4cf6fb369841e2c5d36e5567a8db4306.svg delete mode 100644 images/latex/4debbed5922d2bd84fd322c616872d20.svg delete mode 100644 images/latex/50679d61424222d7b6b97eb3aa663582.svg delete mode 100644 images/latex/6101b2f8b69ebabba4a2c88456a32aa0.svg delete mode 100644 images/latex/773fdc86b686647c823b4f499aca3a35.svg delete mode 100644 images/latex/7a9120997e4a4855ecda435553a7bbdf.svg delete mode 100644 images/latex/9a6d17c362980775f1425d0d2ad9a36a.svg delete mode 100644 images/latex/9c18f76e76cf684ecd217ad8facc2e93.svg delete mode 100644 images/latex/a9af1c06a00bb3c4af816a138fb0a66d.svg delete mode 100644 images/latex/b2fda1dcce5bb13317aa42ebf5e7ea6c.svg delete mode 100644 images/latex/b5aa26284ba3df74970a95cb047a841d.svg delete mode 100644 images/latex/b80a1cac1f9ec476d6f6646ce0e154e7.svg delete mode 100644 images/latex/bb06cb82d372f822a7b35e661502bd72.svg delete mode 100644 images/latex/c78b203ff33e5c1606728b552505d61c.svg delete mode 100644 images/latex/d236b7b2ad46c8ced1b43bb2a496379a.svg delete mode 100644 images/latex/d480a9aa41917e5230d432cdbd6899b1.svg delete mode 100644 images/latex/d52f60b331c1b8d6733eb5217adfbc4d.svg delete mode 100644 images/latex/d930dea961b40f4810708bd6746221a2.svg delete mode 100644 images/latex/dd8d8d98f66ce9f51b95cbf48225e97b.svg delete mode 100644 images/latex/deec095950fcd1f9c980be76a7093fe6.svg delete mode 100644 images/latex/e107caca1577e44293cd207388ac939c.svg delete mode 100644 images/latex/faf29599c9307f930ec28065c96fde2a.svg diff --git a/chapters/flattening/quadratic.js b/chapters/flattening/quadratic.js index f0219fb6..96e9e4e5 100644 --- a/chapters/flattening/quadratic.js +++ b/chapters/flattening/quadratic.js @@ -1,5 +1,5 @@ setup() { - this.steps = 8; + this.steps = 4; this.curve = Bezier.defaultQuadratic(this); setMovable(this.curve.points); } diff --git a/images/latex/059000c5c8a37dcc8d7fa04154a05df3.svg b/images/chapters/abc/059000c5c8a37dcc8d7fa04154a05df3.svg similarity index 100% rename from images/latex/059000c5c8a37dcc8d7fa04154a05df3.svg rename to images/chapters/abc/059000c5c8a37dcc8d7fa04154a05df3.svg diff --git a/images/latex/12aaf0d7fd20b3c551a0ec76b18bd7d2.svg b/images/chapters/abc/12aaf0d7fd20b3c551a0ec76b18bd7d2.svg similarity index 100% rename from images/latex/12aaf0d7fd20b3c551a0ec76b18bd7d2.svg rename to images/chapters/abc/12aaf0d7fd20b3c551a0ec76b18bd7d2.svg diff --git a/images/latex/34fe255294faf45ab02128f7997b92ce.svg b/images/chapters/abc/34fe255294faf45ab02128f7997b92ce.svg similarity index 100% rename from images/latex/34fe255294faf45ab02128f7997b92ce.svg rename to images/chapters/abc/34fe255294faf45ab02128f7997b92ce.svg diff --git a/images/latex/385d1fd4aecbd2066e6e284a84408be6.svg b/images/chapters/abc/385d1fd4aecbd2066e6e284a84408be6.svg similarity index 100% rename from images/latex/385d1fd4aecbd2066e6e284a84408be6.svg rename to images/chapters/abc/385d1fd4aecbd2066e6e284a84408be6.svg diff --git a/images/latex/62f2f984e43a22a6b4bda4d399dedfc6.svg b/images/chapters/abc/62f2f984e43a22a6b4bda4d399dedfc6.svg similarity index 100% rename from images/latex/62f2f984e43a22a6b4bda4d399dedfc6.svg rename to images/chapters/abc/62f2f984e43a22a6b4bda4d399dedfc6.svg diff --git a/images/latex/b4987e9b77b0df604238b88596c5f7c3.svg b/images/chapters/abc/b4987e9b77b0df604238b88596c5f7c3.svg similarity index 100% rename from images/latex/b4987e9b77b0df604238b88596c5f7c3.svg rename to images/chapters/abc/b4987e9b77b0df604238b88596c5f7c3.svg diff --git a/images/chapters/aligning/50679d61424222d7b6b97eb3aa663582.svg b/images/chapters/aligning/50679d61424222d7b6b97eb3aa663582.svg new file mode 100644 index 00000000..dba522ea --- /dev/null +++ b/images/chapters/aligning/50679d61424222d7b6b97eb3aa663582.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/chapters/aligning/a9af1c06a00bb3c4af816a138fb0a66d.svg b/images/chapters/aligning/a9af1c06a00bb3c4af816a138fb0a66d.svg new file mode 100644 index 00000000..8f7f953d --- /dev/null +++ b/images/chapters/aligning/a9af1c06a00bb3c4af816a138fb0a66d.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/chapters/aligning/c78b203ff33e5c1606728b552505d61c.svg b/images/chapters/aligning/c78b203ff33e5c1606728b552505d61c.svg new file mode 100644 index 00000000..2fbe2ac8 --- /dev/null +++ b/images/chapters/aligning/c78b203ff33e5c1606728b552505d61c.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/chapters/aligning/d480a9aa41917e5230d432cdbd6899b1.svg b/images/chapters/aligning/d480a9aa41917e5230d432cdbd6899b1.svg new file mode 100644 index 00000000..31dbb1c1 --- /dev/null +++ b/images/chapters/aligning/d480a9aa41917e5230d432cdbd6899b1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/latex/5509919419288129322cfbd4c60d0a4f.svg b/images/chapters/arclength/5509919419288129322cfbd4c60d0a4f.svg similarity index 100% rename from images/latex/5509919419288129322cfbd4c60d0a4f.svg rename to images/chapters/arclength/5509919419288129322cfbd4c60d0a4f.svg diff --git a/images/latex/cb24cda7f7f4bbf3be7104c460e0ec9f.svg b/images/chapters/arclength/cb24cda7f7f4bbf3be7104c460e0ec9f.svg similarity index 100% rename from images/latex/cb24cda7f7f4bbf3be7104c460e0ec9f.svg rename to images/chapters/arclength/cb24cda7f7f4bbf3be7104c460e0ec9f.svg diff --git a/images/latex/d0d93f1cc26b560309dade1f1aa012f2.svg b/images/chapters/arclength/d0d93f1cc26b560309dade1f1aa012f2.svg similarity index 100% rename from images/latex/d0d93f1cc26b560309dade1f1aa012f2.svg rename to images/chapters/arclength/d0d93f1cc26b560309dade1f1aa012f2.svg diff --git a/images/latex/d3003177813309f88f58a1f515f5df9f.svg b/images/chapters/arclength/d3003177813309f88f58a1f515f5df9f.svg similarity index 100% rename from images/latex/d3003177813309f88f58a1f515f5df9f.svg rename to images/chapters/arclength/d3003177813309f88f58a1f515f5df9f.svg diff --git a/images/latex/e168758d35b8f6781617eda5a32b20bf.svg b/images/chapters/arclength/e168758d35b8f6781617eda5a32b20bf.svg similarity index 100% rename from images/latex/e168758d35b8f6781617eda5a32b20bf.svg rename to images/chapters/arclength/e168758d35b8f6781617eda5a32b20bf.svg diff --git a/images/latex/e96dd431f6ef9433ccf25909dddd5bca.svg b/images/chapters/arclength/e96dd431f6ef9433ccf25909dddd5bca.svg similarity index 100% rename from images/latex/e96dd431f6ef9433ccf25909dddd5bca.svg rename to images/chapters/arclength/e96dd431f6ef9433ccf25909dddd5bca.svg diff --git a/images/latex/15f9e6eea05599fe6a5eac609ca42cfa.svg b/images/chapters/bsplined/15f9e6eea05599fe6a5eac609ca42cfa.svg similarity index 100% rename from images/latex/15f9e6eea05599fe6a5eac609ca42cfa.svg rename to images/chapters/bsplined/15f9e6eea05599fe6a5eac609ca42cfa.svg diff --git a/images/latex/6aad9d1ec548943ee9e7c5ffc9ced9fd.svg b/images/chapters/bsplined/6aad9d1ec548943ee9e7c5ffc9ced9fd.svg similarity index 100% rename from images/latex/6aad9d1ec548943ee9e7c5ffc9ced9fd.svg rename to images/chapters/bsplined/6aad9d1ec548943ee9e7c5ffc9ced9fd.svg diff --git a/images/latex/b8c1ed97fb04474733b41daf2ac1a259.svg b/images/chapters/bsplined/b8c1ed97fb04474733b41daf2ac1a259.svg similarity index 100% rename from images/latex/b8c1ed97fb04474733b41daf2ac1a259.svg rename to images/chapters/bsplined/b8c1ed97fb04474733b41daf2ac1a259.svg diff --git a/images/latex/c32c4cabe4193e4b4c5e1d0e46aacf72.svg b/images/chapters/bsplined/c32c4cabe4193e4b4c5e1d0e46aacf72.svg similarity index 100% rename from images/latex/c32c4cabe4193e4b4c5e1d0e46aacf72.svg rename to images/chapters/bsplined/c32c4cabe4193e4b4c5e1d0e46aacf72.svg diff --git a/images/latex/d17627b7f5db3f8a2be3422bbee4f2b7.svg b/images/chapters/bsplined/d17627b7f5db3f8a2be3422bbee4f2b7.svg similarity index 100% rename from images/latex/d17627b7f5db3f8a2be3422bbee4f2b7.svg rename to images/chapters/bsplined/d17627b7f5db3f8a2be3422bbee4f2b7.svg diff --git a/images/latex/0f3451c711c0fe5d0b018aa4aa77d855.svg b/images/chapters/bsplines/0f3451c711c0fe5d0b018aa4aa77d855.svg similarity index 100% rename from images/latex/0f3451c711c0fe5d0b018aa4aa77d855.svg rename to images/chapters/bsplines/0f3451c711c0fe5d0b018aa4aa77d855.svg diff --git a/images/latex/4c8f9814c50c708757eeb5a68afabb7f.svg b/images/chapters/bsplines/4c8f9814c50c708757eeb5a68afabb7f.svg similarity index 100% rename from images/latex/4c8f9814c50c708757eeb5a68afabb7f.svg rename to images/chapters/bsplines/4c8f9814c50c708757eeb5a68afabb7f.svg diff --git a/images/latex/763838ea6f9e6c6aa63ea5f9c6d9542f.svg b/images/chapters/bsplines/763838ea6f9e6c6aa63ea5f9c6d9542f.svg similarity index 100% rename from images/latex/763838ea6f9e6c6aa63ea5f9c6d9542f.svg rename to images/chapters/bsplines/763838ea6f9e6c6aa63ea5f9c6d9542f.svg diff --git a/images/latex/7962d6fea86da6f53a7269fba30f0138.svg b/images/chapters/bsplines/7962d6fea86da6f53a7269fba30f0138.svg similarity index 100% rename from images/latex/7962d6fea86da6f53a7269fba30f0138.svg rename to images/chapters/bsplines/7962d6fea86da6f53a7269fba30f0138.svg diff --git a/images/latex/892209dad8fd1f839470dd061e870913.svg b/images/chapters/bsplines/892209dad8fd1f839470dd061e870913.svg similarity index 100% rename from images/latex/892209dad8fd1f839470dd061e870913.svg rename to images/chapters/bsplines/892209dad8fd1f839470dd061e870913.svg diff --git a/images/latex/adac18ea69cc58e01c8d5e15498e4aa6.svg b/images/chapters/bsplines/adac18ea69cc58e01c8d5e15498e4aa6.svg similarity index 100% rename from images/latex/adac18ea69cc58e01c8d5e15498e4aa6.svg rename to images/chapters/bsplines/adac18ea69cc58e01c8d5e15498e4aa6.svg diff --git a/images/latex/cf45d1ea00d4866abc8a058b130299b4.svg b/images/chapters/bsplines/cf45d1ea00d4866abc8a058b130299b4.svg similarity index 100% rename from images/latex/cf45d1ea00d4866abc8a058b130299b4.svg rename to images/chapters/bsplines/cf45d1ea00d4866abc8a058b130299b4.svg diff --git a/images/latex/0430e8c7f7d4ec80e6527f96f3d56e5c.svg b/images/chapters/canonical/0430e8c7f7d4ec80e6527f96f3d56e5c.svg similarity index 100% rename from images/latex/0430e8c7f7d4ec80e6527f96f3d56e5c.svg rename to images/chapters/canonical/0430e8c7f7d4ec80e6527f96f3d56e5c.svg diff --git a/images/latex/058fa85ac31eb666857a860fdedd79df.svg b/images/chapters/canonical/058fa85ac31eb666857a860fdedd79df.svg similarity index 100% rename from images/latex/058fa85ac31eb666857a860fdedd79df.svg rename to images/chapters/canonical/058fa85ac31eb666857a860fdedd79df.svg diff --git a/images/latex/10025fdab2b3fd20f5d389cbe7e3e3ce.svg b/images/chapters/canonical/10025fdab2b3fd20f5d389cbe7e3e3ce.svg similarity index 100% rename from images/latex/10025fdab2b3fd20f5d389cbe7e3e3ce.svg rename to images/chapters/canonical/10025fdab2b3fd20f5d389cbe7e3e3ce.svg diff --git a/images/latex/20684d22b3ddc52fd6abde8ce56608a9.svg b/images/chapters/canonical/20684d22b3ddc52fd6abde8ce56608a9.svg similarity index 100% rename from images/latex/20684d22b3ddc52fd6abde8ce56608a9.svg rename to images/chapters/canonical/20684d22b3ddc52fd6abde8ce56608a9.svg diff --git a/images/latex/2f85d84f0e3dd14cc25e48583aed3822.svg b/images/chapters/canonical/2f85d84f0e3dd14cc25e48583aed3822.svg similarity index 100% rename from images/latex/2f85d84f0e3dd14cc25e48583aed3822.svg rename to images/chapters/canonical/2f85d84f0e3dd14cc25e48583aed3822.svg diff --git a/images/latex/4230e959138d8400e04abf316360009a.svg b/images/chapters/canonical/4230e959138d8400e04abf316360009a.svg similarity index 100% rename from images/latex/4230e959138d8400e04abf316360009a.svg rename to images/chapters/canonical/4230e959138d8400e04abf316360009a.svg diff --git a/images/latex/63ccae0ebe0ca70dc2afb507ab32e4bd.svg b/images/chapters/canonical/63ccae0ebe0ca70dc2afb507ab32e4bd.svg similarity index 100% rename from images/latex/63ccae0ebe0ca70dc2afb507ab32e4bd.svg rename to images/chapters/canonical/63ccae0ebe0ca70dc2afb507ab32e4bd.svg diff --git a/images/latex/83262761bb7fa9b832fe483ded436973.svg b/images/chapters/canonical/83262761bb7fa9b832fe483ded436973.svg similarity index 100% rename from images/latex/83262761bb7fa9b832fe483ded436973.svg rename to images/chapters/canonical/83262761bb7fa9b832fe483ded436973.svg diff --git a/images/latex/8cbef24b8c3b26f9daf2f89d27d36e95.svg b/images/chapters/canonical/8cbef24b8c3b26f9daf2f89d27d36e95.svg similarity index 100% rename from images/latex/8cbef24b8c3b26f9daf2f89d27d36e95.svg rename to images/chapters/canonical/8cbef24b8c3b26f9daf2f89d27d36e95.svg diff --git a/images/latex/add5f7fb210a306fe9ff933113f6fb91.svg b/images/chapters/canonical/add5f7fb210a306fe9ff933113f6fb91.svg similarity index 100% rename from images/latex/add5f7fb210a306fe9ff933113f6fb91.svg rename to images/chapters/canonical/add5f7fb210a306fe9ff933113f6fb91.svg diff --git a/images/latex/d089cc0687982a3302249bb82af3fc16.svg b/images/chapters/canonical/d089cc0687982a3302249bb82af3fc16.svg similarity index 100% rename from images/latex/d089cc0687982a3302249bb82af3fc16.svg rename to images/chapters/canonical/d089cc0687982a3302249bb82af3fc16.svg diff --git a/images/latex/f3261ad2802d980ebe6e35b272375700.svg b/images/chapters/canonical/f3261ad2802d980ebe6e35b272375700.svg similarity index 100% rename from images/latex/f3261ad2802d980ebe6e35b272375700.svg rename to images/chapters/canonical/f3261ad2802d980ebe6e35b272375700.svg diff --git a/images/latex/06ae1e3fdc660e59d618e0760e8e9ab5.svg b/images/chapters/catmullconv/06ae1e3fdc660e59d618e0760e8e9ab5.svg similarity index 100% rename from images/latex/06ae1e3fdc660e59d618e0760e8e9ab5.svg rename to images/chapters/catmullconv/06ae1e3fdc660e59d618e0760e8e9ab5.svg diff --git a/images/latex/169fd85a95e4d16fe289a75583017a11.svg b/images/chapters/catmullconv/169fd85a95e4d16fe289a75583017a11.svg similarity index 100% rename from images/latex/169fd85a95e4d16fe289a75583017a11.svg rename to images/chapters/catmullconv/169fd85a95e4d16fe289a75583017a11.svg diff --git a/images/latex/1811b59c5ab9233f08590396e5d03303.svg b/images/chapters/catmullconv/1811b59c5ab9233f08590396e5d03303.svg similarity index 100% rename from images/latex/1811b59c5ab9233f08590396e5d03303.svg rename to images/chapters/catmullconv/1811b59c5ab9233f08590396e5d03303.svg diff --git a/images/latex/1b8a782f7540503d38067317e4cd00b0.svg b/images/chapters/catmullconv/1b8a782f7540503d38067317e4cd00b0.svg similarity index 100% rename from images/latex/1b8a782f7540503d38067317e4cd00b0.svg rename to images/chapters/catmullconv/1b8a782f7540503d38067317e4cd00b0.svg diff --git a/images/latex/26363fc09f8cf2d41ea5b4256656bb6d.svg b/images/chapters/catmullconv/26363fc09f8cf2d41ea5b4256656bb6d.svg similarity index 100% rename from images/latex/26363fc09f8cf2d41ea5b4256656bb6d.svg rename to images/chapters/catmullconv/26363fc09f8cf2d41ea5b4256656bb6d.svg diff --git a/images/latex/3ea54fe939d076f8db605c5b480e7db0.svg b/images/chapters/catmullconv/3ea54fe939d076f8db605c5b480e7db0.svg similarity index 100% rename from images/latex/3ea54fe939d076f8db605c5b480e7db0.svg rename to images/chapters/catmullconv/3ea54fe939d076f8db605c5b480e7db0.svg diff --git a/images/latex/4d524810417b4caffedd13af23135f5b.svg b/images/chapters/catmullconv/4d524810417b4caffedd13af23135f5b.svg similarity index 100% rename from images/latex/4d524810417b4caffedd13af23135f5b.svg rename to images/chapters/catmullconv/4d524810417b4caffedd13af23135f5b.svg diff --git a/images/latex/5f2750de827497375d9a915f96686885.svg b/images/chapters/catmullconv/5f2750de827497375d9a915f96686885.svg similarity index 100% rename from images/latex/5f2750de827497375d9a915f96686885.svg rename to images/chapters/catmullconv/5f2750de827497375d9a915f96686885.svg diff --git a/images/latex/78ac9df086ec19147414359369b563fc.svg b/images/chapters/catmullconv/78ac9df086ec19147414359369b563fc.svg similarity index 100% rename from images/latex/78ac9df086ec19147414359369b563fc.svg rename to images/chapters/catmullconv/78ac9df086ec19147414359369b563fc.svg diff --git a/images/latex/79e333cd0c569657eea033b04fb5e61b.svg b/images/chapters/catmullconv/79e333cd0c569657eea033b04fb5e61b.svg similarity index 100% rename from images/latex/79e333cd0c569657eea033b04fb5e61b.svg rename to images/chapters/catmullconv/79e333cd0c569657eea033b04fb5e61b.svg diff --git a/images/latex/841fb6a2a035c9bcf5a2d46f2a67709b.svg b/images/chapters/catmullconv/841fb6a2a035c9bcf5a2d46f2a67709b.svg similarity index 100% rename from images/latex/841fb6a2a035c9bcf5a2d46f2a67709b.svg rename to images/chapters/catmullconv/841fb6a2a035c9bcf5a2d46f2a67709b.svg diff --git a/images/latex/8f56909fcb62b8eef18b9b9559575c13.svg b/images/chapters/catmullconv/8f56909fcb62b8eef18b9b9559575c13.svg similarity index 100% rename from images/latex/8f56909fcb62b8eef18b9b9559575c13.svg rename to images/chapters/catmullconv/8f56909fcb62b8eef18b9b9559575c13.svg diff --git a/images/latex/9215d05705c8e8a7ebd718ae6f690371.svg b/images/chapters/catmullconv/9215d05705c8e8a7ebd718ae6f690371.svg similarity index 100% rename from images/latex/9215d05705c8e8a7ebd718ae6f690371.svg rename to images/chapters/catmullconv/9215d05705c8e8a7ebd718ae6f690371.svg diff --git a/images/latex/a47b072a325812ac4f0ff52c22792588.svg b/images/chapters/catmullconv/a47b072a325812ac4f0ff52c22792588.svg similarity index 100% rename from images/latex/a47b072a325812ac4f0ff52c22792588.svg rename to images/chapters/catmullconv/a47b072a325812ac4f0ff52c22792588.svg diff --git a/images/latex/b21386f86bef8894f108c5441dad10de.svg b/images/chapters/catmullconv/b21386f86bef8894f108c5441dad10de.svg similarity index 100% rename from images/latex/b21386f86bef8894f108c5441dad10de.svg rename to images/chapters/catmullconv/b21386f86bef8894f108c5441dad10de.svg diff --git a/images/latex/ba31c32eba62f1e3b15066cd5ddda597.svg b/images/chapters/catmullconv/ba31c32eba62f1e3b15066cd5ddda597.svg similarity index 100% rename from images/latex/ba31c32eba62f1e3b15066cd5ddda597.svg rename to images/chapters/catmullconv/ba31c32eba62f1e3b15066cd5ddda597.svg diff --git a/images/latex/cbdd46d5e2e1a6202ef46fb03711ebe4.svg b/images/chapters/catmullconv/cbdd46d5e2e1a6202ef46fb03711ebe4.svg similarity index 100% rename from images/latex/cbdd46d5e2e1a6202ef46fb03711ebe4.svg rename to images/chapters/catmullconv/cbdd46d5e2e1a6202ef46fb03711ebe4.svg diff --git a/images/latex/cc1e2ff43350c32f0ae9ba9a7652b8fb.svg b/images/chapters/catmullconv/cc1e2ff43350c32f0ae9ba9a7652b8fb.svg similarity index 100% rename from images/latex/cc1e2ff43350c32f0ae9ba9a7652b8fb.svg rename to images/chapters/catmullconv/cc1e2ff43350c32f0ae9ba9a7652b8fb.svg diff --git a/images/latex/e3d30ab368dcead1411532ce3814d3f3.svg b/images/chapters/catmullconv/e3d30ab368dcead1411532ce3814d3f3.svg similarity index 100% rename from images/latex/e3d30ab368dcead1411532ce3814d3f3.svg rename to images/chapters/catmullconv/e3d30ab368dcead1411532ce3814d3f3.svg diff --git a/images/latex/eae7f01976e511ee38b08b6edc8765d2.svg b/images/chapters/catmullconv/eae7f01976e511ee38b08b6edc8765d2.svg similarity index 100% rename from images/latex/eae7f01976e511ee38b08b6edc8765d2.svg rename to images/chapters/catmullconv/eae7f01976e511ee38b08b6edc8765d2.svg diff --git a/images/latex/f08e34395ce2812276fd70548f805041.svg b/images/chapters/catmullconv/f08e34395ce2812276fd70548f805041.svg similarity index 100% rename from images/latex/f08e34395ce2812276fd70548f805041.svg rename to images/chapters/catmullconv/f08e34395ce2812276fd70548f805041.svg diff --git a/images/latex/f2b2a16a41d134ce0dfd544ab77ff25e.svg b/images/chapters/catmullconv/f2b2a16a41d134ce0dfd544ab77ff25e.svg similarity index 100% rename from images/latex/f2b2a16a41d134ce0dfd544ab77ff25e.svg rename to images/chapters/catmullconv/f2b2a16a41d134ce0dfd544ab77ff25e.svg diff --git a/images/latex/f41487aff3e34fafd5d4ee5979f133f1.svg b/images/chapters/catmullconv/f41487aff3e34fafd5d4ee5979f133f1.svg similarity index 100% rename from images/latex/f41487aff3e34fafd5d4ee5979f133f1.svg rename to images/chapters/catmullconv/f41487aff3e34fafd5d4ee5979f133f1.svg diff --git a/images/latex/f814bb8d627f9c8f33b347c1cf13d4c7.svg b/images/chapters/catmullconv/f814bb8d627f9c8f33b347c1cf13d4c7.svg similarity index 100% rename from images/latex/f814bb8d627f9c8f33b347c1cf13d4c7.svg rename to images/chapters/catmullconv/f814bb8d627f9c8f33b347c1cf13d4c7.svg diff --git a/images/latex/7754bc3c96ae3c90162fec3bd46bedff.svg b/images/chapters/circles/7754bc3c96ae3c90162fec3bd46bedff.svg similarity index 100% rename from images/latex/7754bc3c96ae3c90162fec3bd46bedff.svg rename to images/chapters/circles/7754bc3c96ae3c90162fec3bd46bedff.svg diff --git a/images/latex/8374c4190d6213b0ac0621481afaa754.svg b/images/chapters/circles/8374c4190d6213b0ac0621481afaa754.svg similarity index 100% rename from images/latex/8374c4190d6213b0ac0621481afaa754.svg rename to images/chapters/circles/8374c4190d6213b0ac0621481afaa754.svg diff --git a/images/latex/9e4d886c372f916f6511c41245ceee39.svg b/images/chapters/circles/9e4d886c372f916f6511c41245ceee39.svg similarity index 100% rename from images/latex/9e4d886c372f916f6511c41245ceee39.svg rename to images/chapters/circles/9e4d886c372f916f6511c41245ceee39.svg diff --git a/images/latex/a127f926eced2751a09c54bf7c361b4a.svg b/images/chapters/circles/a127f926eced2751a09c54bf7c361b4a.svg similarity index 100% rename from images/latex/a127f926eced2751a09c54bf7c361b4a.svg rename to images/chapters/circles/a127f926eced2751a09c54bf7c361b4a.svg diff --git a/images/latex/adbd056f4b8fcd05b1d4f2fce27d7657.svg b/images/chapters/circles/adbd056f4b8fcd05b1d4f2fce27d7657.svg similarity index 100% rename from images/latex/adbd056f4b8fcd05b1d4f2fce27d7657.svg rename to images/chapters/circles/adbd056f4b8fcd05b1d4f2fce27d7657.svg diff --git a/images/latex/b5d864e9ed0c44c56d454fbaa4218d5e.svg b/images/chapters/circles/b5d864e9ed0c44c56d454fbaa4218d5e.svg similarity index 100% rename from images/latex/b5d864e9ed0c44c56d454fbaa4218d5e.svg rename to images/chapters/circles/b5d864e9ed0c44c56d454fbaa4218d5e.svg diff --git a/images/latex/c22f6d343ee0cce7bff6a617c946ca17.svg b/images/chapters/circles/c22f6d343ee0cce7bff6a617c946ca17.svg similarity index 100% rename from images/latex/c22f6d343ee0cce7bff6a617c946ca17.svg rename to images/chapters/circles/c22f6d343ee0cce7bff6a617c946ca17.svg diff --git a/images/latex/df87674db0f31fc3944aaeb6b890e196.svg b/images/chapters/circles/df87674db0f31fc3944aaeb6b890e196.svg similarity index 100% rename from images/latex/df87674db0f31fc3944aaeb6b890e196.svg rename to images/chapters/circles/df87674db0f31fc3944aaeb6b890e196.svg diff --git a/images/latex/e1059e611aa1e51db41f9ce0b4ebb95a.svg b/images/chapters/circles/e1059e611aa1e51db41f9ce0b4ebb95a.svg similarity index 100% rename from images/latex/e1059e611aa1e51db41f9ce0b4ebb95a.svg rename to images/chapters/circles/e1059e611aa1e51db41f9ce0b4ebb95a.svg diff --git a/images/latex/ef3ab62bb896019c6157c85aae5d1ed3.svg b/images/chapters/circles/ef3ab62bb896019c6157c85aae5d1ed3.svg similarity index 100% rename from images/latex/ef3ab62bb896019c6157c85aae5d1ed3.svg rename to images/chapters/circles/ef3ab62bb896019c6157c85aae5d1ed3.svg diff --git a/images/latex/fe32474b4616ee9478e1308308f1b6bf.svg b/images/chapters/circles/fe32474b4616ee9478e1308308f1b6bf.svg similarity index 100% rename from images/latex/fe32474b4616ee9478e1308308f1b6bf.svg rename to images/chapters/circles/fe32474b4616ee9478e1308308f1b6bf.svg diff --git a/images/latex/0364731626a530c8a9b30f424ada53c5.svg b/images/chapters/circles_cubic/0364731626a530c8a9b30f424ada53c5.svg similarity index 100% rename from images/latex/0364731626a530c8a9b30f424ada53c5.svg rename to images/chapters/circles_cubic/0364731626a530c8a9b30f424ada53c5.svg diff --git a/images/latex/05d36e051a38905dcb81e65db8261f24.svg b/images/chapters/circles_cubic/05d36e051a38905dcb81e65db8261f24.svg similarity index 100% rename from images/latex/05d36e051a38905dcb81e65db8261f24.svg rename to images/chapters/circles_cubic/05d36e051a38905dcb81e65db8261f24.svg diff --git a/images/latex/178a838274748439778e2a29f5a27d0b.svg b/images/chapters/circles_cubic/178a838274748439778e2a29f5a27d0b.svg similarity index 100% rename from images/latex/178a838274748439778e2a29f5a27d0b.svg rename to images/chapters/circles_cubic/178a838274748439778e2a29f5a27d0b.svg diff --git a/images/latex/195790bae7de813aec342ea82b5d8781.svg b/images/chapters/circles_cubic/195790bae7de813aec342ea82b5d8781.svg similarity index 100% rename from images/latex/195790bae7de813aec342ea82b5d8781.svg rename to images/chapters/circles_cubic/195790bae7de813aec342ea82b5d8781.svg diff --git a/images/latex/3189cac1ddac07c1487e1e51740ecc88.svg b/images/chapters/circles_cubic/3189cac1ddac07c1487e1e51740ecc88.svg similarity index 100% rename from images/latex/3189cac1ddac07c1487e1e51740ecc88.svg rename to images/chapters/circles_cubic/3189cac1ddac07c1487e1e51740ecc88.svg diff --git a/images/latex/49dbf244d50c787a4ab18694488d9b69.svg b/images/chapters/circles_cubic/49dbf244d50c787a4ab18694488d9b69.svg similarity index 100% rename from images/latex/49dbf244d50c787a4ab18694488d9b69.svg rename to images/chapters/circles_cubic/49dbf244d50c787a4ab18694488d9b69.svg diff --git a/images/latex/877f9c217c51c0087be751a7580ed459.svg b/images/chapters/circles_cubic/877f9c217c51c0087be751a7580ed459.svg similarity index 100% rename from images/latex/877f9c217c51c0087be751a7580ed459.svg rename to images/chapters/circles_cubic/877f9c217c51c0087be751a7580ed459.svg diff --git a/images/latex/a4f0dafbfe80c88723c3cc22277a9682.svg b/images/chapters/circles_cubic/a4f0dafbfe80c88723c3cc22277a9682.svg similarity index 100% rename from images/latex/a4f0dafbfe80c88723c3cc22277a9682.svg rename to images/chapters/circles_cubic/a4f0dafbfe80c88723c3cc22277a9682.svg diff --git a/images/latex/acbc5efb06bc34571ccc0322376e0b9b.svg b/images/chapters/circles_cubic/acbc5efb06bc34571ccc0322376e0b9b.svg similarity index 100% rename from images/latex/acbc5efb06bc34571ccc0322376e0b9b.svg rename to images/chapters/circles_cubic/acbc5efb06bc34571ccc0322376e0b9b.svg diff --git a/images/latex/dfb83eec053c30e0a41b0a52aba24cd4.svg b/images/chapters/circles_cubic/dfb83eec053c30e0a41b0a52aba24cd4.svg similarity index 100% rename from images/latex/dfb83eec053c30e0a41b0a52aba24cd4.svg rename to images/chapters/circles_cubic/dfb83eec053c30e0a41b0a52aba24cd4.svg diff --git a/images/latex/e2258660a796dcd6189a6f5e14326dad.svg b/images/chapters/circles_cubic/e2258660a796dcd6189a6f5e14326dad.svg similarity index 100% rename from images/latex/e2258660a796dcd6189a6f5e14326dad.svg rename to images/chapters/circles_cubic/e2258660a796dcd6189a6f5e14326dad.svg diff --git a/images/latex/e75a848f5f8aead495e35175e2955e06.svg b/images/chapters/circles_cubic/e75a848f5f8aead495e35175e2955e06.svg similarity index 100% rename from images/latex/e75a848f5f8aead495e35175e2955e06.svg rename to images/chapters/circles_cubic/e75a848f5f8aead495e35175e2955e06.svg diff --git a/images/latex/ee08d86b7497c7ab042ee899bf15d453.svg b/images/chapters/circles_cubic/ee08d86b7497c7ab042ee899bf15d453.svg similarity index 100% rename from images/latex/ee08d86b7497c7ab042ee899bf15d453.svg rename to images/chapters/circles_cubic/ee08d86b7497c7ab042ee899bf15d453.svg diff --git a/images/chapters/circles_cubic/fe32474b4616ee9478e1308308f1b6bf.svg b/images/chapters/circles_cubic/fe32474b4616ee9478e1308308f1b6bf.svg new file mode 100644 index 00000000..0a70cf4b --- /dev/null +++ b/images/chapters/circles_cubic/fe32474b4616ee9478e1308308f1b6bf.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/chapters/control/14cb9fbbaae9e7d87ae6bef3ea7a782e.svg b/images/chapters/control/14cb9fbbaae9e7d87ae6bef3ea7a782e.svg new file mode 100644 index 00000000..0e030eb1 --- /dev/null +++ b/images/chapters/control/14cb9fbbaae9e7d87ae6bef3ea7a782e.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/latex/2af72ea0c3517bc05f36a08cbbed6002.svg b/images/chapters/control/2af72ea0c3517bc05f36a08cbbed6002.svg similarity index 100% rename from images/latex/2af72ea0c3517bc05f36a08cbbed6002.svg rename to images/chapters/control/2af72ea0c3517bc05f36a08cbbed6002.svg diff --git a/images/latex/c0d4dbc07b8ec7c0a18ea43c8a386935.svg b/images/chapters/control/c0d4dbc07b8ec7c0a18ea43c8a386935.svg similarity index 100% rename from images/latex/c0d4dbc07b8ec7c0a18ea43c8a386935.svg rename to images/chapters/control/c0d4dbc07b8ec7c0a18ea43c8a386935.svg diff --git a/images/latex/6ed4fd2ead35c57984caddf9fe375a5f.svg b/images/chapters/curvature/6ed4fd2ead35c57984caddf9fe375a5f.svg similarity index 100% rename from images/latex/6ed4fd2ead35c57984caddf9fe375a5f.svg rename to images/chapters/curvature/6ed4fd2ead35c57984caddf9fe375a5f.svg diff --git a/images/latex/828333034b4fed8e248683760d6bc6f4.svg b/images/chapters/curvature/828333034b4fed8e248683760d6bc6f4.svg similarity index 100% rename from images/latex/828333034b4fed8e248683760d6bc6f4.svg rename to images/chapters/curvature/828333034b4fed8e248683760d6bc6f4.svg diff --git a/images/latex/d9c893051586eb8d9de51c0ae1ef8fae.svg b/images/chapters/curvature/d9c893051586eb8d9de51c0ae1ef8fae.svg similarity index 100% rename from images/latex/d9c893051586eb8d9de51c0ae1ef8fae.svg rename to images/chapters/curvature/d9c893051586eb8d9de51c0ae1ef8fae.svg diff --git a/images/latex/03ec73258d5c95eed39a2ea8665e0b07.svg b/images/chapters/curvefitting/03ec73258d5c95eed39a2ea8665e0b07.svg similarity index 100% rename from images/latex/03ec73258d5c95eed39a2ea8665e0b07.svg rename to images/chapters/curvefitting/03ec73258d5c95eed39a2ea8665e0b07.svg diff --git a/images/latex/08f4beaebf83dca594ad125bdca7e436.svg b/images/chapters/curvefitting/08f4beaebf83dca594ad125bdca7e436.svg similarity index 100% rename from images/latex/08f4beaebf83dca594ad125bdca7e436.svg rename to images/chapters/curvefitting/08f4beaebf83dca594ad125bdca7e436.svg diff --git a/images/latex/283bc9e8fe59a78d3c74860f62a66ecb.svg b/images/chapters/curvefitting/283bc9e8fe59a78d3c74860f62a66ecb.svg similarity index 100% rename from images/latex/283bc9e8fe59a78d3c74860f62a66ecb.svg rename to images/chapters/curvefitting/283bc9e8fe59a78d3c74860f62a66ecb.svg diff --git a/images/latex/2b8334727d3b004c6e87263fec6b32b7.svg b/images/chapters/curvefitting/2b8334727d3b004c6e87263fec6b32b7.svg similarity index 100% rename from images/latex/2b8334727d3b004c6e87263fec6b32b7.svg rename to images/chapters/curvefitting/2b8334727d3b004c6e87263fec6b32b7.svg diff --git a/images/latex/2bef3da3828d63d690460ce9947dbde2.svg b/images/chapters/curvefitting/2bef3da3828d63d690460ce9947dbde2.svg similarity index 100% rename from images/latex/2bef3da3828d63d690460ce9947dbde2.svg rename to images/chapters/curvefitting/2bef3da3828d63d690460ce9947dbde2.svg diff --git a/images/latex/2d42758fba3370f52191306752c2705c.svg b/images/chapters/curvefitting/2d42758fba3370f52191306752c2705c.svg similarity index 100% rename from images/latex/2d42758fba3370f52191306752c2705c.svg rename to images/chapters/curvefitting/2d42758fba3370f52191306752c2705c.svg diff --git a/images/latex/4ffad56e281ee79d0688e93033429f0a.svg b/images/chapters/curvefitting/4ffad56e281ee79d0688e93033429f0a.svg similarity index 100% rename from images/latex/4ffad56e281ee79d0688e93033429f0a.svg rename to images/chapters/curvefitting/4ffad56e281ee79d0688e93033429f0a.svg diff --git a/images/latex/5f7fcb86ae1c19612b9fe02e23229e31.svg b/images/chapters/curvefitting/5f7fcb86ae1c19612b9fe02e23229e31.svg similarity index 100% rename from images/latex/5f7fcb86ae1c19612b9fe02e23229e31.svg rename to images/chapters/curvefitting/5f7fcb86ae1c19612b9fe02e23229e31.svg diff --git a/images/latex/6202d7bd150c852b432d807c40fb1647.svg b/images/chapters/curvefitting/6202d7bd150c852b432d807c40fb1647.svg similarity index 100% rename from images/latex/6202d7bd150c852b432d807c40fb1647.svg rename to images/chapters/curvefitting/6202d7bd150c852b432d807c40fb1647.svg diff --git a/images/latex/78b8ba1aba2e4c9ad3f7890299c90152.svg b/images/chapters/curvefitting/78b8ba1aba2e4c9ad3f7890299c90152.svg similarity index 100% rename from images/latex/78b8ba1aba2e4c9ad3f7890299c90152.svg rename to images/chapters/curvefitting/78b8ba1aba2e4c9ad3f7890299c90152.svg diff --git a/images/latex/7e5d59272621baf942bc722208ce70c2.svg b/images/chapters/curvefitting/7e5d59272621baf942bc722208ce70c2.svg similarity index 100% rename from images/latex/7e5d59272621baf942bc722208ce70c2.svg rename to images/chapters/curvefitting/7e5d59272621baf942bc722208ce70c2.svg diff --git a/images/latex/7eada6f12045423de24d9a2ab8e293b1.svg b/images/chapters/curvefitting/7eada6f12045423de24d9a2ab8e293b1.svg similarity index 100% rename from images/latex/7eada6f12045423de24d9a2ab8e293b1.svg rename to images/chapters/curvefitting/7eada6f12045423de24d9a2ab8e293b1.svg diff --git a/images/latex/875ca8eea72e727ccb881b4c0b6a3224.svg b/images/chapters/curvefitting/875ca8eea72e727ccb881b4c0b6a3224.svg similarity index 100% rename from images/latex/875ca8eea72e727ccb881b4c0b6a3224.svg rename to images/chapters/curvefitting/875ca8eea72e727ccb881b4c0b6a3224.svg diff --git a/images/latex/8d09f2be2c6db79ee966f170ffc25815.svg b/images/chapters/curvefitting/8d09f2be2c6db79ee966f170ffc25815.svg similarity index 100% rename from images/latex/8d09f2be2c6db79ee966f170ffc25815.svg rename to images/chapters/curvefitting/8d09f2be2c6db79ee966f170ffc25815.svg diff --git a/images/latex/9151c0fdf9689ee598a2d029ab2ffe34.svg b/images/chapters/curvefitting/9151c0fdf9689ee598a2d029ab2ffe34.svg similarity index 100% rename from images/latex/9151c0fdf9689ee598a2d029ab2ffe34.svg rename to images/chapters/curvefitting/9151c0fdf9689ee598a2d029ab2ffe34.svg diff --git a/images/latex/94acb5850778dcb16c2ba3cfa676f537.svg b/images/chapters/curvefitting/94acb5850778dcb16c2ba3cfa676f537.svg similarity index 100% rename from images/latex/94acb5850778dcb16c2ba3cfa676f537.svg rename to images/chapters/curvefitting/94acb5850778dcb16c2ba3cfa676f537.svg diff --git a/images/latex/ab334858d3fa309cc1a5ba535a2ca168.svg b/images/chapters/curvefitting/ab334858d3fa309cc1a5ba535a2ca168.svg similarity index 100% rename from images/latex/ab334858d3fa309cc1a5ba535a2ca168.svg rename to images/chapters/curvefitting/ab334858d3fa309cc1a5ba535a2ca168.svg diff --git a/images/latex/bd8e8e294eec10d2bf6ef857c7c0c2c2.svg b/images/chapters/curvefitting/bd8e8e294eec10d2bf6ef857c7c0c2c2.svg similarity index 100% rename from images/latex/bd8e8e294eec10d2bf6ef857c7c0c2c2.svg rename to images/chapters/curvefitting/bd8e8e294eec10d2bf6ef857c7c0c2c2.svg diff --git a/images/latex/d84d1c71a3ce1918f53eaf8f9fe98ac4.svg b/images/chapters/curvefitting/d84d1c71a3ce1918f53eaf8f9fe98ac4.svg similarity index 100% rename from images/latex/d84d1c71a3ce1918f53eaf8f9fe98ac4.svg rename to images/chapters/curvefitting/d84d1c71a3ce1918f53eaf8f9fe98ac4.svg diff --git a/images/latex/03967e3ecdbff78684995ca9c22a6106.svg b/images/chapters/derivatives/03967e3ecdbff78684995ca9c22a6106.svg similarity index 100% rename from images/latex/03967e3ecdbff78684995ca9c22a6106.svg rename to images/chapters/derivatives/03967e3ecdbff78684995ca9c22a6106.svg diff --git a/images/latex/14cb9fbbaae9e7d87ae6bef3ea7a782e.svg b/images/chapters/derivatives/14cb9fbbaae9e7d87ae6bef3ea7a782e.svg similarity index 100% rename from images/latex/14cb9fbbaae9e7d87ae6bef3ea7a782e.svg rename to images/chapters/derivatives/14cb9fbbaae9e7d87ae6bef3ea7a782e.svg diff --git a/images/latex/2622790efa97f1915e7998787d8ce977.svg b/images/chapters/derivatives/2622790efa97f1915e7998787d8ce977.svg similarity index 100% rename from images/latex/2622790efa97f1915e7998787d8ce977.svg rename to images/chapters/derivatives/2622790efa97f1915e7998787d8ce977.svg diff --git a/images/latex/28991bba7c13698619f36b6261d91d68.svg b/images/chapters/derivatives/28991bba7c13698619f36b6261d91d68.svg similarity index 100% rename from images/latex/28991bba7c13698619f36b6261d91d68.svg rename to images/chapters/derivatives/28991bba7c13698619f36b6261d91d68.svg diff --git a/images/latex/514090a0fd6c64b7d85a9dc5721a0fa6.svg b/images/chapters/derivatives/514090a0fd6c64b7d85a9dc5721a0fa6.svg similarity index 100% rename from images/latex/514090a0fd6c64b7d85a9dc5721a0fa6.svg rename to images/chapters/derivatives/514090a0fd6c64b7d85a9dc5721a0fa6.svg diff --git a/images/latex/6770214cceeb0e13e371bd908867751f.svg b/images/chapters/derivatives/6770214cceeb0e13e371bd908867751f.svg similarity index 100% rename from images/latex/6770214cceeb0e13e371bd908867751f.svg rename to images/chapters/derivatives/6770214cceeb0e13e371bd908867751f.svg diff --git a/images/latex/89ceb6024ead6f710e3e0f09d2864f43.svg b/images/chapters/derivatives/89ceb6024ead6f710e3e0f09d2864f43.svg similarity index 100% rename from images/latex/89ceb6024ead6f710e3e0f09d2864f43.svg rename to images/chapters/derivatives/89ceb6024ead6f710e3e0f09d2864f43.svg diff --git a/images/latex/95a0cd4cc919a3fd5b192ffeb00c231e.svg b/images/chapters/derivatives/95a0cd4cc919a3fd5b192ffeb00c231e.svg similarity index 100% rename from images/latex/95a0cd4cc919a3fd5b192ffeb00c231e.svg rename to images/chapters/derivatives/95a0cd4cc919a3fd5b192ffeb00c231e.svg diff --git a/images/latex/b7815b1502029ed9d805b6ba0801a53f.svg b/images/chapters/derivatives/b7815b1502029ed9d805b6ba0801a53f.svg similarity index 100% rename from images/latex/b7815b1502029ed9d805b6ba0801a53f.svg rename to images/chapters/derivatives/b7815b1502029ed9d805b6ba0801a53f.svg diff --git a/images/latex/bd3c740be364071c86ccf42b99d5eba4.svg b/images/chapters/derivatives/bd3c740be364071c86ccf42b99d5eba4.svg similarity index 100% rename from images/latex/bd3c740be364071c86ccf42b99d5eba4.svg rename to images/chapters/derivatives/bd3c740be364071c86ccf42b99d5eba4.svg diff --git a/images/latex/c010c0df4bb911b84da6e9d379617e4b.svg b/images/chapters/derivatives/c010c0df4bb911b84da6e9d379617e4b.svg similarity index 100% rename from images/latex/c010c0df4bb911b84da6e9d379617e4b.svg rename to images/chapters/derivatives/c010c0df4bb911b84da6e9d379617e4b.svg diff --git a/images/latex/c7b13e6507450b3da7dc4ce3c10c370f.svg b/images/chapters/derivatives/c7b13e6507450b3da7dc4ce3c10c370f.svg similarity index 100% rename from images/latex/c7b13e6507450b3da7dc4ce3c10c370f.svg rename to images/chapters/derivatives/c7b13e6507450b3da7dc4ce3c10c370f.svg diff --git a/images/latex/e755c2adfec5d266c50e064407ca369b.svg b/images/chapters/derivatives/e755c2adfec5d266c50e064407ca369b.svg similarity index 100% rename from images/latex/e755c2adfec5d266c50e064407ca369b.svg rename to images/chapters/derivatives/e755c2adfec5d266c50e064407ca369b.svg diff --git a/images/latex/eb4442acc5bc17f4649eb04b2953ed9b.svg b/images/chapters/derivatives/eb4442acc5bc17f4649eb04b2953ed9b.svg similarity index 100% rename from images/latex/eb4442acc5bc17f4649eb04b2953ed9b.svg rename to images/chapters/derivatives/eb4442acc5bc17f4649eb04b2953ed9b.svg diff --git a/images/latex/fb823558e99662b24d46ae55ac93ce38.svg b/images/chapters/derivatives/fb823558e99662b24d46ae55ac93ce38.svg similarity index 100% rename from images/latex/fb823558e99662b24d46ae55ac93ce38.svg rename to images/chapters/derivatives/fb823558e99662b24d46ae55ac93ce38.svg diff --git a/images/chapters/explanation/066a910ae6aba69c40a338320759cdd1.svg b/images/chapters/explanation/066a910ae6aba69c40a338320759cdd1.svg new file mode 100644 index 00000000..88879670 --- /dev/null +++ b/images/chapters/explanation/066a910ae6aba69c40a338320759cdd1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/chapters/explanation/0f5cffd58e864fec6739a57664eb8cbd.svg b/images/chapters/explanation/0f5cffd58e864fec6739a57664eb8cbd.svg new file mode 100644 index 00000000..8c514caf --- /dev/null +++ b/images/chapters/explanation/0f5cffd58e864fec6739a57664eb8cbd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/chapters/explanation/1caef9931f954e32eae5067b732c1018.svg b/images/chapters/explanation/1caef9931f954e32eae5067b732c1018.svg new file mode 100644 index 00000000..20f81095 --- /dev/null +++ b/images/chapters/explanation/1caef9931f954e32eae5067b732c1018.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/chapters/explanation/2adc12d0cff01d40d9e1702014a7dc19.svg b/images/chapters/explanation/2adc12d0cff01d40d9e1702014a7dc19.svg new file mode 100644 index 00000000..9f8936e7 --- /dev/null +++ b/images/chapters/explanation/2adc12d0cff01d40d9e1702014a7dc19.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/chapters/explanation/4cf6fb369841e2c5d36e5567a8db4306.svg b/images/chapters/explanation/4cf6fb369841e2c5d36e5567a8db4306.svg new file mode 100644 index 00000000..c2c79ada --- /dev/null +++ b/images/chapters/explanation/4cf6fb369841e2c5d36e5567a8db4306.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/latex/6e15c433dc2340271e007742009e3532.svg b/images/chapters/explanation/6e15c433dc2340271e007742009e3532.svg similarity index 100% rename from images/latex/6e15c433dc2340271e007742009e3532.svg rename to images/chapters/explanation/6e15c433dc2340271e007742009e3532.svg diff --git a/images/latex/741097d69c182e8742695af23980bd8f.svg b/images/chapters/explanation/741097d69c182e8742695af23980bd8f.svg similarity index 100% rename from images/latex/741097d69c182e8742695af23980bd8f.svg rename to images/chapters/explanation/741097d69c182e8742695af23980bd8f.svg diff --git a/images/chapters/explanation/9a6d17c362980775f1425d0d2ad9a36a.svg b/images/chapters/explanation/9a6d17c362980775f1425d0d2ad9a36a.svg new file mode 100644 index 00000000..1cc2bbfe --- /dev/null +++ b/images/chapters/explanation/9a6d17c362980775f1425d0d2ad9a36a.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/chapters/explanation/9c18f76e76cf684ecd217ad8facc2e93.svg b/images/chapters/explanation/9c18f76e76cf684ecd217ad8facc2e93.svg new file mode 100644 index 00000000..403e1d94 --- /dev/null +++ b/images/chapters/explanation/9c18f76e76cf684ecd217ad8facc2e93.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/chapters/explanation/bb06cb82d372f822a7b35e661502bd72.svg b/images/chapters/explanation/bb06cb82d372f822a7b35e661502bd72.svg new file mode 100644 index 00000000..3f8cc467 --- /dev/null +++ b/images/chapters/explanation/bb06cb82d372f822a7b35e661502bd72.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/latex/c605597fb629b964921c6a4bca7fa4c9.svg b/images/chapters/explanation/c605597fb629b964921c6a4bca7fa4c9.svg similarity index 100% rename from images/latex/c605597fb629b964921c6a4bca7fa4c9.svg rename to images/chapters/explanation/c605597fb629b964921c6a4bca7fa4c9.svg diff --git a/images/chapters/explanation/e107caca1577e44293cd207388ac939c.svg b/images/chapters/explanation/e107caca1577e44293cd207388ac939c.svg new file mode 100644 index 00000000..067ba7f8 --- /dev/null +++ b/images/chapters/explanation/e107caca1577e44293cd207388ac939c.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/latex/f24fd5e27968d96957ba706b16d8e90b.svg b/images/chapters/explanation/f24fd5e27968d96957ba706b16d8e90b.svg similarity index 100% rename from images/latex/f24fd5e27968d96957ba706b16d8e90b.svg rename to images/chapters/explanation/f24fd5e27968d96957ba706b16d8e90b.svg diff --git a/images/latex/a75e84f0e7f92c2f3e8ef10b49744ba5.svg b/images/chapters/extended/a75e84f0e7f92c2f3e8ef10b49744ba5.svg similarity index 100% rename from images/latex/a75e84f0e7f92c2f3e8ef10b49744ba5.svg rename to images/chapters/extended/a75e84f0e7f92c2f3e8ef10b49744ba5.svg diff --git a/images/chapters/extended/b80a1cac1f9ec476d6f6646ce0e154e7.svg b/images/chapters/extended/b80a1cac1f9ec476d6f6646ce0e154e7.svg new file mode 100644 index 00000000..5f3caaf8 --- /dev/null +++ b/images/chapters/extended/b80a1cac1f9ec476d6f6646ce0e154e7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/chapters/extended/d930dea961b40f4810708bd6746221a2.svg b/images/chapters/extended/d930dea961b40f4810708bd6746221a2.svg new file mode 100644 index 00000000..0efc7fd7 --- /dev/null +++ b/images/chapters/extended/d930dea961b40f4810708bd6746221a2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/latex/f41f553d448de8559d68fccd9c2f27d4.svg b/images/chapters/extended/f41f553d448de8559d68fccd9c2f27d4.svg similarity index 100% rename from images/latex/f41f553d448de8559d68fccd9c2f27d4.svg rename to images/chapters/extended/f41f553d448de8559d68fccd9c2f27d4.svg diff --git a/images/latex/0ec5cc72a428d75defb480530b50d720.svg b/images/chapters/extremities/0ec5cc72a428d75defb480530b50d720.svg similarity index 100% rename from images/latex/0ec5cc72a428d75defb480530b50d720.svg rename to images/chapters/extremities/0ec5cc72a428d75defb480530b50d720.svg diff --git a/images/latex/1c0367fad2a0d6946db1f55a8520793a.svg b/images/chapters/extremities/1c0367fad2a0d6946db1f55a8520793a.svg similarity index 100% rename from images/latex/1c0367fad2a0d6946db1f55a8520793a.svg rename to images/chapters/extremities/1c0367fad2a0d6946db1f55a8520793a.svg diff --git a/images/latex/6db78123d4b676ffdf85d53670c77468.svg b/images/chapters/extremities/6db78123d4b676ffdf85d53670c77468.svg similarity index 100% rename from images/latex/6db78123d4b676ffdf85d53670c77468.svg rename to images/chapters/extremities/6db78123d4b676ffdf85d53670c77468.svg diff --git a/images/latex/997a8cc704c0ab0e364cb8b532df90b0.svg b/images/chapters/extremities/997a8cc704c0ab0e364cb8b532df90b0.svg similarity index 100% rename from images/latex/997a8cc704c0ab0e364cb8b532df90b0.svg rename to images/chapters/extremities/997a8cc704c0ab0e364cb8b532df90b0.svg diff --git a/images/latex/c621cc41f6f22ee1beedbcb510fa5b6b.svg b/images/chapters/extremities/c621cc41f6f22ee1beedbcb510fa5b6b.svg similarity index 100% rename from images/latex/c621cc41f6f22ee1beedbcb510fa5b6b.svg rename to images/chapters/extremities/c621cc41f6f22ee1beedbcb510fa5b6b.svg diff --git a/images/latex/d9e66caeb45b6643112ce3d971b17e5b.svg b/images/chapters/extremities/d9e66caeb45b6643112ce3d971b17e5b.svg similarity index 100% rename from images/latex/d9e66caeb45b6643112ce3d971b17e5b.svg rename to images/chapters/extremities/d9e66caeb45b6643112ce3d971b17e5b.svg diff --git a/images/latex/ddc6f99a543afad25c55cf16b9deeed9.svg b/images/chapters/extremities/ddc6f99a543afad25c55cf16b9deeed9.svg similarity index 100% rename from images/latex/ddc6f99a543afad25c55cf16b9deeed9.svg rename to images/chapters/extremities/ddc6f99a543afad25c55cf16b9deeed9.svg diff --git a/images/latex/e06ec558d99b53e559d24524f4201951.svg b/images/chapters/extremities/e06ec558d99b53e559d24524f4201951.svg similarity index 100% rename from images/latex/e06ec558d99b53e559d24524f4201951.svg rename to images/chapters/extremities/e06ec558d99b53e559d24524f4201951.svg diff --git a/images/chapters/flattening/4d4a648e8cac72a7041555ff885cbc2b.png b/images/chapters/flattening/4d4a648e8cac72a7041555ff885cbc2b.png new file mode 100644 index 0000000000000000000000000000000000000000..d292ab0ddf933c18d69f181e329080e751c4b82e GIT binary patch literal 8097 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 NAQd$bB?@M*{|nCwTTuW2 diff --git a/images/latex/1679090a942a43d27f886f236fc8d62b.svg b/images/chapters/inflections/1679090a942a43d27f886f236fc8d62b.svg similarity index 100% rename from images/latex/1679090a942a43d27f886f236fc8d62b.svg rename to images/chapters/inflections/1679090a942a43d27f886f236fc8d62b.svg diff --git a/images/latex/2029bca9f4fa15739553636af99b70a8.svg b/images/chapters/inflections/2029bca9f4fa15739553636af99b70a8.svg similarity index 100% rename from images/latex/2029bca9f4fa15739553636af99b70a8.svg rename to images/chapters/inflections/2029bca9f4fa15739553636af99b70a8.svg diff --git a/images/latex/4b5c7d0bf0fcd769db007dd98d4a024d.svg b/images/chapters/inflections/4b5c7d0bf0fcd769db007dd98d4a024d.svg similarity index 100% rename from images/latex/4b5c7d0bf0fcd769db007dd98d4a024d.svg rename to images/chapters/inflections/4b5c7d0bf0fcd769db007dd98d4a024d.svg diff --git a/images/latex/4d78ebcf8626f777725d67d3672fa480.svg b/images/chapters/inflections/4d78ebcf8626f777725d67d3672fa480.svg similarity index 100% rename from images/latex/4d78ebcf8626f777725d67d3672fa480.svg rename to images/chapters/inflections/4d78ebcf8626f777725d67d3672fa480.svg diff --git a/images/latex/7c9762c0e04693eb743905cdc0487f8b.svg b/images/chapters/inflections/7c9762c0e04693eb743905cdc0487f8b.svg similarity index 100% rename from images/latex/7c9762c0e04693eb743905cdc0487f8b.svg rename to images/chapters/inflections/7c9762c0e04693eb743905cdc0487f8b.svg diff --git a/images/latex/97b34ad5920612574d1b2a1a9d22d571.svg b/images/chapters/inflections/97b34ad5920612574d1b2a1a9d22d571.svg similarity index 100% rename from images/latex/97b34ad5920612574d1b2a1a9d22d571.svg rename to images/chapters/inflections/97b34ad5920612574d1b2a1a9d22d571.svg diff --git a/images/latex/b2433959e1f451fa3bf238fc37e04527.svg b/images/chapters/inflections/b2433959e1f451fa3bf238fc37e04527.svg similarity index 100% rename from images/latex/b2433959e1f451fa3bf238fc37e04527.svg rename to images/chapters/inflections/b2433959e1f451fa3bf238fc37e04527.svg diff --git a/images/latex/bafdb6583323bda71d9a15c02d1fdec2.svg b/images/chapters/inflections/bafdb6583323bda71d9a15c02d1fdec2.svg similarity index 100% rename from images/latex/bafdb6583323bda71d9a15c02d1fdec2.svg rename to images/chapters/inflections/bafdb6583323bda71d9a15c02d1fdec2.svg diff --git a/images/latex/009c671bc526b5d75c30411c3c3a7e91.svg b/images/chapters/matrix/009c671bc526b5d75c30411c3c3a7e91.svg similarity index 100% rename from images/latex/009c671bc526b5d75c30411c3c3a7e91.svg rename to images/chapters/matrix/009c671bc526b5d75c30411c3c3a7e91.svg diff --git a/images/latex/24bdad213879407a35b23c18394293aa.svg b/images/chapters/matrix/24bdad213879407a35b23c18394293aa.svg similarity index 100% rename from images/latex/24bdad213879407a35b23c18394293aa.svg rename to images/chapters/matrix/24bdad213879407a35b23c18394293aa.svg diff --git a/images/latex/5aea6d4d5855135051715fb1cc0ec531.svg b/images/chapters/matrix/5aea6d4d5855135051715fb1cc0ec531.svg similarity index 100% rename from images/latex/5aea6d4d5855135051715fb1cc0ec531.svg rename to images/chapters/matrix/5aea6d4d5855135051715fb1cc0ec531.svg diff --git a/images/latex/6da69918482a0b6b84d90a72dbeae9dd.svg b/images/chapters/matrix/6da69918482a0b6b84d90a72dbeae9dd.svg similarity index 100% rename from images/latex/6da69918482a0b6b84d90a72dbeae9dd.svg rename to images/chapters/matrix/6da69918482a0b6b84d90a72dbeae9dd.svg diff --git a/images/latex/77a11d65d7cffc4b84a85c4bec837792.svg b/images/chapters/matrix/77a11d65d7cffc4b84a85c4bec837792.svg similarity index 100% rename from images/latex/77a11d65d7cffc4b84a85c4bec837792.svg rename to images/chapters/matrix/77a11d65d7cffc4b84a85c4bec837792.svg diff --git a/images/latex/9bc905d79bb22580b8c1cd75a791db73.svg b/images/chapters/matrix/9bc905d79bb22580b8c1cd75a791db73.svg similarity index 100% rename from images/latex/9bc905d79bb22580b8c1cd75a791db73.svg rename to images/chapters/matrix/9bc905d79bb22580b8c1cd75a791db73.svg diff --git a/images/latex/c1f815481ad5132bebc1b1f0a3edf20f.svg b/images/chapters/matrix/c1f815481ad5132bebc1b1f0a3edf20f.svg similarity index 100% rename from images/latex/c1f815481ad5132bebc1b1f0a3edf20f.svg rename to images/chapters/matrix/c1f815481ad5132bebc1b1f0a3edf20f.svg diff --git a/images/latex/e0d89b48cd11a726c00a2f689d48d57c.svg b/images/chapters/matrix/e0d89b48cd11a726c00a2f689d48d57c.svg similarity index 100% rename from images/latex/e0d89b48cd11a726c00a2f689d48d57c.svg rename to images/chapters/matrix/e0d89b48cd11a726c00a2f689d48d57c.svg diff --git a/images/latex/e524525c62234ce616a1e51c9848c169.svg b/images/chapters/matrix/e524525c62234ce616a1e51c9848c169.svg similarity index 100% rename from images/latex/e524525c62234ce616a1e51c9848c169.svg rename to images/chapters/matrix/e524525c62234ce616a1e51c9848c169.svg diff --git a/images/latex/e94ae04eb5732c05d38fa1c97a2a25b0.svg b/images/chapters/matrix/e94ae04eb5732c05d38fa1c97a2a25b0.svg similarity index 100% rename from images/latex/e94ae04eb5732c05d38fa1c97a2a25b0.svg rename to images/chapters/matrix/e94ae04eb5732c05d38fa1c97a2a25b0.svg diff --git a/images/latex/0d2e895e767c4cecb0fccafee1273152.svg b/images/chapters/matrixsplit/0d2e895e767c4cecb0fccafee1273152.svg similarity index 100% rename from images/latex/0d2e895e767c4cecb0fccafee1273152.svg rename to images/chapters/matrixsplit/0d2e895e767c4cecb0fccafee1273152.svg diff --git a/images/latex/0f84dbf6e3ea7db732ceb9d71caf9b22.svg b/images/chapters/matrixsplit/0f84dbf6e3ea7db732ceb9d71caf9b22.svg similarity index 100% rename from images/latex/0f84dbf6e3ea7db732ceb9d71caf9b22.svg rename to images/chapters/matrixsplit/0f84dbf6e3ea7db732ceb9d71caf9b22.svg diff --git a/images/latex/19049f556723a4f2d985a631a91ae290.svg b/images/chapters/matrixsplit/19049f556723a4f2d985a631a91ae290.svg similarity index 100% rename from images/latex/19049f556723a4f2d985a631a91ae290.svg rename to images/chapters/matrixsplit/19049f556723a4f2d985a631a91ae290.svg diff --git a/images/latex/278b67e9b908f4abcf2e9d069a6b29a4.svg b/images/chapters/matrixsplit/278b67e9b908f4abcf2e9d069a6b29a4.svg similarity index 100% rename from images/latex/278b67e9b908f4abcf2e9d069a6b29a4.svg rename to images/chapters/matrixsplit/278b67e9b908f4abcf2e9d069a6b29a4.svg diff --git a/images/latex/2f2bec1e77039a40c31220f5bf83641a.svg b/images/chapters/matrixsplit/2f2bec1e77039a40c31220f5bf83641a.svg similarity index 100% rename from images/latex/2f2bec1e77039a40c31220f5bf83641a.svg rename to images/chapters/matrixsplit/2f2bec1e77039a40c31220f5bf83641a.svg diff --git a/images/latex/3ed7fa50bf68beef4c77d23e665063d2.svg b/images/chapters/matrixsplit/3ed7fa50bf68beef4c77d23e665063d2.svg similarity index 100% rename from images/latex/3ed7fa50bf68beef4c77d23e665063d2.svg rename to images/chapters/matrixsplit/3ed7fa50bf68beef4c77d23e665063d2.svg diff --git a/images/latex/4063d3462c179e91bb5f97c5e763560a.svg b/images/chapters/matrixsplit/4063d3462c179e91bb5f97c5e763560a.svg similarity index 100% rename from images/latex/4063d3462c179e91bb5f97c5e763560a.svg rename to images/chapters/matrixsplit/4063d3462c179e91bb5f97c5e763560a.svg diff --git a/images/latex/567c29ee78b49c700f54b17780682543.svg b/images/chapters/matrixsplit/567c29ee78b49c700f54b17780682543.svg similarity index 100% rename from images/latex/567c29ee78b49c700f54b17780682543.svg rename to images/chapters/matrixsplit/567c29ee78b49c700f54b17780682543.svg diff --git a/images/latex/5e3fae45d325d0f0681731fb606b6fbc.svg b/images/chapters/matrixsplit/5e3fae45d325d0f0681731fb606b6fbc.svg similarity index 100% rename from images/latex/5e3fae45d325d0f0681731fb606b6fbc.svg rename to images/chapters/matrixsplit/5e3fae45d325d0f0681731fb606b6fbc.svg diff --git a/images/latex/6aeb749eb26f5a9199c1b16d7d421dc0.svg b/images/chapters/matrixsplit/6aeb749eb26f5a9199c1b16d7d421dc0.svg similarity index 100% rename from images/latex/6aeb749eb26f5a9199c1b16d7d421dc0.svg rename to images/chapters/matrixsplit/6aeb749eb26f5a9199c1b16d7d421dc0.svg diff --git a/images/chapters/matrixsplit/77a11d65d7cffc4b84a85c4bec837792.svg b/images/chapters/matrixsplit/77a11d65d7cffc4b84a85c4bec837792.svg new file mode 100644 index 00000000..4215f0dd --- /dev/null +++ b/images/chapters/matrixsplit/77a11d65d7cffc4b84a85c4bec837792.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/latex/7d629178a5fb985a35770002d1912535.svg b/images/chapters/matrixsplit/7d629178a5fb985a35770002d1912535.svg similarity index 100% rename from images/latex/7d629178a5fb985a35770002d1912535.svg rename to images/chapters/matrixsplit/7d629178a5fb985a35770002d1912535.svg diff --git a/images/latex/859b7bc7b78e8e297ae5fddd9be40ab7.svg b/images/chapters/matrixsplit/859b7bc7b78e8e297ae5fddd9be40ab7.svg similarity index 100% rename from images/latex/859b7bc7b78e8e297ae5fddd9be40ab7.svg rename to images/chapters/matrixsplit/859b7bc7b78e8e297ae5fddd9be40ab7.svg diff --git a/images/latex/8fb4faa046191480e89052102ecd3678.svg b/images/chapters/matrixsplit/8fb4faa046191480e89052102ecd3678.svg similarity index 100% rename from images/latex/8fb4faa046191480e89052102ecd3678.svg rename to images/chapters/matrixsplit/8fb4faa046191480e89052102ecd3678.svg diff --git a/images/latex/a34473afe7a4160b45ce0f2a770fad99.svg b/images/chapters/matrixsplit/a34473afe7a4160b45ce0f2a770fad99.svg similarity index 100% rename from images/latex/a34473afe7a4160b45ce0f2a770fad99.svg rename to images/chapters/matrixsplit/a34473afe7a4160b45ce0f2a770fad99.svg diff --git a/images/latex/a56f198daab08d20ef666599af14f513.svg b/images/chapters/matrixsplit/a56f198daab08d20ef666599af14f513.svg similarity index 100% rename from images/latex/a56f198daab08d20ef666599af14f513.svg rename to images/chapters/matrixsplit/a56f198daab08d20ef666599af14f513.svg diff --git a/images/latex/abb3edce2229312f351d81092ba2145b.svg b/images/chapters/matrixsplit/abb3edce2229312f351d81092ba2145b.svg similarity index 100% rename from images/latex/abb3edce2229312f351d81092ba2145b.svg rename to images/chapters/matrixsplit/abb3edce2229312f351d81092ba2145b.svg diff --git a/images/latex/b5cf45e4b34fdd18f599b79549844d45.svg b/images/chapters/matrixsplit/b5cf45e4b34fdd18f599b79549844d45.svg similarity index 100% rename from images/latex/b5cf45e4b34fdd18f599b79549844d45.svg rename to images/chapters/matrixsplit/b5cf45e4b34fdd18f599b79549844d45.svg diff --git a/images/latex/c1fcb64541c09e6d180c3d4a5511858e.svg b/images/chapters/matrixsplit/c1fcb64541c09e6d180c3d4a5511858e.svg similarity index 100% rename from images/latex/c1fcb64541c09e6d180c3d4a5511858e.svg rename to images/chapters/matrixsplit/c1fcb64541c09e6d180c3d4a5511858e.svg diff --git a/images/latex/c58330e12d25c678b593ddbd4afa7c52.svg b/images/chapters/matrixsplit/c58330e12d25c678b593ddbd4afa7c52.svg similarity index 100% rename from images/latex/c58330e12d25c678b593ddbd4afa7c52.svg rename to images/chapters/matrixsplit/c58330e12d25c678b593ddbd4afa7c52.svg diff --git a/images/latex/c79b607a92c42789fde57c6a8c4259fd.svg b/images/chapters/matrixsplit/c79b607a92c42789fde57c6a8c4259fd.svg similarity index 100% rename from images/latex/c79b607a92c42789fde57c6a8c4259fd.svg rename to images/chapters/matrixsplit/c79b607a92c42789fde57c6a8c4259fd.svg diff --git a/images/latex/d0a2afc05a974e7e25ce0564505818be.svg b/images/chapters/matrixsplit/d0a2afc05a974e7e25ce0564505818be.svg similarity index 100% rename from images/latex/d0a2afc05a974e7e25ce0564505818be.svg rename to images/chapters/matrixsplit/d0a2afc05a974e7e25ce0564505818be.svg diff --git a/images/latex/daaae36f13bb97f2a7ac21eec6903755.svg b/images/chapters/matrixsplit/daaae36f13bb97f2a7ac21eec6903755.svg similarity index 100% rename from images/latex/daaae36f13bb97f2a7ac21eec6903755.svg rename to images/chapters/matrixsplit/daaae36f13bb97f2a7ac21eec6903755.svg diff --git a/images/latex/dbdbbe9aed4dacb1c1c5ae29b4371870.svg b/images/chapters/matrixsplit/dbdbbe9aed4dacb1c1c5ae29b4371870.svg similarity index 100% rename from images/latex/dbdbbe9aed4dacb1c1c5ae29b4371870.svg rename to images/chapters/matrixsplit/dbdbbe9aed4dacb1c1c5ae29b4371870.svg diff --git a/images/latex/e16eba6dfb9f0b8d1abc3e1cd3ba63a2.svg b/images/chapters/matrixsplit/e16eba6dfb9f0b8d1abc3e1cd3ba63a2.svg similarity index 100% rename from images/latex/e16eba6dfb9f0b8d1abc3e1cd3ba63a2.svg rename to images/chapters/matrixsplit/e16eba6dfb9f0b8d1abc3e1cd3ba63a2.svg diff --git a/images/latex/e9f64464287d3d5c6a4cbe64e21746c8.svg b/images/chapters/matrixsplit/e9f64464287d3d5c6a4cbe64e21746c8.svg similarity index 100% rename from images/latex/e9f64464287d3d5c6a4cbe64e21746c8.svg rename to images/chapters/matrixsplit/e9f64464287d3d5c6a4cbe64e21746c8.svg diff --git a/images/latex/f2695b6d6417c60343b4934dae8118f8.svg b/images/chapters/matrixsplit/f2695b6d6417c60343b4934dae8118f8.svg similarity index 100% rename from images/latex/f2695b6d6417c60343b4934dae8118f8.svg rename to images/chapters/matrixsplit/f2695b6d6417c60343b4934dae8118f8.svg diff --git a/images/latex/524206c49f317d27d8e07a310b24a7a3.svg b/images/chapters/moulding/524206c49f317d27d8e07a310b24a7a3.svg similarity index 100% rename from images/latex/524206c49f317d27d8e07a310b24a7a3.svg rename to images/chapters/moulding/524206c49f317d27d8e07a310b24a7a3.svg diff --git a/images/latex/7bba0a4fd605e023cda922de125b3e32.svg b/images/chapters/moulding/7bba0a4fd605e023cda922de125b3e32.svg similarity index 100% rename from images/latex/7bba0a4fd605e023cda922de125b3e32.svg rename to images/chapters/moulding/7bba0a4fd605e023cda922de125b3e32.svg diff --git a/images/latex/94f61d17f896aebddcf5a7c676aee7d1.svg b/images/chapters/moulding/94f61d17f896aebddcf5a7c676aee7d1.svg similarity index 100% rename from images/latex/94f61d17f896aebddcf5a7c676aee7d1.svg rename to images/chapters/moulding/94f61d17f896aebddcf5a7c676aee7d1.svg diff --git a/images/latex/1d4be24e5896dce3c16c8e71f9cc8881.svg b/images/chapters/offsetting/1d4be24e5896dce3c16c8e71f9cc8881.svg similarity index 100% rename from images/latex/1d4be24e5896dce3c16c8e71f9cc8881.svg rename to images/chapters/offsetting/1d4be24e5896dce3c16c8e71f9cc8881.svg diff --git a/images/latex/1d586b939b44ff9bdb42562a12ac2779.svg b/images/chapters/offsetting/1d586b939b44ff9bdb42562a12ac2779.svg similarity index 100% rename from images/latex/1d586b939b44ff9bdb42562a12ac2779.svg rename to images/chapters/offsetting/1d586b939b44ff9bdb42562a12ac2779.svg diff --git a/images/latex/5bfee4f2ae27304475673d0596e42f9a.svg b/images/chapters/offsetting/5bfee4f2ae27304475673d0596e42f9a.svg similarity index 100% rename from images/latex/5bfee4f2ae27304475673d0596e42f9a.svg rename to images/chapters/offsetting/5bfee4f2ae27304475673d0596e42f9a.svg diff --git a/images/latex/b262e50c085815421d94e120fc17f1c8.svg b/images/chapters/offsetting/b262e50c085815421d94e120fc17f1c8.svg similarity index 100% rename from images/latex/b262e50c085815421d94e120fc17f1c8.svg rename to images/chapters/offsetting/b262e50c085815421d94e120fc17f1c8.svg diff --git a/images/latex/fa6c243de2aa78b7451e0086848dfdfc.svg b/images/chapters/offsetting/fa6c243de2aa78b7451e0086848dfdfc.svg similarity index 100% rename from images/latex/fa6c243de2aa78b7451e0086848dfdfc.svg rename to images/chapters/offsetting/fa6c243de2aa78b7451e0086848dfdfc.svg diff --git a/images/chapters/pointvectors/009715fce01e46e7c07f87a8192a8c62.svg b/images/chapters/pointvectors/009715fce01e46e7c07f87a8192a8c62.svg new file mode 100644 index 00000000..50c52420 --- /dev/null +++ b/images/chapters/pointvectors/009715fce01e46e7c07f87a8192a8c62.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/chapters/pointvectors/2a55cb2d23c25408aa10cfd8db13278b.svg b/images/chapters/pointvectors/2a55cb2d23c25408aa10cfd8db13278b.svg new file mode 100644 index 00000000..d9ca5c01 --- /dev/null +++ b/images/chapters/pointvectors/2a55cb2d23c25408aa10cfd8db13278b.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/chapters/pointvectors/2dd2f89d1c762991a86526490a3deef6.svg b/images/chapters/pointvectors/2dd2f89d1c762991a86526490a3deef6.svg new file mode 100644 index 00000000..1f70946b --- /dev/null +++ b/images/chapters/pointvectors/2dd2f89d1c762991a86526490a3deef6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/chapters/pointvectors/6101b2f8b69ebabba4a2c88456a32aa0.svg b/images/chapters/pointvectors/6101b2f8b69ebabba4a2c88456a32aa0.svg new file mode 100644 index 00000000..0bf47766 --- /dev/null +++ b/images/chapters/pointvectors/6101b2f8b69ebabba4a2c88456a32aa0.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/chapters/pointvectors/d236b7b2ad46c8ced1b43bb2a496379a.svg b/images/chapters/pointvectors/d236b7b2ad46c8ced1b43bb2a496379a.svg new file mode 100644 index 00000000..142772d9 --- /dev/null +++ b/images/chapters/pointvectors/d236b7b2ad46c8ced1b43bb2a496379a.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/chapters/pointvectors/deec095950fcd1f9c980be76a7093fe6.svg b/images/chapters/pointvectors/deec095950fcd1f9c980be76a7093fe6.svg new file mode 100644 index 00000000..f897a76d --- /dev/null +++ b/images/chapters/pointvectors/deec095950fcd1f9c980be76a7093fe6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/latex/408dd95905a5f001179c4da6051e49c5.svg b/images/chapters/polybezier/408dd95905a5f001179c4da6051e49c5.svg similarity index 100% rename from images/latex/408dd95905a5f001179c4da6051e49c5.svg rename to images/chapters/polybezier/408dd95905a5f001179c4da6051e49c5.svg diff --git a/images/latex/8c1b570b3efdfbbc39ddedb4adcaaff6.svg b/images/chapters/polybezier/8c1b570b3efdfbbc39ddedb4adcaaff6.svg similarity index 100% rename from images/latex/8c1b570b3efdfbbc39ddedb4adcaaff6.svg rename to images/chapters/polybezier/8c1b570b3efdfbbc39ddedb4adcaaff6.svg diff --git a/images/chapters/reordering/1244a85c1f9044b6f77cb709c682159c.svg b/images/chapters/reordering/1244a85c1f9044b6f77cb709c682159c.svg new file mode 100644 index 00000000..d46abe80 --- /dev/null +++ b/images/chapters/reordering/1244a85c1f9044b6f77cb709c682159c.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/chapters/reordering/41e184228d85023abdadd6ce2acb54c7.svg b/images/chapters/reordering/41e184228d85023abdadd6ce2acb54c7.svg new file mode 100644 index 00000000..b01b2a61 --- /dev/null +++ b/images/chapters/reordering/41e184228d85023abdadd6ce2acb54c7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/chapters/reordering/4541eeb2113d81cbc0c0a56122570d48.png b/images/chapters/reordering/4541eeb2113d81cbc0c0a56122570d48.png index bace9462ea1147a7a4696cb342cf510cec5b1c5e..5f8518637ac1126a4fceb86337dd140ba13285e0 100644 GIT binary patch literal 10557 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 eM>C7$15|q@ \ No newline at end of file diff --git a/images/chapters/reordering/4debbed5922d2bd84fd322c616872d20.svg b/images/chapters/reordering/4debbed5922d2bd84fd322c616872d20.svg new file mode 100644 index 00000000..de0769c8 --- /dev/null +++ b/images/chapters/reordering/4debbed5922d2bd84fd322c616872d20.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/chapters/reordering/773fdc86b686647c823b4f499aca3a35.svg b/images/chapters/reordering/773fdc86b686647c823b4f499aca3a35.svg new file mode 100644 index 00000000..27cb2257 --- /dev/null +++ b/images/chapters/reordering/773fdc86b686647c823b4f499aca3a35.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/chapters/reordering/7a9120997e4a4855ecda435553a7bbdf.svg b/images/chapters/reordering/7a9120997e4a4855ecda435553a7bbdf.svg new file mode 100644 index 00000000..96ee5484 --- /dev/null +++ b/images/chapters/reordering/7a9120997e4a4855ecda435553a7bbdf.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/chapters/reordering/b2fda1dcce5bb13317aa42ebf5e7ea6c.svg b/images/chapters/reordering/b2fda1dcce5bb13317aa42ebf5e7ea6c.svg new file mode 100644 index 00000000..30e4f66f --- /dev/null +++ b/images/chapters/reordering/b2fda1dcce5bb13317aa42ebf5e7ea6c.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/chapters/reordering/d52f60b331c1b8d6733eb5217adfbc4d.svg b/images/chapters/reordering/d52f60b331c1b8d6733eb5217adfbc4d.svg new file mode 100644 index 00000000..62f5c177 --- /dev/null +++ b/images/chapters/reordering/d52f60b331c1b8d6733eb5217adfbc4d.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/chapters/reordering/dd8d8d98f66ce9f51b95cbf48225e97b.svg b/images/chapters/reordering/dd8d8d98f66ce9f51b95cbf48225e97b.svg new file mode 100644 index 00000000..f01ff76a --- /dev/null +++ b/images/chapters/reordering/dd8d8d98f66ce9f51b95cbf48225e97b.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/chapters/reordering/faf29599c9307f930ec28065c96fde2a.svg b/images/chapters/reordering/faf29599c9307f930ec28065c96fde2a.svg new file mode 100644 index 00000000..4656d758 --- /dev/null +++ b/images/chapters/reordering/faf29599c9307f930ec28065c96fde2a.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/chapters/weightcontrol/02457b19087540dfb144978419524a85.svg b/images/chapters/weightcontrol/02457b19087540dfb144978419524a85.svg new file mode 100644 index 00000000..a508fd75 --- /dev/null +++ b/images/chapters/weightcontrol/02457b19087540dfb144978419524a85.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/chapters/weightcontrol/3fd61ab3fe88f694e70f61e4f8ea056b.svg b/images/chapters/weightcontrol/3fd61ab3fe88f694e70f61e4f8ea056b.svg new file mode 100644 index 00000000..6b83cf66 --- /dev/null +++ b/images/chapters/weightcontrol/3fd61ab3fe88f694e70f61e4f8ea056b.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/latex/4df088f01d0fd4de84a50bbc2e25f8a7.svg b/images/chapters/whatis/4df088f01d0fd4de84a50bbc2e25f8a7.svg similarity index 100% rename from images/latex/4df088f01d0fd4de84a50bbc2e25f8a7.svg rename to images/chapters/whatis/4df088f01d0fd4de84a50bbc2e25f8a7.svg diff --git a/images/chapters/whatis/b5aa26284ba3df74970a95cb047a841d.svg b/images/chapters/whatis/b5aa26284ba3df74970a95cb047a841d.svg new file mode 100644 index 00000000..aebaa95a --- /dev/null +++ b/images/chapters/whatis/b5aa26284ba3df74970a95cb047a841d.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/latex/9ab2b830fe7fb73350c19bde04e9441b.svg b/images/chapters/yforx/9ab2b830fe7fb73350c19bde04e9441b.svg similarity index 100% rename from images/latex/9ab2b830fe7fb73350c19bde04e9441b.svg rename to images/chapters/yforx/9ab2b830fe7fb73350c19bde04e9441b.svg diff --git a/images/latex/9df91c28af38c1ba2e2d38d2714c9446.svg b/images/chapters/yforx/9df91c28af38c1ba2e2d38d2714c9446.svg similarity index 100% rename from images/latex/9df91c28af38c1ba2e2d38d2714c9446.svg rename to images/chapters/yforx/9df91c28af38c1ba2e2d38d2714c9446.svg diff --git a/images/latex/de3bd3e271d72194c730d0ae44f031a8.svg b/images/chapters/yforx/de3bd3e271d72194c730d0ae44f031a8.svg similarity index 100% rename from images/latex/de3bd3e271d72194c730d0ae44f031a8.svg rename to images/chapters/yforx/de3bd3e271d72194c730d0ae44f031a8.svg diff --git a/images/latex/009715fce01e46e7c07f87a8192a8c62.svg b/images/latex/009715fce01e46e7c07f87a8192a8c62.svg deleted file mode 100644 index c48148d1..00000000 --- a/images/latex/009715fce01e46e7c07f87a8192a8c62.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/02457b19087540dfb144978419524a85.svg b/images/latex/02457b19087540dfb144978419524a85.svg deleted file mode 100644 index 1f0a8d18..00000000 --- a/images/latex/02457b19087540dfb144978419524a85.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/066a910ae6aba69c40a338320759cdd1.svg b/images/latex/066a910ae6aba69c40a338320759cdd1.svg deleted file mode 100644 index cf8dc2a5..00000000 --- a/images/latex/066a910ae6aba69c40a338320759cdd1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/0f5cffd58e864fec6739a57664eb8cbd.svg b/images/latex/0f5cffd58e864fec6739a57664eb8cbd.svg deleted file mode 100644 index cedf39d4..00000000 --- a/images/latex/0f5cffd58e864fec6739a57664eb8cbd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/1244a85c1f9044b6f77cb709c682159c.svg b/images/latex/1244a85c1f9044b6f77cb709c682159c.svg deleted file mode 100644 index 68828eaf..00000000 --- a/images/latex/1244a85c1f9044b6f77cb709c682159c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/1caef9931f954e32eae5067b732c1018.svg b/images/latex/1caef9931f954e32eae5067b732c1018.svg deleted file mode 100644 index 54ac984e..00000000 --- a/images/latex/1caef9931f954e32eae5067b732c1018.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/2a55cb2d23c25408aa10cfd8db13278b.svg b/images/latex/2a55cb2d23c25408aa10cfd8db13278b.svg deleted file mode 100644 index 412b60c8..00000000 --- a/images/latex/2a55cb2d23c25408aa10cfd8db13278b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/2adc12d0cff01d40d9e1702014a7dc19.svg b/images/latex/2adc12d0cff01d40d9e1702014a7dc19.svg deleted file mode 100644 index 1dfb460a..00000000 --- a/images/latex/2adc12d0cff01d40d9e1702014a7dc19.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/2dd2f89d1c762991a86526490a3deef6.svg b/images/latex/2dd2f89d1c762991a86526490a3deef6.svg deleted file mode 100644 index 4ebdf292..00000000 --- a/images/latex/2dd2f89d1c762991a86526490a3deef6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/3fd61ab3fe88f694e70f61e4f8ea056b.svg b/images/latex/3fd61ab3fe88f694e70f61e4f8ea056b.svg deleted file mode 100644 index f34f28db..00000000 --- a/images/latex/3fd61ab3fe88f694e70f61e4f8ea056b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/41e184228d85023abdadd6ce2acb54c7.svg b/images/latex/41e184228d85023abdadd6ce2acb54c7.svg deleted file mode 100644 index f40ecb23..00000000 --- a/images/latex/41e184228d85023abdadd6ce2acb54c7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/483c89c8726f7fd0dca0b7de339b04bd.svg b/images/latex/483c89c8726f7fd0dca0b7de339b04bd.svg deleted file mode 100644 index 9e1c89c5..00000000 --- a/images/latex/483c89c8726f7fd0dca0b7de339b04bd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/4cf6fb369841e2c5d36e5567a8db4306.svg b/images/latex/4cf6fb369841e2c5d36e5567a8db4306.svg deleted file mode 100644 index a10d8870..00000000 --- a/images/latex/4cf6fb369841e2c5d36e5567a8db4306.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/4debbed5922d2bd84fd322c616872d20.svg b/images/latex/4debbed5922d2bd84fd322c616872d20.svg deleted file mode 100644 index 2e581f58..00000000 --- a/images/latex/4debbed5922d2bd84fd322c616872d20.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/50679d61424222d7b6b97eb3aa663582.svg b/images/latex/50679d61424222d7b6b97eb3aa663582.svg deleted file mode 100644 index fc898450..00000000 --- a/images/latex/50679d61424222d7b6b97eb3aa663582.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/6101b2f8b69ebabba4a2c88456a32aa0.svg b/images/latex/6101b2f8b69ebabba4a2c88456a32aa0.svg deleted file mode 100644 index 44878d8e..00000000 --- a/images/latex/6101b2f8b69ebabba4a2c88456a32aa0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/773fdc86b686647c823b4f499aca3a35.svg b/images/latex/773fdc86b686647c823b4f499aca3a35.svg deleted file mode 100644 index 1b318e47..00000000 --- a/images/latex/773fdc86b686647c823b4f499aca3a35.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/7a9120997e4a4855ecda435553a7bbdf.svg b/images/latex/7a9120997e4a4855ecda435553a7bbdf.svg deleted file mode 100644 index 70121d36..00000000 --- a/images/latex/7a9120997e4a4855ecda435553a7bbdf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/9a6d17c362980775f1425d0d2ad9a36a.svg b/images/latex/9a6d17c362980775f1425d0d2ad9a36a.svg deleted file mode 100644 index 44517c88..00000000 --- a/images/latex/9a6d17c362980775f1425d0d2ad9a36a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/9c18f76e76cf684ecd217ad8facc2e93.svg b/images/latex/9c18f76e76cf684ecd217ad8facc2e93.svg deleted file mode 100644 index a6373b79..00000000 --- a/images/latex/9c18f76e76cf684ecd217ad8facc2e93.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/a9af1c06a00bb3c4af816a138fb0a66d.svg b/images/latex/a9af1c06a00bb3c4af816a138fb0a66d.svg deleted file mode 100644 index b80daec0..00000000 --- a/images/latex/a9af1c06a00bb3c4af816a138fb0a66d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/b2fda1dcce5bb13317aa42ebf5e7ea6c.svg b/images/latex/b2fda1dcce5bb13317aa42ebf5e7ea6c.svg deleted file mode 100644 index 4a3dd5d0..00000000 --- a/images/latex/b2fda1dcce5bb13317aa42ebf5e7ea6c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/b5aa26284ba3df74970a95cb047a841d.svg b/images/latex/b5aa26284ba3df74970a95cb047a841d.svg deleted file mode 100644 index 54207f0c..00000000 --- a/images/latex/b5aa26284ba3df74970a95cb047a841d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/b80a1cac1f9ec476d6f6646ce0e154e7.svg b/images/latex/b80a1cac1f9ec476d6f6646ce0e154e7.svg deleted file mode 100644 index 014b9f89..00000000 --- a/images/latex/b80a1cac1f9ec476d6f6646ce0e154e7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/bb06cb82d372f822a7b35e661502bd72.svg b/images/latex/bb06cb82d372f822a7b35e661502bd72.svg deleted file mode 100644 index ded54b14..00000000 --- a/images/latex/bb06cb82d372f822a7b35e661502bd72.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/c78b203ff33e5c1606728b552505d61c.svg b/images/latex/c78b203ff33e5c1606728b552505d61c.svg deleted file mode 100644 index 39f7d3ea..00000000 --- a/images/latex/c78b203ff33e5c1606728b552505d61c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/d236b7b2ad46c8ced1b43bb2a496379a.svg b/images/latex/d236b7b2ad46c8ced1b43bb2a496379a.svg deleted file mode 100644 index c7d1e27e..00000000 --- a/images/latex/d236b7b2ad46c8ced1b43bb2a496379a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/d480a9aa41917e5230d432cdbd6899b1.svg b/images/latex/d480a9aa41917e5230d432cdbd6899b1.svg deleted file mode 100644 index 369959d8..00000000 --- a/images/latex/d480a9aa41917e5230d432cdbd6899b1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/d52f60b331c1b8d6733eb5217adfbc4d.svg b/images/latex/d52f60b331c1b8d6733eb5217adfbc4d.svg deleted file mode 100644 index 65586d3a..00000000 --- a/images/latex/d52f60b331c1b8d6733eb5217adfbc4d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/d930dea961b40f4810708bd6746221a2.svg b/images/latex/d930dea961b40f4810708bd6746221a2.svg deleted file mode 100644 index ae578201..00000000 --- a/images/latex/d930dea961b40f4810708bd6746221a2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/dd8d8d98f66ce9f51b95cbf48225e97b.svg b/images/latex/dd8d8d98f66ce9f51b95cbf48225e97b.svg deleted file mode 100644 index d46908e0..00000000 --- a/images/latex/dd8d8d98f66ce9f51b95cbf48225e97b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/deec095950fcd1f9c980be76a7093fe6.svg b/images/latex/deec095950fcd1f9c980be76a7093fe6.svg deleted file mode 100644 index dacb35e5..00000000 --- a/images/latex/deec095950fcd1f9c980be76a7093fe6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/e107caca1577e44293cd207388ac939c.svg b/images/latex/e107caca1577e44293cd207388ac939c.svg deleted file mode 100644 index 021454ef..00000000 --- a/images/latex/e107caca1577e44293cd207388ac939c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/latex/faf29599c9307f930ec28065c96fde2a.svg b/images/latex/faf29599c9307f930ec28065c96fde2a.svg deleted file mode 100644 index 94808df3..00000000 --- a/images/latex/faf29599c9307f930ec28065c96fde2a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/index.html b/index.html index 4a1ec8bb..6e1d6812 100644 --- a/index.html +++ b/index.html @@ -564,9 +564,9 @@

So let's look at that in action: the following graphic is @@ -633,8 +633,8 @@

@@ -649,9 +649,9 @@

There's nothing really remarkable about them, they're just a sine @@ -664,8 +664,8 @@

@@ -679,8 +679,8 @@

@@ -732,9 +732,9 @@

If the highest order term they have is , they're called @@ -751,8 +751,8 @@

@@ -762,9 +762,9 @@

Notice that 2 is the same as 1+1, and 3 is 2+1 and 1+2, and 6 is @@ -783,8 +783,8 @@

@@ -796,9 +796,9 @@

And that's the full description for Bézier curves. Σ in this @@ -977,9 +977,9 @@ function Bezier(3,t):

That looks complicated, but as it so happens, the "weights" are @@ -992,7 +992,7 @@ function Bezier(3,t):

@@ -1065,16 +1065,16 @@ function Bezier(3,t,w[]):

The function for rational Bézier curves has two more terms:

In this, the first new term represents an additional weight for each @@ -1202,9 +1202,9 @@ function RationalBezier(3,t,w[],r[]):

The obvious start and end values here need to be @@ -1221,9 +1221,9 @@ function RationalBezier(3,t,w[],r[]):

With this we can guarantee that we never sum above 100%. By @@ -1311,35 +1311,35 @@ function RationalBezier(3,t,w[],r[]):

Disregarding our actual coordinates for a moment, we have:

We can write this as a sum of four expressions:

And we can expand these expressions:

Furthermore, we can make all the 1 and 0 factors explicit:

@@ -1349,14 +1349,14 @@ function RationalBezier(3,t,w[],r[]):

If we compact this into a single matrix operation, we get:

@@ -1368,7 +1368,7 @@ function RationalBezier(3,t,w[],r[]):

@@ -1378,7 +1378,7 @@ function RationalBezier(3,t,w[],r[]):

@@ -1388,7 +1388,7 @@ function RationalBezier(3,t,w[],r[]):

@@ -1564,7 +1564,7 @@ function RationalBezier(3,t,w[],r[]): Scripts are disabled. Showing fallback image. @@ -1699,14 +1699,14 @@ function drawCurve(points[], t):

and

@@ -1720,14 +1720,14 @@ function drawCurve(points[], t):

and

@@ -1750,25 +1750,25 @@ function drawCurve(points[], t):

@@ -1791,26 +1791,26 @@ function drawCurve(points[], t):

Excellent! Now we can form our new quadratic curve:

@@ -1838,13 +1838,13 @@ function drawCurve(points[], t):

@@ -1854,13 +1854,13 @@ function drawCurve(points[], t):

@@ -1871,26 +1871,26 @@ function drawCurve(points[], t):

So, our final second curve looks like:

@@ -1914,14 +1914,14 @@ function drawCurve(points[], t):

and

@@ -1933,14 +1933,14 @@ function drawCurve(points[], t):

and

@@ -1988,8 +1988,8 @@ function drawCurve(points[], t):

@@ -2021,8 +2021,8 @@ function drawCurve(points[], t):

@@ -2034,9 +2034,9 @@ function drawCurve(points[], t):

So, with that seemingly trivial observation, we rewrite that Bézier @@ -2045,9 +2045,9 @@ function drawCurve(points[], t):

So far so good. Now, to see why we did this, let's write out the @@ -2057,9 +2057,9 @@ function drawCurve(points[], t):

So by using this seemingly silly trick, we can suddenly express part @@ -2072,9 +2072,9 @@ function drawCurve(points[], t):

So, with both of those changed from an order @@ -2094,8 +2094,8 @@ function drawCurve(points[], t):

Let's do this:

@@ -2105,9 +2105,9 @@ function drawCurve(points[], t):

where the matrix M is an n+1 by @@ -2115,9 +2115,9 @@ function drawCurve(points[], t):

That might look unwieldy, but it's really just a mostly-zeroes @@ -2143,9 +2143,9 @@ function drawCurve(points[], t):

The steps taken here are:

    @@ -2218,7 +2218,7 @@ function drawCurve(points[], t):

    @@ -2230,7 +2230,7 @@ function drawCurve(points[], t):

    @@ -2256,7 +2256,7 @@ function drawCurve(points[], t):

    @@ -2269,14 +2269,14 @@ function drawCurve(points[], t):

    Which is hard to work with, so let's expand that properly:

    @@ -2289,7 +2289,7 @@ function drawCurve(points[], t):

    @@ -2299,7 +2299,7 @@ function drawCurve(points[], t):

    @@ -2310,7 +2310,7 @@ function drawCurve(points[], t):

    @@ -2321,7 +2321,7 @@ function drawCurve(points[], t):

    @@ -2339,21 +2339,21 @@ function drawCurve(points[], t):

    And that's just a summation of lower order curves:

    We can rewrite this as a normal summation, and we're done:

    @@ -2366,13 +2366,13 @@ function drawCurve(points[], t):

    @@ -2387,7 +2387,7 @@ function drawCurve(points[], t):

    @@ -2414,8 +2414,8 @@ function drawCurve(points[], t):

    @@ -2426,15 +2426,15 @@ function drawCurve(points[], t):

    The tangent is very useful for moving along a line, but what if we @@ -2447,9 +2447,9 @@ function drawCurve(points[], t):

    @@ -2470,8 +2470,8 @@ function drawCurve(points[], t):

    @@ -2480,8 +2480,8 @@ function drawCurve(points[], t):

    @@ -2926,7 +2926,7 @@ function drawCurve(points[], t):

    @@ -2936,7 +2936,7 @@ function drawCurve(points[], t):

    @@ -2961,7 +2961,7 @@ function drawCurve(points[], t):

    @@ -2982,7 +2982,7 @@ function drawCurve(points[], t):

    @@ -2992,7 +2992,7 @@ function drawCurve(points[], t):

    @@ -3004,7 +3004,7 @@ function drawCurve(points[], t):

    @@ -3038,7 +3038,7 @@ function drawCurve(points[], t):

    @@ -3250,7 +3250,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3425,8 +3425,8 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3436,8 +3436,8 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3447,15 +3447,15 @@ function getCubicRoots(pa, pb, pc, pd) {

    If we drop all the zero-terms, this gives us:

    @@ -3577,7 +3577,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    What we need to do is solve a simple equation:

    @@ -3592,7 +3592,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3623,14 +3623,14 @@ function getCubicRoots(pa, pb, pc, pd) {

    And of course the same functions for y:

    @@ -3641,7 +3641,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3661,7 +3661,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3672,7 +3672,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3682,7 +3682,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3780,7 +3780,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3793,7 +3793,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3806,7 +3806,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3901,7 +3901,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3912,7 +3912,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3930,7 +3930,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3941,7 +3941,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3961,7 +3961,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3980,7 +3980,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3993,7 +3993,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -4010,7 +4010,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -4023,7 +4023,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -4126,7 +4126,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    First, let's look at the function for x(t):

    @@ -4137,7 +4137,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -4151,7 +4151,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -4215,14 +4215,14 @@ if (roots.length > 0) {

    or, more commonly written using Leibnitz notation as:

    @@ -4272,7 +4272,7 @@ if (roots.length > 0) {

    @@ -4347,7 +4347,7 @@ if (roots.length > 0) {

    @@ -4371,7 +4371,7 @@ if (roots.length > 0) {

    @@ -4382,7 +4382,7 @@ if (roots.length > 0) {

    @@ -4555,7 +4555,7 @@ if (roots.length > 0) {

    @@ -4565,7 +4565,7 @@ if (roots.length > 0) {

    @@ -4605,7 +4605,7 @@ if (roots.length > 0) {

    @@ -5005,7 +5005,7 @@ lli = function(line1, line2):

    @@ -5017,7 +5017,7 @@ lli = function(line1, line2):

    @@ -5055,7 +5055,7 @@ lli = function(line1, line2):

    @@ -5067,7 +5067,7 @@ lli = function(line1, line2):

    @@ -5089,13 +5089,13 @@ lli = function(line1, line2):

    @@ -5156,7 +5156,7 @@ lli = function(line1, line2):

    @@ -5191,14 +5191,14 @@ lli = function(line1, line2):

    First, we construct the one-level-of-de-Casteljau-up points:

    And then we can compute the new control points:

    @@ -5346,7 +5346,7 @@ lli = function(line1, line2):

    @@ -5355,7 +5355,7 @@ lli = function(line1, line2):

    @@ -5372,7 +5372,7 @@ lli = function(line1, line2):

    @@ -5382,21 +5382,21 @@ lli = function(line1, line2):

    So we write out the expansion and rearrange:

    Which we can then decompose:

    @@ -5406,7 +5406,7 @@ lli = function(line1, line2):

    @@ -5426,7 +5426,7 @@ lli = function(line1, line2):

    @@ -5470,7 +5470,7 @@ lli = function(line1, line2):

    @@ -5484,7 +5484,7 @@ lli = function(line1, line2):

    @@ -5504,7 +5504,7 @@ lli = function(line1, line2):

    @@ -5516,7 +5516,7 @@ lli = function(line1, line2):

    @@ -5531,7 +5531,7 @@ lli = function(line1, line2):

    @@ -5541,7 +5541,7 @@ lli = function(line1, line2):

    @@ -5564,7 +5564,7 @@ lli = function(line1, line2):

    @@ -5574,7 +5574,7 @@ lli = function(line1, line2):

    @@ -5584,7 +5584,7 @@ lli = function(line1, line2):

    @@ -5598,7 +5598,7 @@ lli = function(line1, line2):

    @@ -5639,7 +5639,7 @@ lli = function(line1, line2):

    @@ -5749,7 +5749,7 @@ lli = function(line1, line2):

    @@ -5788,7 +5788,7 @@ lli = function(line1, line2):

    @@ -5803,14 +5803,14 @@ lli = function(line1, line2):

    Computing T is really more "arranging the numbers":

    Thus:

    @@ -5826,7 +5826,7 @@ lli = function(line1, line2):

    @@ -5837,7 +5837,7 @@ lli = function(line1, line2):

    @@ -5847,14 +5847,14 @@ lli = function(line1, line2):

    and merge the matrices:

    @@ -5864,7 +5864,7 @@ lli = function(line1, line2):

    @@ -5874,14 +5874,14 @@ lli = function(line1, line2):

    Into something that looks like this:

    @@ -5891,7 +5891,7 @@ lli = function(line1, line2):

    @@ -5901,7 +5901,7 @@ lli = function(line1, line2):

    @@ -5911,7 +5911,7 @@ lli = function(line1, line2):

    @@ -5922,7 +5922,7 @@ lli = function(line1, line2):

    @@ -5932,7 +5932,7 @@ lli = function(line1, line2):

    @@ -5945,7 +5945,7 @@ lli = function(line1, line2):
@@ -5954,7 +5954,7 @@ lli = function(line1, line2): @@ -5963,7 +5963,7 @@ lli = function(line1, line2): @@ -5972,7 +5972,7 @@ lli = function(line1, line2): @@ -5981,7 +5981,7 @@ lli = function(line1, line2): @@ -5993,7 +5993,7 @@ lli = function(line1, line2): @@ -6011,7 +6011,7 @@ lli = function(line1, line2):

@@ -6023,7 +6023,7 @@ lli = function(line1, line2):

@@ -6033,7 +6033,7 @@ lli = function(line1, line2):

@@ -6143,7 +6143,7 @@ lli = function(line1, line2):

@@ -6157,7 +6157,7 @@ lli = function(line1, line2):

@@ -6515,7 +6515,7 @@ lli = function(line1, line2):

@@ -6531,7 +6531,7 @@ lli = function(line1, line2):

@@ -6550,7 +6550,7 @@ lli = function(line1, line2):

@@ -6563,7 +6563,7 @@ lli = function(line1, line2):

@@ -6574,7 +6574,7 @@ lli = function(line1, line2):

@@ -6803,7 +6803,7 @@ lli = function(line1, line2):

@@ -6813,7 +6813,7 @@ lli = function(line1, line2):

@@ -6825,28 +6825,28 @@ lli = function(line1, line2):

First we solve for b:

which yields:

which we can then substitute in the expression for a:

@@ -6862,7 +6862,7 @@ lli = function(line1, line2):

@@ -6872,14 +6872,14 @@ lli = function(line1, line2):

Which, worked out for the x and y components, gives:

@@ -6889,7 +6889,7 @@ lli = function(line1, line2):

@@ -6944,7 +6944,7 @@ lli = function(line1, line2):

@@ -7087,7 +7087,7 @@ lli = function(line1, line2):

@@ -7100,14 +7100,14 @@ lli = function(line1, line2):

where "a" is some scaling factor, and:

@@ -7164,7 +7164,7 @@ lli = function(line1, line2):

@@ -7178,7 +7178,7 @@ lli = function(line1, line2):

@@ -7191,7 +7191,7 @@ lli = function(line1, line2):

@@ -7202,13 +7202,13 @@ lli = function(line1, line2):

@@ -7219,7 +7219,7 @@ lli = function(line1, line2):

@@ -7230,7 +7230,7 @@ lli = function(line1, line2):

@@ -7245,14 +7245,14 @@ lli = function(line1, line2):

and

@@ -7263,7 +7263,7 @@ lli = function(line1, line2):

@@ -7272,7 +7272,7 @@ lli = function(line1, line2):

@@ -7558,7 +7558,7 @@ lli = function(line1, line2):

@@ -7587,7 +7587,7 @@ lli = function(line1, line2):

Then the N() function itself. What does it look like?

@@ -7603,7 +7603,7 @@ lli = function(line1, line2):

@@ -7637,7 +7637,7 @@ lli = function(line1, line2):

@@ -7648,7 +7648,7 @@ lli = function(line1, line2):

@@ -7664,7 +7664,7 @@ lli = function(line1, line2):

@@ -7682,7 +7682,7 @@ lli = function(line1, line2):

diff --git a/ja-JP/index.html b/ja-JP/index.html index eb222594..9cd43021 100644 --- a/ja-JP/index.html +++ b/ja-JP/index.html @@ -545,7 +545,7 @@

@@ -584,8 +584,8 @@

@@ -597,17 +597,17 @@

注目すべき箇所は特に何もありません。ただの正弦関数と余弦関数です。ただし、入力が別々の名前になっていることに気づくでしょう。仮にaの値を変えたとしても、f(b)の出力の値は変わらないはずです。なぜなら、こちらの関数にはaは使われていないからです。パラメトリック関数は、これを変えてしまうのでインチキなのです。パラメトリック関数においては、どの関数も変数を共有しています。例えば、

@@ -615,8 +615,8 @@

@@ -649,9 +649,9 @@

高校で習った、こんな形の多項式を思い出すかもしれません。

最高次の項がであれば3次多項式、であれば2次多項式と呼び、xだけの場合は1次多項式――ただの直線です。(そしてxの入った項が何もなければ、多項式ではありません!) @@ -661,7 +661,7 @@

@@ -670,7 +670,7 @@

@@ -682,7 +682,7 @@

@@ -691,7 +691,7 @@

@@ -799,7 +799,7 @@ function Bezier(3,t):

@@ -808,7 +808,7 @@ function Bezier(3,t):

@@ -867,16 +867,16 @@ function Bezier(3,t,w[]):

The function for rational Bézier curves has two more terms:

In this, the first new term represents an additional weight for each @@ -1002,7 +1002,7 @@ function RationalBezier(3,t,w[],r[]):

@@ -1014,7 +1014,7 @@ function RationalBezier(3,t,w[],r[]):

@@ -1088,28 +1088,28 @@ function RationalBezier(3,t,w[],r[]):

実際の座標を一旦無視すると、次のようになります。

これは、4つの項の和になっています。

それぞれの項を展開します。

@@ -1118,7 +1118,7 @@ function RationalBezier(3,t,w[],r[]):

@@ -1127,14 +1127,14 @@ function RationalBezier(3,t,w[],r[]):

これを1つの行列演算にまとめると、以下のようになります。

@@ -1143,7 +1143,7 @@ function RationalBezier(3,t,w[],r[]):

@@ -1152,7 +1152,7 @@ function RationalBezier(3,t,w[],r[]):

@@ -1161,7 +1161,7 @@ function RationalBezier(3,t,w[],r[]):

@@ -1289,7 +1289,7 @@ function RationalBezier(3,t,w[],r[]): Scripts are disabled. Showing fallback image. @@ -1400,14 +1400,14 @@ function drawCurve(points[], t):

ならびに

@@ -1417,14 +1417,14 @@ function drawCurve(points[], t):

ならびに

@@ -1442,25 +1442,25 @@ function drawCurve(points[], t):

@@ -1478,26 +1478,26 @@ function drawCurve(points[], t):

いいですね!これで、新しい2次ベジエ曲線が得られます。

@@ -1516,13 +1516,13 @@ function drawCurve(points[], t):

@@ -1531,13 +1531,13 @@ function drawCurve(points[], t):

@@ -1547,26 +1547,26 @@ function drawCurve(points[], t):

よって、後半部分の曲線は結局のところ以下のようになります。

@@ -1583,14 +1583,14 @@ function drawCurve(points[], t):

および

@@ -1599,14 +1599,14 @@ function drawCurve(points[], t):

および

@@ -1650,8 +1650,8 @@ function drawCurve(points[], t):

@@ -1683,8 +1683,8 @@ function drawCurve(points[], t):

@@ -1696,9 +1696,9 @@ function drawCurve(points[], t):

So, with that seemingly trivial observation, we rewrite that Bézier @@ -1707,9 +1707,9 @@ function drawCurve(points[], t):

So far so good. Now, to see why we did this, let's write out the @@ -1719,9 +1719,9 @@ function drawCurve(points[], t):

So by using this seemingly silly trick, we can suddenly express part @@ -1734,9 +1734,9 @@ function drawCurve(points[], t):

So, with both of those changed from an order @@ -1756,8 +1756,8 @@ function drawCurve(points[], t):

Let's do this:

@@ -1767,9 +1767,9 @@ function drawCurve(points[], t):

where the matrix M is an n+1 by @@ -1777,9 +1777,9 @@ function drawCurve(points[], t):

That might look unwieldy, but it's really just a mostly-zeroes @@ -1805,9 +1805,9 @@ function drawCurve(points[], t):

The steps taken here are:

    @@ -1880,7 +1880,7 @@ function drawCurve(points[], t):

    @@ -1892,7 +1892,7 @@ function drawCurve(points[], t):

    @@ -1918,7 +1918,7 @@ function drawCurve(points[], t):

    @@ -1931,14 +1931,14 @@ function drawCurve(points[], t):

    Which is hard to work with, so let's expand that properly:

    @@ -1951,7 +1951,7 @@ function drawCurve(points[], t):

    @@ -1961,7 +1961,7 @@ function drawCurve(points[], t):

    @@ -1972,7 +1972,7 @@ function drawCurve(points[], t):

    @@ -1983,7 +1983,7 @@ function drawCurve(points[], t):

    @@ -2001,21 +2001,21 @@ function drawCurve(points[], t):

    And that's just a summation of lower order curves:

    We can rewrite this as a normal summation, and we're done:

    @@ -2028,13 +2028,13 @@ function drawCurve(points[], t):

    @@ -2049,7 +2049,7 @@ function drawCurve(points[], t):

    @@ -2078,8 +2078,8 @@ function drawCurve(points[], t):

    @@ -2090,15 +2090,15 @@ function drawCurve(points[], t):

    The tangent is very useful for moving along a line, but what if we @@ -2111,9 +2111,9 @@ function drawCurve(points[], t):

    @@ -2134,8 +2134,8 @@ function drawCurve(points[], t):

    @@ -2144,8 +2144,8 @@ function drawCurve(points[], t):

    @@ -2598,7 +2598,7 @@ function drawCurve(points[], t):

    @@ -2608,7 +2608,7 @@ function drawCurve(points[], t):

    @@ -2633,7 +2633,7 @@ function drawCurve(points[], t):

    @@ -2654,7 +2654,7 @@ function drawCurve(points[], t):

    @@ -2664,7 +2664,7 @@ function drawCurve(points[], t):

    @@ -2676,7 +2676,7 @@ function drawCurve(points[], t):

    @@ -2710,7 +2710,7 @@ function drawCurve(points[], t):

    @@ -2922,7 +2922,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3097,8 +3097,8 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3108,8 +3108,8 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3119,15 +3119,15 @@ function getCubicRoots(pa, pb, pc, pd) {

    If we drop all the zero-terms, this gives us:

    @@ -3251,7 +3251,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    What we need to do is solve a simple equation:

    @@ -3266,7 +3266,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3297,14 +3297,14 @@ function getCubicRoots(pa, pb, pc, pd) {

    And of course the same functions for y:

    @@ -3315,7 +3315,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3335,7 +3335,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3346,7 +3346,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3356,7 +3356,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3458,7 +3458,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3471,7 +3471,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3484,7 +3484,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3579,7 +3579,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3590,7 +3590,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3608,7 +3608,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3619,7 +3619,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3639,7 +3639,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3658,7 +3658,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3671,7 +3671,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3688,7 +3688,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3701,7 +3701,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3804,7 +3804,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    First, let's look at the function for x(t):

    @@ -3815,7 +3815,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3829,7 +3829,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3893,14 +3893,14 @@ if (roots.length > 0) {

    or, more commonly written using Leibnitz notation as:

    @@ -3950,7 +3950,7 @@ if (roots.length > 0) {

    @@ -4025,7 +4025,7 @@ if (roots.length > 0) {

    @@ -4049,7 +4049,7 @@ if (roots.length > 0) {

    @@ -4060,7 +4060,7 @@ if (roots.length > 0) {

    @@ -4237,7 +4237,7 @@ if (roots.length > 0) {

    @@ -4247,7 +4247,7 @@ if (roots.length > 0) {

    @@ -4287,7 +4287,7 @@ if (roots.length > 0) {

    @@ -4693,7 +4693,7 @@ lli = function(line1, line2):

    @@ -4705,7 +4705,7 @@ lli = function(line1, line2):

    @@ -4743,7 +4743,7 @@ lli = function(line1, line2):

    @@ -4755,7 +4755,7 @@ lli = function(line1, line2):

    @@ -4777,13 +4777,13 @@ lli = function(line1, line2):

    @@ -4844,7 +4844,7 @@ lli = function(line1, line2):

    @@ -4879,14 +4879,14 @@ lli = function(line1, line2):

    First, we construct the one-level-of-de-Casteljau-up points:

    And then we can compute the new control points:

    @@ -5038,7 +5038,7 @@ lli = function(line1, line2):

    @@ -5047,7 +5047,7 @@ lli = function(line1, line2):

    @@ -5064,7 +5064,7 @@ lli = function(line1, line2):

    @@ -5074,21 +5074,21 @@ lli = function(line1, line2):

    So we write out the expansion and rearrange:

    Which we can then decompose:

    @@ -5098,7 +5098,7 @@ lli = function(line1, line2):

    @@ -5118,7 +5118,7 @@ lli = function(line1, line2):

    @@ -5162,7 +5162,7 @@ lli = function(line1, line2):

    @@ -5176,7 +5176,7 @@ lli = function(line1, line2):

    @@ -5196,7 +5196,7 @@ lli = function(line1, line2):

    @@ -5208,7 +5208,7 @@ lli = function(line1, line2):

    @@ -5223,7 +5223,7 @@ lli = function(line1, line2):

    @@ -5233,7 +5233,7 @@ lli = function(line1, line2):

    @@ -5256,7 +5256,7 @@ lli = function(line1, line2):

    @@ -5266,7 +5266,7 @@ lli = function(line1, line2):

    @@ -5276,7 +5276,7 @@ lli = function(line1, line2):

    @@ -5290,7 +5290,7 @@ lli = function(line1, line2):

    @@ -5331,7 +5331,7 @@ lli = function(line1, line2):

    @@ -5443,7 +5443,7 @@ lli = function(line1, line2):

    @@ -5482,7 +5482,7 @@ lli = function(line1, line2):

    @@ -5497,14 +5497,14 @@ lli = function(line1, line2):

    Computing T is really more "arranging the numbers":

    Thus:

    @@ -5520,7 +5520,7 @@ lli = function(line1, line2):

    @@ -5531,7 +5531,7 @@ lli = function(line1, line2):

    @@ -5541,14 +5541,14 @@ lli = function(line1, line2):

    and merge the matrices:

    @@ -5558,7 +5558,7 @@ lli = function(line1, line2):

    @@ -5568,14 +5568,14 @@ lli = function(line1, line2):

    Into something that looks like this:

    @@ -5585,7 +5585,7 @@ lli = function(line1, line2):

    @@ -5595,7 +5595,7 @@ lli = function(line1, line2):

    @@ -5605,7 +5605,7 @@ lli = function(line1, line2):

    @@ -5616,7 +5616,7 @@ lli = function(line1, line2):

    @@ -5626,7 +5626,7 @@ lli = function(line1, line2):

    @@ -5639,7 +5639,7 @@ lli = function(line1, line2):
@@ -5648,7 +5648,7 @@ lli = function(line1, line2): @@ -5657,7 +5657,7 @@ lli = function(line1, line2): @@ -5666,7 +5666,7 @@ lli = function(line1, line2): @@ -5675,7 +5675,7 @@ lli = function(line1, line2): @@ -5687,7 +5687,7 @@ lli = function(line1, line2): @@ -5705,7 +5705,7 @@ lli = function(line1, line2):

@@ -5717,7 +5717,7 @@ lli = function(line1, line2):

@@ -5727,7 +5727,7 @@ lli = function(line1, line2):

@@ -5839,7 +5839,7 @@ lli = function(line1, line2):

@@ -5853,7 +5853,7 @@ lli = function(line1, line2):

@@ -6215,7 +6215,7 @@ lli = function(line1, line2):

@@ -6231,7 +6231,7 @@ lli = function(line1, line2):

@@ -6250,7 +6250,7 @@ lli = function(line1, line2):

@@ -6263,7 +6263,7 @@ lli = function(line1, line2):

@@ -6274,7 +6274,7 @@ lli = function(line1, line2):

@@ -6511,7 +6511,7 @@ lli = function(line1, line2):

@@ -6521,7 +6521,7 @@ lli = function(line1, line2):

@@ -6533,28 +6533,28 @@ lli = function(line1, line2):

First we solve for b:

which yields:

which we can then substitute in the expression for a:

@@ -6570,7 +6570,7 @@ lli = function(line1, line2):

@@ -6580,14 +6580,14 @@ lli = function(line1, line2):

Which, worked out for the x and y components, gives:

@@ -6597,7 +6597,7 @@ lli = function(line1, line2):

@@ -6652,7 +6652,7 @@ lli = function(line1, line2):

@@ -6799,7 +6799,7 @@ lli = function(line1, line2):

@@ -6812,14 +6812,14 @@ lli = function(line1, line2):

where "a" is some scaling factor, and:

@@ -6876,7 +6876,7 @@ lli = function(line1, line2):

@@ -6890,7 +6890,7 @@ lli = function(line1, line2):

@@ -6903,7 +6903,7 @@ lli = function(line1, line2):

@@ -6914,13 +6914,13 @@ lli = function(line1, line2):

@@ -6931,7 +6931,7 @@ lli = function(line1, line2):

@@ -6942,7 +6942,7 @@ lli = function(line1, line2):

@@ -6957,14 +6957,14 @@ lli = function(line1, line2):

and

@@ -6975,7 +6975,7 @@ lli = function(line1, line2):

@@ -6984,7 +6984,7 @@ lli = function(line1, line2):

@@ -7270,7 +7270,7 @@ lli = function(line1, line2):

@@ -7299,7 +7299,7 @@ lli = function(line1, line2):

Then the N() function itself. What does it look like?

@@ -7315,7 +7315,7 @@ lli = function(line1, line2):

@@ -7349,7 +7349,7 @@ lli = function(line1, line2):

@@ -7360,7 +7360,7 @@ lli = function(line1, line2):

@@ -7376,7 +7376,7 @@ lli = function(line1, line2):

@@ -7394,7 +7394,7 @@ lli = function(line1, line2):

diff --git a/tools/build/latex/latex-to-svg.js b/tools/build/latex/latex-to-svg.js index c04af552..4622e093 100644 --- a/tools/build/latex/latex-to-svg.js +++ b/tools/build/latex/latex-to-svg.js @@ -6,7 +6,8 @@ import cleanUp from "./cleanup.js"; const moduleURL = new URL(import.meta.url); const __dirname = path.dirname(moduleURL.href.replace(`file:///`, ``)); -const baseDir = path.join(__dirname, `..`, `..`, `..`, `images`, `latex`); +const imgDir = path.join(__dirname, `..`, `..`, `..`, `images`); +const baseDir = path.join(imgDir, `latex`); fs.ensureDirSync(baseDir); @@ -30,9 +31,12 @@ export default async function latexToSVG(latex, chapter, localeStrings, block) { const hash = createHash(`md5`).update(latex).digest(`hex`); const TeXfilename = path.join(sourceDir, hash + `.tex`); - const SVGfilename = path.resolve( - path.join(path.dirname(TeXfilename), `..`, hash + `.svg`) - ); + const chapterDir = path.join(imgDir, `chapters`, chapter); + + fs.ensureDir(chapterDir); + + const SVGfilename = path.join(chapterDir, hash + `.svg`); + const srcURL = `images/chapters/${chapter}/${hash + `.svg`}`; if (!fs.existsSync(SVGfilename)) { const PDFfilename = TeXfilename.replace(`.tex`, `.pdf`); @@ -139,9 +143,9 @@ export default async function latexToSVG(latex, chapter, localeStrings, block) { var w = Math.round(((parseFloat(vb[2]) - parseFloat(vb[0])) * 4) / 3); var h = Math.round(((parseFloat(vb[3]) - parseFloat(vb[1])) * 4) / 3); - return ``; + return ``; } // This function really needs better stdio capture, diff --git a/zh-CN/index.html b/zh-CN/index.html index 4fa34dce..85a49b22 100644 --- a/zh-CN/index.html +++ b/zh-CN/index.html @@ -524,9 +524,9 @@

让我们来通过实际操作看一下:下面的图形都是可交互的,因此你可以通过上下键来增加或减少插值距离,来观察图形的变化。我们从三个点构成的两条线段开始。通过对各条线段进行线性插值得到两个点,对点之间的线段再进行线性插值,产生一个新的点。最终这些点——所有的点都可以通过选取不同的距离插值产生——构成了贝塞尔曲线 @@ -565,8 +565,8 @@

@@ -577,17 +577,17 @@

这俩方程没什么让人印象深刻的,只不过是正弦函数和余弦函数,但正如你所见,输入变量有两个不同的名字。如果我们改变了a的值,f(b)的输出不会有变化,因为这个方程没有用到a。参数方程通过改变这点来作弊。在参数方程中,所有不同的方程共用一个变量,如下所示:

@@ -595,8 +595,8 @@

@@ -628,9 +628,9 @@

你可能记得高中所学的多项式,看起来像这样:

如果它的最高次项是就称为“三次”多项式,如果最高次项是,称为“二次”多项式,如果只含有x的项,它就是一条线(不过不含任何x的项它就不是一个多项式!) @@ -640,8 +640,8 @@

@@ -649,9 +649,9 @@

需要注意的是,2与1+1相同,3相当于2+1或1+2,6相当于3+3...如你所见,每次我们增加一个维度,只要简单地将头尾置为1,中间的操作都是“将上面的两个数字相加”。现在就能很容易地记住了。 @@ -661,8 +661,8 @@

@@ -670,9 +670,9 @@

这就是贝塞尔曲线完整的描述。在这个函数中的Σ表示了这是一系列的加法(用Σ下面的变量,从...=<值>开始,直到Σ上面的数字结束)。 @@ -776,16 +776,16 @@ function Bezier(3,t):

看起来很复杂,但实际上“权重”只是我们想让曲线所拥有的坐标值:对于一条nth阶曲线,w0是起始坐标,wn是终点坐标,中间的所有点都是控制点坐标。假设说一条曲线的起点为(120,160),终点为(220,40),并受点(35,200)和点(220,260)的控制,贝塞尔曲线方程就为:

@@ -844,16 +844,16 @@ function Bezier(3,t,w[]):

The function for rational Bézier curves has two more terms:

In this, the first new term represents an additional weight for each @@ -977,9 +977,9 @@ function RationalBezier(3,t,w[],r[]):

很显然,起始值需要a=1, b=0,混合值就为100%的value @@ -989,9 +989,9 @@ function RationalBezier(3,t,w[],r[]):

用这个式子我们可以保证相加的值永远不会超过100%。通过将a限制在区间[0,1],我们将会一直处于这两个值之间(包括这两个端点),并且相加为100%。 @@ -1061,49 +1061,49 @@ function RationalBezier(3,t,w[],r[]):

暂时不用管我们具体的坐标,现在有:

可以将它写成四个表达式之和:

我们可以扩展这些表达式:

更进一步,我们可以加上所有的1和0系数,以便看得更清楚:

现在,我们可以将它看作四个矩阵运算:

如果我们将它压缩到一个矩阵操作里,就能得到:

@@ -1112,21 +1112,21 @@ function RationalBezier(3,t,w[],r[]):

最终,我们可以加入原始的坐标,作为第三个单独矩阵:

我们可以对二次曲线运用相同的技巧,可以得到:

@@ -1245,7 +1245,7 @@ function RationalBezier(3,t,w[],r[]): Scripts are disabled. Showing fallback image. @@ -1367,14 +1367,14 @@ function drawCurve(points[], t):

and

@@ -1388,14 +1388,14 @@ function drawCurve(points[], t):

and

@@ -1418,25 +1418,25 @@ function drawCurve(points[], t):

@@ -1459,26 +1459,26 @@ function drawCurve(points[], t):

Excellent! Now we can form our new quadratic curve:

@@ -1506,13 +1506,13 @@ function drawCurve(points[], t):

@@ -1522,13 +1522,13 @@ function drawCurve(points[], t):

@@ -1539,26 +1539,26 @@ function drawCurve(points[], t):

So, our final second curve looks like:

@@ -1582,14 +1582,14 @@ function drawCurve(points[], t):

and

@@ -1601,14 +1601,14 @@ function drawCurve(points[], t):

and

@@ -1660,8 +1660,8 @@ function drawCurve(points[], t):

@@ -1693,8 +1693,8 @@ function drawCurve(points[], t):

@@ -1706,9 +1706,9 @@ function drawCurve(points[], t):

So, with that seemingly trivial observation, we rewrite that Bézier @@ -1717,9 +1717,9 @@ function drawCurve(points[], t):

So far so good. Now, to see why we did this, let's write out the @@ -1729,9 +1729,9 @@ function drawCurve(points[], t):

So by using this seemingly silly trick, we can suddenly express part @@ -1744,9 +1744,9 @@ function drawCurve(points[], t):

So, with both of those changed from an order @@ -1766,8 +1766,8 @@ function drawCurve(points[], t):

Let's do this:

@@ -1777,9 +1777,9 @@ function drawCurve(points[], t):

where the matrix M is an n+1 by @@ -1787,9 +1787,9 @@ function drawCurve(points[], t):

That might look unwieldy, but it's really just a mostly-zeroes @@ -1815,9 +1815,9 @@ function drawCurve(points[], t):

The steps taken here are:

    @@ -1890,7 +1890,7 @@ function drawCurve(points[], t):

    @@ -1902,7 +1902,7 @@ function drawCurve(points[], t):

    @@ -1928,7 +1928,7 @@ function drawCurve(points[], t):

    @@ -1941,14 +1941,14 @@ function drawCurve(points[], t):

    Which is hard to work with, so let's expand that properly:

    @@ -1961,7 +1961,7 @@ function drawCurve(points[], t):

    @@ -1971,7 +1971,7 @@ function drawCurve(points[], t):

    @@ -1982,7 +1982,7 @@ function drawCurve(points[], t):

    @@ -1993,7 +1993,7 @@ function drawCurve(points[], t):

    @@ -2011,21 +2011,21 @@ function drawCurve(points[], t):

    And that's just a summation of lower order curves:

    We can rewrite this as a normal summation, and we're done:

    @@ -2038,13 +2038,13 @@ function drawCurve(points[], t):

    @@ -2059,7 +2059,7 @@ function drawCurve(points[], t):

    @@ -2088,8 +2088,8 @@ function drawCurve(points[], t):

    @@ -2100,15 +2100,15 @@ function drawCurve(points[], t):

    The tangent is very useful for moving along a line, but what if we @@ -2121,9 +2121,9 @@ function drawCurve(points[], t):

    @@ -2144,8 +2144,8 @@ function drawCurve(points[], t):

    @@ -2154,8 +2154,8 @@ function drawCurve(points[], t):

    @@ -2608,7 +2608,7 @@ function drawCurve(points[], t):

    @@ -2618,7 +2618,7 @@ function drawCurve(points[], t):

    @@ -2643,7 +2643,7 @@ function drawCurve(points[], t):

    @@ -2664,7 +2664,7 @@ function drawCurve(points[], t):

    @@ -2674,7 +2674,7 @@ function drawCurve(points[], t):

    @@ -2686,7 +2686,7 @@ function drawCurve(points[], t):

    @@ -2720,7 +2720,7 @@ function drawCurve(points[], t):

    @@ -2932,7 +2932,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3107,8 +3107,8 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3118,8 +3118,8 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3129,15 +3129,15 @@ function getCubicRoots(pa, pb, pc, pd) {

    If we drop all the zero-terms, this gives us:

    @@ -3261,7 +3261,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    What we need to do is solve a simple equation:

    @@ -3276,7 +3276,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3307,14 +3307,14 @@ function getCubicRoots(pa, pb, pc, pd) {

    And of course the same functions for y:

    @@ -3325,7 +3325,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3345,7 +3345,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3356,7 +3356,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3366,7 +3366,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3468,7 +3468,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3481,7 +3481,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3494,7 +3494,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3589,7 +3589,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3600,7 +3600,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3618,7 +3618,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3629,7 +3629,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3649,7 +3649,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3668,7 +3668,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3681,7 +3681,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3698,7 +3698,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3711,7 +3711,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3814,7 +3814,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    First, let's look at the function for x(t):

    @@ -3825,7 +3825,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3839,7 +3839,7 @@ function getCubicRoots(pa, pb, pc, pd) {

    @@ -3903,14 +3903,14 @@ if (roots.length > 0) {

    or, more commonly written using Leibnitz notation as:

    @@ -3960,7 +3960,7 @@ if (roots.length > 0) {

    @@ -4035,7 +4035,7 @@ if (roots.length > 0) {

    @@ -4059,7 +4059,7 @@ if (roots.length > 0) {

    @@ -4070,7 +4070,7 @@ if (roots.length > 0) {

    @@ -4247,7 +4247,7 @@ if (roots.length > 0) {

    @@ -4257,7 +4257,7 @@ if (roots.length > 0) {

    @@ -4297,7 +4297,7 @@ if (roots.length > 0) {

    @@ -4703,7 +4703,7 @@ lli = function(line1, line2):

    @@ -4715,7 +4715,7 @@ lli = function(line1, line2):

    @@ -4753,7 +4753,7 @@ lli = function(line1, line2):

    @@ -4765,7 +4765,7 @@ lli = function(line1, line2):

    @@ -4787,13 +4787,13 @@ lli = function(line1, line2):

    @@ -4854,7 +4854,7 @@ lli = function(line1, line2):

    @@ -4889,14 +4889,14 @@ lli = function(line1, line2):

    First, we construct the one-level-of-de-Casteljau-up points:

    And then we can compute the new control points:

    @@ -5048,7 +5048,7 @@ lli = function(line1, line2):

    @@ -5057,7 +5057,7 @@ lli = function(line1, line2):

    @@ -5074,7 +5074,7 @@ lli = function(line1, line2):

    @@ -5084,21 +5084,21 @@ lli = function(line1, line2):

    So we write out the expansion and rearrange:

    Which we can then decompose:

    @@ -5108,7 +5108,7 @@ lli = function(line1, line2):

    @@ -5128,7 +5128,7 @@ lli = function(line1, line2):

    @@ -5172,7 +5172,7 @@ lli = function(line1, line2):

    @@ -5186,7 +5186,7 @@ lli = function(line1, line2):

    @@ -5206,7 +5206,7 @@ lli = function(line1, line2):

    @@ -5218,7 +5218,7 @@ lli = function(line1, line2):

    @@ -5233,7 +5233,7 @@ lli = function(line1, line2):

    @@ -5243,7 +5243,7 @@ lli = function(line1, line2):

    @@ -5266,7 +5266,7 @@ lli = function(line1, line2):

    @@ -5276,7 +5276,7 @@ lli = function(line1, line2):

    @@ -5286,7 +5286,7 @@ lli = function(line1, line2):

    @@ -5300,7 +5300,7 @@ lli = function(line1, line2):

    @@ -5341,7 +5341,7 @@ lli = function(line1, line2):

    @@ -5453,7 +5453,7 @@ lli = function(line1, line2):

    @@ -5492,7 +5492,7 @@ lli = function(line1, line2):

    @@ -5507,14 +5507,14 @@ lli = function(line1, line2):

    Computing T is really more "arranging the numbers":

    Thus:

    @@ -5530,7 +5530,7 @@ lli = function(line1, line2):

    @@ -5541,7 +5541,7 @@ lli = function(line1, line2):

    @@ -5551,14 +5551,14 @@ lli = function(line1, line2):

    and merge the matrices:

    @@ -5568,7 +5568,7 @@ lli = function(line1, line2):

    @@ -5578,14 +5578,14 @@ lli = function(line1, line2):

    Into something that looks like this:

    @@ -5595,7 +5595,7 @@ lli = function(line1, line2):

    @@ -5605,7 +5605,7 @@ lli = function(line1, line2):

    @@ -5615,7 +5615,7 @@ lli = function(line1, line2):

    @@ -5626,7 +5626,7 @@ lli = function(line1, line2):

    @@ -5636,7 +5636,7 @@ lli = function(line1, line2):

    @@ -5649,7 +5649,7 @@ lli = function(line1, line2):
@@ -5658,7 +5658,7 @@ lli = function(line1, line2): @@ -5667,7 +5667,7 @@ lli = function(line1, line2): @@ -5676,7 +5676,7 @@ lli = function(line1, line2): @@ -5685,7 +5685,7 @@ lli = function(line1, line2): @@ -5697,7 +5697,7 @@ lli = function(line1, line2): @@ -5715,7 +5715,7 @@ lli = function(line1, line2):

@@ -5727,7 +5727,7 @@ lli = function(line1, line2):

@@ -5737,7 +5737,7 @@ lli = function(line1, line2):

@@ -5849,7 +5849,7 @@ lli = function(line1, line2):

@@ -5863,7 +5863,7 @@ lli = function(line1, line2):

@@ -6225,7 +6225,7 @@ lli = function(line1, line2):

@@ -6241,7 +6241,7 @@ lli = function(line1, line2):

@@ -6260,7 +6260,7 @@ lli = function(line1, line2):

@@ -6273,7 +6273,7 @@ lli = function(line1, line2):

@@ -6284,7 +6284,7 @@ lli = function(line1, line2):

@@ -6521,7 +6521,7 @@ lli = function(line1, line2):

@@ -6531,7 +6531,7 @@ lli = function(line1, line2):

@@ -6543,28 +6543,28 @@ lli = function(line1, line2):

First we solve for b:

which yields:

which we can then substitute in the expression for a:

@@ -6580,7 +6580,7 @@ lli = function(line1, line2):

@@ -6590,14 +6590,14 @@ lli = function(line1, line2):

Which, worked out for the x and y components, gives:

@@ -6607,7 +6607,7 @@ lli = function(line1, line2):

@@ -6662,7 +6662,7 @@ lli = function(line1, line2):

@@ -6809,7 +6809,7 @@ lli = function(line1, line2):

@@ -6822,14 +6822,14 @@ lli = function(line1, line2):

where "a" is some scaling factor, and:

@@ -6886,7 +6886,7 @@ lli = function(line1, line2):

@@ -6900,7 +6900,7 @@ lli = function(line1, line2):

@@ -6913,7 +6913,7 @@ lli = function(line1, line2):

@@ -6924,13 +6924,13 @@ lli = function(line1, line2):

@@ -6941,7 +6941,7 @@ lli = function(line1, line2):

@@ -6952,7 +6952,7 @@ lli = function(line1, line2):

@@ -6967,14 +6967,14 @@ lli = function(line1, line2):

and

@@ -6985,7 +6985,7 @@ lli = function(line1, line2):

@@ -6994,7 +6994,7 @@ lli = function(line1, line2):

@@ -7280,7 +7280,7 @@ lli = function(line1, line2):

@@ -7309,7 +7309,7 @@ lli = function(line1, line2):

Then the N() function itself. What does it look like?

@@ -7325,7 +7325,7 @@ lli = function(line1, line2):

@@ -7359,7 +7359,7 @@ lli = function(line1, line2):

@@ -7370,7 +7370,7 @@ lli = function(line1, line2):

@@ -7386,7 +7386,7 @@ lli = function(line1, line2):

@@ -7404,7 +7404,7 @@ lli = function(line1, line2):