# Math education material regarding geometry, trigonometry and topology.

What branches of math would one need to know for writing or modifying the software for 3D modeling aside from ones that I have already mentioned in the title (geometry, trigonometry[branch of geometry, I know], topology)?
Probably matrices, right?
I think I should mention that I already have some experience with programming in object oriented languages and I know in which direction I have to go when talking about coding but not about when it comes to math. So, which branches of math does one need to know in order to have a solid foundation of how 3D points in space are created and how and why they behave that way and what more is possible with them? Also, where can I find that educational material, Packtub?

Geometry will be essential, trigonometry too. Topology might not be too necessary, a lot of modellers talk about topology but it’s not the same thing as in maths (where topology generally means how many holes (donut, bagel…) a shape has and what it can be bent into without intersection of surfaces occuring). Calculus could be useful, there are often areas and rates of change to calulate in some form or another. matrices are likely to be needed, as well as general vector principles. I say all this as someone with plenty of mathematical experience (physics degree) but not someone who has used maths to redevelop 3d software.

If you’ve never done anything beyond algebra before I would start with basic trigonometry, then vectors, then go to look at matrices. You’ll need knowlegde of vectors for matrices to mean anything to you, and trig and vectors compliemtn one another very well in getting you to think about how to represent things in space. I think most 3d software works based all on vector operations and matrix operation on vectors. Trigonometry will appear now and again explictly but will mainly just be an underlying principle and used for some inputs and outputs, the correct types of vector and matrix let most trig be handled automatically.

If you want to learn these things specifically for 3d graphics use focus on the underlying principles and getting an understanding of vectors then matrices. Don’t worry too much about the exact nature of trigonometric functions, these are useful for some things but probably not very welcome when you’re trying to just use trig for geometry in space. Calculus is well worth knowing at a basic level, but you probably don’t need details of chain rules (function of a function differentiation) and integrals of special functions, get an understanding of the ideas and while you need to know the algebra you needn’t worry too much about remembering all it’s details, when you start writing code that will handle quite a lot of the mathematical details by doing things numerically inside the computer.

There are plenty of websites giving nice summaries of these topics at A-level and maths/physics/engineering undergraduate level, but they’re good for when you know what you’re looking at and want to understand it or recall some little detail you forgot, I wouldn’t know where to start if you’re looking for an introduction of a form which will tell you which things you need to learn.