自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 glFinish和glFlush的区别

我们提交给OpenGL的绘图指令并不是马上送给图形硬件执行,而是放到一个缓冲区里面,等待缓冲区满了再将这些指令送给图形硬件执行,所以指令较少或者简单时是无法填满缓冲区的,自然这些指令不能马上执行以达到所需要的效果。(2)glFinish()作用也是将缓冲区中的指令(无论是否为满)立刻送给图形硬件执行,但是要等待图形硬件执行完这些指令才返回。(1)gLFlush()作用是将缓冲区中的指令(无论是否为满)立刻送给图形硬件执行,发送完立即返回;

2023-03-20 11:15:01 452

原创 Git常用命令

git基本操作

2022-09-20 14:24:44 253

原创 一张图弄懂gl,glu,glut,glew,glfw......之间关系

2022-02-16 11:49:11 512

原创 函数末尾加const的作用

#include <iostream>using namespace std;class Test{ int num;public: Test() { num=10; } void print1() { cout<<num<<endl; } void print2() const { cout<<num<<endl; .

2022-01-05 17:05:17 1844

转载 C++ 的explicit关键字

首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式).那么显示声明的构造函数和隐式声明的有什么区别呢? 我们来看下面的例子:class CxString // 没有使用explicit关键字的类声明, 即默认为隐式声明 { public: char *_pstr; int _s

2021-11-15 14:52:10 63

原创 法向量从模型坐标系变换到世界坐标系

如果要把模型坐标系的点变换到世界坐标系,我们可以用一个model矩阵来转换。但是,要把模型坐标系下的法向量转换到世界坐标系,却不能直接使用model矩阵。我们用二维平面的变换来说明:图中的线段AB经过了缩放变换。左图中点A=(0,1)B=(1,0),法向量N=(1,1);右图中经过y坐标值放大两倍的变换后,法向量N=(1,2),而向量T'=A-B=(-1,2),法向量N’不再与线段AB垂直。同理可以知道,如果model变换中,XYZ轴进行了不同比例的缩放,原来的法向量可能不再与切平面垂直。.

2021-05-11 16:27:33 1638

原创 CT值及CT常用窗宽、窗位

CT值及CT常用窗宽、窗位CT值的含义是:每个反应管内的荧光信号达到设定的域值时所经历的循环数。研究表明,每个模板的CT值与该模板的起始拷贝数的对数存在线性关系,起始拷贝数越多,CT值越小。利用已知起始拷贝数的标准品可作出标准曲线,因此只要获得未知样品的Ct值,即可从标准曲线上计算出该样品的起始拷贝数。是用不同的灰阶来反应组织和器官的密度,也可以用吸收系数来反应组织器官的密度。1、常见人体组织的CT值(HU) 组织 CT值 组织 ...

2021-01-05 14:39:27 9052

原创 GLSL基本语法

GLSL 基础量定义数据类型:GLSL包含下面几种简单的数据类型floatbool :false or tureint向量:vec {2,3,4} 长度为2, 3, 4的float向量bvec {2,3,4} 长度为2, 3, 4的bool向量ivec {2,3,4} 长度为2, 3, 4的int向量矩阵:mat2 2*2的浮点矩阵mat3 3*3的浮点矩阵mat4 4*4的浮点矩阵以上三种矩阵可以简写为mat2 mat3 ma...

2020-12-09 09:55:41 2230

原创 C++函数的默认参数

1. 有函数声明(原型)时,默认参数可以放在函数声明或者定义中,但只能放在二者之一double sqrt(double f = 1.0); //函数声明double sqrt(double f) //函数定义{ // .... } 或double sqrt(double f); //函数声明double sqrt(double f = 1.0) //函数定义{ // .... } 2. 没有函数(原型)时,默认参数在函数定义时指定.//没有 函数声明dou

2020-11-24 13:39:04 173

原创 C++STL中vector的六种初始化方式

C++STL中vector的六种初始化方式:(1)vector<int> ilist1;默认初始化,vector为空, size为0,表明容器中没有元素,而且 capacity 也返回 0,意味着还没有分配内存空间。这种初始化方式适用于元素个数未知,需要在程序中动态添加的情况。(2)vector<int> ilist2(ilist1);或 vector<int> ilist2 = ilist1;两种方式等价 ,ilist2 初始化为ilist 的拷贝,ilis

2020-11-21 10:15:11 1589

原创 UML中的类图及类图之间的关系

UML简介 UML(Unified Modeling Language),统一建模语言,是用来设计阮籍蓝图的可视化建模语言。它的特点是简单,统一,图形化,能表达软件设计中的动态与静态信息。UML从目标系统的不同角度出发,定义了9种图,分别为:用例图,类图,对象图,状态图,活动图,时序图,协作图,构件图,部署图。 本文主要介绍设计模式中经常用到的类图,以及类之间的关系。另外,对于UML 建模工具的使用方法,当前业界使用最广泛的是 Rational Rose。使用 Umle...

2020-10-09 15:48:31 1907

原创 C#学习笔记

C#中的??含义:如果 ?? 运算符的左操作数非 null,该运算符将返回左操作数,否则返回右操作数。 public RelayCommand UpdateOpacities { get { return _updateOpacities ?? (_updateOpacities = new RelayCommand(On_UpdateOpacities_Excuted)); } }...

2020-09-07 14:39:48 114

转载 C++模板

模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。模板是创建泛型类或函数的蓝图或公式。库容器,比如迭代器和算法,都是泛型编程的例子,它们都使用了模板的概念。每个容器都有一个单一的定义,比如 向量,我们可以定义许多不同类型的向量,比如 vector<int> 或 vector<string>。我们可以使用模板来定义函数和类1、函数模板模板函数定义的一般形式如下所示:template <typename type> ret-ty..

2020-09-01 19:57:19 99

原创 总结一下C++类型转换

我们知道c语言中的类型转换只有一种:TYPE b = (TYPE)a;而在C++语言中新增了四个关键字static_cast、const_cast、reinterpret_cast和dynamic_cast。新类型的强制转换可以提供更好的控制强制转换过程。1.static_cast主要用于相关类型之间的转换,如c的基本数据类型char,int,double等之间,以及基类和子类之间转换(没有dynamic_cast安全),可能会有字节转换,不可以转换不相关类型如int*和double*,以及没有

2020-09-01 19:39:45 112

原创 函数指针的主要用途总结

0、基本的函数指针的声明与初始化首先我们来声明一个函数。int Max_Int(int a, int b){ return (a>b)?a:b;}把函数名替换成指针表达式是创建指向函数指针最简单的方式:int (*pFun)(int a, int b); //声明函数指针,此时函数指针没有指向任何函数这时,我们就已经完成了一个最简单的函数指针声明,其意义是:生命了一个函数指针,其指向的函数返回一个int值,带有两个int型参数。接下来我们对函数指针进行初始化:pFun =

2020-08-31 14:43:48 2617

原创 UE4 Tips

1.如果需要每秒tick一次,可以用Event tick —> Delay,把Duration设置成1.0秒即可2.level加载之前的MainMenu在level BP中create,游戏画面的中的widget在character BP中create3.动画蒙太奇(animation montage)可以将动画序列(animation sequence)组装成一个资源,通过程序或蓝...

2020-08-27 10:40:54 122

转载 将bat批处理文件固定到任务栏的方法

https://www.blackglory.me/win8-tips-fixed-the-batch-file-in-the-taskbar/1、桌面右键,新建快捷方式,对象位置填写 bat文件位置,如cmd /c d:\go.bat(就是在前面加上 cmd /c ,注意空格)输入加上cmd命令的bat位置2、右键快捷方式,把起始位置改为bat文件的路径3、完成创建后,对创建的快捷方式...

2020-08-27 10:32:28 1416

原创 使lua 输出不换行

问:T1 = {1, 2, 3}for i = 1,3 do print(T1[i])end输出是:123会自动换行;怎么才能在一行输出:123答:localT1={1,2,3}locals=""fori=1,3dos=s..T1[i]endprint(s)将数字连接成字符串再一起输出...

2020-08-27 10:32:11 2458

原创 UE中五个最常见的基类

UE中五个最常见的基类Uobject类UObject提供了以下功能:Garbage collection 垃圾收集 虚幻提供两个方案: (1)继承自UObject类,同时用UPROPERTY宏标记指向UObject类实例对象的指针成员变量。 (2)UE的UObject架构会自动回收被UPROPERTY标记的变量,自动地进行对象的生命周期管理。 Reference...

2020-08-27 10:32:03 443

原创 Lua Tips

for循环中如果修改循环变量,不会对循环产生影响!for i = 1,100 do i = i - 1 --假如此时i=1,下一轮循环i就会等于2,不会受影响,循环仍然执行100次endTable的如下三种索引方式等价MyTable = { score = 123}key = "score"MyTable[key], MyTable["score"], M...

2020-08-27 10:31:51 86

转载 Lua 生成随机数

原文链接:http://blog.csdn.net/zhangxaochen/article/details/8095007Lua 生成随机数需要用到两个函数:math.randomseed(xx), math.random(n , m)1. math.randomseed(n) 接收一个整数 n 作为随机序列种子。2. math.random(n , m) 有三种用法: 无参调用, ...

2020-08-27 10:30:13 1794

转载 pairs 和 ipairs的比较

pairs 和 ipairs的比较同:都是能遍历集合(表、数组)异:ipairs 仅仅遍历值,按照索引升序遍历,索引中断停止遍历。即不能返回 nil,只能返回数字 0,如果遇到 nil 则退出。它只能遍历到集合中出现的第一个不是整数的 key。pairs 能遍历集合的所有元素。即 pairs 可以遍历集合中所有的 key,并且除了迭代器本身以及遍历表本身还可以返回 nil。栗子1:...

2020-08-27 10:29:48 238

原创 绕口令一则:常指针 & 指向常量的指针 & 指向常量的常指针...

const int *p; // const修饰的bai是*p,因此*p是常量不能改变,但可以改du变p的指向;int const* p; // 同上,主要是看const与*的前后关zhi系;int* const p; // const修饰的是p,因此p的指向是dao常量不能改变,但*p可以改变;const int* const p; // 两个const既修饰了*p也修饰了p,因此*p与p都是常量不能改变;...

2020-08-27 10:29:35 105

转载 C++11智能指针

前言C++里面的四个智能指针: auto_ptr, unique_ptr,shared_ptr, weak_ptr 其中后三个是C++11支持,并且第一个已经被C++11弃用。C++11智能指针介绍智能指针主要用于管理在堆上分配的内存,它将普通的指针封装为一个栈对象。当栈对象的生存周期结束后,会在析构函数中释放掉申请的内存,从而防止内存泄漏。C++ 11中最常用的智能指针类型为shared_ptr,它采用引用计数的方法,记录当前内存资源被多少个智能指针引用。该引用计数的内存在堆上分配。当新增一个

2020-08-27 10:28:19 127

转载 C++中explicit关键字的使用

在C++中,我们有时可以将构造函数用作自动类型转换函数。但这种自动特性并非总是合乎要求的,有时会导致意外的类型转换,因此,C++新增了关键字explicit,用于关闭这种自动特性。即被explicit关键字修饰的类构造函数,不能进行自动地隐式类型转换,只能显式地进行类型转换。注意:只有一个参数的构造函数,或者构造函数有n个参数,但有n-1个参数提供了默认值,这样的情况才能进行类型转换。下面通过一段代码演示具体应用(无explicit情形):/* 示例代码1 */class Demo{

2020-08-27 10:27:19 95

转载 CT三维重建基本后处理方法

CT三维重建主要以下六种基本后处理方法:多层面重建(MPR)最大/小密度投影(MIP/MinIP)表面阴影遮盖(SSD)容积漫游技术(VRT)曲面重建(CPR)虚拟内镜技术(VE)下面对常用的几个方法进行简要介绍 1、MPR  MPR(Multi-Planar Reformatting),多平面重建,是将扫描范围内所有的轴位图像叠加起来再对某些标线标定的重组线所指定的组织进行冠状、矢状位、任意角度斜位图像重组。MPR适用于任一平面的结构成像,以任意角度观察正常组织器官或病变,可以显示腔

2020-08-27 10:23:47 12740

空空如也

空空如也

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

TA关注的人

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