Skip to content

Instantly share code, notes, and snippets.

@kai-qu
Created November 6, 2019 14:26
Show Gist options
  • Save kai-qu/e3fbd524578cc04fc2b680f73bc2fa11 to your computer and use it in GitHub Desktop.
Save kai-qu/e3fbd524578cc04fc2b680f73bc2fa11 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
<svg xmlns="http://www.w3.org/2000/svg" version="1.2" width="800" height="700" viewBox="0 0 800 700"><desc>This diagram was created with Penrose (https://penrose.ink) on 2019-10-29. If you have any suggestions on making this diagram more accessible, please contact us.
</desc><g transform="translate(0,0)"><g><marker id="w.shape-leftArrowhead" markerUnits="strokeWidth" markerWidth="19.499999284744263" markerHeight="9.09999966621399" viewBox="0 0 30 14" refX="25" refY="7" orient="auto-start-reverse"><path d="M29.05 7 19.1 11.06 21.46 7 19.1 2.94 29.05 7z" fill="#8c90c1" fill-opacity="1"></path></marker><marker id="w.shape-rightArrowhead" markerUnits="strokeWidth" markerWidth="19.499999284744263" markerHeight="9.09999966621399" viewBox="0 0 30 14" refX="25" refY="7" orient="auto-start-reverse"><path d="M29.05 7 19.1 11.06 21.46 7 19.1 2.94 29.05 7z" fill="#8c90c1" fill-opacity="1"></path></marker><path d="M 395.80241638930727 405.662037923658 L 499.28657215536725 234.51581533786523" fill-opacity="1" stroke-opacity="1" stroke="#8c90c1" stroke-width="1.75" stroke-dasharray="" marker-start="" marker-end="url(#w.shape-rightArrowhead)"><title>w.shape</title></path></g></g><g transform="translate(0,0)"><g><marker id="t.shape-leftArrowhead" markerUnits="strokeWidth" markerWidth="30" markerHeight="14" viewBox="0 0 30 14" refX="25" refY="7" orient="auto-start-reverse"><path d="M29.05 7 19.1 11.06 21.46 7 19.1 2.94 29.05 7z" fill="#000000" fill-opacity="1"></path></marker><marker id="t.shape-rightArrowhead" markerUnits="strokeWidth" markerWidth="30" markerHeight="14" viewBox="0 0 30 14" refX="25" refY="7" orient="auto-start-reverse"><path d="M29.05 7 19.1 11.06 21.46 7 19.1 2.94 29.05 7z" fill="#000000" fill-opacity="1"></path></marker><path stroke="#000000" fill="#8c90c1" stroke-width="0" stroke-opacity="1" fill-opacity="0.4" d="M395.80241638930727 405.662037923658L595.4232924311272 393.3412084963693 L210.13038254044307 190.17942250209626Z" marker-start="" marker-end=""><title>t.shape</title></path></g></g><g transform="translate(0,0)"><g><marker id="theta.shape-leftArrowhead" markerUnits="strokeWidth" markerWidth="30" markerHeight="14" viewBox="0 0 30 14" refX="25" refY="7" orient="auto-start-reverse"><path d="M29.05 7 19.1 11.06 21.46 7 19.1 2.94 29.05 7z" fill="#8c90c1" fill-opacity="1"></path></marker><marker id="theta.shape-rightArrowhead" markerUnits="strokeWidth" markerWidth="30" markerHeight="14" viewBox="0 0 30 14" refX="25" refY="7" orient="auto-start-reverse"><path d="M29.05 7 19.1 11.06 21.46 7 19.1 2.94 29.05 7z" fill="#8c90c1" fill-opacity="1"></path></marker><path stroke="#8c90c1" fill="#ffffff" stroke-width="1.75" stroke-opacity="1" fill-opacity="0.5" d="M395.80241638930727 405.662037923658L379.4377751824039 369.1627431610284 L382.85772785265743 367.8145143760185 L386.3870129571054 366.7859504377898 L389.99582171894014 366.08573872408573 L393.6536736947459 365.71979330930805 L397.32967421607975 365.6912050135151 L400.9927753296472 366.0002152969754 L404.61203803214096 366.644214220764 L408.15689358487464 367.6177624906286 L411.5974017011159 368.91263739793857 L414.90450342543687 370.51790226969536 L418.0502665692318 372.41999884102 L421.00812162942316 374.6028617699286 L423.7530861977584 377.04805432719013 L426.26197596530784 379.73492411521283 L428.5136005399939 382.64077750073886 L430.4889424232538 385.7410712880665 L432.1713176341749 389.0096200139051 L433.5465166244537 392.4188171130238 L434.6029242939906 395.939868086703 L435.33161809345705 399.54303370461764 L435.72644338524606 403.197881186041Z" marker-start="" marker-end=""><title>theta.shape</title></path></g></g><g transform="translate(0,0)"><g><marker id="theta.bisectMark2-leftArrowhead" markerUnits="strokeWidth" markerWidth="0" markerHeight="0" viewBox="0 0 30 14" refX="25" refY="7" orient="auto-start-reverse"><path d="M29.05 7 19.1 11.06 21.46 7 19.1 2.94 29.05 7z" fill="#8c90c1" fill-opacity="1"></path></marker><marker id="theta.bisectMark2-rightArrowhead" markerUnits="strokeWidth" markerWidth="0" markerHeight="0" viewBox="0 0 30 14" refX="25" refY="7" orient="auto-start-reverse"><path d="M29.05 7 19.1 11.06 21.46 7 19.1 2.94 29.05 7z" fill="#8c90c1" fill-opacity="1"></path></marker><path stroke="#8c90c1" fill="#000000" stroke-width="1.75" stroke-opacity="1" fill-opacity="0" d="M425.7445189174763 387.5382828990332L434.299405354096 382.36006717771187" marker-start="" marker-end=""><title>theta.bisectMark2</title></path></g></g><g transform="translate(0,0)"><g><marker id="theta.bisectMark1-leftArrowhead" markerUnits="strokeWidth" markerWidth="0" markerHeight="0" viewBox="0 0 30 14" refX="25" refY="7" orient="auto-start-reverse"><path d="M29.05 7 19.1 11.06 21.46 7 19.1 2.94 29.05 7z" fill="#8c90c1" fill-opacity="1"></path></marker><marker id="theta.bisectMark1-rightArrowhead" markerUnits="strokeWidth" markerWidth="0" markerHeight="0" viewBox="0 0 30 14" refX="25" refY="7" orient="auto-start-reverse"><path d="M29.05 7 19.1 11.06 21.46 7 19.1 2.94 29.05 7z" fill="#8c90c1" fill-opacity="1"></path></marker><path stroke="#8c90c1" fill="#000000" stroke-width="1.75" stroke-opacity="1" fill-opacity="0" d="M397.9421893899588 370.72750813570065L398.5535531044307 360.74621391056996" marker-start="" marker-end=""><title>theta.bisectMark1</title></path></g></g><g transform="translate(0,0)"><g transform="translate(211.29783689715612,197.08138238949005)" width="13.38297152519226" height="16.528866291046143" pointer-events="bounding-box"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="13.38297152519226" height="16.528866291046143" viewBox="0 -516.6 469.5 621.5" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" style="vertical-align: -0.244ex;"><g stroke="none" fill="#000000" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><path stroke-width="1" d="M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"></path></g></svg></g></g><g transform="translate(0,0)"><g transform="translate(602.2860732791587,394.720324702047)" width="14.966545820236206" height="16.587899684906006" pointer-events="bounding-box"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="14.966545820236206" height="16.587899684906006" viewBox="0 -516.6 451.5 621.5" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" style="vertical-align: -0.244ex;"><g stroke="none" fill="#000000" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><path stroke-width="1" d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g></svg></g></g><g transform="translate(0,0)"><g transform="translate(295.239022614766,193.63354679981848)" width="15.619152545928955" height="23.264123916625977" pointer-events="bounding-box"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="15.619152545928955" height="23.264123916625977" viewBox="0 -516.6 460.5 775.9" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" style="vertical-align: -0.602ex;"><g stroke="none" fill="#000000" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><path stroke-width="1" d="M33 157Q33 258 109 349T280 441Q340 441 372 389Q373 390 377 395T388 406T404 418Q438 442 450 442Q454 442 457 439T460 434Q460 425 391 149Q320 -135 320 -139Q320 -147 365 -148H390Q396 -156 396 -157T393 -175Q389 -188 383 -194H370Q339 -192 262 -192Q234 -192 211 -192T174 -192T157 -193Q143 -193 143 -185Q143 -182 145 -170Q149 -154 152 -151T172 -148Q220 -148 230 -141Q238 -136 258 -53T279 32Q279 33 272 29Q224 -10 172 -10Q117 -10 75 30T33 157ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z"></path></g></svg></g></g><g transform="translate(0,0)"><g transform="translate(372.35923665779364,411.51676122003937)" width="19.606243133544922" height="23.275379180908203" pointer-events="bounding-box"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="19.606243133544922" height="23.275379180908203" viewBox="-38.5 -516.6 542 775.9" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" style="vertical-align: -0.602ex; margin-left: -0.089ex;"><g stroke="none" fill="#000000" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><path stroke-width="1" d="M23 287Q24 290 25 295T30 317T40 348T55 381T75 411T101 433T134 442Q209 442 230 378L240 387Q302 442 358 442Q423 442 460 395T497 281Q497 173 421 82T249 -10Q227 -10 210 -4Q199 1 187 11T168 28L161 36Q160 35 139 -51T118 -138Q118 -144 126 -145T163 -148H188Q194 -155 194 -157T191 -175Q188 -187 185 -190T172 -194Q170 -194 161 -194T127 -193T65 -192Q-5 -192 -24 -194H-32Q-39 -187 -39 -183Q-37 -156 -26 -148H-6Q28 -147 33 -136Q36 -130 94 103T155 350Q156 355 156 364Q156 405 131 405Q109 405 94 377T71 316T59 280Q57 278 43 278H29Q23 284 23 287ZM178 102Q200 26 252 26Q282 26 310 49T356 107Q374 141 392 215T411 325V331Q411 405 350 405Q339 405 328 402T306 393T286 380T269 365T254 350T243 336T235 326L232 322Q232 321 229 308T218 264T204 212Q178 106 178 102Z"></path></g></svg></g></g><g transform="translate(0,0)"><g transform="translate(361.39642795065225,295.2600475239588)" width="30.5756196975708" height="16.569815158843994" pointer-events="bounding-box"><svg xmlns:xlink="http://www.w3.org/1999/xlink" width="30.5756196975708" height="16.569815158843994" viewBox="0 -516.6 878.5 621.5" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" style="vertical-align: -0.244ex;"><g stroke="none" fill="#000000" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><path stroke-width="1" d="M21 287Q22 293 24 303T36 341T56 388T88 425T132 442T175 435T205 417T221 395T229 376L231 369Q231 367 232 367L243 378Q303 442 384 442Q401 442 415 440T441 433T460 423T475 411T485 398T493 385T497 373T500 364T502 357L510 367Q573 442 659 442Q713 442 746 415T780 336Q780 285 742 178T704 50Q705 36 709 31T724 26Q752 26 776 56T815 138Q818 149 821 151T837 153Q857 153 857 145Q857 144 853 130Q845 101 831 73T785 17T716 -10Q669 -10 648 17T627 73Q627 92 663 193T700 345Q700 404 656 404H651Q565 404 506 303L499 291L466 157Q433 26 428 16Q415 -11 385 -11Q372 -11 364 -4T353 8T350 18Q350 29 384 161L420 307Q423 322 423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 181Q151 335 151 342Q154 357 154 369Q154 405 129 405Q107 405 92 377T69 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g></svg></g></g><g transform="translate(0,0)"><g><marker id="h.perpMark-leftArrowhead" markerUnits="strokeWidth" markerWidth="30" markerHeight="14" viewBox="0 0 30 14" refX="25" refY="7" orient="auto-start-reverse"><path d="M29.05 7 19.1 11.06 21.46 7 19.1 2.94 29.05 7z" fill="#000000" fill-opacity="1"></path></marker><marker id="h.perpMark-rightArrowhead" markerUnits="strokeWidth" markerWidth="30" markerHeight="14" viewBox="0 0 30 14" refX="25" refY="7" orient="auto-start-reverse"><path d="M29.05 7 19.1 11.06 21.46 7 19.1 2.94 29.05 7z" fill="#000000" fill-opacity="1"></path></marker><path stroke="#000000" fill="#ffffff" stroke-width="1.25" stroke-opacity="1" fill-opacity="0.5" d="M350.79925673345645 305.28809334639067L341.674433042799 309.3792536481165 L345.76559334452486 318.50407733877387 L354.8904170351823 314.41291703704803Z" marker-start="" marker-end=""><title>h.perpMark</title></path></g></g><g transform="translate(0,0)"><g><marker id="h.shape-leftArrowhead" markerUnits="strokeWidth" markerWidth="19.499999284744263" markerHeight="9.09999966621399" viewBox="0 0 30 14" refX="25" refY="7" orient="auto-start-reverse"><path d="M29.05 7 19.1 11.06 21.46 7 19.1 2.94 29.05 7z" fill="#8c90c1" fill-opacity="1"></path></marker><marker id="h.shape-rightArrowhead" markerUnits="strokeWidth" markerWidth="19.499999284744263" markerHeight="9.09999966621399" viewBox="0 0 30 14" refX="25" refY="7" orient="auto-start-reverse"><path d="M29.05 7 19.1 11.06 21.46 7 19.1 2.94 29.05 7z" fill="#8c90c1" fill-opacity="1"></path></marker><path d="M 354.8904170351823 314.41291703704803 L 172.3939432220342 396.23612307156475" fill-opacity="1" stroke-opacity="1" stroke="#8c90c1" stroke-width="1.75" stroke-dasharray="" marker-start="" marker-end="url(#h.shape-rightArrowhead)"><title>h.shape</title></path></g></g><g transform="translate(0,0)"><circle cx="354.8904170351823" cy="314.41291703704803" r="3" fill="#000000" fill-opacity="1" stroke="#000000" stroke-opacity="1" stroke-dasharray="" stroke-width="1"><title>m.shape</title><desc>Circle representing m.shape</desc></circle></g><g transform="translate(0,0)"><circle cx="210.13038254044307" cy="190.17942250209626" r="3" fill="#000000" fill-opacity="1" stroke="#000000" stroke-opacity="1" stroke-dasharray="" stroke-width="1"><title>s.shape</title><desc>Circle representing s.shape</desc></circle></g><g transform="translate(0,0)"><g><marker id="b.shape-leftArrowhead" markerUnits="strokeWidth" markerWidth="30" markerHeight="14" viewBox="0 0 30 14" refX="25" refY="7" orient="auto-start-reverse"><path d="M29.05 7 19.1 11.06 21.46 7 19.1 2.94 29.05 7z" fill="#000000" fill-opacity="1"></path></marker><marker id="b.shape-rightArrowhead" markerUnits="strokeWidth" markerWidth="30" markerHeight="14" viewBox="0 0 30 14" refX="25" refY="7" orient="auto-start-reverse"><path d="M29.05 7 19.1 11.06 21.46 7 19.1 2.94 29.05 7z" fill="#000000" fill-opacity="1"></path></marker><path d="M 395.80241638930727 405.662037923658 L 595.4232924311272 393.3412084963693" fill-opacity="1" stroke-opacity="1" stroke="#000000" stroke-width="1.75" stroke-dasharray="" marker-start="" marker-end=""><title>b.shape</title></path></g></g><g transform="translate(0,0)"><circle cx="595.4232924311272" cy="393.3412084963693" r="3" fill="#000000" fill-opacity="1" stroke="#000000" stroke-opacity="1" stroke-dasharray="" stroke-width="1"><title>r.shape</title><desc>Circle representing r.shape</desc></circle></g><g transform="translate(0,0)"><g><marker id="a.shape-leftArrowhead" markerUnits="strokeWidth" markerWidth="30" markerHeight="14" viewBox="0 0 30 14" refX="25" refY="7" orient="auto-start-reverse"><path d="M29.05 7 19.1 11.06 21.46 7 19.1 2.94 29.05 7z" fill="#000000" fill-opacity="1"></path></marker><marker id="a.shape-rightArrowhead" markerUnits="strokeWidth" markerWidth="30" markerHeight="14" viewBox="0 0 30 14" refX="25" refY="7" orient="auto-start-reverse"><path d="M29.05 7 19.1 11.06 21.46 7 19.1 2.94 29.05 7z" fill="#000000" fill-opacity="1"></path></marker><path d="M 395.80241638930727 405.662037923658 L 313.9784176810573 223.16379615043817" fill-opacity="1" stroke-opacity="1" stroke="#000000" stroke-width="1.75" stroke-dasharray="" marker-start="" marker-end=""><title>a.shape</title></path></g></g><g transform="translate(0,0)"><circle cx="313.9784176810573" cy="223.16379615043817" r="3" fill="#000000" fill-opacity="1" stroke="#000000" stroke-opacity="1" stroke-dasharray="" stroke-width="1"><title>q.shape</title><desc>Circle representing q.shape</desc></circle></g><g transform="translate(0,0)"><circle cx="395.80241638930727" cy="405.662037923658" r="3" fill="#000000" fill-opacity="1" stroke="#000000" stroke-opacity="1" stroke-dasharray="" stroke-width="1"><title>p.shape</title><desc>Circle representing p.shape</desc></circle></g></svg>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment