BitBlt举例和图形旋转

用BitBlt旋转图片2 条条大道通罗马,这是我学程序的最大感受。任何问题都有多种解决方法。上次说的旋转图片算法,如果实际测试,就会发现,图片旋转一定角度会变花,出现白点。这是因为屏幕坐标是整数,而旋转公式的结果却是浮点数,在转换中,出现误差。怎样解决呢?用数学公式来纠正误差?不需要。原来的绘制是这样的:BitBlt(hdc,destx+200,desty+200,1,1,hdcmem,i,j,SRCCOPY) 阅读详情

 BitBlt是2D图形中,最简单的绘图函数。出个题:把某个图片,旋转一定角度,显示到屏幕上。

我这个方法:计算出图片各个点旋转后的坐标,把每个点画到屏幕上。

已知:图片大小64*64

代码:

   SelectObject(hdcmem, hBm);//选入DC
   for(i=0;i<64;i++)
   {
    for(j=0;j<64;j++)
    {

     //计算旋转后的坐标
     destx=i*cos(angle*3.1415/180)-j*sin(angle*3.1415/180);
     desty=i*sin(angle*3.1415/180)+j*cos(angle*3.1415/180);

     //把这个点显示到屏幕上(图片移动到200,200的位置)
     BitBlt(hdc,destx+200,desty+200,1,1,hdcmem,i,j,SRCCOPY);
    }    
   }

把多个图片,地图,子弹,河流,超级玛丽等等组合在一起。再和游戏逻辑,键盘处理组合,就做出了以下几个游戏。

我的游戏作品:

仿CS游戏源码链接 (OPENGL)

http://download.youkuaiyun.com/source/1124443

超级玛丽制作揭秘文档
http://download.youkuaiyun.com/source/808632
超级玛丽第一版源码
http://download.youkuaiyun.com/source/497676
超级玛丽增强版源码
http://download.youkuaiyun.com/source/584350
纸牌源码
http://download.youkuaiyun.com/source/432977
挖金子源码
http://download.youkuaiyun.com/source/412278

MFC SetWorldTransform()旋转图片90度只有半张图 今天接到一个把图片旋转90、180、270度的任务,在MSDN搜索一下,找到许多参考例程,代码也简单,很快就把代码写好了。把图片保存到硬盘,发现旋转90度的图片只有半张图! 阅读详情

相关推荐

2d图形引擎 linux设备,2D图形加速引擎(GE2D)

【英文原文】NUC970 Series Technical Reference ManualChapter 5.28一、概述32位2D图形引擎(GE2D)专门用于提高图形性能处理。它可以加速单个GUI功能的操作,如BitBLT和Bresenham线绘制在所有像素深度上运行,包括每像素8/16/32位。像素是MicrosoftWindows中定义的最小可寻址屏幕元素,以及线和图片由各种像素组成。...

weixin_33508642的博客 1979

如何在vc 中旋转位图---任意角度

网上有很多关于位图旋转的资料,但是讲得很清楚的不多(我没有仔细查找).于是我也写了一个,希望能给向我这样的初学者一点帮助.第一步,你必须知道位图即BMP格式的文件的结构.位图(bmp)文件由以下几个部分组成:1.BITMAPFILEHEADER,它的定义如下:typedef struct tagBITMAPFILEHEADER { WORD bfType; //必须为BMDWO

showlong 专栏「C++」@ http://www.fuel4d.com 2185

MFC图像旋转功能实现教程:初学者入门指南

CDC类是MFC中的一个非常重要的类,它提供了一个与Windows GDI接口相对应的对象。在MFC中,几乎所有与GDI相关的绘图操作都要依赖于CDC类或其派生类。CDC类封装了Windows的设备上下文句柄(HDC),使得在进行设备上下文操作时,不必直接处理复杂的句柄操作。BitBlt函数是Windows GDI中的一个位块传输函数,用于将一块内存中的图像复制到另一个地方,通常是从一个设备上下文复制到另一个设备上下文。它支持许多不同的位图格式,包括单色、16位、24位和32位图像。

weixin_42609225的博客 728

绘图函数BitBlt的使用方法

BitBlt 该函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境。 原型:    BOOL BitBlt(     HDC  hdcDest,     int  nXDest,  int  nYDest,  int  nWidth,  int  nHeight,     HDC  hdcSrc,     int

aht999的专栏 448

利用BitBlt实现位图旋转

一个关于旋转位图很好的例子.其中主要的一步是RotateMemDC,将当前的DC打入内存,并计算得出旋转后位图的信息,并显示.

VB6实现PictureBox图片快速90度旋转处理

使用VB6,调用Win API,实现PictureBox图片快速90度旋转处理。

BitBlt(wingdi.h)

TheBitBltfunction performs a bit-block transfer of the color data corresponding to a rectangle of pixels from the specified source device context into a destination device context. BitBlt函数执行将对应于像素矩形的颜色数据从指定的源设备上下文到目标设备上下文的位块传输。 句法 BOOL BitBlt( [in..

顺其自然~专栏 1424

Python高效转换病理图像:从mrxs到SVS的完整实践指南

本文提供了使用Python将数字病理切片从mrxs格式高效转换为SVS格式的完整实践指南。针对mrxs格式兼容性差的问题,文章详细解析了基于openslide和tifffile库的核心转换流程,并重点分享了应对大内存消耗的优化方案与流式处理技巧,确保转换后的SVS文件保留多分辨率金字塔结构,兼容主流病理分析工具。

weixin_29051811的博客 547

【Visual C++】绘图函数BitBlt的使用方法

BitBlt 该函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境。 原型: BOOL BitBlt( HDC hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, HDC hdcSrc, int nXSrc, int nYSrc, DWORD dwRop); 参数: hdcDes...

编程资料大全 605

电路板功能测试系统-FCT for PCBA

电路板功能测试系统用于电路板组件(PCBA)的功能测试(FCT),满足自动化大批量生产的要求。  ● 用户根据自己需要定义测试步骤,灵活方便  ● 适合工业自动化大批量生产应用  ● 系统测试精度高,稳定可靠   一、电路板功能测试系统概述 电路板测试过程通常由多个步骤组成,每单个步骤中需要对多个物理量(电压、电流、电阻、频率、波形等)进行测试。在每个步骤测试时

6812

SAP中寄售结算规则及要点分析

在做MRKO寄售结算时,系统会根据选定的期间和供应商等条件,将符合条件的寄售消耗或寄售上线的物料凭证找出。然后以供应商为单位。合并产生一张会计凭证。下图显示了通过MRKO结算后自动生成的会计凭证。 那么,在MRKO做寄售结算的规则是什么样的?做为寄售业务处理者的物流和财务需要掌握和了解哪些关于寄售结算的规则和控制逻辑。下面以笔者的经验分析一下: 1、寄售物料在系统中有两种处理方法,一种是通过MB1B 411 K ,通常该操作达到两个目的:将物料从仓库转移到线边库(表示即将要投入生产了)的同时将寄售库

专注SAP应用技术文章写作,致力于拉近用户与系统间的距离; 8296

2D图形加速引擎(GE2D)

32位2D图形引擎(GE2D)专门用于提高图形性能处理。它可以加速单个GUI功能的操作,如BitBLT和Bresenham线绘制在所有像素深度上运行,包括每像素8/16/32位。

Wayne Woo的专栏 1万+

道闸不自动落杆故障排查:从传感器原理到控制器调试全解析

在工业自动化和物联网系统中,传感器与控制器构成的闭环控制是保障设备可靠运行的核心。其基本原理是通过传感器采集环境状态,控制器依据预设逻辑做出决策并驱动执行器动作。这一技术价值在于实现了无人值守下的安全、高效自动化,广泛应用于智能交通、安防和智能楼宇等领域。以停车场道闸系统为例,其自动落杆功能高度依赖地感线圈与防砸雷达的协同。地感线圈作为触发单元,负责感知车辆接近;而防砸雷达则作为持续监测的安全单元,通过微波探测防砸区域内是否有障碍物,其信号是控制器执行落杆决策的关键依据。当系统出现车辆通过后闸杆不落的典型故

weixin_29190651的博客 311

VC MFC GDI 位图旋转算法

Function 1 newx = x.cos(angle) + y.sin(angle)  newy = y.cos(angle) - x.sin(angle)  是以位图左上角为原点逆时针旋转X弧度 newx = x.cos(angle) - y.sin(angle)  newy = y.cos(angle) + x.sin(angle)  是以位图左上角为原点顺时针旋转X

parrylau的专栏 3591

从CCD数据上报看wxHOOK的封号风险与规避

本文深入分析了微信CCD数据上报机制对wxHOOK的检测逻辑与封号风险,揭示了调试器路径暴露、非白名单DLL加载和内存校验失败等关键风险点。通过实战案例和规避方案,帮助开发者理解如何安全使用wxHOOK技术,避免封号风险,包括内存镜像欺骗、内核级隐蔽和硬件辅助方案等高级技巧。

weixin_27875131的博客 627

开源大模型“去审查化”技术解析:从LLaMA架构到本地部署与伦理边界

大型语言模型(LLM)基于Transformer架构,通过海量数据训练获得理解和生成自然语言的能力。其核心原理在于自注意力机制对上下文关系的建模。为了确保输出内容的安全与合规,主流模型普遍采用基于人类反馈的强化学习(RLHF)等技术进行安全对齐。这一过程旨在使模型行为符合人类价值观,是AI伦理工程实践的关键环节。然而,在特定研究场景下,如对抗性测试或内容安全算法研究,技术人员需要模拟极端对话以评估系统鲁棒性,这催生了针对“去对齐”或“移除护栏”的技术探索。此类技术通常通过对预训练模型进行反向微调或继续训练来

weixin_33743880的博客 589

Windows程序设计 读书笔记 - 位图和BitBlt。

一、位图 -- 光栅图像 -- 缩放会失真   元文件 -- 矢量图像 -- 缩放不失真 二、一些函数:   1、BitBlt (bit blit)   直接拷贝位图象素。   2、BOOL CDC::StretchBlt( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc,...

dizi9750的博客 293

上海交大计算机保研面试 2026:3类专项计划与10个联培方向深度解析

本文深度解析2026年上海交通大学计算机保研面试的3类专项计划与10个联培方向,包括区块链技术、智能计算系统和网络安全专项,以及蚂蚁科技、苏州智研院等联培基地。文章详细介绍了各专项的核心课程、硬件资源和就业去向,为计算机专业学生提供全面的申请策略和职业发展建议。

weixin_31528001的博客 397

BOOL CDC::BitBlt()

BOOL BitBlt( int x,目标X坐标 int y,目标Y坐标 int nWidth,操作范围宽度 int nHeight,操作范围高度 CDC* pSrcDC,源内容 int xSrc,源X坐标 int ySrc,源Y坐标 DWORD dwRop 光栅操作方式); 下面列出了一些常见的光栅操作代码: BLACKNESS:表示使用与物理调色板索引0相关的...

weixin_30263073的博客 122

[DDR5] 模式寄存器 Mode Register MRR/MRW

模式寄存器用于定义各种操作模式。在初始化过程中,可以通过重新执行MRS命令来更改模式寄存器的内容。

串起点滴 1639

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

使用Windows API SetWorldTransForm()对图片进行旋转

使用Windows API SetWorldTransForm()对图片进行旋转 2012-12-20 23:38 4418人阅读 评论(0) 收藏 举报  分类: mfc(13)  图像处理 gdi+ Windows编程(21)  版权声明:本文为博主原创文章,未经博主允许不得转载。 目录(?)[+] 1.问题描述

wendeng6780的博客 5904

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

嵌入式系统运行时屏幕旋转实现原理与工程实践

屏幕旋转是嵌入式图形界面开发中的基础能力,本质是帧缓冲区坐标系的仿射变换与内存布局重映射。其核心原理依赖于stride(行字节跨度)动态配置与bitblt像素级重定向,在不修改LCD物理时序参数的前提下,实现0°/90°/180°/270°顺时针旋转。该技术显著提升HMI人机适配灵活性,广泛应用于工业面板、车载中控和手持终端等需多朝向显示的场景。ArtInChip平台通过Graphics Engine执行旋转计算、Display Engine专注DMA搬运的分层架构,兼顾性能与资源效率,同时支持双缓冲防撕裂

weixin_42599908的博客 38

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: 技术有待提高
下一篇: 用BitBlt旋转图片2
programking
博客等级 码龄23年 450粉丝 140原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值