【问题标题】:How to rotate coordinate system?如何旋转坐标系?
【发布时间】:2012-02-29 16:49:28
【问题描述】:

如果我绕原点旋转,我试图找到坐标的新值。

例如,假设我有要点 (1,1)。 如果我将坐标轴绕原点旋转 45 度,则转换后的坐标将为 (0,1.414)

有没有办法在 cocos2d 或 Objective-c 中有效地做到这一点? 即使是解释数学的答案也会有所帮助。

【问题讨论】:

    标签: objective-c cocos2d-iphone transform rotation coordinate


    【解决方案1】:

    查看此页面: http://www.siggraph.org/education/materials/HyperGraph/modeling/mod_tran/2drota.htm

    这是公式:

    x' = x cos f - y sin f

    y' = y cos f + x sin f

    记住 sin 和 cos 需要弧度,所以你必须这样做:

    double x,y;
    double newX,newY;
    double angle;
    
    //Test values:
    x=1;
    y=1;
    angle = 45;
    
    double rad = angle*M_PI/180;
    
    newX = x * cos(rad) - y * sin(rad);
    newY = y * cos(rad) + x * sin(rad);
    

    我没有测试这个,所以可能有错别字... ;)

    【讨论】:

    • rad的正转是逆时针的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-02
    • 1970-01-01
    • 2021-09-15
    • 2019-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多