自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

三体问题

铁索横江,锦帆冲浪

  • 博客(82)
  • 收藏
  • 关注

原创 太阳光照模拟器

GitHub地址

2021-01-09 11:57:11 7925

原创 Unity3D MeshLine 画线

一、算法 画线可以简化为正八棱柱 算法为: 两点A,B 向量AB 求向量AB的任意垂直向量,旋转垂直向量获得正半边形的顶点,通过顶点绘制三角形网格二、实现using System.Collections;using System.Collections.Generic;using UnityEngine;// 画线public class MeshLine { private Material material...

2020-12-27 20:50:17 2596 2

原创 2020年终总结

2020年处于一种奇怪的氛围中就要结束了,说奇怪是因为疫情前经济困难后经济增长爆发,又到了一年一总结的时候,总结分为工作,学习,阅读,生活,情感,明年目标期望六个部分吧,今年试试用谷歌目标法评价这一年。一、工作 今年用c++的次数屈指可数,可以说像是彻底变成了c#程序员,unity3d的掌握和工程化的思想有所提高。总的来说比去年还是强不少。 项目情况: 今年做了四个Un...

2020-12-22 20:39:02 281 3

原创 Unity3D自由摄像头视角旋转,平移,缩放

一、需求在unity3D中经常需要通过鼠标操作视角的平移,旋转,缩放。这些操作都可以通过操作主摄像头来实现二、实现using System;using System.Collections;using System.Collections.Generic;using UnityEngine;public class CameraModel : MonoBehaviour{ //旋转参数 private float xspeed = -0.05f; // X速率 p

2020-12-19 19:59:56 2983 5

原创 Unity3D自定义菜单生成Asset文件并使用

一、需求 unity3D编辑器是可以高度自定义的,可以通过扩展增加很多自定义功能 Asset文件是资源配置文件,用于保存一些游戏中或者场景中需要用的数据,在需要用时可以方便增加二、原理 在unity编辑器中有许多标签其中 [MenuItem()]标签标识在菜单栏中新增一项,其中项的路径决定增加的路径 例如 : [MenuItem("Assets/Create/Create assets")] pub...

2020-12-17 20:15:59 1761

原创 C++使用RAII等待线程完成

一、问题 在大多数情况下,我们需要等待线程完成自己销毁,而不是强制结束,以避免资源泄漏的情况发生。 通常我们使用线程代码是用join#include <iostream>#include <thread>int main(){ bool run = true; std::thread thread_test([&]() { while (run);...

2020-12-13 15:00:23 301

原创 vs2015修改csproj文件实现vs2019中自动添加文件功能

一、问题 在vs2019中,把cs后缀名的文件放入工程下文件夹中,就会自动导入工程。 vs2019的csproj工程配置文件如下:可以看到并没有class1.cs,ss.cs,Test.cs的相关配置,确引用了相关文件夹,可以判定,是编译器自动帮忙识别了其中的文件vs2019的csproj工程配置文件如下: 引用cs文件时,需要在<ItemGroup></temGroup> 标签下:...

2020-09-07 21:48:18 2485

原创 嵌入式mono的c++调用c#示例

一、支持 通过mono, c++调用c#的可以传入的参数类型支持类型有: 1、基本数据类型(bool float double enum...) 2、引用类型 3、结构体类型 4、类对象 5、数组 6、指针数组 7、字符串 二、示例 下面代码演示,各种类型调用的方法: main.cpp#include <mono/jit/jit.h&...

2020-09-06 12:19:30 2734

原创 Unity3D生成一段隧道网格(二)

上文我们已经生成了隧道网格,现在我们需要一个算法通过生成的网格,生成一个网格骨架。 基本算法思路是,分离出一个图,然后找图上的环。 class graph_vertex { public Vector3 pos; public int index; public bool visit = false; public List<int> edges = new List<int>(...

2020-08-22 09:40:46 472

原创 Unity3D生成一段隧道网格(一)

一、需求 最近有一个需求,生成段隧道的骨架网格。目前想到的方法就是,获取隧道网格,通过一个算法分离内框和外框的点: 然通过外框和内框上的点画线,从而实现骨架网格 二、生成隧道算法 隧道由段圆弧和一条直线组成,所以算法如下: 1、取圆心为0,0,0,和圆上半径的向量 ,绕z轴,旋转向量,取到圆上的点,外框上的点同理可得 2、平移内外框上的点,z轴加上偏离,得到隧道另一端的点 2、取相邻外框上的点和平移...

2020-08-16 08:56:21 987 1

原创 嵌入mono c++环境搭建

我们知道c#是托管代码,c++是非托管代码 c#调用c++很简单,但是c++调用c#就有几种不同的方式了,其中mono就其中一种,很多游戏引擎都采取这种方式,底层使用c++,上层使用c#作为开发语言,用户只要编写c#代码就能够快速开发出想要的应用,例如Unity3D就是这种模式。 mono是一个虚拟机,在c++中创建并可以实现运行c#代码。二、安装 首先去官网下载最新版mono并且安装 我这边下载的是x64位版本 在C:\Pr...

2020-06-07 11:08:58 1275

原创 高德地图API使用

高德地图二次开发提供了很多接口,功能强大。 首先需要申请一个KEY教程如下:链接 通过这个key替换<script src="https://webapi.amap.com/maps?v=1.4.15&key=自己的KEY&plugin=AMap.Autocomplete"></script>其中plugin=AMa...

2020-02-07 10:23:44 3252 2

原创 CUDA编程初步

CUDA安装过程已经在上一篇文章中讲了。 一、创建 首先需要创建一个CUDA工程,安装后VS会多一个选项如下: 选择,下一步,下一步结果如下:我们发现会出现一个.cu后缀名的文件,这就是GPU使用的源文件。二、前缀和两个常用函数1、在CU文件中有三种函数,前面分别用三种前缀修饰:__device__ void gpu_run();...

2020-01-15 20:21:14 358

原创 GPU开发环境搭建(CUDA和 OptiX)

Optix是英伟达一直推出的闭源光线跟踪(rayTracing)引擎 CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。 开发人员可以使...

2020-01-09 19:52:12 7670 6

原创 unity3D中贝塞尔曲线的控制点计算

一、贝塞尔曲线的概念 对于两点之间的连线,我们可以用直线进行连接效果如下: 其中的每一个F点都在AB连接的线段上 这就是一阶贝塞尔曲线 如果我们加入一个控制点C,那么做图如下: 1、连接AC,BC 2、在AC,BC上找到 AD/AC = CE/CB 的点D,E ...

2020-01-04 11:27:55 3858 1

原创 2019年终总结

2019年过去了,又到了年终总结的时候 今年主要是做了两件事: 一、逃离 1-4月在北京 在北京一家500人的公司工作18个月,感觉无聊至极,加上房东年前就下了逐客令,4月份底就得搬走,所以过年时就定下了离开北京的想法。 走之前逛遍北京,什么香山、通州,大学城等待,每周都骑着车到处乱跑,不知道是惆怅还是啥...

2019-12-25 19:58:10 436

原创 记一次c++内存泄漏查找过程

上周从周五开始疯狂修仙,累的一批。 周日正美滋滋的睡着回笼觉,准备补回觉,突然被一个电话打过来去公司查软件内存泄漏问题(连续查了两天)。 当时软件的情况是24 小时内存增加600mb内存,而验收标准是连续跑24 * 7小时,所以对于32位程序来说将达到4.2GB会出现内存无法分配的情况(超出32位指针访问地址的上限)。 分析...

2019-12-17 19:36:14 398 4

原创 MapBox安装(Unity3D使用)

最近工作中需要生成一个三维地球,需要使用地图中的三维地球数据,遂研究之,写文以记录。 好吧,连装三个软件都失败了(广告软文真多) 然后发现MapBox这个面向开发者的全球地图平台(开源,免费!) 遂配置一下:一、注册下载 首先进入https://www.mapbox.com/这个网站,点击注册 注册成功后一直点下...

2019-12-12 19:57:02 3075 5

原创 Unity3D调用自定义C++DLL

上篇文章说到了Unity调用Windows Dll库的方法 最近需求又升级了,需要调用自定义的一个Fly.dll飞行库,进行轨迹获取 所以研究研究Unity调用自定义dll的 方法,Unity3D端还是一致,需要声明需要调用的函数 首先创建C++ DLL库 新建一个test.h,在其中添加如下代码:#pragma once...

2019-12-03 20:25:06 339

原创 关于IL2CPP编译,C#调用WindowsAPI的方法(已解决2019.12.2)

在unity中我使用了c#的系统函数,System.Threading.Mutex 这个函数 在Windows上进行跨进程通信,需要读取一个互斥量,观察unity运行的TCP服务器有没有正常启动 这时使用IL2CPP的方式进行编译发布,发现运行时在如下行出现异常: mutex = new System.Threading.Mutex(true, "test_m...

2019-11-30 20:28:31 1001

原创 数组中的逆序对

题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007输入描述:题目保证输入的数组中没有的相同的数字数据范围:对于%50的数据,size<=10^4对于%75的数据,size<=10^5对于%1...

2019-11-24 09:56:36 107 2

原创 表示数值的字符串

题目描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。代码的鲁棒性#pragma oncenamespace num_char{ class Solution { pu...

2019-11-24 08:51:30 114

原创 二叉搜索树的第k个结点

题目描述给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。二叉搜索树,就是根据序列左子树都小于根节点,右子树都大于根节点的树例如5,3,7,2,4,6,8 序列的二叉树如下:根据题目,要知道最小的第K个节点,那么就可更加,二叉搜索树的性质中序遍历可以得到从小到大的排序我们只有稍微修...

2019-11-18 21:23:00 110

原创 机器人的运动范围

题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?典型回溯法的问题回溯法是一种深...

2019-11-14 07:56:48 173

原创 对称的二叉树

题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。镜像二叉树,意思是:1、根节点的左、右节点交换位置,2、子节点的左右节点重复1所以一棵二叉树的镜像如下:、如题所述,要满足镜像重复,二叉树形状应该类似如下结构: 根节点下:左右子树安装 先序遍历和后序遍历结构相同,且值相同则为重复...

2019-11-13 21:08:10 117 3

原创 把二叉树打印成多行

题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。之字形打印二叉树的变种,将左右逆序的判断去掉就行了#pragma once#include <vector>using namespace std;namespace layer_two_tree{ struct TreeNode { int val; struct Tre...

2019-11-13 18:48:35 87

原创 按之字形顺序打印二叉树

题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 关键在于层序遍历的变换 我们知道层序遍历就是从上到下,从左到右,一层一层的遍历,层序遍历算法如下: 1、判断根节点不为空,push进队列中 2、判断队列为空,结束,不为空进入3 ...

2019-11-13 18:23:31 120

原创 unity3D物体旋转

在3D世界里,物体有位置和姿态信息,位置很好理解,就是在空间中的坐标,有绝对坐标(position,世界坐标)和相对坐标(localPosition,相对于父物体的坐标)。 姿态就不好理解了,描述的是物体旋转,有三个姿态,偏航,俯仰,翻滚。 分别是物体按照x,y,z三轴旋转的结果 旋转在unity3d中用四元数来表示,四元数的一种超复数,由一个实部和3...

2019-11-06 21:02:49 1423

原创 滑动窗口的最大值

题目描述给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,...

2019-11-05 21:32:10 148

原创 VS2019团队管理GitHub使用

最近在做GitHub托管的项目 毕竟谁还不会装会呢 这么高能吹B的网站必须安排上 VS系列产品一直有团队管理这个东西,不过好像2019更加明显,配置完成后,就可以很轻松的在IDE中完成代码下载提交工作,而不用去敲命令行,手动一个个增加文件了,极其方便。 首先打开VS2019界面如下:选择克隆或者签出代码然后输入GitHub地址,和本地仓...

2019-11-03 09:49:28 5210

原创 海阔凭鱼跃,天高任鸟飞

形容今天的心情!!!!!!!写文已记之。Tomorrow is a better day!

2019-10-31 18:41:57 286

原创 删除链表中重复的结点

题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5好吧一看就觉得是使用两次遍历,(或许一次遍历也可以做,只是判断复杂一些)第一次遍历,查找重复节点,第二次遍历更改链表指针指向,删除节点代码实现如下:...

2019-10-26 09:17:14 95 3

原创 将VS2019中创建的QT工程转为QT creator工程

在vs2019中开发QT写代码是很方便,可是拖控件可能还是差了点(猜测,了解不深),所以相互结合会更好。 首先,在VS2019中扩展安装 QT VS Tools如上图所示,扩展中会有该工具。然后创建工程,编译运行运行通过后,转换工程填好名称选择转换目录然后打开QT,选择.pro文件,导入 就可以在QT Creator中运行了...

2019-10-25 21:25:22 4979 1

原创 字符流中第一个不重复的字符

题目描述请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。输出描述:如果当前字符流没有存在出现一次的字符,返回#字符。这个题目的关键在于,中间过程的纪录,即字符串第一次进入的顺序:例如:字符流为 b b b c ...

2019-10-24 19:40:30 1268

原创 通过Unity3D中的射线检测,移动物体

在第三人称游戏中,鼠标点击屏幕,角色移动到指定地点是一个重要的功能。 这一般是通过射线检测来实现 原理是:首先从屏幕上的主摄像机发送一条射线,击中地面后,把角色移动到相应的位置 代码实现如下: bool GetInteraction() { Ray interactionRay = Camera.main.ScreenPointTo...

2019-10-23 21:06:06 2217 2

原创 C++状态机框架实现

状态机我们大家都知道,有一个专门的设计模式状态机模式,类图大概如下图:不过如果按照下面图来实现的状态机,基本来说非常难用,没有实用性,只能作为教科书的产品。今天我们要实现的是一种通用状态机,可以Send事件,每一个状态可以响应自己注册的事件,同时也可以通过自身或者事件来改变状态机的状态 代码地址:https://github.com/9435202/StateAPI首...

2019-10-15 23:27:33 14532 5

原创 Unity3D简单的小车游戏

首先我们需要在unity3d 的Assertstore中找几个资源导入进去 点击进入assert store 搜索free的资源 然后找到自己想要的资源,下载,import导入 我这边找了一个树的资源和一个车的资源如下:(两个都导入)点击资源按钮框Free_Trees中就会有所需资源了f然后就可以做一个简单的小车游戏了先把上次的平...

2019-10-09 21:16:54 2277 1

原创 丑数

题目描述把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。关键在于,这个题不能使用暴力法解,因为涉及到排除数的算法太复杂,如果使用暴力法,每一个数去取最小公因数,判断公约数是否只为2,3,5,这样每个数计算的时间为,判断N个数需要的时间为>N,所...

2019-09-30 07:01:55 129

原创 c++消息队列实现

我们经常用到消息队列,把一些数据交给后台线程去处理,而直接使用mutex来lock(),unlock()判断队列是否为空,会使后台线程长时间处于满载状态,或者手动sleep()一段时间,造成使消息处理不及时,所以我们需要实现一个消息队列来实现数据线程的合理使用。 有时任务不是一个,而是很多个连续的数据,仅仅用到mutex和一些其他线程同步方式不能解决问题,需要异步处理的...

2019-09-27 21:31:51 5286

原创 Unity3D从安装到运行第一个程序

现在项目中需要用到unity3d建模 目前自己试试,首先主页就很难找,托bd的福。一、安装 首先下载地址https://store.unity.com/cn/download-nuo unity3d有一个叫做unityhub的版本管理器,方便切换不同的unity3d版本,也可以用来管理工程,首先要安装的就是这个东西安装完成后注册个人账户,登录获得授权离线激...

2019-09-18 20:36:10 5476 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除