您的位置:首页 > 其它

旋转矩阵的证明(写了才发现很简单)挫败

2012-04-19 18:10 155 查看
以第一区间顺时针转动为例:x'=r*cos(b-a)=r*[cos b*cos a+sin b*sin a]=r*cos b*cos a+r*sin b*sin a=x*cos a+y*sin a.....就这么简单。。。学的都还给老师了。。~~!

#import "CGAffineTransform.h"

/* Transform `point' by `t' and return the result:
p' = p * t
where p = [ x y 1 ]. */

CG_EXTERN
CGPoint CGPointApplyAffineTransform(CGPoint point,

CGAffineTransform t) CG_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_2_0);

/* Transform `size' by `t' and return the result:
s' = s * t
where s = [ width height 0 ]. */

CG_EXTERN
CGSize CGSizeApplyAffineTransform(CGSize size,
CGAffineTransform t)

CG_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_2_0);

CG_INLINE
CGPoint
__CGPointApplyAffineTransform(CGPoint point,
CGAffineTransform t)
{

CGPoint p;
p.x = (CGFloat)((double)t.a * point.x
+ (double)t.c * point.y + t.tx);
p.y = (CGFloat)((double)t.b * point.x
+ (double)t.d * point.y + t.ty);

return p;
}
#define CGPointApplyAffineTransform __CGPointApplyAffineTransform

CG_INLINE
CGSize
__CGSizeApplyAffineTransform(CGSize size,
CGAffineTransform t)
{

CGSize s;
s.width = (CGFloat)((double)t.a * size.width
+ (double)t.c * size.height);
s.height = (CGFloat)((double)t.b * size.width
+ (double)t.d * size.height);

return s;
}
#define CGSizeApplyAffineTransform __CGSizeApplyAffineTransform
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: