# Computer Graphics: Principles and Practice in C (2nd Edition)

All
Stack Overflow 17

This Month
Stack Overflow 5

All
Stack Overflow 17

This Month
Stack Overflow 5

You need to generate a ray (line) passing through the mouse location perpendicular to the screen.

I would recommend getting some basic information on 3d geometry and 2d projections before you go much further.

Check out Wikipedia

A book search on Google has come up with quite a few titles.

Foley & Van Dam though is the definitive book - here on Amazon.co.uk or here on Amazon.com

A: Sure: height and width ;-)

A: Whoops - maybe not even height and width ;)

ANYWAY -

Your question is far, far too broad.

SUGGESTION: Get a copy of Foley/van Damm:

For more information, please grab yourself a copy of Computer Graphics by James D. Foley. http://www.amazon.com/Computer-Graphics-Principles-Practice-2nd/dp/0201848406

One book I'd definitely recommend is Computer Graphics by Foley and Van Dam.

[1a, 1b, 1c] Computer Graphics, Principles and Practice Series [2] Physically Based Rendering [3] Real Time Rendering

---

[1a] https://www.amazon.com/Computer-Graphics-Principles-James-Fo... [1b] https://www.amazon.com/Computer-Graphics-Principles-Practice... [1c] https://www.amazon.com/Computer-Graphics-Principles-Practice... [2] https://www.amazon.com/Physically-Based-Rendering-Theory-Imp... [3] https://www.amazon.com/Real-Time-Rendering-Third-Tomas-Akeni...

The book "Computer Graphics: Principles and Practice" (known in the Computer Graphics circles as the "Foley-VanDam") is the basic for most computer graphics courses, and it covers the topic of implementing a ray-tracer in much detail. It is quite dated, but it's still the best, afaik, and the basic principles remain the same.

I also second the recommendation for Eric Lengyel's Mathematics for 3D Game Programming and Computer Graphics. It's not as thorough, but it's a wonderful review of the math basics you need for 3D programming, it has very useful summaries at the end of each chapter, and it's written in an approachable, not too scary way.

In addition, you'll probably want some OpenGL or DirectX basics. It's easier to start working with a 3D API, then learn the underlying maths than the opposite (in my opinion), but both options are possible. Just look for OpenGL on SO and you should find a couple of good references as well.

The scope of this is way too large to get a good answer here: I'd recommend reading a good reference on the topic. I've always liked the Foley and VanDam...

The most effective way to scale, rotate, shear and reflect is to use the power of your graphics card - for example through OpenGL.

If you still want to do bitmap pixel operations yourself, typically you do this using linear algebra. This is not super easy to figure out, so I recommend finding some good study material, for example this book.