Mini C++ Lab

Marco Tarini
Università degli Studi di Milano
2023/2024

What this is not: The C++ MiniLab is not part of any course, and is not related to the exam of any course.
It is not, by any means, mandatory.

What this is: The C++ MiniLab is an occasion given to the students to learn C++, by coding, as an example, the 3D math concepts that are used in courses such as 3DVG, Computer Graphics, and others. The C++ language is not a subject of any of these courses, or of their exams, but it's one of the de-facto standard languages of 3D graphics and videoGames.

When: Every Thursday, 18:30.

Where: Gamma room

How long: Approx 1.0h per meeting.

Language: English

How to partecipate: Just bring a (fully charged!) laptop, with some IDE installed (e.g. Visual Studio) and a C++ compliler; make sure that you can already compile and exectue a "hello world" program.

Code:
01 2023-03-07
(Thursday)
18:30..19:30
Gamma Room
Kick-off: a class for 3D vectors main.cpp
main_with_comments.cpp
02 2023-03-14
(Thursday)
18:30..19:30
Gamma Room
Operations between vectors c++lab02.zip
03 2023-04-04
(Thursday)
18:30..19:30
Gamma Room
Angle between vectors, etc. c++lab03.zip
04 2023-04-11
(Thursday)
18:30..19:30
Gamma Room
Ray-sphere intersection. c++lab04.zip
05 2023-04-18
(Thursday)
18:30..19:30
Gamma Room
A class for images (and ASCII art?). c++lab05.zip
06 2023-05-02
(Thursday)
18:30..19:30
Gamma Room
A simple raycast of a sphere. c++lab06.zip
07 2023-05-09
(Thursday)
18:30..19:30
Gamma Room
Added lighting. --
08 2023-05-16
(Thursday)
18:30..19:30
Gamma Room
Multiple spheres. c++lab07.zip
09 2023-05-23
(Thursday)
18:30..19:30
Gamma Room
Cast shadows (plus bigfixes). c++lab08.zip
10 2023-05-30
(Thursday)
18:30..19:30
Gamma Room
Multiple lights. c++lab09.zip
[output]