当前位置:C++技术网 > 资讯 > GDI+矩阵投射之扭曲图片

GDI+矩阵投射之扭曲图片

更新时间:2015-12-07 17:06:50浏览次数:1+次

矩阵的投射变换,又称为错位变换。这种错位,是指位置信息在X轴方向的偏移与位置在Y轴方向的偏移产生关联。
Matrix的成员函数Shear完成了对矩阵的投射变换运算,其函数的调用格式为:
shear(shearX,shearY,order)
shearX:水平方向上的投射因子
shearY:垂直方向上的投射因子

order:矩阵运算顺序,包括前置和后缀两种

新建GDI+工程,加入必要的GDI+代码,在菜单项中,新建一个菜单项,并在新建菜单项下面新建一个子菜单项,建立消息响应:

void C油表View::OnMatrixshear()
{
	// TODO: 在此添加命令处理程序代码
	Graphics graphics(this->m_hWnd);
	this->RedrawWindow();
	Image image(L"cos.jpg");
	////定义图片显示区域
	Rect rect(0, 0, 100, 150);
	Matrix matrix;
	matrix.Shear(0.8, 0);
	//////对绘图平面使用投射变换
	graphics.SetTransform(&matrix);
	graphics.DrawImage(&image, rect);
	graphics.ResetTransform();
	Matrix matrix2;
	////设置垂直投射因子
	matrix2.Shear(0, 0.8);
	//////对绘图平面示意投射变换
	graphics.SetTransform(&matrix2);
	graphics.TranslateTransform(200, 0);
	graphics.DrawImage(&image, rect);
}
代码实现:

修改shear函数的参数,你可以看到不同的输出效果,这可以方便你对这个函数理解