2498|1

88

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

EVC位图旋转 [复制链接]

谁做过位图旋转啊?我的怎么老不实现啊?也不知道代码哪里有问题。
谁有方法啊?源代码更好啊。
我已经知道bmp图片旋转应该问题不大啊?
        CClientDC  hDC(this);
       
    double x1,x2,x3;
        double y1,y2,y3;
        double maxWidth,maxHeight,minWidth,minHeight;
        double srcX,srcY;
        double sinA,cosA;
        double DstWidth;
        double DstHeight;
        HDC dcDst;//ÐýתºóµÄÄÚ´æÉ豸»·¾³
        HBITMAP newBitmap;
        sinA = sin(angle);
        cosA = cos(angle);
        x1 = -SrcHeight * sinA;
    y1 = SrcHeight * cosA;
    x2 = SrcWidth * cosA - SrcHeight * sinA;
    y2 = SrcHeight * cosA + SrcWidth * sinA;
    x3 = SrcWidth * cosA;
    y3 = SrcWidth * sinA;
        minWidth = x3>(x1>x2?x2:x1)?(x1>x2?x2:x1):x3;
        minWidth = minWidth>0?0:minWidth;
        minHeight = y3>(y1>y2?y2:y1)?(y1>y2?y2:y1):y3;
        minHeight = minHeight>0?0:minHeight;
        maxWidth = x3>(x1>x2?x1:x2)?x3:(x1>x2?x1:x2);
        maxWidth = maxWidth>0?maxWidth:0;
        maxHeight = y3>(y1>y2?y1:y2)?y3:(y1>y2?y1:y2);
        maxHeight = maxHeight>0?maxHeight:0;
        DstWidth = maxWidth - minWidth;
    DstHeight = maxHeight - minHeight;
        dcDst = CreateCompatibleDC(dcSrc);
        newBitmap = CreateCompatibleBitmap(dcSrc,(int)DstWidth,(int)DstHeight);
        SelectObject(dcDst,newBitmap);
        for( int I = 0 ;I         {
                for(int J = 0 ;J< DstWidth;J++)
                {
                        srcX = (J + minWidth) * cosA + (I + minHeight) * sinA;
                        srcY = (I + minHeight) * cosA - (J + minWidth) * sinA;
                        if( (srcX >= 0) && (srcX <= SrcWidth) &&(srcY >= 0) && (srcY <= SrcHeight))
                        {
                                BitBlt(dcDst, J, I, 1, 1, dcSrc,(int)srcX, (int)srcY, SRCCOPY);
                        }
                }
        }
       
        //ÏÔʾÐýתºóµÄλͼ

        BitBlt(hDC,34,26,(int)DstWidth,(int)DstHeight,dcDst,0,0,SRCCOPY);
       
        DeleteObject(newBitmap);
       
        DeleteDC(dcDst);

哪里不对啊?
请各位大虾给点代码啊。谢谢

最新回复

用变换矩阵做很容易实现的。有变换公式你找一下就好了  详情 回复 发表于 2007-7-14 13:45
点赞 关注

回复
举报

64

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
用变换矩阵做很容易实现的。有变换公式你找一下就好了
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
有奖直播:当AI遇见仿真,会有什么样的电子行业革新之路?
首场直播:Simcenter AI 赋能电子行业研发创新
直播时间:04月15日14:00-14:50

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 4

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表