handmade.network » Forums » Handmade Dev Show » math learning style
Games25
j
1 posts
#16054 math learning style
3 months, 3 weeks ago Edited by j on Aug. 20, 2018, 5:32 p.m. Reason: Initial post

can one learn all the math they need from algebra, trig, calc etc through game programming and give a use for the various formulas and equations that math books and tutorials only explain the how to solve for but not what they can be applied to?
for example learn about things like communicative factor and polynomials but have idea of their practical use or what their use in game programming would be?
mmozeiko
Mārtiņš Možeiko
1831 posts / 1 project
#16055 math learning style
3 months, 3 weeks ago

Yes, you can. Still, reading more formal description of math will help a lot to understand how equations are formed and can be manipulated.

Not sure what do you mean by "communicative factor", but polynomials are used a lot. Like alpha blending, or lerping between two values - these are linear polynomials. Using higher degree polynomials is useful in Bezier curves, splines, etc..
ratchetfreak
419 posts
#16069 math learning style
3 months, 3 weeks ago Edited by ratchetfreak on Aug. 21, 2018, 11:25 a.m.

One thing I've seen with math is that it tends to suffer from the hammer-nail problem. Where you apply a single solution to everything even when other solutions (potentially better ones) are available.

For example getting a quaternion from a rotation, most of the time I see the programmer reduce this to angle-axis to use the cos(angle/), axis*sin(angle/2) formula. However you can very often avoid doing those trig functions if you start doing a few conversions. The half angle formula lets you go from sin(angle), cos(angle) to the half-angle sin and cos using only a sqrt.

But in the case of rotations that axis is often a normalized cross product and the angle is the acos of a dot product. Once you remember that the non normalized crossproduct is axis*sin(angle), you can easily create the quaternion of the double angle and then lerp it with the identity quaternion to 0.5 to get the quaternion you wanted.

Seeing the non-obvious solution requires insight and experience with how you can manipulate formulas. That you learn mostly in formal education. In programming most of those formulas are presolved for you.