|
| 1 | +--- |
| 2 | +title: Geometric fitting intuition pt. 0 |
| 3 | +tags: [math, geometry] |
| 4 | +style: fill |
| 5 | +color: danger |
| 6 | +description: A friendly introduction to geometric fitting algorithms. |
| 7 | +--- |
| 8 | + |
| 9 | +<img src="../assets/blog_images/2025-01-28-geometric-fitting-intuition-pt0/ls.png" alt="ls" width=500> |
| 10 | + |
| 11 | +## Introduction |
| 12 | + |
| 13 | +Whether you're interested in designing an analytical classification model, calibrating a measurement or instrumentation system quickly and easily, performing linear regression for your chemistry tasks, fitting a simple prediction model to your observed data, tracking 3D eye movements and needing a real-time mathematical model for further processing, or measuring the distance between two walls or any other related task, we will explore and learn, with not much introduction, very interesting concepts about the world of geometric fitting and linear algebra, oriented towards a practical approach. |
| 14 | + |
| 15 | +## Paper |
| 16 | + |
| 17 | +To the benefict of better visualization, you can access the post main content in the LaTex PDF attached below: |
| 18 | + |
| 19 | +<script src="/assets/js/pdf.js"></script> |
| 20 | + |
| 21 | +<div class="container text-center" id="pdf-container" style="min-height: 100%;"> |
| 22 | + <div id="viewerContainer align-items-center"> |
| 23 | + <div id="pdf-viewer" class="mt-6"></div> |
| 24 | + </div> |
| 25 | + <h4 class="font-weight-bold" style="text-align: right; margin-top: 5px"><a target="_blank" href="{{ '/assets/blog_pdfs/2025-01-28-geometric-fitting-intuition-pt0/geometric-fitting-intuition-pt0.pdf' }}">Open as PDF</a></h4> |
| 26 | +</div> |
| 27 | + |
| 28 | +<script> |
| 29 | + var url = '../assets/blog_pdfs/2025-01-28-geometric-fitting-intuition-pt0/geometric-fitting-intuition-pt0.pdf'; |
| 30 | + |
| 31 | + pdfjsLib.getDocument(url).promise.then(function (pdf) { |
| 32 | + var viewer = document.getElementById('pdf-viewer'); |
| 33 | + |
| 34 | + for (var pageNumber = 1; pageNumber <= pdf.numPages; pageNumber++) { |
| 35 | + var pageContainer = document.createElement('div'); |
| 36 | + pageContainer.className = 'pdf-page'; |
| 37 | + |
| 38 | + var canvas = document.createElement('canvas'); |
| 39 | + canvas.className = 'pdf-page-canvas'; |
| 40 | + pageContainer.appendChild(canvas); |
| 41 | + |
| 42 | + viewer.appendChild(pageContainer); |
| 43 | + |
| 44 | + renderPage(pageNumber, canvas, pdf); |
| 45 | + } |
| 46 | + }); |
| 47 | + |
| 48 | + function renderPage(pageNumber, canvas, pdf) { |
| 49 | + pdf.getPage(pageNumber).then(function (page) { |
| 50 | + var viewport = page.getViewport({ scale: 0.2 }); |
| 51 | + var scale = canvas.clientWidth / viewport.width; |
| 52 | + |
| 53 | + var scaledViewport = page.getViewport({ scale: scale }); |
| 54 | + |
| 55 | + var context = canvas.getContext('2d'); |
| 56 | + canvas.height = scaledViewport.height; |
| 57 | + canvas.width = scaledViewport.width; |
| 58 | + |
| 59 | + var renderContext = { |
| 60 | + canvasContext: context, |
| 61 | + viewport: scaledViewport, |
| 62 | + }; |
| 63 | + |
| 64 | + page.render(renderContext); |
| 65 | + }); |
| 66 | + } |
| 67 | +</script> |
| 68 | + |
| 69 | +## References |
| 70 | + |
| 71 | +[1] Schneider, P., & Eberly, D. H. (2002). *Geometric Tools for Computer Graphics*. 1st Edition. Morgan Kaufmann. ISBN 978-1558605947. |
| 72 | + |
| 73 | +[2] Eberly, D. (2020). *Robust and Error-Free Geometric Computing*. 1st Edition. CRC Press. ISBN 978-0367352943. |
| 74 | + |
| 75 | +[3] https://mathworld.wolfram.com/VandermondeMatrix.html |
0 commit comments