常用游戏数学算法总结
2010-12-09 18:57
218 查看
已知圆点坐标,圆上一点坐标,求圆上该点在旋转x角度后的坐标?
用极坐标做 x=p.cosA y=p.sinA p等于圆的半径
变换后的坐标就是 x,=p.cos(A+x) y=p.sin(A+x)
//随便定个圆心点坐标
float centerX = 100;
float centerY = 100;
float PI = 3.14159;
//已知点坐标
float pointX = 200;
float pointY = 200;
//旋转角度
float angle = 10*(-1);
//求出半径
float px = pointX - centerX;
float py = pointY - centerY;
float r = sqrt(px*px + py*py);
//求出弧度
float l = (angle * PI)/180;
//得出新坐标
float newX = (pointX - centerX) * cos(l) + (pointY - centerY) * sin(l) + centerX;
float newY = -(pointX - centerX) * sin(l) + (pointY - centerY) * cos(l) + centerY;
cout<<"newX:"<<newX<<"newY:"<<newY<<endl;
用极坐标做 x=p.cosA y=p.sinA p等于圆的半径
变换后的坐标就是 x,=p.cos(A+x) y=p.sin(A+x)
//随便定个圆心点坐标
float centerX = 100;
float centerY = 100;
float PI = 3.14159;
//已知点坐标
float pointX = 200;
float pointY = 200;
//旋转角度
float angle = 10*(-1);
//求出半径
float px = pointX - centerX;
float py = pointY - centerY;
float r = sqrt(px*px + py*py);
//求出弧度
float l = (angle * PI)/180;
//得出新坐标
float newX = (pointX - centerX) * cos(l) + (pointY - centerY) * sin(l) + centerX;
float newY = -(pointX - centerX) * sin(l) + (pointY - centerY) * cos(l) + centerY;
cout<<"newX:"<<newX<<"newY:"<<newY<<endl;
相关文章推荐
- 游戏中两个常用的数学运算推导及算法推论
- 数学建模学习笔记(建模中的十大常用算法总结)
- 计算几何常用算法总结-【数学】
- 冒泡排序、堆排序等常用算法总结
- 游戏开发中的数学和物理算法(7):角度 vs 弧度
- JavaScript常用数组算法总结
- 2..第二篇:常用算法之数学算法-----最大公约数和最小公倍数
- 数学建模常用Matlab/Lingo/c代码总结系列——参数估计
- STL常用算法学习总结
- OS中常用的调度算法总结
- 冒泡排序、堆排序等常用算法总结
- javascript中的一些常用的数组算法总结
- 【小白学游戏常用算法】二、A*启发式搜索算法
- Anti-alias的前世今生-常用反走样算法总结
- 游戏开发中的数学和物理算法(1):定义点
- 游戏开发中的数学和物理算法(5):圆(2D)和球(3D)
- 游戏开发中的数学和物理算法(15):矩阵的加减法
- OS中常用的调度算法总结
- 笔试算法常用函数和数据输入总结
- 常用的算法思想总结