BestAns

路漫漫其修远兮,吾将上下而求索

学习 C/C++ 语言的常用开发工具下载 金牌收录

学习编程首先需要安装一款编译器。但是目前的网络环境,很多网站下载到的编译器都被捆绑了各种广告插件,甚至木马病毒,困扰了很多初学者。本页面列出来的各种编译器及下载地址,我都亲自测试过,确保无毒无害无恶意广告插件,请放心下载。

刮刮乐(掩码图的范例) 银牌收录

这个程序模拟了刮刮乐的刮卡操作,按下鼠标左键并移动可以刮开刮卡层。刮卡操作是通过掩码图实现的,一张隐藏的待刮开背景图,一张掩码图。刮卡的时候,是在黑色的掩码图上画线,显示的时候,通过掩码图将背景图显示出来。

[视觉错觉] 隐藏的爱心 铜牌收录

这是一个有趣的视觉错觉程序。在看似整齐的方格图像当中,利用图像的细微差距,使这张图片看上去突出来一颗爱心。但是认真去看这颗心的时候,却难以找到心的边缘。

三维旋转球 源码+注释+简单讲解 银牌收录

前言

关于三维的东西远不止这么点内容,也不是我几句话可以讲完的,需要大家扎扎实实的看图形学。不能好高骛远,要扎实、系统的学习。还要注意相关数学知识的学习。

图形学一般是借助矩阵实现的各种转换。我在这篇文章里尽量不用图形学的术语,也不做优化、不加额外功能,只用最简单的三角函数实现,希望大家能从道理上看的清楚明白。

简单讲解

关于一个点,一定要有一个三维坐标,程序中的结构体 POINT3D 就是。

点的初始化由函数 InitPoint() 实现,该函数产生了 n 个半径为 1 的点。

点的运动,是在三维坐标内运动的,包括平移、缩放、旋转等。这个程序只涉及到了旋转,定义了三个方法:RotateX()、RotateY()、RotateZ(),分别实现绕三个轴旋转;可以使用矩阵运算来实现,也可以直接这样算出来。

最后需要将三维世界呈现出来,这里用到一个术语:投影,就是将三维的画面投影到二维上。投影有多种方法,这个球体用的单点透视,因此还需要一个“观察点”,程序中用 viewZ 定义,观

...

VC绘图/游戏简易教程--9:用函数简化相同图案的制作 铜牌收录

教程总目录:https://codebus.cn/bestans/post/concise-lesson-contents

实际中有许多类似的图案,如果一一单独绘制,太麻烦。于是,我们需要一个公用的绘制过程,就是函数。

例如,我们需要画5个三角形,位于不同的位置。我们可以将绘制单个三角形的过程写成函数,函数内是一个独立的程序段,这个绘制过程很简单。
然后,在需要绘制的时候,调用这个函数即可。可以通过参数来解决细微差异(图案的坐标、颜色等),例如:

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

// 在坐标 (x,y) 处,用颜色 c 绘制三角形
void sanjiaoxing(int x, int y, int c)
{
	// 设置画线颜色
	setlinecolor(c);

	// 画三角形的三条边
	line(x, y, x+50, y);
	line(x, y, x, y+50);
	line(x
...

VC绘图/游戏简易教程--1:创建新项目 铜牌收录

教程总目录:https://codebus.cn/bestans/concise-lesson-contents (里面包括VC下的graphics.h的配置方法)

[本期目标]

学会在 VC 里面创建项目,并写简单的程序。

VC 写程序要有项目的概念,一个项目可以有多个 .cpp 文件,多个项目构成一个工作区。先记住这两个英文单词吧:

  • Workspace: 工作区
  • Project: 项目

现在开始创建一个新项目。

  • VC6 创建新项目请参考这里:https://easyx.cn/used-in-vc6-console
  • VC2010 创建新项目请参考这里:https://easyx.cn/used-in-vc2010-console
  • 高版本 VisualStudio 创建项目的步骤与 VC2010 相似。

看明白后,自己动手建立项目试试,并输入以下代码:

...