搜索结果 '显示缓冲区'

通过直接操作显示缓冲区实现高速绘图和特殊效果(如逐渐变亮) 铜牌收录 "概述 EasyX 从 2011-2-24 开始,支持了直接操作显示缓冲区的功能。本文介绍一下在 EasyX 中怎样使用“显示缓冲区”。 比如画点,传统的画点函数会受坐标系、缩放、裁剪区等因素影响,导致性能较差。为了实现高速绘图,需要更直接的方法,这就是直接操作显示缓冲区的目的。 理论知识 在 EasyX 中,每个点用 4 个字节表示。对于 640 x 480 的绘图窗口,显示缓冲区的大小为 640 ..." https://codebus.cn/yangw/high-speed-drawing-with-direct-operation-of-display-buffers
艺术字系列:冰封的 EasyX 铜牌收录 这是一个艺术字程序,有一点冰封的效果。程序通过直接操作显示缓冲区,实现了处理速度的提升。程序设置了随机种子,每次执行看到的效果都不完全一样。 https://codebus.cn/yangw/word-art-freeze
EasyX 绘图库实现一个缓冲区半透明绘图 有很多程序需要实现半透明效果,例如磨砂玻璃效果、半透明窗体、示波器透明波段线、透明 GUI、滤镜特效、抗锯齿绘图等等。本文基于 EasyX 绘图库,通过直接操作显示缓冲区,实现高效的半透明绘图。 https://codebus.cn/dingyj/alpha-drawing
烟花 铜牌收录 一个基于物理的烟花小程序,考虑了重力。代码基于 c++ 进行编写的,使用 QueryPerformceCount 进行帧率控制。由于在实现烟花小尾巴时候遍历了一遍屏幕上所有的像素点,虽然使用显示缓冲区进行操作,但是这个循环遍历代价还是很大,所以帧率在我的 cpu i7 7700hq 上,以 1920 * 1080 分辨率一直在 35 帧左右,改成 cleardevice 后能变成100多帧,但是小尾巴没了。虽然小尾巴可以画一连串的颜色渐变亮的小圆表示,但是这样表示我看起来没有对屏幕像素取平均效果好。希望有网友能提供更有效、更好的烟花尾巴解决方案。 https://codebus.cn/sunxiaoyu/fireworks
绕线画 银牌收录 绕线画简介 简单点来说,就是在木板上钉一圈钉子,通过绕线进行构图,最终呈现出一幅图像。 算法简介 可以总结概括一下, 首先需要有一张图,可以是彩色的,但是必须颜色比较分明。 对图像进行灰度处理。 随机生成 n 组数,就是每两个钉子的组合。 计算 n 组数据连线所过图像像素的平均数,求出最小的一组。 连接该组钉子,并对这条线经过的像素值分别加 m。 重复前面步骤 3 到步骤 5 直到绘制 z 条线结束循环。 https://codebus.cn/luoyh/symmograph
[译] 短小精悍又不可思议的数学艺术挑战赛及各路大神优秀作品展示 金牌收录 基于整数的数学算法以像素形式显示可以生成惊人的图案,即使是最基本的函数也能产生惊人的巧妙效果!本文翻译了国外 StackExchange 上发起的一个叫做 Tweetable Mathematical Art 的比赛,该比赛以极为精简的 C++ 代码生成各种不可思议的图案。 https://codebus.cn/yangw/tweetable-mathematical-art
详解透明贴图和三元光栅操作 金牌收录 "透明贴图,是指贴图时某些部分是完全透明的或半透明的。 本文介绍多种透明贴图的方案,包括: 指定透明色贴图(基于 Windows API 函数 TransparentBlt) 指定透明色贴图(基于直接操作显示缓冲区) 使用三元光栅操作实现透明贴图 根据 png 的 alpha 信息实现半透明贴图(基于 Windows API 函数 AlphaBlend) 根据 png 的 alpha 信息实现半透 ..." https://codebus.cn/yangw/transparent-putimage
游戏:矿井逃生 银牌收录 "游戏说明: 矿井里的电路又出问题了。迅速借助你的头灯,在漆黑的矿井里找到出口逃出去吧。 控制说明: 方向键:移动 A/S/D/W:移动 鼠标:控制照射方向 F2:重来一局 ESC:退出游戏 就不放抓图了,有兴趣的运行一下代码看看效果吧,【点这里下载编译后的 exe 文件】。 以下是全部源代码: ////////////////////////////////////////////////// ..." https://codebus.cn/yangw/escape-from-mine
火焰效果模拟程序 铜牌收录 "模拟火焰效果的程序。 执行效果抓图如下: 通过修改色系,本程序可以实现红色火焰、蓝色火焰、绿色火焰三种效果,在 InitFire() 函数中取消相应行注释可以实现不同色系的火焰效果。 完整的源代码如下: /////////////////////////////////////////////////// // 程序名称:火焰模拟程序 // 编译环境:VC6.0 / VC2010,EasyX_2 ..." https://codebus.cn/yangw/fire
自由运动的点(全屏模糊处理的范例) 铜牌收录 "这是个有趣的程序,同时是一个全屏模糊处理的范例。 其中,点的非直线自由运动的部分,是用的我在高中时候用 QuickBasic 实现的一种简单方法,看到这部分代码有点让人怀念过去。 简单说明一下: 为了使范例更清晰,全屏模糊处理的代码我做了简化,将第一行和最后一行忽略掉了。通过代码可以清晰地看到,所谓全屏模糊,其实就是对每个点与相邻的几个点的颜色做平均处理(可以自己决定每个点的权重)。 这个模糊 ..." https://codebus.cn/yangw/free-dots
快速画点的原理简述,以及写一个自己的快速画点函数 铜牌收录 "EasyX 自带的 putpixel 函数源自 Windows GDI 函数 SetPixel,由于要考虑裁剪区、缩放、原点坐标、坐标方向等等诸多因素,所以性能很低,在一些只要求速度的场合很不实用。这篇文章就教你写一个自己的画点函数。 总的思想,是通过直接操作显示缓冲区来避免额外的运算。 在 EasyX 绘图窗口的显示缓冲区中,每个点占用 4 个字节,用 DWORD 指针指向显示缓冲区就可以像一维 ..." https://codebus.cn/yangw/fast-putpixel
随机街道闪电效果 铜牌收录 "想起之前看的一部鬼片,里面闪电效果和BGM营造了一种阴森恐怖的气氛。所以,突然想试试用简约的风格绘出这样的气氛。 目标:绘画出 简单的随机街道 , 街道上空出现 各种形态的闪电 , 并实现街道在闪电时的 闪光变化 效果动态图: 代码如下: /************************************************************ * 程序名称: 随机街道闪电效果 ..." https://codebus.cn/featherstar/random-lightning
三维旋转球 源码+注释+简单讲解 银牌收录 "前言 关于三维的东西远不止这么点内容,也不是我几句话可以讲完的,需要大家扎扎实实的看图形学。不能好高骛远,要扎实、系统的学习。还要注意相关数学知识的学习。 图形学一般是借助矩阵实现的各种转换。我在这篇文章里尽量不用图形学的术语,也不做优化、不加额外功能,只用最简单的三角函数实现,希望大家能从道理上看的清楚明白。 简单讲解 关于一个点,一定要有一个三维坐标,程序中的结构体 POINT3D 就是。 点 ..." https://codebus.cn/bestans/3d-rotating-sphere
[图像处理] 将图片转换为马赛克效果 铜牌收录 "这个程序将图片转换为马赛克效果。 算法原理:求出每个小方块内所有像素的颜色平均值,然后用来设置为该小方块的颜色。依次处理每个小方块,即可实现马赛克效果。 完整代码如下: ///////////////////////////////////////////////////////// // 程序名称:将图片转换为马赛克效果 // 编译环境:Visual C++ 6.0 / 2010,EasyX_2 ..." https://codebus.cn/zhaoh/mosaic-filter
[图像处理] 彩色图片转化成底片效果 铜牌收录 "这个程序实现将图片转化成底片效果。 底片效果使用如下公式: R = 0xFF - GetRValue(pMem[i]); G = 0xFF - GetGValue(pMem[i]); B = 0xFF - GetBValue(pMem[i]); 完整代码如下: ///////////////////////////////////////////////////////// // 程序名称:底 ..." https://codebus.cn/zhaoh/invert-filter