- 博客(93)
- 资源 (2)
- 收藏
- 关注
原创 三维坐标系变换
对于3D引擎来说,把一个向量或者点从一个坐标系转换到另一个坐标系是基本的操作,比如一个模型的顶点坐标通常以对象空间的坐标形式保存,而在渲染该模型前,顶点坐标必须变换到虚拟相机空间才能被正确处理,这里就涉及到了坐标系的变换。根据上面的介绍,我们可以得出对于任何的仿射变换,比如模型空间到世界空间的变换就是仿射变换,我们都可以表示成平移向量和三个正交基向量的组合。本篇文章讲述三维笛卡尔坐标系的变换。假设现在有一个坐标系。
2024-08-30 16:15:06 405
原创 结构体和类
类可以继承,结构体不可以包括结构体在内的值类型在传递时总会被复制在类的方法或者属性前面添加关键字final,可阻止子类进行重写子类重写类方法或者属性必须添加关键字override。
2024-08-16 16:02:44 134
原创 值类型与引用类型
在Swift中,如果一个对象是用struct实现的,则该对象为值类型,在被赋值给常量或者变量时或者作为参数传递给函数时,值类型总是被复制,复制后的对象与之前的对象指向不同的内存。Swift的基本类型(Array、Dictionary、Int、String等)都是用struct实现的,所以都是值类型应该尽量优先用struct实现数据建模,只有在需要的时候才用class。
2024-08-16 15:46:58 301
原创 向量空间简介
对于含有nnn个向量的集合e1e2⋯ene1e2⋯en,如果不存在不全为0的数a1a2⋯ana1a2⋯an,使等式a1e1a2e2⋯anen0a1e1a2e2⋯anen0成立,则称向量集合线性无关,否则称为线性相关一个nnn维向量空间可以由nnn个线性无关向量的集合生成,生成向量空间的线性无关向量的集合称为线性空间的基向量空间VV。
2024-08-02 13:55:22 1046
原创 四元数旋转
在https://blog.csdn.net/b1049112625/article/details/140848588?spm=1001.2014.3001.5501这篇文章中介绍了三维旋转的概念,本篇文章介绍一种更高效的方法,四元数旋转复数zzz的一种表示方法是使用有序实数对来表示z=(x,y)z = (x,y)z=(x,y)其中,xxx为zzz的实部,yyy为zzz的虚部,xxx和yyy都是实数(0,y)(0,y)(0,y)表示纯虚数(x,0)(x,0)(x,0)表示实数另一种表示方法是使
2024-08-01 18:16:29 860
原创 三维旋转矩阵
如果对象绕与每个坐标轴均不平行的轴旋转,则需要进行额外的变换。此时,还需要进行使旋转轴与某一选定坐标轴对齐的旋转,以后要将此轴变回到原始位置。旋转后(注意,因为是逆时针旋转,所以旋转后的弧度 = 旋转前弧度 + 旋转弧度)绕x轴的旋转矩阵我们上面已经介绍了,最重要的是要知道绕。轴的旋转是最符合我们平时的认知的,因为向右是。轴,这就是我们使用的二维坐标系,下面讨论使用。轴做正向旋转,即逆时针旋转,我们取。注意,代码中的矩阵数组是列主序的。注意,代码中的矩阵数组是列主序的。注意,代码中的矩阵数组是列主序的。
2024-08-01 15:16:01 1258
原创 win11文件共享失败的问题
windows 11连接公司内部服务器报错,报错如下:因为文件共享不安全,所以你不能连接到文件共享。此共享需要过时的SMB1协议,而此协议是不安全的,可能会使你的系统遭受攻击。你的系统需要SMB2或更高版本。有关如何解决此问题的信息,请参见:https://go.microsoft.com/fwlink/?以下是参考总结的解决办法。
2024-03-14 14:47:45 1322
原创 win11创建本地局域网网站
本篇文章介绍在windows11环境下通过IIS(Internet Information Services)管理器创建局域网网站。
2024-03-14 14:46:32 819
原创 centos6.0升级python
centos6.0默认的python版本是2.6.X,现在需要升级到2.7,下面是我测试没啥问题的过程,记录一下,以备再次使用。
2024-03-13 18:12:09 589
原创 centos6.0无法使用sudo
centos6.0系统刚刚安装完成后,无法使用sudo进行管理员操作比如我们想在root文件夹下新建一个子文件夹然后我们使用依然会失败。
2024-03-13 17:39:40 468
原创 v8代码构建
V8 是 Google 的开源高性能 JavaScript 和 WebAssembly 引擎,用 C++ 编写。它用于 Chrome 和 Node.js 等。它实现了 ECMAScript 和 WebAssembly,并在 Windows 7 或更高版本、macOS 10.12+ 以及使用 x64、IA-32、ARM 或 MIPS 处理器的 Linux 系统上运行。V8 可以独立运行,也可以嵌入到任何 C++ 应用程序中。
2024-03-08 18:18:42 1130
原创 CMake设置MSVC运行库
本篇文章介绍如何在CMake中设置MSVC运行库,对应VS属性界面的选项如下:注意:对于非windows系统,该值将被忽略,所以我们设置该值的时候可以不用考虑平台相关这是一个变量,该变量就是用于设置MSVC运行库的值的,可以设置的值如下:设置的语法规则如下:重点是这一部分,这一部分的意思是如果当前是Debug模式,返回Debug,否则返回空,所以设置指令对应的VS选项如下:/Md和/MDd:默认值注意,如果没有进行设置,该选项的默认值是可以在写完cmake_minimum_require
2024-03-08 16:59:27 878
原创 mac在终端设置代理
本篇文章介绍如何在mac终端设置代理服务器,有时候,我们需要在终端进行外网的资源访问,比如我构建v8引擎项目的时候,需要使用gclient更新组件和下载构建工具。如果单单设置了计算机的代理,依然是无法下载资源的,需要在终端设置代理。
2024-03-08 11:23:38 1771
原创 Makefile笔记一
如果 Makefile 中出现一些相同命令序列,那么我们可以为这些相同的命令序列定义一 个变量。定义这种命令序列的语法以“define”开始,以“endef”结束# “run-yacc”是这个命令包的名字,其不要和 Makefile 中的变量重名endef使用命令包就和使用变量是一样的变量可以使用=进行赋值,值可以是后面定义的变量变量可以使用:=进行赋值,值只能是前面定义的变量变量可以使用?=进行赋值,如果该变量已经定义过了,忽略,否则赋值。
2024-02-21 10:24:25 863
原创 GLSL ES 1.0
GLSL ES 新引入了精度限定符,目的是帮助着色器程序提高运行效率,削减内存开支。顾名思义,精度限定符用来表示每种数据具有的精度 (比特数)。简而言之,高精度的程序需要更大的开销 (包括更大的内存和更久的计算时间),而低精度的程序需要的开销则小得多。使用精度限定符,你就能精细地控制程序在效果和性能间的平衡。GL_ES:在OpenGL ES 2.0中定义为1:片元着色器是否支持highp可以使用下面的方式对片元着色器的float进行精度设置#else#endif#endif。
2024-02-06 15:14:37 1456
原创 Qt单选按钮
本篇文章介绍Qt的单选按钮,就是QRadioButtonQRadioButton是一个选项按钮,可以打开(选中)或关闭(取消选中)。单选按钮通常向用户提供“众多之一”的选择。在一组单选按钮中,一次只能选中一个单选按钮;如果用户选择另一个按钮,则先前选择的按钮将关闭。
2024-01-24 11:24:08 823
原创 OC-NSNumber
NSNumber是基本类型的对象表示我们有时候无法直接使用基本类型,比如我们无法使用基本类型来填充NSArray数组。这个时候可以使用NSNumber。
2024-01-23 14:59:35 528
原创 C++的拷贝赋值函数
如果一个构造函数的第一个参数是自身类类型的引用,并且任何额外的参数都有默认值。则此构造函数就是拷贝构造函数参数必须是自身类类型的引用自身类类型好理解,为什么是引用?因为如果不是引用的话,在执行拷贝构造函数的时候,需要先对实参进行拷贝,此时执行的也是拷贝构造函数,这样就无限递归循环了,所以,必须是引用一般而言,拷贝构造函数的第一个参数是const类型为什么是const呢?首先拷贝构造函数的意思在于构造和拷贝,一般我们不需要改变原始的对象值。
2024-01-20 08:48:31 2696
原创 ELF文件头和段表
现代x86-64Linux和Unix系统使用可执行可链接格式(Execut- ableand LinkableFormat, ELF),与ELF同类型的文件是windows上的PE文件和MacOS-X上的Mach-O文件本篇文章讲述ELF文件的文件头和段表。
2024-01-18 09:59:06 1296
原创 OC协议和分类
协议是一组方法的接口协议采用下面的格式进行定义@protocol 协议名称// 这里定义协议的接口@required@optional@end。
2024-01-15 14:09:23 964
原创 C++的虚基类
/ 注意关键字virtualpublic:int b1 = 2;类B1就叫做从A虚继承,A在被虚继承的情况下被称为虚基类,注意,虚基类是有条件的,只有在被虚继承的时候才是虚基类。
2024-01-11 14:16:37 1148
原创 OC基本概念
一个OC类包含两部分的定义@interface部分@implementation部分@interface部分包含类的公开信息,即能和类的使用者共享的信息@implementation部分包含类的私有信息,比如实例变量和代码// 无参数的情况// -:方法类型: 实例方法是-// 类方法是+// void:返回值类型// methodName:方法名// 一个参数的情况// pType:参数类型// pName:参数名称// 多个参数的情况。
2024-01-09 13:12:46 503
原创 C++中的虚函数
在C++语言中,基类将类型相关的函数和派生类不做改变直接继承的函数区分开来。对于有些函数,基类希望派生类各自定义适合自身的版本。那么基类就会将这些函数标记为virtual,这些被标记的函数就是虚函数。下面这就是一个虚函数在代码中的定义,和普通的函数一样,只不过前面添加了关键字virtualpublic:**如果派生类想要重新定义虚函数,派生类需要在自己的类中重新声明虚函数。可以在前面添加virtual关键字,也可以不添加,建议添加。可以在函数声明的结尾添加override关键字,也可以添加,
2024-01-08 17:13:51 1434
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人