自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【QT】pro文件里添加又删除LIBS不影响运行的原因

我发现个问题啊,如果运行项目,发现报错,缺少某dll,接着你在pro文件里加上win32:LIBS += -lOpengl32(举个例子),接着可以运行了,接着把这行删掉,再运行,仍然可以,后续是不影响的。但是当你把build文件夹删掉的时候,再次运行,就会出现同样的错误,gpt说是因为makefile已经存在了,已经找到了位置,后续并没有重新生成,经过我测试,发现还真是这样的。当你在Qt项目的.pro文件中添加,然后成功构建项目后,这行配置指示链接器在Windows平台上链接到OpenGL库。

2024-04-10 21:19:24 401 1

原创 qt安装qwt遇到问题: lqwtd permission denied

搜索加问chat说是文件权限问题,检查lib bin include安装位置,没问题,重启重开,不行。

2023-12-29 10:31:38 446

原创 MatplotlibDeprecationWarning: Axes3D(fig) adding itself to the figure is deprecated since 3.4. Pass

再次对之前的错误向您道歉,并希望这次的解决方案能够帮助您成功绘制3D图形。如果您还有其他问题,请随时提问。这个警告是针对使用Matplotlib绘制3D图形时的一个改变引入的。在早期版本的Matplotlib中,可以直接将。如果您想消除这个警告,可以根据警告中的建议修改代码,并确保在适当的地方明确指定添加。中,但在Matplotlib 3.4版本中,这种做法被弃用了。参数的默认值将在Matplotlib 3.5版本中更改为。,并且在3.6版本中,使用。的数值来适应您的图形布局。中,并且不会产生警告。

2023-12-05 20:01:02 572

原创 qDebug输出中文问号???【修正】

2023-11-28 16:01:40 615

原创 【11】使用透视投影建立一个3D空间的测试

视锥体前后0.01到1000,也就是说建立一个从人的视角看出去的一个锥体,物体不在这个视锥体范围内将不显示。proj:投影矩阵,可以选择正交投影,或者透视投影,为了营造3D透视的感觉,我们使用透视投影,算下来,将是一个相机在原点,看向-z 方向,前后距离(0.01,1000)的情况。通过调整model,控制物体移动,调整view控制相机移动。调整model.z 可以看到矩形大小在变化,是个3D透视。一顿绑定,顶点数组,顶点缓冲区,索引缓冲区,着色器。view设置个在原点,model设置个不移动的。

2023-11-08 14:59:59 549

原创 qt 信号和槽,例子

这里想要把 Canvas 这个类的按钮点击事件和 MainWindow 类关联起来,实现Canvas 窗口点击按钮之后返回数值,MainWindow 的handleCanvasButton拿到数值,暂时没传递参数,但思路是这么个写法。主要是区分 signals 和 slot 的写法,我本来以为这两个都跟函数一样没啥区别,没想到 signals 是这样的。Canvas声明里写好信号。

2023-11-02 15:37:23 254

原创 将数据写成txt要注意的地方

【代码】将数据写成txt要注意的地方。

2023-09-28 14:07:31 105

原创 error: reference to ‘byte‘ is ambiguous使用QtCharts报的错误

总之,问题的根本原因是QtCharts内部使用Windows头文件定义的字节类型,产生与Windows自身定义的冲突。是的,由于Qt和Windows头文件中都定义了字节类型别名byte,当同时包含这两个头文件时就会产生冲突和歧义错误。尝试不使用QtCharts中的字节类型,使用更具体的类型如unsigned char等。查看QtCharts源代码,是否可以修改内部使用Windows头文件,换成Qt自带类型。最后不得已可以定义QtCharts自己的字节类型别名,避免与Windows冲突。

2023-09-25 21:28:01 610

原创 【10】使用Test类测试&ImGUI

另一个是测试颜色的。

2023-09-21 21:47:52 103

原创 【9】openGL调用imGUI&使用其自带例子测试

在backends里找到你需要的 .h .cpp文件,总共四个文件,复制过来。将根目录下所有.h .cpp文件复制到你的项目文件夹imgui下面。,因为我们实际使用在自己的主函数里而不是直接使用它的例子。去github下载imgui源码,得到。进入exmaple文件夹,可以看到例子。

2023-09-17 12:00:06 181

原创 git基本手册

设置默认分支git config -h查看帮助详细帮助清除clear进入目录cd c:/x/初始化存储库git initgit status跟踪一个文件,git才会关注其变化,未跟踪不关注跟踪文件不想再跟踪想要git完全忽视某些文件.gitignore文件里写你要忽视的文件跟踪所有文件git add -A;git add .

2023-09-15 16:20:03 457

原创 【8】shader写入类中

上一篇将 vao vbo写入类中进行封装,本篇将shader进行封装。

2023-09-10 11:52:46 172

原创 【7】集成vao vbo

分析一下代码,va是顶点数组 vertex array object,vb是顶点缓冲对象 vertex buffer object。positions是顶点数组,存有二维顶点数据,共有四个点,用来绘制矩形。在之前的代码中,生成、绑定顶点数组对象,生成、绑定顶点缓冲对象,启用顶点属性数组,写了很长一部分,很麻烦。可以看到,初始化时生成了 vao,并存储了名字到 m_RendererID。的参数,我们就可以分析出 layout 的作用。后面使用时还需要绑定,因此在函数。VertexArray声明。

2023-09-09 18:33:24 62

原创 【6】uniform颜色写入

里每次都设置其unifrom的话,就可以实现每一帧设置颜色。在主程序里就可以写入颜色(

2023-09-04 10:12:56 904

原创 【5】openGL使用宏和函数进行错误检测

来检查错误,我们可以通过在运行时进行打断点查看glGetError返回值,得到的是一个十进制数,将其转为十六进制,再转到 glew.h 里查询这个数,就能看到错误类型。如果不添加错误信息检测代码,直接运行的话,只能看到黑屏,不会有错误提示,有了错误检测,会看到终端循环输出错误码:1280。1280的十六进制是0x0500,转到。当我们编写openGL程序,没有报编译链接错误,但是运行结果是黑屏,这不是我们想要的。

2023-09-03 10:41:03 521

原创 【4】索引缓冲区的使用&为什么使用

这个函数绘制三角形是按照顶点的顺序来的,那么绘制一个矩形就需要绘制两个三角形,每个三角形需要提供三个顶点,那么在positon数组里就有6个顶点的数据,每个顶点占两个float数(假如是二维)。positions里面记录了四个点的坐标,那么indices直接记录绘制的点的序号就可以了。

2023-09-02 20:13:30 189

原创 【3】单着色器文件读取

Basic.shader文件,可以发现顶点着色器和片段着色器是写在一个文件里的,这里我们将他们读取出来,而不是上一篇使用string的方式。读取结果:通过string打印可以看到成功了。

2023-09-02 19:43:04 380

原创 【2】openGL shader着色器分析&三角形填色

OpenGL中的shader id(如glCreateShader返回的id),如果不加以管理,确实可能不是唯一的。“在OpenGL中,通常一个文件会包含多个shader程序,我们需要一个函数返回一个特定程序的ID。在OpenGL中,通常一个文件会包含多个shader程序,我们需要一个函数返回一个特定程序的ID。加static可以避免该函数暴露给其他文件,仅在本文件内起到程序创建的目的,不与其他程序产生影响。如果一个文件定义了多个这样的程序,就需要区分返回每个程序的唯一ID。

2023-08-28 20:42:27 253

原创 【1】openGL glew示例代码分析&绘制一个三角形

可以直接查询函数的定义和使用。

2023-08-27 22:53:28 1156

原创 LINK : fatal error LNK1104: 无法打开文件“E:\xxx\Debug\pro_cpp_1.exe;E:\xxxDependence\GLEW\include“

我就先检查了C/C+±常规-附加包含目录,把glew调整到glfw之前,怀疑是顺序问题对链接器也是同样的操作,检查附加库目录检查附加依赖项都没问题啊,开始怀疑那个错误,首先这是一个链接错误,说明不是没找到 include/GL那个路径,为什么要同时打开exe和include目录呢,exe所在目录没问题,这里如果你了解编译-链接的过程的话,肯定会直接看出问题所在,只不过我一知半解,猜中了,原来是。

2023-08-27 15:08:05 1469

原创 error LNK2019: 无法解析的外部符号 __imp__glClear@4,函数 _main 中引用了该符号

自己犯这个错误有些搞笑了,找着教程一步一步来还出错,复制。

2023-08-26 16:44:59 338

原创 c++ 监控内存使用量

【代码】c++ 监控内存使用量。

2023-08-25 16:09:33 409

原创 c++ 当你使用string时进行代码优化

与std::string_view语法类似,但采用的是低级指针操作取代高阶抽象。使用指针可以很直观地获取字符串的某个片段,通过指针移动和修正来指定位置和长度。使用std::string构造函数,从指针位置构造指定长度的子字符串。使用name.c_str()获取字符串的const char*指针。lastName指针值加上偏移4,指向字符串第5个字符开始的位置。firstName直接赋值str,指向第一个字符。

2023-08-22 14:55:46 62

原创 虚拟机 net、桥接、主机三种网络模式寻根问底

所以简单说,桥接网络让虚拟机直接“桥接”到主机所在的物理网络中,成为该网络中的一个独立实体,实现虚拟机与物理网络的透明连接。所以简单说,主机模式下使用虚拟交换机模拟了一个完全封闭的虚拟局域网环境,各个VM直接通过交换机连接,实现了封锁于外部网络的内部互联能力。所有的转发都是在网络层完成,不通过交换功能。总之,主机模式 build 一个宿主机和虚拟机之间的专用网络,用于二者直接通信,而隔绝外网访问,更高级别的封装与隔离。虚拟机和宿主机之间,以及它们与外部网络中的其他设备,都可以直接连接通信,互相访问资源。

2023-08-21 15:13:23 1149

原创 c++静态类型转换和动态类型转换

动态类型转换(dynamic_cast)会在运行期检查要转换的类型是否正确,可以避免静态转换可能出现的类型错误。总之,静态类型转换依赖编译期类型信息转换,动态类型转换依赖运行期通过虚函数表判断实际类型进行转换,可以避免静态转换可能出现的类型错误。动态类型转换通过运行期结合虚表检查类型匹配情况,可以避免静态转换可能出现的类型错误。是的,静态类型转换无法在运行时进行类型检查,只依赖于编译期的静态类型信息进行转换。静态类型转换依赖编译期类型信息,运行时无法检查类型,可能出现类型不匹配的错误。

2023-08-20 19:33:28 175

原创 c++ 虚函数

虚函数的作用就是当一个类继承另一个类时,两个类有同名函数,当你使用指针调用时你希望使用子类的函数而不是父类的函数,那么请使用。

2023-08-18 23:37:06 70

原创 c++ Union之妙用

union的作用基本是它里面的变量都用了同一块内存,跟起了别名一样,类型不一样的别名。

2023-08-18 23:17:00 368 2

原创 c++Type Punning学习

【代码】c++Type Punning学习。

2023-08-18 22:52:07 35

原创 c++ std::sort的简单用法

直接看代码即可,对于lambda部分的解释:a,b基本算作两个抽象的比较对象,每次会比较这两个,返回true:表示a应该排在b前面(a<b),返回false:表示b应该排在a前面(a>b),具体可查看cpprefernece。

2023-08-18 15:47:29 156

原创 c++函数指针基本用法

将函数像变量一样传递,实际上拿到的是函数的地址,由于函数类型的多样,可以使用auto关键字,可以使用。叫做HelloWorldFunction,这样就像int或者char之类的用法来用它。,不过它太繁琐,因此使用typedef 起个名字。常用一点的,某一个函数需要传入函数作为参数。

2023-08-17 19:44:07 42

原创 visual stdion使用两个项目

添加第二个项目设置第二个项目属性-常规属性-配置类型为静态库(或者动态库估计也行,没试过)设置第一个项目也就是启动项目属性-C/C+±常规-附加包含目录-$(Solution)secProj\src\include 把你第二个目录的src文件夹包含进来,因为你在那里写的cpp和.h文件,你的主项目需要调用他们,这时候已经可以正常编译了,但构建会报错,是链接错误,是因为缺少lib(应该吧)主项目右键-添加-引用,这里vs已经帮你找好了,把第二个项目的lib(应该吧)给引进来,就可以正常运行了,记得把默

2023-08-16 16:38:59 211

原创 c++模板的基本用法

从这个例子可以看出,不仅可以指定数据类型为模板,也可以指定数据为模板。

2023-08-16 16:31:01 25

原创 c++动态数组-2

动态数组的优化,vector

2023-08-14 16:14:41 22

原创 c++动态数组-1

因此使用vector,它叫这个名字跟容器没什么关系。vertices.clear()是直接清空。当你想访问ve[5]的时候就会出错。

2023-08-14 10:16:50 24

原创 c++类的深拷贝,用String举例

的话,会发现每次调用该函数都拷贝了一次String,这显然不是我们想要的,因此。这时候可以发现,打印出来的两个值已经正常了。通过std::cout可以发现两者相同,如果修改。这里两个m_BUffer指向的是同一块内存区域。这里如果不适用const &的方式,二是。定义一个String类。

2023-08-11 17:06:07 59

原创 c++ this关键词

this

2023-08-07 14:49:06 23

原创 操作运算符

operator

2023-08-07 14:25:31 17

原创 隐式转换和显示调用

这个是报错了的,原因同样是因为没用从const char[] 数组转换到std::string,因此修改为。给构造函数前面加上这个关键词,将无法再使用隐式转换,唯一作用就是希望显示调用构造函数。,不再报错,这个函数同样使用了隐式转换。先定义一个类,两个构造函数。

2023-08-06 14:38:04 16

原创 使用new关键词

new

2023-08-05 14:43:26 25

原创 vmware下win 7装vc++6.0遇到的问题

Linking…

2023-08-05 10:42:18 165

空空如也

空空如也

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

TA关注的人

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