自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 问答 (1)
  • 收藏
  • 关注

原创 cin 和 cout 笔记一

管理流和缓冲区的各种类:ios:是基于ios_base的类,有一些一般流属性,比如是否可以读取,二进制还是文本流,还有一个指向steambuf的指针ostream:从ios中派生的提供输出方法istream:从ios中派生的提供输入方法iostream:从ostream和istream中派生的类,提供输出和输入的方法streambuf:为缓冲区提供内存,并提供了用于填充缓冲区,访问缓冲区内容,刷新缓冲区和管理缓冲区内存的方法iostream自动创建的八个流对象:cin,wcin,cout

2022-04-17 20:21:28 741

原创 strlen和sizeof的区别

sizeof操作符的结果类型时size_t,在头文件中的typedef为unsigned int,传出能容量的最大容量,是运算符而strlen是函数只能char*做参数,而且必须是"\0"结尾数组在sizeof参数不退化,如果是strlen就是退化为指针大部分编译程序在编译的时候就计算好sizeof了函数参数如果是数组,会退化为指针,无法用它来读取数组长度sizeof可以跟函数...

2022-04-16 16:35:44 89

原创 SQL笔记9.嵌入式SQL

SQL嵌入到其它语言中,这个时候编译需要其他方法1.扩充主语言编译系统,使之能够处理SQL语句2.预处理:在编译前先扫描源程序,将SQL语句翻译成目标(或主语言程序)过程代码,并将SQL执行翻译成主语言的过程调用预处理后的源程序再交给诸语言的编译系统处理在使用时,所有的SQL语句都要加EXEC SQL在前面,后面PL/1,C时,用;,COBOL用END-EXEC通信:1.SQLCODE这是一个整型变量,他会记录SQL语句的执行情况0就是成功执行,100就是没查到数据,负数就是出现异常,

2022-04-07 14:03:30 1543

原创 SQL笔记8.视图2

视图的查询,再这里我们必须要明确一个东西,那就是视图他就是命名的导出表,什么是导出表SELECT *FROM SE_StudentsWHERE Sex = '男';这里我们使用的之前定义的软件工程的视图SE_Students的命名然后他等价于SELECT *FROM (SELECT Sno,Sname,Sex,Brithday,Dno FROM Students WHERE Speciality = '软件工程') AS ...

2022-04-07 14:03:01 87

原创 SQL笔记7.视图

视图就是一种有命名的导出来的表,没有物理储存,除了物化视图①定义视图CREATE VIEW <视图名> [<列名>,...,<列名>]AS <查询表达式>[WITH CHECK OPTION]且其中SELECT查询表达式不包含DISTINCT和ODRDER BY而后面的WITH CHECK OPTION是关于这个视图可不可一更新的定义在以下情况必须指定属性列名1.SELECT 子句目标列中包含聚集函数或者列表达式2.SELECT子句目标列.

2022-04-07 14:02:14 147

原创 SQL笔记6.数据更新

①插入分为两个一个是插入元组,一个是插入查询结果INSERT INTO T[(A1,...,Ak)]VALUES (c1,...,ck)T是基本表,然后这里暂时没有讨论,但基本我们知道他的含义举例:INSERT INTO StudentsVALUES ('201716010','司马相如','男',1997-01-28,'2017')这是没有加属性的,但是这个时候我们就必须把这些数据和表中属性相对应,这很麻烦所以我们使用加属性的INSERT INTO Students(Sno,Snam.

2022-04-07 14:01:38 59

原创 SQL笔记SELECT2

比如:SELECT Cname,GradeFROM SC,CoursesWHERE SC.Cno = Courses.Cno AND Sno = '200002002';这个就是多表的了,两个表SC和Courses其中WHERE 语句中的SC.Cno = Courses.Cno就是他们的连接条件后面的Sno = ‘2000002002’自然就是查询条件比较经典的一个SELECT Students.Sno,Sname.AVG(Grade)FROM SC,StudentsWHERE Stud

2022-04-07 14:00:09 109

原创 SQL笔记4.SELECT

SELECT[ALL|DISTINCT]<选择序列>FROM<表引用>,...,<表引用>[WHERE<查询条件>][GROUP BY <分组列>,...<分组列>[HAVING<分组选择条件>]][ORDER BY<排序列>[ASC|DESC],..[ORDER BY<排序列>[ASC|DESC]1.SELECT子句:相当于关系代数的投影运算ALL不删除重复行,DISTINCT删除重.

2022-04-07 13:57:04 440

原创 SQL笔记3.SQL数据类型

CHARACTER(n):字符、字符串,固定长度为nVARCHAR(n)或CHARCTER VARYING(n):字符。字符串,最大长度为nBINARY(n):二进制串,固定长度nBOOLEAN:储存TRUE或者FASLEVARBINARY或BINARY VARYING(n):二进制串,最大长度为nINTEGER(p):整数值,精度pSMALLINT:整数值,精度5INTEGER:整数值,精度10BIGINT:整数值,精度19DECIMAL(p,s):精确数字,精度p,小数后为sNUME

2022-04-07 13:56:08 107

原创 SQL笔记2.索引

索引属于物理储存的路劲概念索引由表的属主或者DBA进行创建和删除,DBMS自动维护1.创建索引CREATE [UNIQUE] [CLUSTER] INDEX <索引名>ON <表名> (<列名> [<次序>] ,..., <列名> [<次序>])次序是ASC和DESC,默认ASC,是升序,DESC是降序UNIQUE表示唯一索引,CLUSTER表示聚簇索引,此时物理顺序和表排序一样,一个 表只能创建一个聚簇索引2.删...

2022-04-07 13:55:31 99

原创 SQL笔记1模式,表

1.创建模式,CREATE SCHEMA <模式名>[<模式元素>...]或者CREATE SCHEMA [<模式名>]AUTHORIZATION <用户名> [<模式元素>...]第一种一模式名命名模式,没有授权用户访问,模式元素可以是表定义,视图定义,断言定义,授权定义第二中就可以用用户名定义模式,没有模式名的时候,用户名就是模式名2.删除模式DROP SCHEMA <模式名> CASCADE|RESTRICT当为C

2022-04-07 13:54:45 876

原创 unity渲染管线笔记1,创建自定义渲染管线(自用)

先创建一个类,这个就是关于渲染管线Asset的用于储存渲染管线using UnityEngine;using UnityEngine.Rendering;[CreateAssetMenu(menuName = "Rendering/Custom Render Pipeline")]public class CustomRenderPipelineAsset : RenderPipelineAsset { [SerializeField] bool useDynamicBatching...

2022-03-09 00:06:08 4804

原创 C到Java的快速入门 补充

1.局部变量没有默认值,必须初始化,或者说他不能使用默认值,因为可能再堆栈里取用上次的值2.类名和文件名一样,包含public static void main()的类就是主类

2022-02-23 22:36:15 129

原创 C到Java的快速入门5类和对象

访问权限这真和Cpp差不多四种:private,protected,public,没有修饰符,现在讨论的是关于方法和成员变量的修饰,关于.访问的权限,其中方法包括构造方法,但变量确实不能修饰局部变量方法和成员变量的访问权限private:加了就叫私有方法和私有变量,那就不能被.访问,public:加了就叫公有方法和公有变量,那就可以.访问,而且类的定义不和这个使用的地方在同一个包都可以访问不加修饰符:就叫友好方法和友好变量,而友好方法和友好变量只能再同一个包的其他类内才能,用.访问p

2022-02-23 21:43:59 219

原创 C到Java,快速入门4类和对象①

数组,Java的数组和C的数组有大区别,首先在数组声明的时候数组声明数组的元素类型 数组名[]; 数组的元素类型 []数组名; ...

2022-02-23 09:35:24 414

原创 C到Java的快速入门3运算符和语句

1、运算符可以说C的运算符和Java的差别不大,加,减,乘,除,求余数,自增,自减都是一样的使用Java的运算取精度问题如果运算中最高精度是double,float,long这三个其中之一,那运算的精度也就取他们,如果运算中的精度小于int ,如byte,short,char,就按int 作为精度来计算double d;float f;int i;short s;char c;byte b;long l;long l1 = l + b + c + s + i;// 这就

2022-02-22 21:04:06 120

原创 C到Java的快速入门2数组和应用程序简述

数组,Java的数组和C的数组有大区别,首先在数组声明的时候数组声明数组的元素类型 数组名[]; 数组的元素类型 []数组名; ...

2022-02-22 00:21:04 421

原创 C到Java的快速入门1基本数据类型

关于环境变量那些就不赘述了,直接从数据类型开始说起1.标识符和c差不多能1.基本数据类型boolean:常量:true,false.变量:boolean a = true;boolean a;int:常量:123,077,0x3ABC,0b1010.这就是四种 int常量的表达方式分别表示十进制123,八进制077,十六进制0x3ABC,二进制0b1010变量:int a = 1;int b;内存:四字节,-的2的31次方 到 2的三十一次方减1byte:

2022-02-21 21:23:42 189

原创 U++9OnConstruction

virtual void OnConstruction(const FTransform& Transform) override;这个后,构造函数先

2022-02-19 16:57:44 10782

原创 U++8带参数的多播代理

其他都和之前一样,不过绑定的方法为,在蓝图中获得触发方的对象指针,使用Bind event to。。。想要在detail里指定触发方,就必须在触发方UClass()里加上BlueprintType并且在定义触发方指针的时候宏定义要加上BlueprintReadWrite...

2022-02-19 16:57:02 49

原创 U++7属性变化事件

virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;void AMyActor::PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent){ const FName ab=PropertyChangedEvent.Property->GetFName(); if...

2022-02-19 16:56:31 451

原创 U++6Interface的使用

UFUNCTION(BlueprintCallable, BlueprintImplementableEvent, Category=Trigger Reaction)bool ReactToTrigger();BlueprintCallable引用实现接口的对象的C++或蓝图可以调用使用 BlueprintCallable 说明符的函数。BlueprintImplementableEvent使用 BlueprintImplementableEvent 的函数不能在C++中被腹杆,但可以任何实现或

2022-02-19 16:56:01 468

原创 U++5FMulticastDelegateSignature的多重代理

其他都一样DECLARE_MULTICAST_DELEGATE(FMulticastDelegateSignature)FMulticastDelegateSignature myMulticastDelegate;实现方:AGameModeBase* modebase = UGameplayStatics::GetGameMode(GetWorld()); ATestGameModeBase* mymode = Cast<ATestGameModeBase>(modebase...

2022-02-19 16:55:29 85

原创 U++4带参数的动态代理

一切和不带参标准代理一样除了绑定的方法必须使已经绑定好在代理上的参数,同样类型gamemode里DECLARE_DELEGATE_OneParam(FParamDelegateSignature, FLinearColor)public: FParamDelegateSignature myOneParamDelegate;实现方里:AGameModeBase* modebase = UGameplayStatics::GetGameMode(GetWorld()); ...

2022-02-19 16:55:00 182

原创 U++3使用函数指针访问方法

void(AListener:: * PL)()=&AListener::Enablelight; TArray<AActor*>alist; UGameplayStatics::GetAllActorsOfClass(GetWorld(), AActor::StaticClass(), alist); for (int i = 0; i < alist.Num(); i++) { AListener* pll = Cast<A...

2022-02-18 22:36:45 85

原创 U++2计时器

在timer里UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Properties") FTimerHandle Timer;UFUNCTION(BlueprintCallable, Category = "FUNCTIONS") void Timer_OK();UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Timer") ...

2022-02-18 22:36:16 122

原创 U++1.代理

动态代理FcriptDelegate使用方法1 FScriptDelegate start;23 start.BindUFunction(this,"onOverlap");456 myCollision->OnComponentBeginOverlap.Add(start);789 void AMyActor::onOverlap(){1011 UE_LOG(LogTemp,Warning,TEXT("GOOD"));1213 }...

2022-02-18 22:35:19 120

原创 21Gamma校正.txt

Gamma也叫灰度系数,每种显示设备都有自己的Gamma值,都不相同,有一个公式:设备输出亮度 = 电压的Gamma次幂,任何设备Gamma基本上都不会等于1,等于1是一种理想的线性状态,这种理想状态是:如果电压和亮度都是在0到1的区间,那么多少电压就等于多少亮度。对于CRT,Gamma通常为2.2,因而,输出亮度 = 输入电压的2.2次幂,你可以从本节第二张图中看到Gamma2.2实际显示出来的总会比预期暗,相反Gamma0.45就会比理想预期亮,如果你讲Gamma0.45叠加到Gamma2.2的显示设备

2022-02-18 20:14:50 137

原创 18.集合着色器爆破发现例子.txt

对于几何着色器#version 330 corelayout (triangles) in;layout (triangle_strip, max_vertices = 3) out;//因为绘制的是三角形,所以第一个是triangles,第二个是triangle_stripin VS_OUT{ vec2 texCoords;}gs_in[];out vec2 TexCoords;uniform float time;//会被设置的时间vec4 explode(vec4 p..

2022-02-18 20:14:20 93

原创 17.集合着色器.txt

几何着色器,也就是根据顶点着色器输出的数据进行处理,比如让他们衍生啥的,反正就是处理关于几何链接着色器geometryShader = glCreateShader(GL_GEOMETRY_SHADER);glShaderSource(geometryShader, 1, &gShaderCode, NULL);glCompileShader(geometryShader); ...glAttachShader(program, geometryShader);glLinkProgr.

2022-02-18 20:13:47 56

原创 16.高级GLSL.txt

顶点着色器变量gl_PointSize我们能够选用的其中一个图元是GL_POINTS,如果使用它的话,每一个顶点都是一个图元,都会被渲染为一个点。我们可以通过OpenGL的glPointSize函数来设置渲染出来的点的大小,但我们也可以在顶点着色器中修改这个值。在顶点着色器中修改点大小的功能默认是禁用的,如果你需要启用它的话,你需要启用OpenGL的GL_PROGRAM_POINT_SIZE:glEnable(GL_PROGRAM_POINT_SIZE);示例:void main(){ ..

2022-02-16 22:58:50 207

原创 14.立方贴图环境映射.txt

反射#version 330 coreout vec4 FragColor;in vec3 Normal;in vec3 Position;uniform vec3 cameraPos;uniform samplerCube skybox;void main(){ vec3 I = normalize(Position - cameraPos); vec3 R = reflect(I, normalize(Normal)); FragC...

2022-02-16 22:58:18 39

原创 13.立方贴图.txt

创建立方体贴图unsigned int textureID;glGenTextures(1, &textureID);glBindTexture(GL_TEXTURE_CUBE_MAP, textureID);int width, height, nrChannels;unsigned char *data; for(unsigned int i = 0; i < textures_faces.size(); i++){ data = stbi_load(texture...

2022-02-16 22:57:45 44

原创 learnopengl网站学习12.后期处理接帧缓冲.txt

反相void main(){ FragColor = vec4(vec3(1.0 - texture(screenTexture, TexCoords)), 1.0);}灰度void main(){ FragColor = texture(screenTexture, TexCoords); float average = (FragColor.r + FragColor.g + FragColor.b) / 3.0; FragColor = vec4(avera...

2022-02-16 22:57:12 58

原创 learnopengl网站学习11.帧缓冲.txt

到目前为止,我们已经使用了很多屏幕缓冲了:用于写入颜色值的颜色缓冲、用于写入深度信息的深度缓冲和允许我们根据一些条件丢弃特定片段的模板缓冲。这些缓冲结合起来叫做帧缓冲(Framebuffer),它被储存在内存中。OpenGL允许我们定义我们自己的帧缓冲,也就是说我们能够定义我们自己的颜色缓冲,甚至是深度缓冲和模板缓冲。OpenGL中的其它对象一样,我们会使用一个叫做glGenFramebuffers的函数来创建一个帧缓冲对象(Framebuffer Object, FBO):unsigned int

2022-02-16 22:56:26 182

原创 learnopengl网站学习10.面剔除.txt

确认三角形是逆时针排序的,然后glEnable(GL_CULL_FACE);开启面剔除glCullFace(GL_FRONT);glCullFace函数有三个可用的选项:GL_BACK:只剔除背向面。GL_FRONT:只剔除正向面。GL_FRONT_AND_BACK:剔除正向面和背向面。这个可以设置设置正向面的环绕顺序glFrontFace(GL_CCW);默认值是GL_CCW,它代表的是逆时针的环绕顺序,另一个选项是GL_CW,它(显然)代表的是顺时针顺序。...

2022-02-15 13:44:53 1393

原创 learnopengl网站学习9.混合.txt

OpenGL中的混合是通过下面这个方程来实现的::源颜色向量。这是源自纹理的颜色向量。:目标颜色向量。这是当前储存在颜色缓冲中的颜色向量。:源因子值。指定了alpha值对源颜色的影响。:目标因子值。指定了alpha值对目标颜色的影响。虽然都是这样glBlendFunc(GLenum sfactor, GLenum dfactor)函数接受两个参数,来设置源和目标因子。OpenGL为我们定义了很多个选项,我们将在下面列出大部分最常用的选项。注意常数颜色向量可以通过glBlendColor函数来

2022-02-15 13:44:22 58

原创 learnopengl网站学习8.模板测试.txt

一个模板缓冲中,(通常)每个模板值(Stencil Value)是8位的。所以每个像素/片段一共能有256种不同的模板值。我们可以将这些模板值设置为我们想要的值,然后当某一个片段有某一个模板值的时候,我们就可以选择丢弃或是保留这个片段了。和深度缓冲相似使用步骤启用模板缓冲的写入。渲染物体,更新模板缓冲的内容。禁用模板缓冲的写入。渲染(其它)物体,这次根据模板缓冲的内容丢弃特定的片段。关于开启你可以启用GL_STENCIL_TEST来启用模板测试。在这一行代码之后,所有的渲染调用都会以某种

2022-02-15 13:43:44 99

原创 learnopengl网站学习7.深度测试.txt

可以想象,在某些情况下你会需要对所有片段都执行深度测试并丢弃相应的片段,但不希望更新深度缓冲。基本上来说,你在使用一个只读的(Read-only)深度缓冲。OpenGL允许我们禁用深度缓冲的写入,只需要设置它的深度掩码(Depth Mask)设置为GL_FALSE就可以了:glDepthMask(GL_FALSE);OpenGL允许我们修改深度测试中使用的比较运算符。这允许我们来控制OpenGL什么时候该通过或丢弃一个片段,什么时候去更新深度缓冲。我们可以调用glDepthFunc函数来设置比较运算

2022-02-15 13:42:54 59

原创 learnopengl网站学习6.纹理的深刻简单光照.txt

想要应用纹理,首先讨论关于纹理的输入在拥有以下函数的前提下unsigned int loadTexture(char const* path){ unsigned int textureID; glGenTextures(1, &textureID); int width, height, nrComponents; unsigned char* data = stbi_load(path, &width, &height, &nr...

2022-02-15 13:41:49 285

空空如也

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

TA关注的人

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