Coranac

Matrices from a geometry perspective” is now out. Vector and matrix math is used heavily in computer graphics because it involved geometry and coordinate transformations. While this is widely known, I've seen many people struggle with the basic concepts of how it's supposed to work. this is especially true in the GBA/NDS community, where erroneous information about the affine matrix is still found in many demos and even library code even today. And that just kills me, because the fundamentals are really quite simple to grasp once you look at it from the right direction(1)

I've wanted to write something on the subject for quite some time. Yeah, there were a few sections in Tonc that covered it, but not in the amount of detail I wanted it. A recent email (thanks Ian) finally spurred me to write something down.

In the document, I describe what points, vectors and coordinates really are in geometrical terms. This may seem obvious, but it's always good to go over the basics again because overlooking those is often the reason for misunderstandings. Then it describes how coordinate transformations work and how matrices fit into the subject.

I've tried to keep the hardcore math to a minimum in order to keep it understandable. I'd really like to get some feedback on this to know if it is comprehensible to people who don't already know how all this stuff works. If there are other items that anyone feels I should add, I'll consider that as well. I should probably also note that many parts of it have already been rewritten three times already, so if sentences don't make sense, let me know so I can fix it.


linky: Matrices from a geometry perspective.


  1. I'm not saying it's not easy to make mistakes here (it's still math we're talking about), but the basic concepts are not that complex.

Testing latex

2008-02-22 – 19:00 | .

No, not the rubber stuff; the math stuff. According to the WP codex, it should be as simple as this:

$latex i\hbar\frac{\partial}{\partial t}\left|\Psi(t)\right>=H\left|\Psi(t)\right>$

OK, so that doesn't work :\. Ah right, that's just for when you have the blog under the wordpress.org itself. Right … mimetex then.

* finds wp-latexrender.zip here.

* looks for install procedure.

* looks for clear install procedure.

* tries the install anyway.

* reads the mimetex.php in full because while everyone says to update the path directories, it's unclear what to set them to especially as they seem to be double.

* sighs and rewrites the whole function because the variables and how they are used are … silly.


Right. How about this then: "[tex]x^2+y^2[/tex]"?

x^2+y^2

Yaaay! :D. And now for some more interesting forms:

E = mc^2 \label{clever}

OK, so apparently I can't put the labels into mimetex. Let's see what else will and will not work ...

\lim_{n \to \infty}\sum_{k=1}^n \frac{1}{k^2} = \frac{\pi^2}{6}

Okay ... so the default version doesn't like newlines either. So let's tweak the formula so that all whitespace (and repeated white) it replaced by a single space ... '/\s+/ /g' should do the trick.

\LARGE\tilde y=\left\{ {\ddot x\text{ if $\vec x$ odd}\atop\hat{\,\bar x+1}\text{ if even}}\right.
\small\hspace{10}\unitlength{.75} \picture(120,220){~(60,200){\circle(120,40)}~(0,20){\line(0,180)} (5,189;0,-30){\pict(110,20){(c20,10;70;2){ \pict(40,20){(20,10){\circle(40,20)}(c10,10)+(c30,10)-}}~}~} (119,20){\line(0,180)}~(60,20){\circle(120,40;34)}}
\bold C( \theta, \phi) = \bold R_y(\phi) \cdot \bold R_x(\theta) = \begin{bmatrix} \cos (\phi) & \sin(\phi) \sin(\theta) & -\sin(\phi) \cos(\theta)\\ 0 & \cos(\theta) & \sin(\theta) \\ \sin(\phi) & -\cos(\phi)\sin(\theta) & \cos(\phi)\sin(\theta) \end{bmatrix}

And to try some inline stuff: m \vec{a} = -k \vec{x} . Or maybe m \vec{a} = -k \vec{x} for something a little smaller. Yay, that works as well.

Anyway, for anyone who also wants math on their site, you can get mimetex from from http://www.forkosh.com/mimetex.html. Although the site starts with the source, there are precompiled binaries in the back somewhere. I would recommend rewriting mimetex.php, though: I found it somewhat tricky to get it working. It relies on 4 paths, but it doesn't exactly say what they were supposed to represent or what they should be set to; when I tried it locally the only way to get them to work was to do stuff that had little relation to the fill-in-the-blanks parts of the paths.

It doesn't like whitespace either in or around the formula, so removing that can be useful; so is feeding the through rawurlencode() if you want to put it into the url: HTMLTidy really doesn't like all the backslashes and stuff in the url. Adding options to the [tex] tag is also a good idea (like size; see above). And what's especially useful is a preview mode that doesn't render to a file. That way you won't be left with hundreds of little temporary bitmaps for all the failed variants. (I suppose I could give you mine, but it's not finished yet.)

Lastly, if you're new to TeX, consider using this site as an editor. There is a larger manual on the mimetex maintainer's site, but this little tool is very useful.

Powered by WordPress