   weird sine/cosine problem
  I'm having a real head-scratcher over this problem which should be really, really simple, but for some reason is going really, really wrong.I'm basically rotating an offset point around 0,0 in 2D space, then translating that point so the offset is relative to another point.  I'll explain via the medium of code:r = deg2rad(owner->rotation);vec2 start = (*it).start; // (*it).start is the offset values (in this case, x=0 and y=64)// rotate the offset point around 0,0 using the standard sin/cos method:start.x = (start.x * cos(r)) - (start.y * sin(r));start.y = (start.x * sin(r)) + (start.y * cos(r));// add the owner's position values so that we are translating the point to where we want itstart += owner->pos;That should work right?  So why does that code result in this weird path:The black point is the owner->pos location in the code above.  The white path is the path the rotated offset point takes as the owner->rotation goes through 0-360.  The owner->pos values are not changed.   
  Replace this:start.x = (start.x * cos(r)) - (start.y * sin(r));start.y = (start.x * sin(r)) + (start.y * cos(r));With this:float temp_x = (start.x * cos(r)) - (start.y * sin(r));float temp_y = (start.x * sin(r)) + (start.y * cos(r));start.x = temp_x;start.y = temp_y;;  you are altering start.x and then you are using it at:start.y = (start.x * sin(r)) + (start.y * cos(r));use a temp variableedit: oops, jyk got it before me :P   ;  D'OH!That was stupid of me.  I became so hung up on the idea that there was a mathematical error, that I didn't think to check data flow.I'm off to flog myself until I learn my lesson...Thanks guys.   