旋转矩阵的证明(写了才发现很简单)挫败
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
#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
相关文章推荐
- 突然发现用PHP做多条件模糊查询很简单
- 突然发现用PHP做多条件模糊查询很简单
- 由July师兄二分查找代码及编程珠玑有感:循环不变性(断言)证明程序的正确性及发现bug
- 泰勒公式的发现以及证明
- 泰勒公式的发现以及证明
- 任何事情都是有规律的,当你总能发现规律的时候,证明你学会了怎么学习(长期维护)
- 做了个表格重用 发现有个视图被拉伸了 找了好久他妹子的很简单的错误
- 安然发现:快乐很简单!
- 好的程序员如何被发现,如何证明你简历中所标榜的那些精通和能力?
- QT突然发现设计处修改文件不生效?没关系。很简单
- 实现iFrame自适应高度,原来很简单!
- 发现文件夹和文件夹都显示为蓝色和绿色,是否中毒了?
- IE8下载docx文件发现后缀变为.zip文件
- 【安全牛学习笔记】主动信息收集-发现(三)
- C++ 发手机短信(很易很简单)
- 第十二章——SQLServer统计信息(3)——发现过期统计信息并处理
- 《你的灯亮着吗?:发现问题的真正所在》读书笔记2
- 【发现】空间对称问题
- 发现商机
- (转载)给自己降降级你会发现一片广阔的天空