libgdx图形变换
2015-11-02 17:09
302 查看
高中的平面几个角度公式都给忘了.
参考:/article/1383744.html
关键点:
这个方法是根据改变纹理的旋转角度来达到旋转变换目的的,跟前两个有所不同,这个改变后,以后都是这个纹理角度了, 他不会更改顶点的坐标
信息来处理旋转,只是改变顶点的uv信息调整。
旋转变换,有个环绕点的概念,可以根据某一点进行旋转, 而不一定是图元的中心点,旋转的原理,这里我画了一张图,
这里x0,y0是变换前的坐标,x,y是变换后的坐标,θ为旋转的角度,α是x0,y0与原点之间的夹角,r为到原点的长度。
这里根据数学知识,我们可以得到
x0= r*cosα
y0=r*sinα
x=r*cos(α+θ)=r*cosα*cosθ - r*sinα*sinθ=x0*cosθ-y0*sinθ
y=r*sin(α+θ)=r*sinα*cosθ+r*cosα*sinθ=y0*cosθ+x0*sinθ
这里只是相对于原点的旋转变换,如果遇到根据某一点的要怎么处理呢?
其实他的内部处理是这样的,先相对环绕点进行旋转变换,即把环绕点当做原点,然后把变换后的点根据环绕点的世界坐标,拉到世界坐标点。
参考:/article/1383744.html
关键点:
这个方法是根据改变纹理的旋转角度来达到旋转变换目的的,跟前两个有所不同,这个改变后,以后都是这个纹理角度了, 他不会更改顶点的坐标
信息来处理旋转,只是改变顶点的uv信息调整。
旋转变换,有个环绕点的概念,可以根据某一点进行旋转, 而不一定是图元的中心点,旋转的原理,这里我画了一张图,
这里x0,y0是变换前的坐标,x,y是变换后的坐标,θ为旋转的角度,α是x0,y0与原点之间的夹角,r为到原点的长度。
这里根据数学知识,我们可以得到
x0= r*cosα
y0=r*sinα
x=r*cos(α+θ)=r*cosα*cosθ - r*sinα*sinθ=x0*cosθ-y0*sinθ
y=r*sin(α+θ)=r*sinα*cosθ+r*cosα*sinθ=y0*cosθ+x0*sinθ
这里只是相对于原点的旋转变换,如果遇到根据某一点的要怎么处理呢?
其实他的内部处理是这样的,先相对环绕点进行旋转变换,即把环绕点当做原点,然后把变换后的点根据环绕点的世界坐标,拉到世界坐标点。
相关文章推荐
- 【.Net码农】jquery ajax 向后台传递数组参数示例
- 3D-HEVC的TAppDecorder
- js前端获取页面传递的参数
- 从头认识java-6.6 final(1)-属性域
- php 连接access、sqlserver
- 【JNI】第一个JNI程序(免弯路总结)
- Python超级明星WEB框架Flask
- 前端不为人知的一面--前端冷知识集锦
- Android各个版本版本号对应关系表及悬浮框
- Java语言基础之抽象类
- Android大图片裁剪终极解决方案 原理分析
- Android访问网络,使用HttpURLConnection还是HttpClient?
- 一,公共技术点之 View的事件传递
- C# DateTime
- mysql解决错误的方法-MySQL日志
- Linux基础命令(二)
- 第九周项目3—稀疏矩阵的三元组表示的实现及应用(1)
- 第十周--项目二--二叉树遍历的递归算法
- jquery验证手机号码、邮箱格式是否正确示例代码
- 【项目记录】常用opencv函数运行速度实测