- 博客(261)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 games101 hw1
Buffers:定义了缓冲区类型(颜色、深度),支持按位操作组合。Primitive:定义了图元类型(线、三角形)。:封装了顶点位置缓冲和索引缓冲的ID,确保类型安全。
2025-06-09 21:38:22
486
原创 opencv如何在仿射变换后保留完整图像内容并自动裁剪
我需要对一张图像应用仿射变换,并确保变换后的图像内容不发生信息丢失。为此,需要根据变换后图像的四个角点,计算其最小外接矩形,并以此矩形为区域裁剪变换后的图像。目标是获得一个完整、有效保留原始图像信息的最小包围图像区域。
2025-06-05 14:16:50
323
原创 从仿射矩阵得到旋转量平移量缩放量
仿射变换是一种线性变换,可以包括平移、旋转、缩放和剪切等操作。其一般公式可以表示为:具体来说,对于二维空间中的点 ((x, y)),仿射变换可以表示为:齐次坐标下:仿射变换是一种在二维或三维空间中保持点之间相对位置的几何变换。它包括平移、旋转、缩放和剪切等基本变换。仿射变换可以用矩阵表示,并且可以通过矩阵乘法进行组合。在计算机图形学和图像处理中,仿射变换是常用的技术。
2025-06-03 16:30:35
1057
原创 opentelemetry笔记
OpenTelemetry C++ 项目通过模块化设计,将接口、实现和导出器分离,提供了高效、灵活的分布式追踪和指标采集方案。它的架构保证了可扩展性,允许用户根据需求配置或扩展功能。如果需要更深入的说明,可以指定某个模块或文件!OpenTelemetry C++ 项目的架构体现了模块化、灵活性和高性能的特点。这种设计值得学习,特别是在开发分布式系统、异步处理和可扩展性框架时,可以借鉴其 API/SDK 分离、可插拔设计和高效的并发处理等技术思想。
2025-04-15 17:19:12
1114
1
原创 git 对比两种优化方法的性能
用户需要对比两种优化方法的性能,因此需要来回修改两种代码,并输出测试数据。用户需要在原始代码上修改优化方法一和优化方法二。
2025-03-31 16:59:24
554
原创 笔记:How to Optimize a CUDA Matmul Kernel for cuBLAS-like Performance: a Worklog
【代码】笔记:How to Optimize a CUDA Matmul Kernel for cuBLAS-like Performance: a Worklog。
2025-03-13 10:23:09
950
原创 flutter: table calendar笔记
我来详细解释 TableCalendar 是如何根据不同的 CalendarFormat 来显示界面的。主要逻辑在 CalendarCore 中实现。例如添加 threeWeeks 格式。
2025-02-23 18:57:42
1136
1
原创 找不到msvcp140.dll解决方法
复制到您电脑中的 C:\Windows\SysWOW64 路径下,再运行:regsvr32 MSVCP140.dll 进行注册,看看是否可以解决这个问题。如果出现找不到该文件的提示,您可以尝试在其他相同系统版本的电脑,在 C:\Windows\SysWOW64 下找到该文件,“Win+R”打开运行,键入:regsvr32 MSVCP140.dll,回车即可;二、重新安装运行库组件,即 Microsoft Visual C++ 套件,
2025-02-03 17:49:19
293
原创 日历app 开发调研
大约公元前104年至84年,以农耕文化为主的中国西汉,汉武帝刘彻责成邓平、唐都、落下闳等人编写了《太初历》,中国农历经历了第一次重大改革,引入二十四节气正式成为阴阳合历,历法在中国也成为了一门较为独立的科学技术。“通用寿星公式”属于经验公式,实际上是通过寻找一个拟合值C,来不断趋近实际的农历二十四节气,在计算结果不正确时,又套用了“某某年需要加1日,某某年需要减1日”等“特殊情况”校正值,存在农历算法不准情况,且“通用寿星公式”只输出二十四节气内容有限,无法满足用户对农历更为丰富的文化需求。
2025-01-23 11:40:00
413
2
原创 如何阅读英文文献
在写作中,逻辑不仅是内容的组织方式,也影响到语言的使用和结构的选择。通过有效运用这些逻辑,作者可以提高写作的清晰度、说服力和逻辑性,帮助读者更好地理解所表达的思想。如果你对某个特定的逻辑类型或写作方式有更多的兴趣,欢迎随时向我询问!以下是对段落结构的详细解释及如何更好地阅读英语的建议。通过理解段落结构和采用有效的阅读策略,你可以在阅读英语文献时,提高效率并加深对内容的理解。通过上述方法,你可以在阅读英语文献时提升效率和理解力。句子与句子之间的关系在写作和阅读中非常重要,因为它们有助于传达清晰的思路和逻辑。
2025-01-23 11:13:38
730
原创 获取leetcode题目内容的插件
本项目为了获取leetcode网站上一些信息,包括但不限于:题目列表、题目详情、题目提交记录、用户提交记录、用户信息等。安装 jsdom ,以下是全局安装 jsdom (可在任意地方调用 jsdom ,不局限于执行安装命令时的路径)直接使用 Node.js 运行。参考GitHub开源网站。
2025-01-22 12:10:21
484
原创 前端笔记:路由
路由是将 URL 请求映射到处理函数的过程。路径和HTTP 方法是路由的基本组成部分。处理函数定义了当路由匹配时应该执行的代码逻辑。希望这些解释能帮助你理解路由的概念。如果还有问题,随时告诉我!了解了。我们可以在本地运行这个项目,而不使用 Docker。克隆仓库安装依赖运行项目npm start实现一个简单的端点以获取用户资料详情的端点()为例。我们可以在项目的src目录下创建适当的路由和控制器。
2025-01-08 16:19:15
822
原创 github gitbook写书
在select account的下拉列表中找到你的github账号。https://www.gitbook.com/ 注册账号。比如我的github账号是yang-Alice点击它。按照步骤1的方法添加一个新的markdown文件。点击 connect with github。找到你在第一步中,github上建立的仓库名。同步完成后,通过如下方式访问你的电子书。你在主页可以看到 刚刚的test网站。提交完成后 去gitbook网站查看。回到你的github网站。点击右上角圈出来的地方。
2025-01-06 12:04:41
548
原创 C++ 高效统计函数运行时间
手动计时:灵活,但代码冗余较多。RAII定时器类:可以自动化统计时间,推荐使用。宏:最简洁的方法,方便直接在代码中随处使用。a.你想要封装更复杂的时间统计工具,比如统计多次函数运行的平均时间吗?b.是否希望将这些统计结果保存到日志文件中?为了解决a.(统计多次函数运行的平均时间)和b.统计多次函数运行的平均时间:需要在一个函数多次运行时,记录每次的运行时间,并计算出平均时间。保存到日志文件:可以通过<fstream>库将统计的运行时间结果输出到一个日志文件中。
2025-01-02 10:42:26
1002
原创 概率论深入学习书单
• 概率法 (the probabilistic method)、测度集中 (concentration of measure)、Vol. 1, 3rd Ed. William Feller. Wiley (1968). 《概率论及其应⽤》• 概率导论(第2版·修订版)(Introduction to Probability),• 经典与⻉叶斯统计的概念和语⾔(参数估计、假设检验、回归分析……• 概率空间、随机变量及其数字特征、多维及连续随机变量、极限定理。郑忠国,童⾏伟译,⼈⺠邮电出版社(2022)
2024-12-18 10:14:07
391
原创 图像缩放算法及速度优化
The fastest production-ready image resize out there. Part 1. General optimizationsHow to accelerate image resizing without screwing up
2024-09-05 15:57:57
378
原创 Jekyll Github Pages push 报错
前后加上{% raw %} {% endraw %}发现markdown格式下的代码块不能有花括号。markdown格式下的代码块中有数组用花括号。
2024-08-19 13:51:52
718
原创 纹理映射学习笔记
本文的纹理映射将三维曲面与二维的纹理建立对应关系。xxstyystzzst即给定纹理坐标(s,t),我们能可以计算出曲面坐标(x,y,z)
2024-07-29 16:49:20
835
原创 opengl 写一个3D立方体——计算机图形学编程 第4章 管理3D图形数据 笔记
在OpenGL中,缓冲区被包含在顶点缓冲对象(Vertex Buffer Object,VBO)中,VBO在C++/OpenGL 应用程序中被声明和实例化。一个场景可能需要很多VBO,所以我们常常会在init()中生成并填充若干个VBO,以备程序需要时直接使用。当glDrawArrays()执行时,缓冲区中的数据开始流动,从缓冲区的开头开始,按顺序流过顶点着色器。每个缓冲区需要有在顶点着色器中声明的相应顶点属性变量。通常会把顶点数据在C++端放入。一个缓冲区,并把这个缓冲区和着色器中声明的顶点属性相关联。
2024-07-24 12:27:31
661
原创 opengl入门之环境配置
参考:https://blog.csdn.net/qq_15722993/article/details/120340567?使用Visual Studio 2019的NuGet功能获取类库, nupengl.core,然后链接OpenGL32.lib的依赖。经过对比检查后,发现关键是在创建GAO对象前,没有等待GLEW初始化完毕,因此造成了访问冲突。如果自己的程序用debug,那么上面生成的lib最好都是debug,可能会报错。上述安装完毕可能会报链接错误,可能是由于没有OpenGL32.lib的依赖。
2024-07-18 16:24:58
426
原创 OpenMesh入门,安装,运行示例Hello World
环境 win10,qt5源码下载编译进入OpenMesh官网OpenMesh官网 https://www.graphics.rwth-aachen.de/software/openmesh/download/使用cmake gui注意:先安装qt5使用 CMake-Gui 构建 vs 2019 项目第一次configure 会报错,需要你填写QT5_DIR,如上图然后再次点击configure接着点击 generate然后用vs2019打开项目,生成。
2024-07-16 15:11:09
1373
原创 C++ 结构体内存对齐
最开始计算Cmd_t大小时 ,我以为是7bytes. 后来发现C++ 结构体在这里右4字节对齐。但是由于 将 pdata + 1 解释为 Cmd_t* 类型的指针,并将其赋给 data 成员。在实际使用中,看见前人的代码是,new 一块内存放两个结构体。我对内存大小有些疑惑。相当于 Cmd_tag.data 和 Cmd_t.ua公用一个字节的内存。一开始我以为,new一块内存存放她两需要 2+8 =10 bytes。结构体 Cmd_t 需要 8 bytes。结构体 tag_t需要2 bytes。
2024-05-15 10:53:49
410
原创 缩放算法优化步骤详解
在最里层的循环里面,每次都要计算 row / fYZoom 和 column / fXZoom,这个实际上可以挪出for循环,计算一次存到数组里。我们知道sse128可以一次性处理4个int类型,所以我们把最后一层for循环改成,4个坐标的算法,不满4个的单独计算。这个指令是使用1个i,来设置__m128i,将__m128i看做4个32位的部分,则每个部分都被赋为i;根据比例计算原图和缩放后图坐标的对应关系:缩放后图坐标*缩放比例 = 原图坐标。上面 一次处理四个坐标的代码要改成sse的代码。
2024-03-08 17:14:59
1804
原创 基于chatgpt的聊天机器人
以下是一个基于Python的示例代码,展示如何在本地环境中使用预训练的ChatGPT模型构建一个简单的聊天机器人应用程序。在这个示例中,我们将使用Hugging Face Transformers库加载GPT-2模型,并创建一个基于命令行的用户界面。步骤 1: 安装必要的库确保您已经安装了以下库:步骤 2: 编写代码。
2024-03-04 15:06:06
2209
原创 SIMD学习笔记1
参考 http://const.me/articles/simd/simd.pdf示例:对4个数字求平方使用SIMD。
2024-02-06 17:04:32
721
原创 169. Majority Element
Given an array nums of size n, return the majority element.The majority element is the element that appears more than ⌊n / 2⌋ times. You may assume that the majority element always exists in the array.Example 1:Input: nums = [3,2,3]Output: 3Example 2:Inp
2024-02-04 15:07:22
1076
C++ 代码 APP_GAME_MGR = 1 << 1 这么写的目的
2022-02-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人