象棋马拉松
2022-1-20 ~ 2022-2-25
(1)

关于三维的东西远不止这么点内容,也不是我几句话可以讲完的,需要大家扎扎实实的看图形学。不能好高骛远,要扎实、系统的学习。还要注意相关数学知识的学习。
图形学一般是借助矩阵实现的各种转换。我在这篇文章里尽量不用图形学的术语,也不做优化、不加额外功能,只用最简单的三角函数实现,希望大家能从道理上看的清楚明白。
关于一个点,一定要有一个三维坐标,程序中的结构体 POINT3D 就是。
点的初始化由函数 InitPoint() 实现,该函数产生了 n 个半径为 1 的点。
点的运动,是在三维坐标内运动的,包括平移、缩放、旋转等。这个程序只涉及到了旋转,定义了三个方法:RotateX()、RotateY()、RotateZ(),分别实现绕三个轴旋转;可以使用矩阵运算来实现,也可以直接这样算出来。
最后需要将三维世界呈现出来,这里用到一个术语:投影,就是将三维的画面投影到二维上。投影有多种方法,这个球体用的单点透视,因此还需要一个“观察点”,程序中用 viewZ 定义,观
...A,D键躲避迎面而来的车辆。
所需图片资源:
#include <graphics.h>
#include <time.h>
#include <stdio.h>
#include <string>
#include <tchar.h>
#include <iostream>
#include <conio.h>
using namespace std;
IMAGE Texture_BK; //背景图
IMAGE Texture_Car; //车
IMAGE Texture_Car2; //车2
IMAGE Texture_BCar; //车掩码
IMAGE Texture_BCar2;//车掩码2
struct player
{
int x;
int road_type;
int time;
bool Ctrl;
void init() {
Ctrl = f
...
先画小球从左到右排放,然后再到下一行继续重复上一个过程。
///////////////////////////////////////////////////
// 程序名称:视觉错觉艺术图
// 编译环境:VS2019, EasyX_20200902
// 作 者:梦萤花火
// 最后修改:2021-1-24
//
#include <graphics.h>
#include <conio.h>
int x; // X轴坐标
int y; // y轴坐标
int g_multiples = 0; // 倍数:作用是对弧度角进行改变
float g_PI = 3.1415927; // 圆周率
float g_radianAngle; // 起始角的弧度
// 实施画单个完整小球的函数
void DrawCe
...