您的位置:首页 > 运维架构

opengl实现错切效果

2014-09-18 09:38 330 查看
错切变换是使图形产生一个扭变。分为x和y方向的错切变换。

图形沿x方向的错切矩阵表示为




此时,图形的y坐标不变,x坐标随坐标(x y)和系数b作线性变化。b>0,图形沿+x方向做错切;b<0,图形沿-x方向做错切;b≠0。
图形沿y方向的错切矩阵表示为



  此时,图形的x坐标不变,y坐标随坐标(x y)和系数d作线性变化。d>0,图形沿+y方向做错切;d<0,图形沿-y方向做错切;d≠0
代码如下:
void shearShapeX(GLfloat factor) {
    if(factor == 0) return;
    GLint length = sizeof(point) / sizeof(point[0]);
    for(GLint i = 0; i < length; ++i) {
        point[i].fx = point[i].fx + factor * point[i].fy;
    } 
}

void shearShapeY(GLfloat factor) {
    if(factor == 0) return;
    GLint length = sizeof(point) / sizeof(point[0]);
    for(GLint i = 0; i < length; ++i) {
        point[i].fy = point[i].fy + factor * point[i].fx;
    } 
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: