Suggestions for learning
Hello boys. :)
Have any of you more experienced guys got any suggestions for how a not so skilled coder (ie. me ;)) could go about learning some nicer mathematics & algorithms to help get more experienced and advanced? I'm looking to (try to...) learn things like: splines plotters vectors sorting and any other juicy stuff that you could suggest that might come in handy on the long road to trying to become a 'proper' coder. :) Books, web resources, any suggestions welcome! |
http://en.wikipedia.org/wiki/Spline_(mathematics) tells about splines and links to other Wikipedia articles about them. Which kind of vectors are you trying to learn about? mathematical vectors or vector graphics?
Sorting is pretty non-trivial. One important thing to note is that comparison based sorts have a time complexity of O(N log N) at the best. Index-based sorts like a Radix sort can go as fast as O(N). |
Quote:
Anyway, some good info about vector graphics (also covers splines, sorting a.s.o.) can be found in 3dica. Not sure if it's suitable for beginners tho. |
Thanks for replying Samurai_Crow. :)
I've seen things like the Wikipedia article on splines. Unfortunately it's articles like that which make me think: err... say what? I don't even know how to read the mathematical representations of a spline curve that the article has. :sad Maybe I'm trying to run before I can walk and I need mathematics lessons before I can start actually trying to use algorithms to solve programming problems... |
@ StingRay:
I must admit I wasn't sure of the difference between math vectors and vector graphics. I thought they both needed the mathematics of vectors, but then, what do I know? Clearly not much. :p Thanks for the link. I'll take a look. :) |
Hi,
I don't post often here, but this is an interesting topic. Some time ago I found a nice tutorial on 3D graphics and vectors which might help you. http://chortle.ccsu.edu/VectorLessons/vectorIndex.html Cheers! Edwin |
@ wolfchild: Nice one mate, appreciated - the comment and the link. :great
|
Quote:
Edwin |
Quote:
|
@ Wolfchild. Cheers buddie. :)
I say never mind 'one day', just do it. Ask yourself this: is it better to try to succeed and fail or fail to even try to succeed? Trust me, if I can get anything even working in asm code then anyone else can - coding really doesn't come naturally to me at all - so go for it and surprise yourself. :great |
Quote:
Even I'm beginning to understand how vector graphics might be done. There's still a loooooong way to go before I try coding some though I might add. Hey Vortex, I've got this crazy notion that I'd like to make a hidden line vector routine for our little collaboration. Perhaps in that case "by 2024" is looking a bit optimistic but you never know! :D I really like hidden line vectors and from my experience of old skool demos you don't really see them that often - you normally either get lines or filled. I've ordered a couple of books on common algorthims and how to go about building algorithms. Perhaps with what I learn from the tutorials plus some learning about good algorithms related to doing things with vector graphics I might get there... |
Quote:
Ordering books! Woot, you mean business :):great |
Dont forget "fixed point" arithmetic. Sooner or later you'll going to need it. Not only for 3D stuff....
A good page for information about fixed point math is e.g. the site from ray/tscc. Though he is a Atari ST 68k brother, many things are valid for our girlfriend, too. http://freenet-homepage.de/ray.tscc/index.htm |
Nice one Apollo. More interesting stuff to read. :)
|
Quote:
|
Quote:
For the last several days I've been reading about dot products, matrices, scalars, right hand rules and lord knows what else. Still not sure I'm any the wiser how to make spinning cubes. :laughing |
"3D Math Primer for Graphics and Game Development" is a good introductory book:
http://www.amazon.co.uk/Primer-Graph.../dp/1556229119 |
Thanks for the tip CJ :great
If only I knew C++ as well - would be really good to not only understand the maths in the book but to understand the code examples too. Don't suppose there's much of a market for this kind of work with example implementations in 68000 asm anymore though. :D Really can't be bothered learning C as well as all this other stuff - makes no sense for me anyway - the only thing I wanna do is code Amiga demos. :) Anyway, based on your personal recommendation, book ordered. :great |
Another recommendation for that book. It's very good to get you going.
Just start with a simple data structure for some 2D points, CPU plot them, then try and pre-calc a matrix to get them rotating. Once you're there you'll have a good feel for it and be able to add in the Z axis, perspective and projection so you've got some simple 3D rotation. It's not too bad once you get over the hump, but I'd recommend you double check all your maths, either in the debugger or a high level language when you're doing it, as it's easy to screw up the matrix implementation and not realise for ages. I know :D There's loads of good info on line drawing (just nick a reasonable algo to get going) and blitter filling from there shouldn't be too hard. I was scared off from vectors and matrices for a long time, but once you start knocking it up, the basics aren't that scary at all. |
1 Attachment(s)
Quote:
Once you get over the math, which looks daunting but is not, it's easy to expand on concepts. I used this page as a reference : http://en.wikipedia.org/wiki/Transformation_matrix , though I must say that I have studied trigonometry and matrix math quite recently as part of my uni studies. Line plot is timer triggered (analogous to the Amiga's vertical refresh). I precalculate the sine and cosine at the beginning of the transformation function, thus halving the calculations. Bigger gains will come into play when rotating more points. On the Amiga, one would store a quadrant and play with different offsets into the sine table, thus creating sin/cos. The killer for the Amiga would be the 4 multiplications involved. I don't see a way of getting rid of these. Cheers! Edwin |
All times are GMT +2. The time now is 08:04. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.