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函数的参数,你可以看到不同的输出效果,这可以方便你对这个函数理解