標籤:style blog color io os ar div sp log
/** * 根據圓心的座標點、半徑、當前手勢所在的座標點,計算出圓的運動軌跡座標 * @param radius 圓心半徑 * @param centerCircle 圓心的座標點 * @param currentPoint 當前的手勢所在的座標點 * @return CGPoint 返回圓的座標 */+(CGPoint)CirclePoint:(CGFloat)radius withCenterCircle:(CGPoint)centerCircle withCurrentPoint:(CGPoint)currentPoint;+(CGPoint)CirclePoint:(CGFloat)radius withCenterCircle:(CGPoint)centerCircle withCurrentPoint:(CGPoint)currentPoint{ CGPoint cPoint; CGFloat x = currentPoint.x; CGFloat y = currentPoint.y; CGFloat cX ; //圓的X座標軌跡 CGFloat cY ; //圓的Y座標軌跡 CGFloat daX; // 圓心到轉動按鈕的距離的平方 //CGFloat daY; CGFloat aX; // 圓心到轉動按鈕的距離 //CGFloat aY; CGFloat cosX; // 圓心水平方向與轉動按鈕形成的夾角的cos值 //圓心與觸控點的距離的平方(勾股定理) daX = (x - centerCircle.x)*(x - centerCircle.x) + (y - centerCircle.y)*(y - centerCircle.y); aX = sqrt(daX); //開根號 //圓心與觸控點的距離 cosX = fabs(x - centerCircle.x)/aX; //絕對值 cX = cosX*radius ; // x =R * cosX; 圓心到觸控點在水平座標的X的值 cY = sqrt(radius*radius - cX*cX); if(x<centerCircle.x) //如果X所在的點小於圓心 在圓心的左邊 { cX = centerCircle.x - cX; } else { cX = centerCircle.x + cX; } if(y<centerCircle.y) { cY = centerCircle.y - cY; } else { cY = centerCircle.y + cY; } cPoint.x = cX; cPoint.y = cY; return cPoint;}
iOS 根據圓心的座標點、半徑、當前手勢所在的座標點,計算出圓的運動軌跡座標