网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
如何在vc++中旋转位图---任意角度
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
Bits,dwBitlen);
     file.Close();                                                     //关闭文件

     下面我们将图片显示在屏幕上:

     第三步,显示图片

     CClientDC  hDC(this);
     StretchDIBits(hDC,0,0,bmpWidth,bmpHeight,0,0,bmpWidth,bmpHeight,

                          lpSrcBits,lpBitmapInfo,DIB_RGB_COLORS,SRCCOPY);

     第四步,将图片读入内存设备环境

      HDC dcSrc;
      HBITMAP bitmap;
      dcSrc=CreateCompatibleDC(hDC);//得到一个内存设备环境
      bitmap = CreateCompatibleBitmap(hDC,bmpWidth,bmpHeight);
      SelectObject(dcSrc,bitmap);
      BitBlt(dcSrc,0,0,bmpWidth,bmpHeight,hDC,0,0,SRCCOPY);//这一步很重要

      第五步,实现位图旋转

      我们假设旋转位图的函数原形如下:

      void RotateBitmap(HDC dcSrc,int SrcWidth,int SrcHeight,double angle,HDC pDC);

     /*参数解释如下://///////////////////////////////////////////////////////////////////////////

        HDC dcSrc:要旋转的位图的内存设备环境,就是第四步创建的

        int SrcWidth:要旋转位图的宽度

        int SrcHeight:要旋转位图的高度

       double angle:所要旋转的角度,以弧度为单位  

       HDC pDC:第三步得到的当前屏幕设备环境

*///////////////////////////////////////////////////////////////////////////////////////////////////////

//以下是函数实现细节

void RotateAnyAngle(HDC dcSrc,int SrcWidth,int SrcHeight,double angle)
{
 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 = x

  • 下一篇资讯: VC连接SQL SERVER数据库
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号