iOS 根據圓心的座標點、半徑、當前手勢所在的座標點,計算出圓的運動軌跡座標

來源:互聯網
上載者:User

標籤: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 根據圓心的座標點、半徑、當前手勢所在的座標點,計算出圓的運動軌跡座標

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.