在 EasyX 中使用 Nuklear UI 实现窗口和控件
2024-11-7 ~ 2024-11-11
(0)
当鼠标滑过时,可以在屏幕上实现漂亮的水波纹效果。
执行效果如下:
源代码如下:
(注意,请确保 loadimage 函数里面加载的图片路径存在)
/********************************************************
* 程序名称:实现水波纹显示 *
* 编译环境:Visual C++ 6.0 / 2010,EasyX_20210730 *
* 作 者:豪 (QQ: 415051674) *
* 核心算法:参考网上算法 *
* 发布日期:2013/3/20 *
********************************************************/
#include <graphics.h>
#include <conio.h>
#include <stdio.h>
...
这个程序实现将图片转化成底片效果。
底片效果使用如下公式:
R = 0xFF - GetRValue(pMem[i]);
G = 0xFF - GetGValue(pMem[i]);
B = 0xFF - GetBValue(pMem[i]);
完整代码如下:
/////////////////////////////////////////////////////////
// 程序名称:底片效果
// 编译环境:Visual C++ 6.0 / 2010,EasyX_20200727
// 作 者:krissi <zh@easyx.cn>
// 最后修改:2013-1-20
//
#include <graphics.h>
#include <conio.h>
// 底片效果
void ColorInvert(IMAGE *pimg)
{
...
关于 Julia Set (茱莉亚集) 的介绍什么的我就不多说了,网上一大堆。执行效果如图:
关于 Julia Set,可以通过设置复数 c 的初值,显示出不同的图案,比如,大家可以试试以下几组:
c.re = 0.45, c.im = -0.1428; c.re = 0.285, c.im = 0.01; c.re = 0.285, c.im = 0; c.re = -0.8, c.im = 0.156; c.re = -0.835, c.im = -0.2321; c.re = -0.70176, c.im = -0.3842;
随便用哪行替换掉源程序中的“c.re = -0.75, c.im = 0;”都可以看到不同的精美图案。循环变量 k 是迭代次数,在某些参数下需要高一些会更精细。
为了美观,还需要修改一下颜色部分,目前代码中的颜色是这样的:
...HSLtoRGB((float)((k<<5) % 3