Sample Questions and Answers
Topics for the Midterm
- C# Programming
- Stack vs. Heap
- Classes, Structs. Arrays, etc
- Properties
- Virtual (and non-virtual) functions
- Pass-By-Reference
- Delegates
- 2D Math
- Basic Trigonometry
- sin, cos, tan, Pythagorean Theorem, etc.
- Vectors
- Definion (displacement, can be used as position (displacement from origin)
- Simple mathematical operations (addition, substraction, multiplication by a scalar, length, etc)
- Dot Product
- Definition: [x1,y1] [x2, y2] = x1x2 + y1y2
- Geometric interpretation: (v1)(v2) = ||v1|| ||v2|| cos(theta)
- Using dot product to do projections
- Cross product, determinant
- Matricies, matrix multiplication, inverse
- Describing 2D Objects
- Representing Polygons
- Local Space vs. Global Space
- World Space vs. screen Space
- Nested Local Spaces
- Translating Points / Polygons
- Rotating Points / Polygons
- [x cos theta - y sin theta, x sin theta + y cos theta]
- Using Matricies to Manipulate Points / Polygons
- Determinant
- Orthogonal Matrices
- Rotational Matrices
- Scaling (uniform and non-uniform)
- Reflections
- Shearing
- Applying Multiple Transforms
- 3D Homogeneous Space
- Using Matrices to do Translation
- Intersection
- Per-Pixel Collision Detection
- Minimum Translation Distance (MTD)
- Axis Aligned Bounding Boxes
- Translation
- Rotation
- Computing Intersections
- Computing MTD
- Object Oriented Bounding Boxes
- Representing OOBBs
- Intersection: Separating Axis Theorem
- Definition: When do two OOBBs not intersect?
- Finding Separating axis
- Finding Minimum Translation Distance vector
- Generalized Separating Axis Theorem (SAT)
- Finding Separating axis (arbitrary convex polygons and circles)
- Finding MTD
- Convex Polgons
- Circles
- Finding Minimum Translation Distance vector