CS 491 -- Fall Quarter 2022
Test #1 Review
This page was last updated: October 20, 2022
Test #1 will be taken using the Canvas Quiz mechanism. It will consist of ~40 multiple choice questions to be done in 60 minutes. It will be Open Notes.
Warning! "Open Notes" is not the same as "I don't need to study for it"! You will run out of time if you have to lookup in the notes every one of the questions.
Test Date and Time Range:
Test #1 will be taken on Canvas in a 60-minute interval of your own choosing during October 26-30.
It will open at 12:00 noon on Wednesday, October 26 and will close at 23:59 on Sunday, October 30.
Once it opens, we (me and the TA) need to stop answering test-ish questions during Zoom Office Hours.
For all we know, someone is sitting there with the test open and is asking us questions from it.
Test rules:
-
The test is worth 100 points.
-
It is open notes.
-
It is closed friends.
-
You are responsible for:
- what is in the handouts,
- what was said in class,
- what was on the quizzes
- what you have done in the projects.
Clearly I cannot enforce the Closed Friends.
I am counting on your honesty.
I would refer you to the
Code of Student Conduct.
Also, you should know that, while there is a lot of good information on the Internet,
there is a lot of bad information too, or information explained in a different way.
This test has been written with respect to our class notes.
Complaints about a missed test answer because "that's not what something000something.com says" will be ignored.
The test can potentially cover any of the following topics:
-
The 3 reasons why the high school "y=mx+b" line equation doesn't cut it for us.
-
Parametric Line equation: two equivalent forms (shooting and blending),
line segment intersection,
parallel line intersection ("the math talks to you").
-
Interpolation: linear, bilinear, trilinear
-
Vectors:
length, unit vector,
dot product, physical meaning, cross product, physical meaning, right-hand rule, finding a surface normal of a 3D triangle,
area of a 3D triangle, is a point inside a 3D triangle (both methods),
signed distance from a point to a plane,
intersection of a line segment and a plane.
(You are not responsible for the vector derivations of the Law of Sines and the Law of Cosines.)
-
GLM:
What it is, why we care
Basic data types (glm::vec3, glm::vec4, glm::mat4)
Constructors: glm::mat4(1.)
Basic functions: glm::dot( ), glm::cross( ), glm::length( ), glm::normalize( )
Conversions: glm::radians( ), glm::degrees( )
Overloaded operators: +, -, *
-
GLM primer
-
Matrices: dimensions, multiplication, column matrix to hold a 3D point.
-
Transformations: geometry vs. topology, right-handed vs. left-handed coordinate system, identity matrix, inverse matrix,
transformation equations, transformation matrices, coordinate systems, positive rotation rule,
compound transformations.
(You are responsible for knowing how to derive the translation, scaling, and rotation matrices
for any coordinate system and for any positive rotation rule.)
-
Quaternions: what they are, what they are used for.
(You are not responsible for any of the quaternion equations.)
-
Forward kinematics (hierarchical transformations): specifying the correct matrices in the correct order.
-
Inverse Kinematics: overall idea, an example of its use, equations, Cyclic Coordinate Descent method, the fact that it doesn't always produce a solution.
What atan2(y,x) is better to use than atan(yoverx).
-
Kinematic Physics: position, velocity, acceleration, gravity, constant-acceleration formulas,
angle of travel, bouncing, Coefficient of Restitution,
projectile motion.
Working your way through the castle-on-the-cliff project: (1) What dimension caused it to stop? (2) At what time did it stop? (3) Where was the other dimension at that time?
-
d1 = d0 + v0*t + 0.5*a*t2
-
v1 = v0 + a*t
-
v12 = v02 + 2*a*d
-
v' = -e*v
-
Bouncing during a time step:
searching for the minimum positive time to collision, where is it then, reversing the proper velocity component, repeating until the time step is over.
-
Solving nonlinear equations using Newton's Method:
how to do it, how it works, what can go wrong
-
Projects:
1 | glm::vec3 Vectors
|
2 | glm::mat4 Matrices
|
3 | Forward Kinematics using glm
|