float WGDragLine::PointRotate(CCPoint p1,CCPoint p2) { float x; float ix,iy; ix = p1.x - p2.x; iy = p1.y - p2.y; if (ix >= 0 && iy < 0) { if (ix == 0) { x= 270; } else { iy *= -1; x = 180 + (float) (atan(iy / ix) * 180 / (float)(M_PI)); } } else if (ix > 0 && iy >= 0) { if (iy == 0) { x = 180; } else { x = 90+(float) ( atan(ix / iy) * 180 / (float)(M_PI)); } } else if (ix <= 0 && iy > 0) { if (ix == 0) { x = 90; } else { ix *= -1; x = (float) ( atan(iy / ix) * 180 / (float)(M_PI)); } } else { if (iy == 0) { x = 0; } else { ix *= -1; iy *= -1; x = 270 + (float) ( atan(ix / iy) * 180 / (float)(M_PI)); } } return x; }