9 huanghongxun

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 6k+

3D 游戏编程与设计 - 空间与运动

简答并用程序验证1游戏对象运动的本质是什么?游戏对象运动的本质是变换游戏对象自身的坐标。在游戏开发中,我们可以通过矩阵变换的方式实现游戏对象的变换,比如:public class TranslationScript : MonoBehaviour{ // 游戏对象的迁移方向向量,向量模长为平移速度,向量方向为平移方向 Vector3 translation = new Vect...

2019-09-21 21:54:21

3D 游戏编程与设计 - 离散仿真引擎基础作业

简答题1.解释 游戏对象(GameObjects) 和 资源(Assets)的区别与联系。GameObject 是运行时在场景中被渲染的实体对象。而 Asset 是可复用的 GameObject 或 GameObject 的集合。也就是说,Asset 是一些将大量被复用的 GameObject 的组合方式,也就是说,如果将 Asset 视为类,那么 GameObject 相当于类的对...

2019-09-05 20:27:02

3D 游戏编程与设计 - Minecraft 游戏介绍

作业要求介绍Minecraft 是一款有关放置方块与探险的 3D 沙盒游戏。玩家出生在一个拥有无限可能性的世界中,这个世界可以无限探索,玩家在世界中没有游戏目标,也没有固定的游戏模式。在游戏过程中,玩家必须探索世界、收集资源、制作工具、修建房屋、战斗。Minecraft 游戏中拥有不止一个世界,玩家在探索出生的主世界时,还可以通过传送门进入其他不一样的世界(比如地狱、末地、月球等世界)进行探...

2019-09-05 11:32:23

服务计算 - Go 开发环境安装

中山大学数据科学与计算机学院 软件工程 2017级 服务计算作业,17343050安装 GolangUbuntu 18.04 默认的 apt 源中包含的 golang-go 包是 Go 1.10,并不是最新版,因此添加非官方的软件源以获得 Go 1.13。添加了软件源之后,我们就可以通过命令 sudo apt install golang-go 安装 Go 1.13 了。创建...

2019-09-07 23:50:38

服务计算 - 让你的计算机也能提供云桌面服务

中山大学数据科学与计算机学院 软件工程 2017级 服务计算作业,17343050想到云计算、云平台,立马觉得高深莫测。如果你想搭建自己使用的桌面云,使用 VirtualBox 这样的开源软件,仅需要几十分钟或几个小时就能如你所愿。实验目的初步了解虚拟化技术,理解云计算的相关概念理解系统工程师面临的困境理解自动化安装、管理(DevOps)在云应用中的重要性实验环境与要求用户...

2019-09-07 13:27:00

C++ 模板简介(四)—— Any

Any你有没有过需要在 C++ 中使用类似 object 这种通用类型的需求呢?C++ 中如何类型安全地保存一个什么类型都有可能是的变量?(这个大概算类型擦除?)导入如果你写过一些与运行时状态有关的东西,比如一个列表中的数据可能是任意一种数据,或者比如 SQL 数据表中的一行可能是很多的类型,这个时候你需要用一个 vector 保存,如果在其他语言里,你可以:List<object&...

2018-12-18 14:58:33

C++ 模板简介(三)—— Tuple

Tuple导入我们可以通过 std::tuple 构造一个复合类型,比如可以使得函数拥有“多个”返回值:std::tuple<int, int> divide(int a, int b) { return make_tuple(a / b, a % b);}然后我们可以通过 get<> 函数来获得 tuple 内存储的值:auto result = d...

2018-12-18 14:57:15

C++模板简介(二)—— 模板元编程

编译期的整数操作​ 模板元编程是一个挺有意思 (但是毫无卵用) 的东西。比如我们可以实现编译期的快速排序。(但是 constexpr 函数基本把这部分给废掉了)导入​ 下面是一个例子:template <int A, int B>struct add { static constexpr int value = A + B; };cout << add<...

2018-12-18 14:56:31

C++ 模板简介(一)—— SFINAE

SFINAE, 类型检查, Concepts​ SFINAE 机制是组成 C++ 模板机制及类型安全的相当重要的基础。全称是 Substitution failure is not an error。大概的意思就是只要找到了可用的原型(比如函数模板、类模板等)就不会编译错误。SFINAE 可以被用来进行模式匹配。在尝试本篇代码时请打开 C++17。https://en.cppreference...

2018-12-18 14:55:07

C++ 模板简介(零)—— 简介

C++ 模板简介首先推荐 C++ 官方模板介绍SFINAE(很多内容被 Concepts 取代)Meta programming(很多内容被 constexpr 函数取代)TupleAny(看完上面介绍你就觉得全部讲的毫无用处了)建议你先了解一下模式匹配与模板偏特化是什么东西,否则你可能 4 篇文章都看不懂。模式匹配模式匹配指的是,检查某一个词汇序列是否满足给定的一些模板。对...

2018-12-18 14:54:09

TopCoder SRM 590 FoxAndCity | 2017 ICPC Xian E

题目大意给定一个无向图,每条边的边权固定为 1,现在你可以自己加一些边权也为 1 的边,最小化∑i=1n(Ai−disti)2 \sum_{i=1}^n (A_i-dist_i)^2 i=1∑n​(Ai​−disti​)2其中 distidist_idisti​ 表示第 i 个点到 1 的最短路长度。题解现在我们要最小化 ∑i=1m(Ai−disti)2\sum_{i=1}^m (A_i...

2018-10-26 21:44:54

Southeastern European Regional Programming Contest (SEERC) 2017

A: Concerts题目大意有 26 种演唱会,John 希望按照某个顺序看某些类型的演唱会,但是看完某种类型的演唱会后需要至少休息一定的天数才能继续看演唱会,问有多少种看演唱会的方案题解简单的 dp,但是 CodeForces 上的数据范围是假的。。花了好些时间检查为什么 RE。。#include <bits/stdc++.h>using namespace std;...

2018-10-25 17:50:20

Ural Championship 2010

B: Transsib题目大意现在有一个线性规划:max⁡z=x1+x2+x3+x4s.t.{x1+x4≤k1x1+x3≤k2x3+x4≤k3x2+x3≤k4x2+x4≤k5x1+x2≤k6\max z=x_1+x_2+x_3+x_4\\s.t.\begin{cases}x_1+x_4\leq k_1 \\x_1+x_3\leq k_2 \\x_3+x_4\leq k_3 \\...

2018-10-22 01:57:19

高精度模板

这个只是模板。const int power = 4; // power = log10(base)const int base = 10000;#define MAXL 1001char a[MAXL], b[MAXL];struct num { int l; int a[MAXL]; num() { memset(a, 0, sizeof ...

2018-10-13 10:48:49

URAL 1833|Hopes of Rowing|最小割

题目大意现在有 n 个点,每个点需要给一个权值。有 m 条边,每条边需要满足两端点的权值和至少为 k,问一种权值方案使得所有点的权值和最小。题解其实这道题用 KM,用 Hungary 都能做。这里只提提最小割的做法。现在有一个结论:每个点的权值只有 3 种取值:0,k2,k0,\frac{k}{2},k0,2k​,k。显然如果某个点的相邻的点很多,而且至少有 2 个这中没有其他的相邻点的点...

2018-10-05 12:32:26

简单的多周期MIPS I CPU设计(六)—— 流水线

上一篇:寄存器重命名 下一篇:分支预测单周期CPU问题早期的RISC CPU采用了简单的单周期执行模式,也就是说每个时钟周期只执行一条指令。这样做的好处是设计简单:CPU只需要一条一条指令执行,在上一条指令完全执行完成之后再执行下一条指令。如果从软件设计的角度来看这个设计的话,也就是单线程程序了。我们在设计单线程程序时只需要考虑指令间的逻辑顺序就可以了。相对地,我们在设计多线程程序时就需...

2018-06-27 14:03:51

简单的多周期MIPS I CPU设计(五)—— UART数据通道

上一篇:寄存器重命名 下一篇:流水线UART被用于硬件之间的数据交互,我们要是用的学习板Basys3上 已经搭载了FT2232芯片将USB数据信号转换为UART的TxD和RxD端 信号。我将利用UART将程序从电脑上下载到Basys3板,并使得我 们烧到板上的CPU加载指令并执行,且将执行的结果传输回电脑。数据格式为了数据的传输,我们需要预先规定数据传输协议。同时规定数据 传...

2018-06-27 01:36:08

简单的多周期MIPS I CPU设计(四)—— 寄存器重命名

上一篇:主存· 下一篇:流水线原理寄存器重命名法将原来的32个寄存器映射到两组寄存器,分别是标准规定的32个寄存器,我们称作虚拟寄存器或者架构寄存器和CPU内置的物理寄存器。我们建立虚拟寄存器到物理寄存器的映射关系,并将数据(指令产生的结果)存放于CPU内置的物理寄存器。这样一来我们在解码阶段将会得到虚拟寄存器的地址,并根据这个地址找到物理寄存器的地址并进行操作。实现为了实现映射...

2018-06-27 01:24:30

简单的多周期MIPS I CPU设计(三)—— 主存

上一篇:阶段 下一篇:流水线内存内存分为SRAM和DRAM两大类,均为阵列式,由于Vivado已经提供了Block Memory Generator,这里就不对内存做过多介绍了。Vivado的BMG的读写操作都要延迟到第3个周期才完成。\subsection{缓存}我们知道,内存读取数据的速度是比较慢的(因为大容量的DRAM内部使用电容存储数据),而CPU执行指令的速度是比较快的...

2018-06-27 00:49:46

简单的多周期MIPS I CPU设计(二)—— 指令执行阶段

上一篇:综述 下一篇:主存通常我们将RISC CPU的指令的执行过程分为5个步骤,分别是取指令(IF)、解码(ID)、执行(EX)、内存读写(MEM)、寄存器写(WB)。我们要实现CPU,可以将5个步骤做成5个子模块分别设计,这样可以大大降低我们的开发复杂度。取指令(IF)CPU在取指令阶段(IF阶段)时,先向一级指令缓存要指令,要到指令后我们将程序计数器(PC)自增1(1表示移动一...

2018-06-26 23:52:21

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。