按角度构建切变矩阵

切变是坐标系的变换,非均匀的拉伸。切变时候,角度变化,但是面积或体积不变。也可以理解为坐标轴间的角度变化,造成的扭曲。

如下图,这是x坐标根据y坐标的切变,机器人的y坐标没有变化,只有x坐标变化了,变化后的坐标x`可以理解为将y坐标乘以切变因子s与原坐标x的和:x` = x + sy。如果是3D则增加z坐标的切变因子t: x` = x + sy,y` = y + tz

切变因子通过切变角度计算。

 

 

 

那么构建根据y坐标切变x坐标的代码为:

float s = tan(D3DXToRadian(30));
D3DXMATRIX matShear(1.0f,0.0f,0.0f,0.0f,
s,1.0f,0.0f,0.0f,
0.0f,0.0f,1.0f,0.0f,
0.0f,0.0f,0.0f,1.0f);
g_device->SetTransform(D3DTS_WORLD,&matShear);

 

posted @ 2016-04-28 02:26  瓜蛋  阅读(484)  评论(0编辑  收藏  举报