一个用来翻转、旋转的矩阵类
来源:互联网 发布:西安美林数据员工工资 编辑:程序博客网 时间:2024/04/30 08:18
template<typename T>
class LMatrix
{
int m_x;
int m_y;
T *m_data;
public:
// 构造函数,横坐标范围0~(x - 1),纵坐标范围0~(y - 1)
LMatrix(int x, int y) : m_x(x), m_y(y), m_data(new T[x * y]) {}
// 析构函数
~LMatrix()
{
delete[] m_data;
}
// 取值
T GetAt(int x, int y)
{
return m_data[y * m_x + x];
}
// 设置值
void SetAt(int x, int y, T value)
{
m_data[y * m_x + x] = value;
}
// 左转90度
void RolLeft()
{
T *p = new T[m_x * m_y];
int i, j, t;
for (j = 0; j < m_x; j++)
{
for (i = 0; i < m_y; i++)
{
p[j * m_y + i] = m_data[i * m_x + m_y - j];
}
}
t = m_x;
m_x = m_y;
m_y = t;
delete[] m_data;
m_data = p;
}
// 右转90度
void RolRight()
{
T *p = new T[m_x * m_y];
int i, j, t;
for (j = 0; j < m_x; j++)
{
for (i = 0; i < m_y; i++)
{
p[j * m_y + i] = m_data[(m_y - i - 1) * m_x + j];
}
}
t = m_x;
m_x = m_y;
m_y = t;
delete[] m_data;
m_data = p;
}
// 向下旋转
void RolDown()
{
int i, t;
int n = m_x * m_y;
int m = n / 2;
for (i = 0; i < m; i++)
{
t = m_data[i];
m_data[i] = m_data[n - i - 1];
m_data[n - i - 1] = t;
}
}
// 水平翻转
void HorTurn()
{
int i, j, t;
int n = m_x / 2;
for (j = 0; j < m_y; j++)
{
for (i = 0; i < n; i++)
{
t = m_data[j * m_x + i];
m_data[j * m_x + i] = m_data[(j + 1) * m_x - i - 1];
m_data[(j + 1) * m_x - i - 1] = t;
}
}
}
// 垂直翻转
void VerTurn()
{
int i, j, t;
int n = m_y / 2;
for (i = 0; i < m_x; i++)
{
for (j = 0; j < n; j++)
{
t = m_data[j * m_x + i];
m_data[j * m_x + i] = m_data[(m_y - j - 1) * m_x + i];
m_data[(m_y - j - 1) * m_x + i] = t;
}
}
}
};
- 一个用来翻转、旋转的矩阵类
- 一个用来翻转、旋转的矩阵类
- Matlab与线性代数 -- 矩阵的左右翻转、上下翻转和矩阵的逆时针旋转90操作
- 矩阵翻转的一个例子(C++)
- 坐标的旋转,翻转
- 旋转一个矩阵
- 矩阵的翻转
- NYOJ 298-点的变换(经典矩阵解决点平移、缩放、翻转和旋转)
- 一个小矩阵的翻转t=1为上下翻转, t=0为左右翻转
- 一个用来保存参数的容器类
- 一个用来保存参数的容器类
- Delphi: 一个用来控制系统音量的类
- 一个使用Java语言描述的矩阵旋转的例子
- 打印N*N旋转矩阵 的一个解法
- 以旋转的方式输出一个矩阵中的元素
- PCL 构造一个绕任意轴旋转的变换矩阵
- 将一个矩阵翻转90度
- Eigen-----一个用来处理矩阵运算的C++库,很实用
- 锦囊妙计 CSS实现样式布局22招
- 如何获取GridView中隐藏列的值,GridView中隐藏列获取值的问题
- 字符串合并的细节讨论
- javascript 转义符集(转)
- 一个导航条的效果DIV+CSS
- 一个用来翻转、旋转的矩阵类
- 自助者,天助(英语美文)
- Linux Mount 命令的使用(整理)
- 注册COM服务器
- SAP ABAP 实现多线程
- 谁有java native access(jna)的学习资料
- CSS的十八般技巧
- css鼠标放上去则显示电话号码
- tomcat 6与工程中的jar包冲突出错