2個點之間的旋轉角度

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;
 }
相關文章
相關標籤/搜索