自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用小乌龟 克隆代码出现The authenticity of host “需要克隆的仓库“ can‘t be established. RSA key fingerprint

原因是少了一个known_hosts文件。本来密钥文件应该是三个,现在是两个,所以报了这样的错误。在小乌龟里将git配置好后,对代码进行拉取,会出现。

2023-09-22 14:03:11 326

原创 Eigen使用

矩阵计算#include <iostream>#include <Eigen/Dense>using namespace std;using namespace Eigen;int main(){ Matrix2f A, b;// LLT<Matrix2f> llt; A << 2, -1, -1, 3; b << 1, 2, 3, 1; cout << "Here is the matrix A:\n" <

2021-07-29 23:04:55 1409

原创 git设置全局代理

解决git clone过慢使用下面的方式,会出现Proxy CONNECT aborted改成下面的方式就可以了git config --global http.prox 'socks5://127.0.0.1: 代理的本地监听端口'

2020-12-09 20:14:18 273

原创 OpenGL(8)- 坐标系统 2(立方体绘制)

直接上完整代码:#define GLEW_STATIC#define STB_IMAGE_IMPLEMENTATION#include<iostream>#include<GL/glew.h>#include<GLFW/glfw3.h>#include"Shader.h"#include "stb_image.h"#include <glm.hpp>#include <gtc/matrix_transform.hpp>#inc

2020-09-05 16:39:12 645

原创 OpenGL(7)- 坐标系统 1

MVP变换M变换是将物体空间的坐标转换到世界空间坐标的一个过程,可以有旋转平移缩放等操作V变换是用来将世界坐标变换到观察空间,一般为平移操作P变换指透视投影变换定义三个矩阵,分别代表MVP矩阵: glm::mat4 modelMat; modelMat = glm::rotate(modelMat, glm::radians(-60.0f), glm::vec3(1.0f, 0.0f, 0.0f)); //绕x轴顺时针旋转60度 glm::mat4 viewMat; viewMa

2020-08-31 16:20:13 266

原创 OpenGL(6)transform

矩阵变换在顶点着色器中添加一个变换矩阵transform,用矩阵uniform乘以位置向量#version 330 core layout (location = 7) in vec3 aPos; layout (location = 8) in vec3 aColor; layout (location = 9) in vec2 aTexCoord; out vec4 vertexColor; out vec2 TexCoord;uniform ma

2020-08-28 11:45:04 293

原创 C++(7)- 委托相关设计

设计模式composite温习:static的主要使用情况:1、static方法static方法一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this的,因为它不依附于任何对象,既然都没有对象,就谈不上this了。并且由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。但是要注意的是,虽然在静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态

2020-08-21 11:16:33 157

原创 C++(6)-虚函数(与继承搭配)

继承with virtual functions非虚函数:不希望子类重新定义(override)它;虚函数:希望子类可以重新定义它,并且你已经有一个默认的定义了—子类可以自己重新定义,也可以不定义纯虚函数:希望子类 一定 要重新定义它,你对它没有默认定义**纯虚函数draw() :**你们继承之后,必须重新自己定义一个draw(),因为我不知道该怎么画,你们自己画自己搞。设计模式Template MethodMFC可以在多年之后,框架依旧可以用,很健壮性啊上图注意this指针的意义,

2020-08-21 10:29:16 148

原创 C++(5)组合与继承

所有的功能已经在deque中完成了,而我queue只是想借用一下deque中的功能设计模式:AdapterComposition关系下的构造和析构delegation 委托(Composition by reference)StringRep* rep;只是一个接口,不需要关怎么实现,实现的事情由StringRep类在外部去做这样灵活,右边怎么变动都不影响左边,指针可以是指向其他的类,这样的手法称为编译防火墙inheritance 继承 is-a最有价值的部分是和虚函数搭配使用继承关.

2020-08-20 22:26:59 112

原创 C++(4)- 类模板,函数模板

补充static 声明一个变量为static object,则必须赋初值调用static函数的方式有两种:通过object调用通过class name 调用一个简单的设计模式:(把创建的一个对象放在private里)class template 类模板template<typename T>class A{ T a;//T为数据类型}//用法A<int> c;A<double> d;//用int double去替换Tfuncti

2020-08-20 21:07:09 126

原创 C++(3)- 栈、堆、内存块

Stack存在于某作用域(scope)的一块内存空间,例如当你调用函数,函数本身会形成一个stack用来放置它所接收的参数以及返回地址。 在函数本体内声明的任何变量,其所使用的内存块都取自stackHeap是指由操作系统提供的一块global 内存空间,程序可动态分配从中获得若干区块class Complex{.....};...{ Complex c1(1,2);//第一行 Complex* p = new Complex(3);//第二行}上述代码第一行c1所占用空间来自stac

2020-08-20 20:37:07 191 1

原创 C++(2)- 拷贝构造、拷贝复制、析构

析构函数如果进行了动态分配,析构函数中必须得清楚掉分配的内存,不然会造成内存泄漏拷贝构造拷贝构造函数,与构造函数不同的是。传入值的类型是它自己const String& str。拷贝赋值函数同理,传入的是与自己同类型的参数。inline String::String(const String& str){ m_data = new char[strlen(Str.m_data)+1]; strcpy(m_data,str.m_data);}如上代码所作的操作为深拷贝

2020-08-19 22:18:36 168

原创 游戏开发第二站之C++(1)

防卫式声明:在一个头文件中,往往很少有人(小白初学者)编写头文件时加入防卫式声明,如complex.hcomplex.h#ifndef _COMPLEX_#define _COMPLEX_~~~~~~~~~~~~~~~~~~~~ //头文件主体~~~~~~~~~~~~~~~~~~~~#endif在预编译阶段,编译器会把.h文件展开。防卫式声明的作用是:防止由于同一个头文件被包含多次,而导致了重复定义。 参考:防卫式声明函数若在class body内定义则是inline候.

2020-08-17 21:39:39 119

原创 OpenGL(5)Texture - 两张图片

为了能够让笑脸图片重叠到箱子图片上做如下修改:fragmentSource.txt#version 330 core in vec4 vertexColor; in vec2 TexCoord;uniform sampler2D ourTexture;uniform sampler2D ourFace; //加入第二张图片out vec4 FragColor; void main(){ // FragColor = vert

2020-08-11 10:40:43 1040

原创 OpenGL(5)Texture - 箱子

1. 下载stb_image.h编写格式(在main.cpp中):#define STB_IMAGE_IMPLEMENTATION#include "stb_image.h"2.修改着色器vertexSource.txt#version 330 core layout (location = 7) in vec3 aPos; layout (location = 8) in vec3 aColor; layout (location = 9) in vec

2020-08-10 17:29:41 486

原创 OpenGL(4)着色器 - 错误排查

Shader.h 中声明新函数:private: void checkCompileErrors(unsigned int ID, std::string type);Shader.cpp 中定义新函数:void Shader::checkCompileErrors(unsigned int ID, std::string type){ int success; char infolog[512]; if (type != "PROGRAM") { glGetShaderiv(ID,

2020-08-10 10:45:42 891

原创 OpenGL(4)着色器 - 着色器的编写

main函数#define GLEW_STATIC#include<iostream>#include<GL/glew.h>//#include<glad/glad.h>#include<GLFW/glfw3.h>#include"Shader.h"//现在直接在顶点数据里加入颜色信息float vertices[] = {-0.5f, -0.5f, 0.0f,1.0f,0.0f,0.0f,//右上角0 0.5f, -0.5f,

2020-08-09 17:19:32 445

原创 OpenGL(4) 着色器 - 着色器文档的读入

新加项Shader.h#pragma once#include<string>class Shader{public: Shader(); Shader(const char * vertexPath, const char * fragmentPath); //cpu中的string 和 char* std::string vertexString; std::string fragmentString; const char* vertexSource; con.

2020-08-09 16:40:42 320

原创 OpenGL(3)着色器 - 顶点加入颜色信息插值绘制

修改部分:着色器中定义颜色信息:const char* vertexShadersource ="#version 330 core \n""layout (location = 7) in vec3 aPos; \n""layout (location = 8) in vec3 aColor; \n" //加入颜色属性位置是8;"out vec4 vertexColor; \n" //在 vertexShadersource 中定义并输出到fragment

2020-08-08 22:13:08 1247

原创 OpenGL三角形(2)-闪烁功能

重点部分:在顶点着色器中定义一个out扔到片段着色器中(in),片段着色器将顶点着色器中vertexColor的值赋给每一个像素;#mermaid-svg-DlLweXvQF1RV2pxB .label { font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-font-family); fill: #333; color: #333; }#mermaid-svg-DlLweXvQF1R

2020-08-05 16:26:58 377

原创 游戏开发第一站之OpenGL(1)

OpenGL三角形绘制具体流程:版本号初始化glew将着色器附加到程序对象上初始化窗口创建窗口定义VBO VAO EBO创建着色器并编译创建程序对象绘制#define GLEW_STATIC#include<iostream>#include<GL/glew.h>//#include<glad/glad.h>#include<GLFW/glfw3.h>float vertices[] = {-0.5f, -0.5f, 0.0f,

2020-08-04 17:16:23 299

原创 物理引擎实战第二讲

Time integation时间步长越大在同样的时间内,模拟的速度越大前向欧拉,显式欧拉,Forward Euler用已知预测未知2. semi-implict Euler3. 后向欧拉,隐式欧拉,Backward Euler显式积分器vs隐式积分器显式积分器(还有RK等)未来状态只依赖于过去的状态易于实现容易爆炸:c为常数,m为质量,k为sitffness 刚度系数,Δt越小,模拟越精确,但同样时间内所需模拟次数越多,Δt越大,模拟越粗糙,并且容易发生爆炸

2020-06-22 21:47:09 276

原创 taichi安装与使用

首先下载python3.6以上的版本下载链接一直默认安装,这里我下载的是3.8的版本,自带pip安装完成后,直接在cmd命令行里使用代码 pip install taichi即可完成taichi的安装,如果直接使用taichi手册里的代码python3 -m pip install taichi,可能会报错无效命令。注意:使用pip进行taichi安装时可能会出现报错:WARNING: You are using pip version 19.2.3, however version 20.1.

2020-06-22 10:28:20 3113 1

原创 使用cmake时出现的问题

关于cmake的使用问题position based dynamics.中的代码是基于cmake的,需要CMake生成项目,所需要的环境是:Windows 10 64位,CMake 3.9.5,Visual Studio 2017我是用codebolcks来进行编译,利用cmake生成codeblocks可编译文件的过程中,出现了如下bug:找了很多的方式都未成功,最后的解决方式是只需要下...

2020-04-01 20:27:35 542

原创 Clustering by fast search and find of density peaks——通过快速寻找和找到密度高峰进行聚类(笔记)

在进行学习这篇算法之前先复习以下知识什么是非监督学习在一个典型的监督学习中,我们有一个有标签的训练集,我们的目标是找到能够区分正样本和负样本的决策边界,在这里的监督学习中,我们有一系列标签,我们需要据此拟合一个假设函数。与此不同的是,在非监督学习中,我们的数据没有附带任何标签,我们拿到的数据就是这样的:在这里我们有一系列点,却没有标签。因此,我们的训练集可以写成只有x(1),x(...

2019-12-13 17:13:51 1688

原创 分治法+递归

求解一个大规模问题将其划分为两项:其一是平凡项,另一是与原问题相同的子问题项(规模缩减)分别求解子问题,由子问题的解求解原问题的解

2019-11-28 21:55:03 215

原创 c++学习第一天

清华大学郑莉老师c++面向对象的方法将数据及对数据的操作方法封装在一起作为一个相互依存、不可分离的整体————对象对同类型对象抽象出器共性,形成类类通过一个简单的外部接口,与外界发生关系对象与对象之间通过消息进行通信简单的来说,c++中的类形似 c 语言中的struct结构体,它们都可以看作是一种复杂的数据类型,而对象就是被装在类(class)中的的东西像变量,函数这些统一起来的一个整...

2019-11-28 21:53:17 126

原创 气泡排序分析

刚开始看邓俊辉老师的数据结构,在气泡排序这一块遇到了一个小小的问题,请教了小伙伴后终于搞明白了,以下是代码段:void bubblesort(int A[],int n){ for(bool sorted = false; sorted =!sorted;n--) for(int i = 1; i < n; i++) if(A[i-1]&g...

2019-11-26 21:22:01 297

空空如也

空空如也

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

TA关注的人

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