   Translation/Scaling/Rotation Matrices
  Can anyone help point me to some information?I'm making a program for school that takes 10 points, draws lines between them and outputs the midpoint. I have all of that correct. What I'm needing now is to understand how to take that object, and translate it's center to the origin. Then take the object and scale it a different color, and rotate it all at the same time. If I won't get burned, I'll upload some of the code that I'm having trouble with, but again, I'm just looking for some help so I can understand what I'm apparently not understanding. Also, how do you take a 3x3 matrix (array) and multiply it by a vector with points.x and points.y? I'm having a little trouble with understanding that as well.Thanks,Gerald Mendoza   
  What API are you using?Can you allready translate, scale and rotate objects?If so, it seems like it would just involve translating the object to the origin but subtract the center offset(shapeWidth/2, shapeHeight/2).   ;  To transform a vector by a matrix you multiply the two, using matrix-vector multiplication.  If you don't know how to perform that math, you can look it up and google and find sites like this one that have visual representations of the algorithm.Now as you either know or will figure out very quickly, you can't multiply a 3x3 matrix with a 2-component vector.  To make it work you have to use homogeneous coordinates.  If you don't understand how those work don't worry about it too much...just know that you have to add a third component to your vector that will have a value of 1, then you can transform by your matrix.Also note that this is all for if you're only doing 2D transformations.  If you do anything in 3D, your matrices will be 4x4 and you will have 3-component vectors extended to 4 components using homogeneous coordinates.   