08 2019 档案
摘要:坐标变换或空间变换,本质是相对坐标的变化,绝对坐标没变。 世界空间有两个物体A,B。将A变换到B的坐标空间意思是:将A从世界空间变换到B的局部坐标空间,也就是在B的局部坐标系中重新表示A的坐标(也就是求出A在B坐标系中的相对坐标) 做法很简单: 1,A - B 得到一个向量 V, 2,把V分解(投影
阅读全文
摘要:/*** * glm中矩阵是行优先存储的,这不同于opengl默认的以列优先存储的方式??,以下面矩阵mat为例 * 它是用四个行向量来模拟存储四个行:vec4 value[4],其中 * value[0] = (1,0,0,0) = (m[0][0],m[0][1],m[0][2],m[0][3]) * value[1] = (0,1,0,0) = (m[1][0],m[1][1],m[1][2
阅读全文
摘要:根据理论:s是栈上数组,是个局部变量,出了函数后将变得无效,如上程序,printf(str)是乱码,验证了理论。 同样,在单步调试状态下查看str的值也是乱码。 但,若去掉 printf(str)这一行,则在单步调试下查看str和s2的值都是正确的结果, 这很奇怪 PS,字符串常量与变量
阅读全文
摘要:1,无法解析的外部符号,链接错误,原因:没找到某个符号(变量或函数)的定义体,一般是对应函数没实现,或第三方库没有添加到工程设置中 2,重复链接链接错误,一个定义体(实现体)被多个CPPP文件包含,导致多处定义,链接时报错 3,找不到合适的构造函数,编译器默认用拷贝构造函数去适应,结果报错,如图:
阅读全文
摘要:参考了以下两篇文章: C++编译链接原理简介 语言程序编译过程 2 问题来源:当模板文件的实现与声明分开在不同文件中时,链接时会提示找不到相应模板函数,如下 一,编译和链接的大概原理: 1,编译,遍历工程的所有代码文件,进行文件分析,这里的分析与文件后缀无关,并不是说以CPP文件为依据,源文件后缀名
阅读全文
摘要:链接如下: https://www.cnblogs.com/tonychen-tobeTopCoder/p/5199655.html
阅读全文
摘要:很多年没有写windows窗口程序了,今天自制基于vulkan的程序时遇到了一些问题,部分代码如下: 上面代码正常运行,当有消息时,windows处理消息,当没有消息时执行渲染函数vulkan_render()。 如果改一下代码:将 改为: 渲染函数 vulkan_render将永远不会被执行,循环
阅读全文
摘要:/*** *xvkBuffer作为参数比写为返回值的好处是: *1,xvkBuffer可以是堆变量或栈变量,若写为返回值则只能是堆上申请,因为必须保证它的永久性 *2,xvkBuffer或作为栈变量返回显然是不行的,因为它不持久 */ void XVulkan::CreateBuffer(VkBufferUsageFlagBits usage, UINT size, OUT XVkBuffer&...
阅读全文
摘要:旧式类型转换可应对一切转换,不管合不合理,有没有风险,你让我转我就转给你,后果自负。 新式类型转换比较安全,主要体现在父子类之间的运行时转换 dynamic_cast上,若转换失败则返回空指针,而旧式类型转换则发现不了失败(总是认为成功,永远不会返回空指针),导致运行时崩溃。 1,static_ca
阅读全文
摘要:具体理论参考官方解析: Implementing a Dispose method
阅读全文
摘要:http://qiao.github.io/PathFinding.js/visual/
阅读全文
摘要:https://blog.csdn.net/hebbely/article/details/53780562
阅读全文