Why use - for draw function coordinates?

Hi. I have a question.
This is a question about rotate and transfer.
void ofApp::draw(){
ofTranslate(ofGetWidth()/2, of GetHeight()/2);
ofRotate(rotAngle);
ofDrawRectangle (-60/2, -60/2, 60, 60);
}
I don’t know what the x-axis on the drawRectangle means here. I want to know why it rotates in the center when I do -60/2 but not in the center when I do 60/2 And I wonder if the offrotate rotates in the reference position specified by the offTranslate.

Hi,
ofDrawRectangle takes in the top left corner as x and y, then the width and height of the rectangle.
ofTranslate and ofRotate are cumulative so these affect each other and the order in which you apply these actually matters.
ofTranslate “moves” the coordinate system, moving the origin. ofRotate rotates over the origin, so you need to use these two in order to rotate around a specific point. So, when you call ofTranslate(ofGetWidth()/2, of GetHeight()/2); you are moving the origin to the center of the screen, then applying a rotation over the origin by calling ofRotate(rotAngle);. So now whatever you draw will be rotated around the center of the window. Although, most drawing commands receive coordinates relative to the origin, so, if you pass a negative value for the x and y command you can make the rotation to happen around a point inside the rectangle, while if it is positive it will be outside.