分享代码 快乐编程

一起学习,一起进步,从分享代码开始~

纯软件算法实现 3D 渲染(by 桌子)

大部分说明在源码中可以看见,这个项目是在尝试做软件渲染器时边想边做的,模仿了很多 OpenGL 的 API 定义(类似 OpenGL 运行库),然后在 main.cpp 里面写用户自己的模型及贴图代码。

软件运行可以得到如下的效果:

主要实现的功能:

  • 一些简单的数学运算(矩阵相乘,向量叉乘等)
  • 使用扫描线多边形填充算法绘制多边形
  • 线性插值(linear interpolation)
  • 透视校正插值(perspective correct interpolation)
  • 深度测试(用于消隐)

一些我想到的但是暂时没实现的功能:

  • 不支持 ddx 和 ddy,所以没有 Mipmap,因为实现起来比较麻烦。
    ddx 和 ddy 是指在屏幕空间上求 vbo 的偏导数。真正的 GPU 绘制的时候是在
...

随机街道闪电效果

想起之前看的一部鬼片,里面闪电效果和BGM营造了一种阴森恐怖的气氛。所以,突然想试试用简约的风格绘出这样的气氛。

目标:绘画出 简单的随机街道 ,

街道上空出现 各种形态的闪电 ,

并实现街道在闪电时的 闪光变化

效果动态图:

代码如下:

/************************************************************
* 程序名称: 随机街道闪电效果 
* version : Release x86-1.0 
* 程序目标: 制作简单的随机街道上空出现闪电,并实现街道在闪电时的闪光变化
* 编写系统: win10 1809专业版 x64 
* 编译环境: VS2017 + EasyX_20180727(beta) 
* 作者 : 星羽 
* 邮箱 : 1479245050@qq.com 
* QQ : 1479245050
...

背井离乡(by 萌新)

上大学一学期了,有点想家。

突发奇想,花了一天的时间,用 vc++6.0 写完了这个程序。

代码写的不怎么样,希望大家不要太严格 QAQ

执行效果截图:

完整源代码、背景音乐及编译后的可执行文件请【点击这里下载】

完整代码如下(记得附上背景音乐文件):

#include <graphics.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <stdio.h>
#pragma comment(lib,"Winmm.lib"

...

多边形万花筒动态

这个程序实现了一个由五角星反复变形的多边形,执行效果如下:

可以在宏定义直接改变数量和画布大小等,直接感受不同的视觉效果。

全部源代码如下:

//项目名称		多边形万花筒动态
//作者			星羽1704
//email			1479245050@qq.com
//联系方式		qq 1479245050
//描述			由五角星反复变形的多边形,可以在宏定义直接改变数量和画布大小等,直接感受不同的视觉效果。
//编译环境		win10 64位 + vs2017 + easyx—ver: 20180727(beta)

#include <graphics.h>
#include <conio.h>
#include <math.h>

// 宏定义
#define PI				3.1415926535897932384626433832795
#define 
...

镜像绘图程序:迷盘(Mirror Paint)

微软应用商店里面有个有趣的镜像绘图程序 Mirror Paint,以下代码模拟了这个镜像绘图程序的基本功能,效果如下:

完整代码如下:

///////////////////////////////////////////////////////////
// 程序名称:迷盘(mirror_paint)
// 编译环境:Visual Studio 2017 / EasyX_20180727(beta)
// 程序编写:忧郁 506688268@qq.com
// 最后更新:2018-08-09
////////////////////////////////////////////////////////////

#include <graphics.h>
#include <iostream>
const int Width = 1280;               // 客户区宽
const 
...

【七夕活动精选】致你的七夕礼物——3D Heart(by Nomango)

程序效果很简单,是一颗跳动的心脏,心脏下面有一行小字写着“七夕快乐”,按住鼠标左键并拖动可以让它旋转起来,按住右键可以让这颗心暂时停止跳动。

执行效果如下:

完整的源代码如下:

/////////////////////////////////////////////////////////
// 程序名称:致你的七夕礼物 —— 3D Heart
// 编译环境:Visual Studio 2017,EasyX 20151015(beta)
// 作    者:Nomango <www.nomango.cn>
// 最后修改:2017-8-19
// 项目类型:Win32 Console Application
//

#include <easyx.h>
#define _USE_MATH_DEFINES
#include <math.h>
#incl
...

动态立体方块(by Kenny)

一个简单的绘图程序。

执行效果如下:

完整源代码如下:

/************************************************
 * 程序名称:动态立体方块							*
 * 编译环境:Visual C++ 6.0 / EasyX 2014冬至版	*
 * 作者:Kenny <499508968@qq.com>				*
 * 最后修改:2015.05.21							*
 ************************************************/

#include <graphics.h>
#include <conio.h>
#include <math.h>

void Block(int length);		// 画方块函数声明
void StrongBlock();			// 动态立体方块
...

用绘图语句画安卓(android)机器人(初学 C 语言的同学必看)

学编程最需要注意的就是多动手,多练习。不管你学了多少,学一点,就要练习一点。哪怕没有学习循环和判断,都可以写出一些不错的程序来。

所以,我写了这个范例程序给大家参考。希望可以抛砖引玉,给初学 C 语言的同学以启发。

执行效果如下:

VC 源代码如下:

/////////////////////////////////////////////////////////////
// 程序名称:用绘图语句画安卓(android)机器人(初学 C 语言的同学必看)
// 编译环境:Visual C++ 6.0 / 2013,EasyX 20140321(beta)
// 作  者:yangw80 <yw80@qq.com>
// 最后修改:2014-10-9
//
#include <graphics.h>
#include <conio.h>

#define PI
...

用绘图语句画机器猫(初学 C 语言的同学必看)

学编程最需要注意的就是多动手,多练习。不管你学了多少,学一点,就要练习一点。哪怕没有学习循环和判断,都可以写出一些不错的程序来。

所以,我写了这个范例程序给大家参考。希望可以抛砖引玉,给初学 C 语言的同学以启发。

执行效果如下:

具体这个家伙叫机器猫还是小叮当还是多啦A梦就不管啦,看代码吧:

/////////////////////////////////////////////////////////////
// 程序名称:用绘图语句画机器猫(初学 C 语言的同学必看)
// 编译环境:Visual C++ 6.0 / 2013,EasyX 20140321(beta)
// 作  者:yangw80 <yw80@qq.com>
// 最后修改:2014-9-17
//
#include <graphics.h>
#include <conio.h>

...

视觉错觉艺术4

这是网上经常见的视觉错觉艺术图片,可以用程序生成的。效果如下:

完整的源代码如下:

///////////////////////////////////////////////////
// 程序名称:视觉错觉艺术4
// 编译环境:Visual C++ 6.0 / 2013,EasyX 20140321(beta)
// 作  者:yangw80 <yw80@qq.com>
// 最后修改:2014-7-15
//
#include <graphics.h>
#include <conio.h>


// 定义回调
void (*callback)(int x, int y);


// 画方块上的小方块
void DrawSmallBox(int x, int y, bool lt, bool rt, bool lb, bool rb)
{
	int nx = x * 
...