From eccc0f101530c365538c7d352220bc56b6350ec2 Mon Sep 17 00:00:00 2001 From: chaochao2-0 Date: Fri, 3 Nov 2023 07:55:06 +0000 Subject: [PATCH] deploy: e4bfadc93d11ddfa52921a4ba2fcc9370fb047ec --- 2023/ESli0n0the2Pre0tti0e0rde0bi3jiao4.html | 6 +++--- 2023/G2xue2xi2.html | 6 +++--- 2023/Mo0n0o0re0po0xue2xi2.html | 6 +++--- .../1-huan2jing4an1zhuang1he2xiang4mu4da1jian4.html" | 6 +++--- "2023/Nest\345\255\246\344\271\240/qian2yan2.html" | 6 +++--- 2023/ca0dsi1lu4he2liu2cheng2.html | 6 +++--- 2023/ca0dyou1hua4.html | 12 ++++++------ 2023/flutter/da0rtxue2xi2.html | 6 +++--- 2023/flutter/flu0tte0rbu4ju2.html | 6 +++--- 2023/flutter/flu0tte0rchang2yong4zu3jian4.html | 6 +++--- 2023/flutter/flu0tte0rhuan2jing4da1jian4.html | 6 +++--- 2023/flutter/flu0tte0rshi3yong4Me0ta0l.html | 6 +++--- 2023/flutter/flu0tte0rxiang4mu4xue2xi2.html | 12 ++++++------ 2023/flutter/jie1kou3qing3qiu2.html | 6 +++--- 2023/flutter/lu4you2.html | 6 +++--- 2023/flutter/shu4ju4chi2jiu3hua4.html | 6 +++--- 2023/flutter/yi1xie1chang2yong4chang3jing3.html | 6 +++--- 2023/flutter/zhuang4tai4guan3li3.html | 6 +++--- 2023/gi0tchang2yong4ming4ling4.html | 6 +++--- 2023/gi0thu0bti2jiao1pu0llre0qu0e0st.html | 6 +++--- .../Swi0ftUIshi2zhan4.html" | 6 +++--- .../ma0chuan2jing4an1zhuang1.html" | 6 +++--- .../ios\345\255\246\344\271\240/me0ta0lxue2xi2.html" | 6 +++--- .../swi0ftUIxue2xi2.html" | 6 +++--- .../swi0fthe2flu0tte0rnei3ge4geng4hao3.html" | 6 +++--- .../ios\345\255\246\344\271\240/swi0ftxue2xi2.html" | 6 +++--- .../u0i0ki0tkai1fa1.html" | 6 +++--- ...ci4je0n0ki0n0sda3bao1dao3zhi4fu2wu4qi4ka3si3.html | 6 +++--- 2023/jiao3shou3jia4kai1fa1.html | 10 +++++----- 2023/n0gi0n0xpei4zhi4.html | 6 +++--- 2023/n0pmru0n0de0vhou4fa1sheng1le0shen2me0.html | 10 +++++----- 2023/n0px.html | 6 +++--- ...pti0o0n0sa0pi0he2co0mpo0si0to0n0a0pi0dui4bi3.html | 6 +++--- 2023/ru2he2di0yer4wei2ma3.html | 6 +++--- ...01ca0ll\343\200\201a0pply\343\200\201bi0n0d.html" | 6 +++--- ...2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.html | 10 +++++----- .../qian2yan2.html" | 6 +++--- .../xiang3ying4shi4xi4tong3.html" | 6 +++--- "2023/webGPU\345\255\246\344\271\240/WGSL.html" | 10 +++++----- .../huan3chong1qu1shi2qu3.html" | 6 +++--- .../hui4zhi4xian4duan4de0neng2li4.html" | 6 +++--- .../o0ri0llu0si0o0n0yuan2ma3xue2xi2.html" | 6 +++--- "2023/webGPU\345\255\246\344\271\240/qian2yan2.html" | 6 +++--- .../yi1xie1gu4shi4.html" | 6 +++--- .../zuo4biao1xi4.html" | 6 +++--- "2023/webgl\345\255\246\344\271\240/qian2yan2.html" | 6 +++--- .../thre0e0.jsde0yuan2ma3.html" | 6 +++--- .../zhuo2se4qi4xue2xi2.html" | 6 +++--- ...a0dti2qian2pan4duan4zi1yuan2shi4fou3cun2zai4.html | 6 +++--- 404.html | 4 ++-- ....2cd62bff.js => 2023_ca0dyou1hua4.md.c346e90c.js} | 4 ++-- ...lean.js => 2023_ca0dyou1hua4.md.c346e90c.lean.js} | 0 ...flutter_flu0tte0rxiang4mu4xue2xi2.md.b55898ca.js} | 4 ++-- ...er_flu0tte0rxiang4mu4xue2xi2.md.b55898ca.lean.js} | 2 +- ....js => 2023_jiao3shou3jia4kai1fa1.md.7f2baba3.js} | 2 +- ...> 2023_jiao3shou3jia4kai1fa1.md.7f2baba3.lean.js} | 2 +- ...ru0n0de0vhou4fa1sheng1le0shen2me0.md.2ef37717.js} | 2 +- ...de0vhou4fa1sheng1le0shen2me0.md.2ef37717.lean.js} | 2 +- ...0n0t-plu0sde0vi0te0Pre0sspei4zhi4.md.86c6ddbe.js} | 2 +- ...plu0sde0vi0te0Pre0sspei4zhi4.md.86c6ddbe.lean.js} | 2 +- ...bGPU\345\255\246\344\271\240_WGSL.md.c78978e1.js" | 2 +- ...345\255\246\344\271\240_WGSL.md.c78978e1.lean.js" | 2 +- assets/{app.0e1ca757.js => app.a10be103.js} | 2 +- assets/chunks/@localSearchIndexroot.da0703be.js | 1 - assets/chunks/@localSearchIndexroot.f4b49530.js | 1 + ...hBox.3ae6b216.js => VPLocalSearchBox.b62f6905.js} | 2 +- assets/chunks/pinyin.data.7aef660e.js | 1 - assets/chunks/pinyin.data.f658c8fa.js | 1 + .../chunks/{theme.ce6d32d1.js => theme.14e22398.js} | 2 +- ...0ec3.js => demo_xiao4guo3can1kao3.md.c7c31bdc.js} | 4 ++-- ...js => demo_xiao4guo3can1kao3.md.c7c31bdc.lean.js} | 0 .../{index.md.80f2f17d.js => index.md.0f367b8f.js} | 2 +- ...md.80f2f17d.lean.js => index.md.0f367b8f.lean.js} | 2 +- .../\351\200\237\350\256\260_01.md.8cd0278c.js" | 2 +- .../\351\200\237\350\256\260_01.md.8cd0278c.lean.js" | 2 +- demo/xiao4guo3can1kao3.html | 12 ++++++------ hashmap.json | 2 +- index.html | 10 +++++----- ...duan3bu4zu2yi3xie3yi1pian1bo2ke4de0dong1xi1.html" | 6 +++--- "\351\200\237\350\256\260/01.html" | 10 +++++----- "\351\200\237\350\256\260/we0bgl.html" | 6 +++--- 81 files changed, 210 insertions(+), 210 deletions(-) rename assets/{2023_ca0dyou1hua4.md.2cd62bff.js => 2023_ca0dyou1hua4.md.c346e90c.js} (99%) rename assets/{2023_ca0dyou1hua4.md.2cd62bff.lean.js => 2023_ca0dyou1hua4.md.c346e90c.lean.js} (100%) rename assets/{2023_flutter_flu0tte0rxiang4mu4xue2xi2.md.6df3122a.js => 2023_flutter_flu0tte0rxiang4mu4xue2xi2.md.b55898ca.js} (54%) rename assets/{2023_flutter_flu0tte0rxiang4mu4xue2xi2.md.6df3122a.lean.js => 2023_flutter_flu0tte0rxiang4mu4xue2xi2.md.b55898ca.lean.js} (65%) rename assets/{2023_jiao3shou3jia4kai1fa1.md.45a40831.js => 2023_jiao3shou3jia4kai1fa1.md.7f2baba3.js} (99%) rename assets/{2023_jiao3shou3jia4kai1fa1.md.45a40831.lean.js => 2023_jiao3shou3jia4kai1fa1.md.7f2baba3.lean.js} (92%) rename assets/{2023_n0pmru0n0de0vhou4fa1sheng1le0shen2me0.md.f131a4f6.js => 2023_n0pmru0n0de0vhou4fa1sheng1le0shen2me0.md.2ef37717.js} (99%) rename assets/{2023_n0pmru0n0de0vhou4fa1sheng1le0shen2me0.md.f131a4f6.lean.js => 2023_n0pmru0n0de0vhou4fa1sheng1le0shen2me0.md.2ef37717.lean.js} (96%) rename assets/{2023_vitePress_xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.md.1b4135f9.js => 2023_vitePress_xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.md.86c6ddbe.js} (99%) rename assets/{2023_vitePress_xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.md.1b4135f9.lean.js => 2023_vitePress_xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.md.86c6ddbe.lean.js} (95%) rename "assets/2023_webGPU\345\255\246\344\271\240_WGSL.md.663139ea.js" => "assets/2023_webGPU\345\255\246\344\271\240_WGSL.md.c78978e1.js" (99%) rename "assets/2023_webGPU\345\255\246\344\271\240_WGSL.md.663139ea.lean.js" => "assets/2023_webGPU\345\255\246\344\271\240_WGSL.md.c78978e1.lean.js" (85%) rename assets/{app.0e1ca757.js => app.a10be103.js} (95%) delete mode 100644 assets/chunks/@localSearchIndexroot.da0703be.js create mode 100644 assets/chunks/@localSearchIndexroot.f4b49530.js rename assets/chunks/{VPLocalSearchBox.3ae6b216.js => VPLocalSearchBox.b62f6905.js} (99%) delete mode 100644 assets/chunks/pinyin.data.7aef660e.js create mode 100644 assets/chunks/pinyin.data.f658c8fa.js rename assets/chunks/{theme.ce6d32d1.js => theme.14e22398.js} (99%) rename assets/{demo_xiao4guo3can1kao3.md.6e170ec3.js => demo_xiao4guo3can1kao3.md.c7c31bdc.js} (99%) rename assets/{demo_xiao4guo3can1kao3.md.6e170ec3.lean.js => demo_xiao4guo3can1kao3.md.c7c31bdc.lean.js} (100%) rename assets/{index.md.80f2f17d.js => index.md.0f367b8f.js} (96%) rename assets/{index.md.80f2f17d.lean.js => index.md.0f367b8f.lean.js} (83%) rename "assets/\351\200\237\350\256\260_01.md.99a1f2fb.js" => "assets/\351\200\237\350\256\260_01.md.8cd0278c.js" (99%) rename "assets/\351\200\237\350\256\260_01.md.99a1f2fb.lean.js" => "assets/\351\200\237\350\256\260_01.md.8cd0278c.lean.js" (83%) diff --git a/2023/ESli0n0the2Pre0tti0e0rde0bi3jiao4.html b/2023/ESli0n0the2Pre0tti0e0rde0bi3jiao4.html index 03cc1ac..48f7bc5 100644 --- a/2023/ESli0n0the2Pre0tti0e0rde0bi3jiao4.html +++ b/2023/ESli0n0the2Pre0tti0e0rde0bi3jiao4.html @@ -6,10 +6,10 @@ ESlint和Prettier的比较 | 轻踏云层 - + - + @@ -22,7 +22,7 @@ "editor.codeActionsOnSave": { "source.fixAll": true } - diff --git a/2023/G2xue2xi2.html b/2023/G2xue2xi2.html index d925910..1527bae 100644 --- a/2023/G2xue2xi2.html +++ b/2023/G2xue2xi2.html @@ -6,10 +6,10 @@ G2 | 轻踏云层 - + - + @@ -280,7 +280,7 @@ <template> <div id="container"></div> </template> - diff --git a/2023/Mo0n0o0re0po0xue2xi2.html b/2023/Mo0n0o0re0po0xue2xi2.html index 753cdb4..90d36b2 100644 --- a/2023/Mo0n0o0re0po0xue2xi2.html +++ b/2023/Mo0n0o0re0po0xue2xi2.html @@ -6,10 +6,10 @@ Monorepo学习 | 轻踏云层 - + - + @@ -49,7 +49,7 @@ "typecheck:play": "vue-tsc -p tsconfig.play.json --composite false --noEmit", "typecheck:vite-config": "vue-tsc -p tsconfig.vite-config.json --composite false --noEmit", "typecheck:vitest": "vue-tsc -p tsconfig.vitest.json --composite false --noEmit",

vue-tsc是基于Volarvue3类型检查工具,执行vue-tsc --noEmit时使用命令行参数--project(或-p)指定配置文件进行类型检查。--composite false不进行增量编译,增量编译指的是生成 .d.tstsconfig.tsbuildinfo 文件,使用 vue-tsc 法语检查时不能设置为true。 这里element-plus的配置命令,配置下面五个类型检查命令分别进行对应模块的类型检查,最后配置一个typecheck命令,并行对所有模块类型进行检查。

学习参考链接

Monorepo学习、typescript配置、串行/并行执行脚本、npm-run-all:https://juejin.cn/post/7146183222425518093?searchId=20230726141301208A558690115E13CC04#heading-14

- diff --git "a/2023/Nest\345\255\246\344\271\240/1-huan2jing4an1zhuang1he2xiang4mu4da1jian4.html" "b/2023/Nest\345\255\246\344\271\240/1-huan2jing4an1zhuang1he2xiang4mu4da1jian4.html" index a761f7e..2ca2309 100644 --- "a/2023/Nest\345\255\246\344\271\240/1-huan2jing4an1zhuang1he2xiang4mu4da1jian4.html" +++ "b/2023/Nest\345\255\246\344\271\240/1-huan2jing4an1zhuang1he2xiang4mu4da1jian4.html" @@ -6,17 +6,17 @@ 环境安装和项目搭建 | 轻踏云层 - + - +
Skip to content
On this page

环境安装和项目搭建

node版本需要>=12

js
npm i -g @nestjs/cli
 nest new chaochao-cli

我这里选择使用pnpm作为包管理工具,项目新建结束运行pnpm run start即可运行项目,轻松简单。

看新建的项目目录可以看到,项目中不仅使用Prettier,还使用ESlint,后续学习一下如何使用ESlint的配置安装。

- diff --git "a/2023/Nest\345\255\246\344\271\240/qian2yan2.html" "b/2023/Nest\345\255\246\344\271\240/qian2yan2.html" index 87766a8..c2ab041 100644 --- "a/2023/Nest\345\255\246\344\271\240/qian2yan2.html" +++ "b/2023/Nest\345\255\246\344\271\240/qian2yan2.html" @@ -6,16 +6,16 @@ 前言 | 轻踏云层 - + - +
Skip to content
On this page

前言

先把文件夹建好,时刻提醒自己这个东西要去学

- diff --git a/2023/ca0dsi1lu4he2liu2cheng2.html b/2023/ca0dsi1lu4he2liu2cheng2.html index 9e13a86..c8db3f7 100644 --- a/2023/ca0dsi1lu4he2liu2cheng2.html +++ b/2023/ca0dsi1lu4he2liu2cheng2.html @@ -6,16 +6,16 @@ cad思路和流程 | 轻踏云层 - + - +
Skip to content
On this page

cad思路和流程

这次的升级思路:

  • 将除了文字以外的所有物体打碎成线段
  • 处理解析的数据,拿到按外层entries解析的图元数据
  • 选中图元

使用dxf-parse解析获取cad图纸中的第一手原始数据

基于cad的一些设计的思路: 如果cad图纸中的一个个的图元能被我剔除出来,那我这边其实可以根据图元来生成图元库,用户可以创建自己的图元库在我们的网页上进行一个更轻量化的图纸开发。甚至我们可以提供3D场景让用户自己根据2d图纸来构件自己的3d场景并自己绑定好对应的二三维联动关系。

这个思路其实不仅仅适用于cad,它更多的适用于需要做设计的地方。幻想一下,如果我能联系到瓷板店铺、灯光店铺、木材店铺,将他们能够提供的材料和材质入库。这样其实能够让用户自己设计自己的房子,甚至他能够决定每一个细节应该怎样落地,设计好以后平台会告诉他,基于这套设计的一个总体报价以及具体的购买方式,甚至更强大一点,平台能够根据他的设计来进行智能提示:比如防火提醒、安全提醒、更优方案提醒等等。再提供给用户一个类似游戏视角的环境漫游功能,让用户能够真实的进到自己设计的房子内部进行各种参观。如果再细节一点,我们还能根据具体材质的隔音效果来进行隔音测试,比如在一个房间里面放上一个音响,用户在模型中漫游的时候会根据距离这个房间的远近和房间的材质会有一个音效放大缩小的一个效果。

而每一个用户设计的小房子,在cesium地图的加持下,这能够真正放大成为数字化智慧城市!

有的时候缺的其实并不是那么多奇思妙想的思路,而是需要有人去做。相信我上面的想法很多人都有过,一个数字化的构想,又或者说:元宇宙。很美,但也不真实,多在图形学的世界里面走一走,走的远一些,再回头看看。 以上文字落笔:2023/8/11

怕什么真理无穷,进一寸有一寸的欢喜

- diff --git a/2023/ca0dyou1hua4.html b/2023/ca0dyou1hua4.html index beed3df..6fa2e17 100644 --- a/2023/ca0dyou1hua4.html +++ b/2023/ca0dyou1hua4.html @@ -6,15 +6,15 @@ cad优化 | 轻踏云层 - + - - + + -
Skip to content
On this page

cad优化

  • dxf-parse: 从def数据中解析最原始的数据出来,然后交给shape-parse层
  • shape-parse层拿到原始数据后,将数据区分为: models(普通数据)、insert(insrt、dimension数据) ,同时会将所有的线性类型数据全部转为线段数据,它是一个中间层数据处理
  • draw-three 中会先对所有的普通数据合模,然后将insert中的数据进行合模绘制。在具体的合模中还需要根据layer来划分数据合模
ts
// 在合模的方法中,进行绘制前,先使用 three 的 BufferGeometry先进行insert数据的旋转、缩放等处理,处理成positions后,再统一合模
+    
Skip to content
On this page

cad优化

  • dxf-parse: 从dxf数据中解析最原始的数据出来,然后交给shape-parse层
  • shape-parse层拿到原始数据后,将数据区分为: models(普通数据)、insert(insrt、dimension数据) ,同时会将所有的线性类型数据全部转为线段数据,它是一个中间层数据处理
  • draw-three 中会先对所有的普通数据合模,然后将insert中的数据进行合模绘制。在具体的合模中还需要根据layer来划分数据合模
ts
// 在合模的方法中,进行绘制前,先使用 three 的 BufferGeometry先进行insert数据的旋转、缩放等处理,处理成positions后,再统一合模
 let mergeGeometry = new THREE.BufferGeometry()
 
 if (index === 8) {
@@ -41,7 +41,7 @@
 }
 if (position) {
     geometry.translate(position.x, position.y, 0)
-}

计算边界的逻辑也可以放到 draw-three 中进行绘制

包围盒自己实现不了,我无法得到线段什么时候需要闭合,什么时候转弯的时候内圈的线段要比外圈要小 换一种思路:用粗线的线宽来实现这种包围盒效果

文字优化

为了让文字可以很好的进行各种旋转,一直在用 troika-three-text 在处理Mtext类型的数据,然后这个库绘制文字使用的是纹理绘制,会有很大的性能开销。而three.js官方使用的 FontLoader 加载json字体文件则使用的是文字数据生成geometry来进行绘制。理论上,我们可以制作自己的font字体文件,来满足cad的各种文字需求,并可以通过 geometry 通过合模操作来进行性能优化

???突然发现字体转为json的facetype.js竟然是一个开源的js库,那岂不是还可以更进一步,能根据用户图片中的具体文字内容来生成最简洁的font字体文件 不可行,字体文件必须引入所有文字,因为批注功能需要输入,这就必须有所有文字可供批注添加

后面的优化方向

  • 使用webworker开多线程进行数据处理的优化、还可以使用wasm方案
  • 对图纸进行分层加载,避免大图纸加载时间过长
  • 手绘线的平滑优化,关于批注的移动可以参考three中的 webgl_geometry_spline_editor 案例
  • 碰撞案例:webgl_mirror
  • 文字破碎的案例:webgl_modifier_tessellation
  • 一个页面中渲染多个three内容: webgl_multiple_elements
  • 多视角渲染的案例:webgl_multiple_views
  • 飞鸟案例:鸟会根据鼠标位置进行驱散: webgl_gpgpu_birds

svg的提取尝试

如果可以将正常图片转化为svg格式图片,然后将svg用three.js中的svgloader来加载出来并进行一些数据优化处理,这样就可以通过图片来实现一些thre场景中的数据加载,比如我想在three中绘制一个雾山五行的角色,那我只需要一张图片,然后转为svg,再进行一些处理就可以实现吗? https://convertio.co/zh/ 这个网站可以将图片转为svg,但是颜色等信息会丢失 有没有一些很好的方法能够将普通图片转化为svg,并且还能保证图片不失真? html2canvas支持将页面保存为svg图片?

目前使用文心一言和通义千问都无法直接生成svg格式的图片,先实现通过svg来提取图片中的内容

cad的内存泄漏问题

因为文字使用了线条来绘制,这样就造成了大量的线条数据,一张文字比较多的图纸,解析下来的数据量有1-2G,这是一个很恐怖的内容问题,导致图纸根据渲染不出来,直接报错:Uncaught (in promise) RangeError: Maximum call stack size exceeded。调用栈溢出,这样就必须要进行内存上的一个优化处理了。

堆栈溢出:在计算机科学中是指使用过多的存储器时导致调用堆栈产生的溢出。堆栈溢出的产生是由于过多的函数调用,导致使用的调用堆栈大小超过事先规划的大小,覆盖其他存储器内的资料,一般在递归中产生。堆栈溢出很可能由无限递归产生,但也可能仅仅是过多的堆栈层级。

由于文字转线条绘制的数据量比较大,大概一个数组的长度如果超过4千万,浏览器就会报错。

这次堆栈溢出的原因是:我用了多次数组结构出现了堆栈溢出,实际场景的代码比较复杂,后续尝试简单复现却并没有将问题复现出来。尝试复现的代码如下:

ts
let position = []
+}

计算边界的逻辑也可以放到 draw-three 中进行绘制

包围盒自己实现不了,我无法得到线段什么时候需要闭合,什么时候转弯的时候内圈的线段要比外圈要小 换一种思路:用粗线的线宽来实现这种包围盒效果

文字优化

为了让文字可以很好的进行各种旋转,一直在用 troika-three-text 在处理Mtext类型的数据,然后这个库绘制文字使用的是纹理绘制,会有很大的性能开销。而three.js官方使用的 FontLoader 加载json字体文件则使用的是文字数据生成geometry来进行绘制。理论上,我们可以制作自己的font字体文件,来满足cad的各种文字需求,并可以通过 geometry 通过合模操作来进行性能优化

???突然发现字体转为json的facetype.js竟然是一个开源的js库,那岂不是还可以更进一步,能根据用户图片中的具体文字内容来生成最简洁的font字体文件 不可行,字体文件必须引入所有文字,因为批注功能需要输入,这就必须有所有文字可供批注添加

后面的优化方向

  • 使用webworker开多线程进行数据处理的优化、还可以使用wasm方案
  • 对图纸进行分层加载,避免大图纸加载时间过长
  • 手绘线的平滑优化,关于批注的移动可以参考three中的 webgl_geometry_spline_editor 案例
  • 碰撞案例:webgl_mirror
  • 文字破碎的案例:webgl_modifier_tessellation
  • 一个页面中渲染多个three内容: webgl_multiple_elements
  • 多视角渲染的案例:webgl_multiple_views
  • 飞鸟案例:鸟会根据鼠标位置进行驱散: webgl_gpgpu_birds

svg的提取尝试

如果可以将正常图片转化为svg格式图片,然后将svg用three.js中的svgloader来加载出来并进行一些数据优化处理,这样就可以通过图片来实现一些thre场景中的数据加载,比如我想在three中绘制一个雾山五行的角色,那我只需要一张图片,然后转为svg,再进行一些处理就可以实现吗? https://convertio.co/zh/ 这个网站可以将图片转为svg,但是颜色等信息会丢失 有没有一些很好的方法能够将普通图片转化为svg,并且还能保证图片不失真? html2canvas支持将页面保存为svg图片?

目前使用文心一言和通义千问都无法直接生成svg格式的图片,先实现通过svg来提取图片中的内容

cad的内存泄漏问题

因为文字使用了线条来绘制,这样就造成了大量的线条数据,一张文字比较多的图纸,解析下来的数据量有1-2G,这是一个很恐怖的内存问题,导致图纸根据渲染不出来,直接报错:Uncaught (in promise) RangeError: Maximum call stack size exceeded。调用栈溢出,这样就必须要进行内存上的一个优化处理了。

堆栈溢出:在计算机科学中是指使用过多的存储器时导致调用堆栈产生的溢出。堆栈溢出的产生是由于过多的函数调用,导致使用的调用堆栈大小超过事先规划的大小,覆盖其他存储器内的资料,一般在递归中产生。堆栈溢出很可能由无限递归产生,但也可能仅仅是过多的堆栈层级。

由于文字转线条绘制的数据量比较大,大概一个数组的长度如果超过4千万,浏览器就会报错。

这次堆栈溢出的原因是:我用了多次数组结构出现了堆栈溢出,实际场景的代码比较复杂,后续尝试简单复现却并没有将问题复现出来。尝试复现的代码如下:

ts
let position = []
 for (let i = 0; i < 10000; i++) {
     let arr = [
         {
@@ -111,7 +111,7 @@
 const material = new THREE.LineBasicMaterial({ color: 0xff0000 })
 const curveObject = new THREE.Line(geometry, material)
 scene.add(curveObject)

在两点之间找两个控制点,用贝塞尔曲线再次将随机点连起来,这样就能得到一条平滑的曲线。比如P0和P3的需要连接的起始点和终点,P1和P2是需要添加的控制点。那么P1需要添加在P0右侧,并且与P0的y相同;P2需要添加在P3左侧,与P3的y相同。这样就能在P0和P3之间得到一条平滑的曲线

- diff --git a/2023/flutter/da0rtxue2xi2.html b/2023/flutter/da0rtxue2xi2.html index 300775e..be0c7d1 100644 --- a/2023/flutter/da0rtxue2xi2.html +++ b/2023/flutter/da0rtxue2xi2.html @@ -6,10 +6,10 @@ dart学习 | 轻踏云层 - + - + @@ -179,7 +179,7 @@ await sink.flush(); await sink.close(); }

AR sdk学习了解

NVIDIA CloudXR SDK

NVIDIA CloudXR SDK由服务器驱动程序、客户端SDK和示例客户端应用程序组成。 一端是越来越轻便的终端设备,一端是算力无穷的云,这就是CloudXR的精髓所在。

服务器驱动程序通过与SteamVR集成,对渲染的帧和系统音频进行编码,并将帧和声音发送给客户端进行解码和显示,从而将OpenVR应用程序中的音频和视频内容提供给客户端。服务器驱动程序还通过使用SteamVR接收来自客户端设备的运动和控制数据,SteamVR作为预构建包提供,并带有自己的安装程序。

cloudXR平台基于腾讯云的部署和应用:https://www.zhihu.com/zvideo/1365679354203189248

ARKit

ARKit: ARKit提供的功能总体可以分为三个部分:运动跟踪、场景理解、渲染。 运动跟踪、场景理解上我们无需关注细节,在API层面ARKit中的ARSession给我们提供了打开摄像头去检测、跟踪当前环境(空间、平面、人脸、图片、物体)的能力。严格来讲ARKit并没有渲染的能力,AR的渲染需要依赖其他第三方渲染框架,如3D SceneKit2D SpriteKitMetal等。这得益于ARKit提供连续的摄像头图像流,可以方便的对接其他渲染。 ARKit官方文档:https://developer.apple.com/cn/documentation/arkit/https://github.com/Wejua/Demos/tree/main/Demos/SubDemos/ARKitDemo

ARCore文档:https://developers.google.com/ar/develop?hl=zh-cn

Metal

官网的开发文档:https://developer.apple.com/cn/metal/ 用Metal绘制一个三角形: https://juejin.cn/post/7215891370890952741?searchId=20231016171400C70564938D162C20BC4F

flutter中如何使用ARKit和ARCore来实现一个AR APP的开发

CloudXR部署:

  • 安装CloudXR ServerCloudXR-Setup.exe,此软件可在NVIDIA CloudXR网站申请获得
  • 构建CloudXR PICO客户端,生成apk过程。如果您已获得编译好的apkPICO设备已安装过了可略过
  • github下载并用Android Studio打开CloudXR_Client_Demo Android工程
  • Android StudioBuild Android工程,生成apk安装包并安装到PICO
  • 创建CloudXRLanchOptions.txt文件,文件内容为: -s <您的电脑的IP地址>
  • CloudXRLanchOptions.txt文件拷贝到PICO硬盘根目录中
  • 先在电脑上运行SteamVR然后在PICO上运行刚安装的CloudXR客户端软件:nativexr_cloudxr_client_demo
  • PICO自动进入SteamVR界面,无线串流成功
  • 打开UE5,创建一个Collab Viewer模板工程,构建一个UE5 VR应用程序并通过CloudXR无线串流到PICO
  • 工程打开后启用SteamVROpenXR Plugins,然后按要求重启本地UE5项目
  • 项目重启后可以看到VR Preview功能已开启,确认PICO还在刚才SteamVR的界面,已连接未待机的状态,点击VR Preview运行
- diff --git a/2023/flutter/flu0tte0rbu4ju2.html b/2023/flutter/flu0tte0rbu4ju2.html index a126c75..2e6d434 100644 --- a/2023/flutter/flu0tte0rbu4ju2.html +++ b/2023/flutter/flu0tte0rbu4ju2.html @@ -6,10 +6,10 @@ flutter学习 | 轻踏云层 - + - + @@ -125,7 +125,7 @@ // 用函数这里可以传参 List<Container> _buildGridTileList() => List.generate( count, (i) => Container(child: Image.asset('assets/images/bg.png')));

StatelessWidget和StatefulWidget的区别

简单理解:

声明周期理解: 在Flutter中,StatelessWidget是一种表示不可变部件的基类,它的状态在创建后不能改变,除非由父部件重新创建。因此,它没有像StatefulWidget那样的生命周期方法。StatelessWidget的构建是纯粹的,它接受一组参数并返回一个在给定参数下可视化的部件。

StatelessWidget的生命周期:

在Flutter中,StatefulWidget是一种可变的部件,它有一些特定的生命周期方法,用于管理部件的状态和响应不同阶段的变化。 StatefulWidget的生命周期:

unity3d对cloudXR的支持度更好

ARKit插件: https://pub.dev/packages/arkit_plugin/versions ARCore插件: https://pub.dev/packages/arcore_flutter_plugin/versions

GetX

GetX是第三方的状态管理插件,不仅具有状态管理的功能,还具有路由管理、主题管理、国际化多语言管理、Obx局部更新、网络请求、数据验证等功能,相比其他状态管理插件GetX简单、功能强大并且高性能。 模块化机制,只会打包正在使用的相关功能

- diff --git a/2023/flutter/flu0tte0rchang2yong4zu3jian4.html b/2023/flutter/flu0tte0rchang2yong4zu3jian4.html index d4837e9..3c8f7a0 100644 --- a/2023/flutter/flu0tte0rchang2yong4zu3jian4.html +++ b/2023/flutter/flu0tte0rchang2yong4zu3jian4.html @@ -6,10 +6,10 @@ flutter常用组件 | 轻踏云层 - + - + @@ -205,7 +205,7 @@ value: 0.9, // 如果进度是确定的,那么可以设置进度百分比,0-1 ) ) - diff --git a/2023/flutter/flu0tte0rhuan2jing4da1jian4.html b/2023/flutter/flu0tte0rhuan2jing4da1jian4.html index 56ed5f6..24d580f 100644 --- a/2023/flutter/flu0tte0rhuan2jing4da1jian4.html +++ b/2023/flutter/flu0tte0rhuan2jing4da1jian4.html @@ -6,10 +6,10 @@ flutter入门学习 | 轻踏云层 - + - + @@ -49,7 +49,7 @@ fvm list // 切换flutter版本 fvm use 3.10.0

我安装的fvm并没有像博客中的那样有.fvm文件夹,安装过程等待了很久,效果却一点都不好,暂时放弃使用fvm工具 https://juejin.cn/post/6939712499465846798?searchId=20231101165324A5F32542D249556280AC

先确认flutter和dart是否能够做AR sdk的这个事情 如果能够做,sdk如何发包?如何维护? flutter如何打包成各种版本的app,如何上架?

AR的画面是视频流还是像webgl一样,用ios的调用gpu的方法实现? 如果AR的画面是调用gpu实现的,flutter是否可以实现?

Impeller

ImpellerFlutter团队自研的渲染引擎,它的最终目标是在Flutter中取代当前的渲染引擎SkiaImpeller的出现是Flutter团队用以彻底解决SkSL(Skia Shading Language)引入的Jank问题所做的重要尝试。

背景:SkSL引入的卡顿问题: Skia在第一次使用某个着色器时,需要动态生成对应的着色器代码并对其进行编译(着色器代码可以简单理解为一段跑在GPU上的代码)。这个过程可能会非常耗时,有时候会有几十甚至上百毫秒的一个耗时。

Impeller shader的离线编译: 与Skia不同的是,Impeller中的shader并不需要在运行时动态生成,而是提前写好,并通过离线编译的方式打到引擎之中的。

Impeller中的shader是使用GLSL 4.60写的。而我们知道Metal后端需要的shader语言是MSL(Metal shading language),那么Impeller是如何做到将GLSL4.60转换成MSL的呢? 在引擎编译阶段,ImpellerC会借助ShaderC,将GLSL转换为SPIR-V Assembly。然后再借助SPIR-V CrossSPIR-V Assembly反汇编为SPIR-V IR,并根据SPIR-V IR生成相应的MSL源码,最终将MSL编译链接得到Metal Library并将其打包到engine当中。 同时,ImpellerC中的Refector根据SPIR-V IR中的数据,根据不同的后端,生成对应的c++文件,用于绑定数据等。

HappinessX

核心组成是Flutter Plugin + AS插件,它提供了一套基于GetX极致简洁高效的Flutter业务开发范式,以及针对混合工程的提效工具。配套的AS插件帮助建立开发规范和进一步提高开发效率。

Json2Dart GetX使用和插件:https://juejin.cn/post/6924104248275763208?searchId=202310180953376667B7DB9CBFC16C956B

Skia

chrome浏览器中,SkiaBlink渲染引擎的一部分,Blink渲染引擎是Google开发的一种基于WebKit的渲染引擎,用于处理HTMLCSSJavaScript的渲染。Blink渲染引擎使用Skia来处理所有的2D图形操作,以提高网页的渲染性能。

chrome显示一个页面,也是通过CPUGPU共同处理显示出来的。而WebGL这样的技术让开发者可以直接自己操作GPU进行绘制。

- diff --git a/2023/flutter/flu0tte0rshi3yong4Me0ta0l.html b/2023/flutter/flu0tte0rshi3yong4Me0ta0l.html index 5e2e875..6a1e369 100644 --- a/2023/flutter/flu0tte0rshi3yong4Me0ta0l.html +++ b/2023/flutter/flu0tte0rshi3yong4Me0ta0l.html @@ -6,10 +6,10 @@ Flutter中使用Metal | 轻踏云层 - + - + @@ -28,7 +28,7 @@ // 给文件重新赋予权限 chmod -R 777 文件路径 - diff --git a/2023/flutter/flu0tte0rxiang4mu4xue2xi2.html b/2023/flutter/flu0tte0rxiang4mu4xue2xi2.html index 643268e..184fb05 100644 --- a/2023/flutter/flu0tte0rxiang4mu4xue2xi2.html +++ b/2023/flutter/flu0tte0rxiang4mu4xue2xi2.html @@ -6,18 +6,18 @@ flutter项目学习 | 轻踏云层 - + - - + + -
Skip to content
On this page

flutter项目学习

7个Flutter开源项目让你成为更好的Flutter开发者 https://juejin.cn/post/7219234932735934524

键盘弹起页面布局上移问题

Scaffold中加上resizeToAvoidBottomInset: false

dart
Scaffold(
+    
Skip to content
On this page

flutter项目学习

7个Flutter开源项目让你成为更好的Flutter开发者 https://juejin.cn/post/7219234932735934524

键盘弹起页面布局上移问题

Scaffold中加上resizeToAvoidBottomInset: false

dart
Scaffold(
     resizeToAvoidBottomInset: false, // 禁止布局随着键盘上移动
-    body:

Flutter打包问题

  • Android Studio中用Flutter build ios打包,打包后会生成build文件夹
  • 打开Xcode,选择Window -> Devices and Simulators打开设备管理器
  • 在设备管理器选择设备,然后点击右侧的+按钮
  • 在弹出的窗口中选择刚才打包生成的build文件夹下的ios -> iphoneos -> Runner.app即可安装到设备上
- diff --git a/2023/flutter/jie1kou3qing3qiu2.html b/2023/flutter/jie1kou3qing3qiu2.html index 353002c..fd84fb9 100644 --- a/2023/flutter/jie1kou3qing3qiu2.html +++ b/2023/flutter/jie1kou3qing3qiu2.html @@ -6,10 +6,10 @@ 接口请求 | 轻踏云层 - + - + @@ -304,7 +304,7 @@ ); } }
- diff --git a/2023/flutter/lu4you2.html b/2023/flutter/lu4you2.html index 7bec880..58e23a8 100644 --- a/2023/flutter/lu4you2.html +++ b/2023/flutter/lu4you2.html @@ -6,10 +6,10 @@ 路由 | 轻踏云层 - + - + @@ -239,7 +239,7 @@ ); } } - diff --git a/2023/flutter/shu4ju4chi2jiu3hua4.html b/2023/flutter/shu4ju4chi2jiu3hua4.html index d6b219d..96e8d28 100644 --- a/2023/flutter/shu4ju4chi2jiu3hua4.html +++ b/2023/flutter/shu4ju4chi2jiu3hua4.html @@ -6,10 +6,10 @@ 数据持久化 | 轻踏云层 - + - + @@ -89,7 +89,7 @@ ); } } - diff --git a/2023/flutter/yi1xie1chang2yong4chang3jing3.html b/2023/flutter/yi1xie1chang2yong4chang3jing3.html index f2c579b..dffd21a 100644 --- a/2023/flutter/yi1xie1chang2yong4chang3jing3.html +++ b/2023/flutter/yi1xie1chang2yong4chang3jing3.html @@ -6,10 +6,10 @@ 一些常用场景 | 轻踏云层 - + - + @@ -216,7 +216,7 @@ }); print(result); } - diff --git a/2023/flutter/zhuang4tai4guan3li3.html b/2023/flutter/zhuang4tai4guan3li3.html index f16001c..760502a 100644 --- a/2023/flutter/zhuang4tai4guan3li3.html +++ b/2023/flutter/zhuang4tai4guan3li3.html @@ -6,10 +6,10 @@ 状态管理 | 轻踏云层 - + - + @@ -77,7 +77,7 @@ ); } }

路由管理

GetX路由管理:https://juejin.cn/post/7234324615015497787?searchId=202310241527044F1DA052B7258FB7A7F1

- diff --git a/2023/gi0tchang2yong4ming4ling4.html b/2023/gi0tchang2yong4ming4ling4.html index 808cfa6..293c81c 100644 --- a/2023/gi0tchang2yong4ming4ling4.html +++ b/2023/gi0tchang2yong4ming4ling4.html @@ -6,10 +6,10 @@ git常用命令 | 轻踏云层 - + - + @@ -35,7 +35,7 @@ // fatal: Need to specify how to reconcile divergent branches. 执行 git config pull.rebase false 然后来合并代码 - diff --git a/2023/gi0thu0bti2jiao1pu0llre0qu0e0st.html b/2023/gi0thu0bti2jiao1pu0llre0qu0e0st.html index 37adc45..e61915d 100644 --- a/2023/gi0thu0bti2jiao1pu0llre0qu0e0st.html +++ b/2023/gi0thu0bti2jiao1pu0llre0qu0e0st.html @@ -6,16 +6,16 @@ 提交Pull Request | 轻踏云层 - + - +
Skip to content
On this page

提交Pull Request

bash
// TODO:提交pull request需要实操一遍
  • 首先需要fork这个项目,进入项目页面,点击右上角的fork按钮
  • 你的github账号中会出现这个项目
  • 在本地拉取github的代码并添加远程地址
  • 获取项目最新代码
  • 创建分支:一般都创建一个新的分支来修改代码
  • 合并修改:一个常见的问题是远程的项目upstream有了新的更新,从而导致我们提交Pull Request时会导致冲突,因此我们可以在提交前先把远程其他开发者的commit和我们的commit合并。把合并后的代码提交到自己新建的分支当中。
  • 提交Pull Request你可以在你的github代码仓库页面切换到branches页面点击branch1分支后点击New pull request按钮,添加相关注释后提交。OR切换到branch1分支的代码仓库点击Compare & pull request按钮,添加相关注释后提交。

commit 规范

提交 commit 的类型,包括以下几种:

  • feat 🚀: 新功能
  • fix 🧩: 修复问题
  • docs 📚: 修改文档
  • style 🎨: 修改代码格式,不影响代码逻辑
  • refactor ♻️: 重构代码,理论上不影响现有功能
  • perf ⚡️: 提升性能
  • test ✅: 增加修改测试用例
  • chore 🔨: 修改工具相关(包括但不限于文档、代码生成等)
  • build 📦️: 构建流程、外部依赖变更(如升级 npm 包、修改 webpack 配置等)
- diff --git "a/2023/ios\345\255\246\344\271\240/Swi0ftUIshi2zhan4.html" "b/2023/ios\345\255\246\344\271\240/Swi0ftUIshi2zhan4.html" index 3659112..b9d45c6 100644 --- "a/2023/ios\345\255\246\344\271\240/Swi0ftUIshi2zhan4.html" +++ "b/2023/ios\345\255\246\344\271\240/Swi0ftUIshi2zhan4.html" @@ -6,10 +6,10 @@ SwiftUI进阶 | 轻踏云层 - + - + @@ -238,7 +238,7 @@ isLoading = false } } - diff --git "a/2023/ios\345\255\246\344\271\240/ma0chuan2jing4an1zhuang1.html" "b/2023/ios\345\255\246\344\271\240/ma0chuan2jing4an1zhuang1.html" index a0fc21c..be65c45 100644 --- "a/2023/ios\345\255\246\344\271\240/ma0chuan2jing4an1zhuang1.html" +++ "b/2023/ios\345\255\246\344\271\240/ma0chuan2jing4an1zhuang1.html" @@ -6,10 +6,10 @@ mac环境安装 | 轻踏云层 - + - + @@ -18,7 +18,7 @@ // 使用homebrew安装nvm brew install nvm

git

mac自带git,不需要安装

vscode和xcode

- diff --git "a/2023/ios\345\255\246\344\271\240/me0ta0lxue2xi2.html" "b/2023/ios\345\255\246\344\271\240/me0ta0lxue2xi2.html" index 305adb3..cfbef97 100644 --- "a/2023/ios\345\255\246\344\271\240/me0ta0lxue2xi2.html" +++ "b/2023/ios\345\255\246\344\271\240/me0ta0lxue2xi2.html" @@ -6,16 +6,16 @@ Metal学习 | 轻踏云层 - + - +
- diff --git "a/2023/ios\345\255\246\344\271\240/swi0ftUIxue2xi2.html" "b/2023/ios\345\255\246\344\271\240/swi0ftUIxue2xi2.html" index 68953da..d5ca6b0 100644 --- "a/2023/ios\345\255\246\344\271\240/swi0ftUIxue2xi2.html" +++ "b/2023/ios\345\255\246\344\271\240/swi0ftUIxue2xi2.html" @@ -6,10 +6,10 @@ swiftUI开发 | 轻踏云层 - + - + @@ -760,7 +760,7 @@ // 接口调用 Text("123\(address.country)").task { await fetchAddress() }

打开开发人员工具

swift
打开开发人员工具: Xcode -> open developer tool -> Accessibility Inspector
- diff --git "a/2023/ios\345\255\246\344\271\240/swi0fthe2flu0tte0rnei3ge4geng4hao3.html" "b/2023/ios\345\255\246\344\271\240/swi0fthe2flu0tte0rnei3ge4geng4hao3.html" index b1dd544..775677c 100644 --- "a/2023/ios\345\255\246\344\271\240/swi0fthe2flu0tte0rnei3ge4geng4hao3.html" +++ "b/2023/ios\345\255\246\344\271\240/swi0fthe2flu0tte0rnei3ge4geng4hao3.html" @@ -6,16 +6,16 @@ swift和flutter的区别 | 轻踏云层 - + - +
Skip to content
On this page

swift和flutter的区别

  • 跨平台性肯定是flutter更好
  • 如果项目只在Android生态或ios生态内运行,选择平台原生的开发框架就是更具可行性的选择。毕竟不管是Flutter还是RN,都只能提供绘制UI的功能。想要调用手机系统的其他功能如:定位、电池信息等都只能通过系统级的SDk

以上是别人的博客里面的一些信息。总结一下就是:swift性能、一些底层的功能支持会更好一些,但是它做不了跨平台。如果一款app不需要一些系统底层的能力,只是简单的UI功能,那flutter良好的跨平台支持是更好的选择。

Swift Package Manager使用

Swift Package Manager是Apple为了弥补当前ios开发中缺少官方组件库管理工具的产物。相较于其他组件管理控件,他的定义文件更加轻松易懂,只需将源码放入相应的文件夹内,Xcode就会自动生成工程文件,并生成编译目标产物所需要的相关配置。同时,SPM与Cocoapods相互兼容,可以在特性上提供互补。 https://mp.weixin.qq.com/s/s2GZ13PVdVa5t-SABArtdA

字节跳动APM-ios团队外部技术分享汇总: https://bytedance.feishu.cn/docx/doxcnJubfgNEyrslVRjG7iW913e

使用阿里图标库

Swift中如何使用阿里图标库:https://juejin.cn/post/7254107670012543013#comment

Cocoapods如何发布公有库

https://juejin.cn/post/7257333598469439546

这位老哥用swift刷了很多的算法题:https://juejin.cn/user/2661268541946365/posts

SwiftUI的基础文章:https://juejin.cn/user/325111172054350/posts

- diff --git "a/2023/ios\345\255\246\344\271\240/swi0ftxue2xi2.html" "b/2023/ios\345\255\246\344\271\240/swi0ftxue2xi2.html" index 32941b6..c7c9ed4 100644 --- "a/2023/ios\345\255\246\344\271\240/swi0ftxue2xi2.html" +++ "b/2023/ios\345\255\246\344\271\240/swi0ftxue2xi2.html" @@ -6,10 +6,10 @@ swift学习 | 轻踏云层 - + - + @@ -431,7 +431,7 @@ let range = welcome.index(welcome.endIndex, offsetBy: -6)..<welcome.endIndex welcome.removeSubrange(range) // removeSubrange(_:)方法可以在一个字符串的指定索引删除一个子字符串 print(welcome) // hello

UIKit中如何查看storyboard的入口:项目的info中查看Main storyboard file base name

- diff --git "a/2023/ios\345\255\246\344\271\240/u0i0ki0tkai1fa1.html" "b/2023/ios\345\255\246\344\271\240/u0i0ki0tkai1fa1.html" index 0db2668..fb5a5ff 100644 --- "a/2023/ios\345\255\246\344\271\240/u0i0ki0tkai1fa1.html" +++ "b/2023/ios\345\255\246\344\271\240/u0i0ki0tkai1fa1.html" @@ -6,10 +6,10 @@ UIKit开发 | 轻踏云层 - + - + @@ -82,7 +82,7 @@ let controller = ProjectController() controller.modalPresentationStyle = .fullScreen self.present(controller,animated: true)

View Controller

ios中的View Controller,它负责用户界面的展示,有一些生命周期的回调函数,还和界面切换相关,一个app中可以有一个或多个ViewController

每一个ViewController都有一个single root view,包含此ViewController的所有内容,在页面上的所有View都会被加入到以这个root view为根的树形结构中去。

ViewController有一个view属性,代表最后返回的页面 ViewController拥有所有的View,管理和这些View相关的交互,是离用户最近的第一层代码。

动态库和静态库

对于静态库而言,在编译链接的时候,会将静态库的所有文件都添加到目标app可执行文件中,并在程序运行之后,静态库与app可执行文件一起被加载到同一块代码区中。 对于动态库而言,在编译链接的时候,只会将动态库被引用的头文件添加到目标app可执行文件,区别于静态库,动态库是在程序运行的时候被添加另外一块内存区域。

相比于动态库的方案,使用静态库将花费更多的启动时间和内存消耗。还会增加可执行文件的大小。

服务端会用秋全的app.js判断视频流的请求对象是移动端、PC, 然后ue用来区分显示摇杆 app.js是否是根据设备UA来进行判断?AR的webView打开视频流是否改变了ipad的UA信息?

- diff --git a/2023/ji4lu4yi1ci4je0n0ki0n0sda3bao1dao3zhi4fu2wu4qi4ka3si3.html b/2023/ji4lu4yi1ci4je0n0ki0n0sda3bao1dao3zhi4fu2wu4qi4ka3si3.html index ac5ad23..eb8b524 100644 --- a/2023/ji4lu4yi1ci4je0n0ki0n0sda3bao1dao3zhi4fu2wu4qi4ka3si3.html +++ b/2023/ji4lu4yi1ci4je0n0ki0n0sda3bao1dao3zhi4fu2wu4qi4ka3si3.html @@ -6,16 +6,16 @@ jenkins同时打包多个项目导致服务器卡死 | 轻踏云层 - + - +
Skip to content
On this page

jenkins同时打包多个项目导致服务器卡死

2023/8/23 上午十点零六,因为同事使用jenkins打包多个项目导致服务器cpu占用达到百分百直接卡死。我前脚刚在上面操作了cad,刚用完,勇哥在群里说:官网崩了!然后我打开官网,页面加载不出来了,不是某个静态资源访问404,可以排查提交了错误代码打包导致的项目崩溃。然后尝试用xshell连接服务器看看情况,发现xshell连接不上了。这个时候已经知道是服务器出问题了,但是我没有公司的阿里云管理账户,勇哥又再和客户打电话沟通。找管理员账户、登录上去又花了一段时间,登录上去以后看到刚才服务器的cpu占用一直是百分百。然后服务器就自己好了,官网全程崩溃了将近二十分钟,妥妥的生产事故。

总结一下分析的过程:

  • 打开官网查看页面的访问,是某个资源加载404,还是接口崩溃500,如果都不是,可能就是像我遇到的这种,服务器崩了
  • 连接上服务器查看情况,用top命令查看cpu占用
  • 查看nginx的访问日志,看看是不是异常访问
  • 排查过程一定要思路清晰,速度要快,我还是第一次遇到这种情况,一般出现服务器崩溃的问题也是运维排查问题,但我们没有运维,自己就需要熟悉一些简单的问题定位操作

最后:jenkins一定不要部署在生产环境的服务器上面,打包过程cpu的占用会很高,这次事件就是jenkins多个项目同时打包造成的!

- diff --git a/2023/jiao3shou3jia4kai1fa1.html b/2023/jiao3shou3jia4kai1fa1.html index 818926e..480ccb7 100644 --- a/2023/jiao3shou3jia4kai1fa1.html +++ b/2023/jiao3shou3jia4kai1fa1.html @@ -6,12 +6,12 @@ 脚手架开发 | 轻踏云层 - + - - - + + + @@ -42,7 +42,7 @@ banner: '#!/usr/bin/env node' }, ],

在rollup的打包配置中加上banner配置即可解决这个问题。

- diff --git a/2023/n0gi0n0xpei4zhi4.html b/2023/n0gi0n0xpei4zhi4.html index 10e9f96..4007dd9 100644 --- a/2023/n0gi0n0xpei4zhi4.html +++ b/2023/n0gi0n0xpei4zhi4.html @@ -6,10 +6,10 @@ nginx 配置 | 轻踏云层 - + - + @@ -22,7 +22,7 @@ try_files $uri $uri/ /index.html; // 解决history路由访问问题 } } - diff --git a/2023/n0pmru0n0de0vhou4fa1sheng1le0shen2me0.html b/2023/n0pmru0n0de0vhou4fa1sheng1le0shen2me0.html index c1689f4..0c7f3e2 100644 --- a/2023/n0pmru0n0de0vhou4fa1sheng1le0shen2me0.html +++ b/2023/n0pmru0n0de0vhou4fa1sheng1le0shen2me0.html @@ -6,12 +6,12 @@ npm run dev后发生了什么 | 轻踏云层 - + - - - + + + @@ -44,7 +44,7 @@ }

4 删除所有项目的依赖(因为软链接的生成是在npm install执行的时候),回到根目录下执行pnpm install,然后查看demo1node_modules/.bin下,生成了名为chaochao的软链接 5 修改demo1的命令如下:

json
"scripts": {
    "dev": "chaochao",
 }

6 执行npm run dev,控制台输出了:脚手架搭建测试。成功!

思考:
问:那么全局指令,比如pnpmyarn这些,如果不使用-g来安装,是否还可以使用这些指令?
答:如果不全局安装,需要使用npx pnpm来执行对应的命令,不能直接执行

问:如何做一个脚手架,让安装的人直接执行你的命令,就像:vue-cli install一样,而不是npm run vue-cli
答:后续补充了脚手架相关内容的学习,具体内容可以查看脚手架开发

- diff --git a/2023/n0px.html b/2023/n0px.html index 2db4c73..949046a 100644 --- a/2023/n0px.html +++ b/2023/n0px.html @@ -6,16 +6,16 @@ npx | 轻踏云层 - + - +
Skip to content
On this page

npx

介绍

npx:一个由Node.js官方提供的用于快速执行npm包中的可执行文件的工具。它可以帮助我们在不全局安装某些包的情况下,直接运行该包提供的命令行工具。npx会在执行时,检查本地项目中是否安装了对应的依赖,如果没有安装则会自动下载安装,并执行命令。如果本地已经存在该依赖,则直接执行命令。 使用npx时,可以在命令行中输入要执行的包名加上其参数,例如:

ts
npx create-reate-app my-app

以上命令会在本地下载并运行create-react-app包中的可执行文件,创建一个名为my-appReact应用程序。

npx会把远端的包下载到本地吗?

npx不会像npmyarn一样将包下载到本地的node_modules目录中。相反,它会在执行命令时,在本地缓存中寻找并下载包。然后执行该包中的命令。这样可以避免在开发过程中在全局安装大量的包,同时也可以确保使用的是最新版本的包。

npx执行完成之后,下载的包是否会被删除?

npx会在执行完命令后删除下载的包。这是因为npx会在执行命令之前,将需要执行的包下载到一个临时目录中,并在执行完毕后删除该目录。这样就可以避免在本地留下不必要的依赖包,可以使用--no-cleanup选项来禁止删除下载的包。

- diff --git a/2023/pi0n0i0a0zhong1de0o0pti0o0n0sa0pi0he2co0mpo0si0to0n0a0pi0dui4bi3.html b/2023/pi0n0i0a0zhong1de0o0pti0o0n0sa0pi0he2co0mpo0si0to0n0a0pi0dui4bi3.html index 5d9b9af..0521d4a 100644 --- a/2023/pi0n0i0a0zhong1de0o0pti0o0n0sa0pi0he2co0mpo0si0to0n0a0pi0dui4bi3.html +++ b/2023/pi0n0i0a0zhong1de0o0pti0o0n0sa0pi0he2co0mpo0si0to0n0a0pi0dui4bi3.html @@ -6,10 +6,10 @@ pinia | 轻踏云层 - + - + @@ -94,7 +94,7 @@ await info.getData() } initFunction()

一些思考

composition api的写法没有了gettersactions的模块要求,写法更自由,也因为没有模块化要求,代码解构显得不是那么清晰。利弊就和vue3使用compositon apioptions api的利弊一样,各有所好。 虽然是各有利弊,但是composition api本来就是为解决大项目中逻辑处理太过分散的问题,这一点是options api无法解决和避免的。我当然选择全力拥抱composition api

- diff --git a/2023/ru2he2di0yer4wei2ma3.html b/2023/ru2he2di0yer4wei2ma3.html index 0f5f24d..f1b4a52 100644 --- a/2023/ru2he2di0yer4wei2ma3.html +++ b/2023/ru2he2di0yer4wei2ma3.html @@ -6,10 +6,10 @@ 如何diy二维码 | 轻踏云层 - + - + @@ -21,7 +21,7 @@ // 从(75, 75)开始,绘制宽度和高度为50的logo ctx.drawImage(img, 75, 75, 50, 50) }

vue现成的组件:https://github.com/Binaryify/vue-qr.git react现成的组件:https://github.com/ciaochaos/qrbtf.git

antfu: https://github.com/antfu/qrcode-toolkit.git

- diff --git "a/2023/thi0s\343\200\201ca0ll\343\200\201a0pply\343\200\201bi0n0d.html" "b/2023/thi0s\343\200\201ca0ll\343\200\201a0pply\343\200\201bi0n0d.html" index edd35e4..64c6cdf 100644 --- "a/2023/thi0s\343\200\201ca0ll\343\200\201a0pply\343\200\201bi0n0d.html" +++ "b/2023/thi0s\343\200\201ca0ll\343\200\201a0pply\343\200\201bi0n0d.html" @@ -6,10 +6,10 @@ this、call、apply、bind | 轻踏云层 - + - + @@ -102,7 +102,7 @@ // bind不会直接调用函数 let fun = person.say.bind(window) fun() // windows - diff --git a/2023/vitePress/xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.html b/2023/vitePress/xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.html index 7df4efe..8a63614 100644 --- a/2023/vitePress/xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.html +++ b/2023/vitePress/xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.html @@ -6,12 +6,12 @@ 学习element-plus的vitePress配置 | 轻踏云层 - + - - - + + + @@ -48,7 +48,7 @@ @click="$emit('toggle')" /> </div>

consola

element-plus 的源码中用到了这个插件,consola是一个功能更丰富,更漂亮的控制台日志输出控件。

- diff --git "a/2023/vue3\346\272\220\347\240\201\345\255\246\344\271\240/qian2yan2.html" "b/2023/vue3\346\272\220\347\240\201\345\255\246\344\271\240/qian2yan2.html" index f315a9b..d64db0b 100644 --- "a/2023/vue3\346\272\220\347\240\201\345\255\246\344\271\240/qian2yan2.html" +++ "b/2023/vue3\346\272\220\347\240\201\345\255\246\344\271\240/qian2yan2.html" @@ -6,16 +6,16 @@ 前言 | 轻踏云层 - + - +
Skip to content
On this page

前言

仔细想一想,一个vue框架想要能够工作下去,它需要哪些功能模块? 1,响应式系统,实现各种数据变化时的响应监听 2,模板解析,能够将组件中的内容解析出来,变成AST树(虚拟DOM) => 编译器 3,diff算法,根据数据的变化,能够细微的知道哪些节点需要更新 4,渲染器,能够将虚拟DOM渲染成功真实的DOM => 渲染器

把《Vue.js设计与实现》看完,能不能根据讲解,将各个部分的内容实现出来,并进行整合形成框架的能力?

- diff --git "a/2023/vue3\346\272\220\347\240\201\345\255\246\344\271\240/xiang3ying4shi4xi4tong3.html" "b/2023/vue3\346\272\220\347\240\201\345\255\246\344\271\240/xiang3ying4shi4xi4tong3.html" index 9a6591e..6da545b 100644 --- "a/2023/vue3\346\272\220\347\240\201\345\255\246\344\271\240/xiang3ying4shi4xi4tong3.html" +++ "b/2023/vue3\346\272\220\347\240\201\345\255\246\344\271\240/xiang3ying4shi4xi4tong3.html" @@ -6,16 +6,16 @@ 响应式系统 | 轻踏云层 - + - +
Skip to content
On this page

响应式系统

响应式系统应该是我对vue最熟悉的一个模块,其他的模块都知之甚少。在vue2中,它的响应式是用Object.defineproperty来实现的,而是对象需要递归去劫持实现响应式,数组还需要重写原型方法来实现响应式。而vue3中采用的proxy。看了一下源码,reactivity这一块的源代码大概是2100行左右。

看完了《Vue设计与实现》的第四章:响应系统,第五章看不下去了,见到了一些对象底层的东西 apply、call、argument,这一块一直是薄弱点,要补

- diff --git "a/2023/webGPU\345\255\246\344\271\240/WGSL.html" "b/2023/webGPU\345\255\246\344\271\240/WGSL.html" index e2a51c6..a8d7d44 100644 --- "a/2023/webGPU\345\255\246\344\271\240/WGSL.html" +++ "b/2023/webGPU\345\255\246\344\271\240/WGSL.html" @@ -6,11 +6,11 @@ 着色器语言WGSL | 轻踏云层 - + - - + + @@ -47,8 +47,8 @@ var light1:pointLight; light1.color = vec3<f32>(1.0, 0.0, 0.0); -light1.intensity = 0.6; - diff --git "a/2023/webGPU\345\255\246\344\271\240/huan3chong1qu1shi2qu3.html" "b/2023/webGPU\345\255\246\344\271\240/huan3chong1qu1shi2qu3.html" index 1addd62..23d456e 100644 --- "a/2023/webGPU\345\255\246\344\271\240/huan3chong1qu1shi2qu3.html" +++ "b/2023/webGPU\345\255\246\344\271\240/huan3chong1qu1shi2qu3.html" @@ -6,10 +6,10 @@ 缓冲区拾取 | 轻踏云层 - + - + @@ -32,7 +32,7 @@ camera.perspective(60, Engine3D.aspect, 1, 5000.0)
ts
let view = new View3D()
 view.scene = scene3D
 view.camera = camera

orillusion会在ComponentCollect这个类中进行各种类型的component收集: componentsBeforeUpdateList componentsComputeList componentsUpdateList componentsLateUpdateList

- diff --git "a/2023/webGPU\345\255\246\344\271\240/hui4zhi4xian4duan4de0neng2li4.html" "b/2023/webGPU\345\255\246\344\271\240/hui4zhi4xian4duan4de0neng2li4.html" index c1077b3..5706a11 100644 --- "a/2023/webGPU\345\255\246\344\271\240/hui4zhi4xian4duan4de0neng2li4.html" +++ "b/2023/webGPU\345\255\246\344\271\240/hui4zhi4xian4duan4de0neng2li4.html" @@ -6,10 +6,10 @@ 绘制线段的能力 | 轻踏云层 - + - + @@ -29,7 +29,7 @@ } const vertexArray = new Float32Array(pointArr) console.log(new Date().getTime() - nowTime) // 735 这个时间大概是700毫秒左右

1,彻底弄懂鼠标拾取的原理,用webgpu实现出来 缓冲区拾取就是利用FBO(帧缓冲区)渲染另外一份顶点数据一样,但是顶点颜色是按照ID位计算成RGB值,这样就保证了每一个物体的颜色值都不一样,这样点击的时候获取到点击位置的RGB值,再位换算回ID值就可以知道点击到哪个物体了。缓冲区拾取是用空间(多一份数据)换时间(拾取快),另外由于缓冲区拾取不需要遍历模型,所以模型是可以做合模处理的。

https://segmentfault.com/a/1190000041361406

three缓冲区拾取步骤:

缓冲区拾取的原理是:利用FBO(帧缓冲区)渲染另外一份顶点数据一样,但是顶点颜色是按照ID位计算成RGB值,这样就保证了每一个物体的颜色值都不一样,这样点击的时候获取点击位置的RGB值,再位换算回ID值就可以知道点击到哪个物体了。缓冲区拾取是用空间(多一份数据)换时间(拾取快),另外由于缓冲区拾取不需要遍历模型,所以模型是可以做合模处理的。

2,将图纸正常加载出来并居中显示 移动相机的位置矩阵到模型的中心,然后调整正交投影的参数进行投影。 相机的位置矩阵移动意味着对模型的数据坐标x - 相机位置x;同理数据坐标y - 相机位置y

3,抽象出来图元对象来做数据处理,包括图元的显示和隐藏,都使用图元对象最终操作一个float32Array的数组来实现 我这样实现的话,图元的显示和隐藏就不可能像three一样通过对象的一个属性来实现显示和隐藏,three通过属性实现显示和隐藏的原理是什么?

4,如果所有内容都是一次性的绘制,如何进行内容填充?cad的图纸填充这个可以后面再考虑!

- diff --git "a/2023/webGPU\345\255\246\344\271\240/o0ri0llu0si0o0n0yuan2ma3xue2xi2.html" "b/2023/webGPU\345\255\246\344\271\240/o0ri0llu0si0o0n0yuan2ma3xue2xi2.html" index 70d30b9..1b83a7b 100644 --- "a/2023/webGPU\345\255\246\344\271\240/o0ri0llu0si0o0n0yuan2ma3xue2xi2.html" +++ "b/2023/webGPU\345\255\246\344\271\240/o0ri0llu0si0o0n0yuan2ma3xue2xi2.html" @@ -6,10 +6,10 @@ orillusion源码 | 轻踏云层 - + - + @@ -130,7 +130,7 @@ } }
ts
// implements: ComponentBase类实现自IComponent接口,需要重写实现接口中的所有属性和方法
 export class ComponentBase implements IComponent
- diff --git "a/2023/webGPU\345\255\246\344\271\240/qian2yan2.html" "b/2023/webGPU\345\255\246\344\271\240/qian2yan2.html" index 669b901..d5d14b9 100644 --- "a/2023/webGPU\345\255\246\344\271\240/qian2yan2.html" +++ "b/2023/webGPU\345\255\246\344\271\240/qian2yan2.html" @@ -6,16 +6,16 @@ 前言 | 轻踏云层 - + - +
Skip to content
On this page

前言

2023/8/18 终于要开始了,刚发版的时候天天盯着chrome刷新看看更新了没有,现在距离webgpu正式发版已经三个半月了,我还连第一个hello world级别的demo都没有写过。接下来持续学习开始吧。

跨平台性

webgpu可以运行在Windows、macOS、Linux、Android等平台上,基本上涵盖了大部分的现代智能手机和平板电脑设备。 目前在新版的chrome和edge上都已经对webgpu进行了支持

webgpu

webgpu它把graphic的技术,从老的graphic技术带到了新的graphic技术。它打通了NativeAPI,我们可以拿它来做很多unify的事情。注:这里的graphic就是字面意思:图形的意思。一开始看视频还以为graphic是一种技术。

老的graphic就是OpenGLD3D11。 新的graphic技术就是VulkanD3D12Metal

VulkanKhronos在2016年的GDC上提出的新一代的图形和计算 API,2016年8月22日发布的Android 7.0 添加了对Vulkan的支持。 在WWDC 2014上,Apple为游戏开发者推出了新的平台技术 Metal,该技术能够为3D图像提高10倍的渲染性能,并支持大家熟悉的游戏引擎及公司。

- diff --git "a/2023/webGPU\345\255\246\344\271\240/yi1xie1gu4shi4.html" "b/2023/webGPU\345\255\246\344\271\240/yi1xie1gu4shi4.html" index d7d7d27..1a764ff 100644 --- "a/2023/webGPU\345\255\246\344\271\240/yi1xie1gu4shi4.html" +++ "b/2023/webGPU\345\255\246\344\271\240/yi1xie1gu4shi4.html" @@ -6,16 +6,16 @@ 轻踏云层 | 轻踏云层 - + - +
Skip to content
On this page

今天给勇哥发了下面的一段话

勇哥,和你聊一聊我们cad目前的一个现状,cad目前的研发工作已经比较难在短时间内有一个阶段性的进展。尤其是后面的二三维图模融合,需要提取cad图纸中的图元数据,选中图元,并根据所选图元来调用ourbim现有的功能去做三维模型的构件选中和高亮。实现思路是清晰的,难点是:我们现在的技术方案它做不了一个高性能的一个渲染。具体原因可能是:three.js它本身是一个三维的技术框架,用它来做二维可能会带来一些额外的性能开销,而在一个稍微大一点的cad图纸中,有好几万图元数据的情况下,只要每个图元的渲染都多上一点点性能开销,总体呈现的流畅效果都会相差很大。前段时间我们的cad就是从图纸卡顿一步步优化过来的:图纸加载时间太长就做文件切割、gzip压缩;图元数据量太多会卡顿就根据图层来合模,把所有相同图层的图元的点线面数据进行合模处理成一个大图元来渲染,即使是这样的合模方法,我们的cad也没有彻底解决图纸的卡顿问题,也还是做不到bimface那样的流畅操作,根据图元来合模肯定会让cad的卡顿问题回到从前。我也看了bimface的cad渲染,他们是自己基于webgl写了一套自己的渲染,没有用three.js。所以后面的图模融合,要做到好的一个效果,我们也要走和他们一样的路:我们需要自己用底层来写一套渲染逻辑。好消息是:webgpu已经出来了,我们可以用webgpu来做底层渲染,如果处理的好,这会比webgl性能更好。我这边已经开始在进行webgpu的相关学习,后面我也会慢慢用webgpu来重写cad的一个渲染层,但这个过程就和我一开始接触做cad一样,有很多的未知和挑战,也会带来试错成本,我只能保证我一定尽全力来做好,但也实在不好意思吹牛说我能保证结果。

关于cad方向上的一些想法:前几天看到一个视频,了解到photoshop开始在基于webgpu来做网页版的开发了,或许我们也可以尝试把cad做成一个网页版的autoCAD。畅想一下:用户可以在我们的平台上上传图纸,上传以后,用户可以很方便的在我们的网页上打开图纸并进行二次开发。甚至我们可以把一些用户常用的图元数据保存下来,形成一个用户个性化的图元库,一键拖拽即可实现常用图元的绘制,和我们现在ourbim的资源库一样方便。再甚至我们可以对一些最常用的cad图元做3d的建模,用户如果是在我们的平台通过拖拽图元库中的图元来从零设计图纸,设计完以后可以一键生成对应的3d模型并自动构建好二三维的联动逻辑,让用户可以很便捷的在cad里面做到二三维联动。而不需要像:事先准备好二维图纸和三维模型,再让我们手动添加二三维的联动逻辑这样麻烦。我们还可以根据用户上传的图纸,提取出来图元数据并配合AI来做一些事情。

他回复我说

1、这个WebGPU会不会不太成熟,造成有很多坑? 2、webgl重写底层渲染,和基于ThreeJS修改,本质的区别是什么,是否已经找到了性能问题的本质了? 3、图纸的数据体量,相比三维几何,一般来说要小1-2个数量级,用webgpu是不是有些大材小用? 4、所讲的这些未来可以拓展的功能,是非常好的,也是必然会涉及到的,其实类似的产品,我了解云端autodcad几年前就有了。 https://www.autodesk.com/solutions/cloud-based-online-cad-softwarehttps://www.crowncad.com/#/ 5、至于这种二三维联动,我们目前CAD和BIM是两套独立的架构,不是统一的,会比全部webgl实现的统一架构,要复杂得多,需要有个连接和转换层,可行性还待研究。

我无法回答他webgl重写底层渲染和基于ThreeJS修改本质的区别是什么,希望我以后可以回答出来这个问题的答案!

webgpu性能测试

2023/8/24 webgpu真的顶,我用原生的三角形创建方法,百万级别数量的三角形绘制丝毫没有压力,而且平移、缩放这些操作也稳定在60帧,非常的丝滑流畅。开始期待后面它在cad上面的一个性能表现。今天自己推矩阵实现了顶点缩放,还是需要多做多学,得把矩阵用的越来越熟练才行。后续的方向也会基于webgpu做更多的案例学习和尝试!多看orillusion的源码、是时候该学些shader的高级应用了、games101的图形学也可以慢慢的学起来了!

- diff --git "a/2023/webGPU\345\255\246\344\271\240/zuo4biao1xi4.html" "b/2023/webGPU\345\255\246\344\271\240/zuo4biao1xi4.html" index 2ba5dfe..b6f55f1 100644 --- "a/2023/webGPU\345\255\246\344\271\240/zuo4biao1xi4.html" +++ "b/2023/webGPU\345\255\246\344\271\240/zuo4biao1xi4.html" @@ -6,16 +6,16 @@ webgpu坐标系 | 轻踏云层 - + - +
Skip to content
On this page

webgpu坐标系

webgpu坐标系在canvas画布上的坐标原点是canvas画布的中间位置,x轴水平向右,y轴竖直向上,z轴垂直于canvas画布,朝向屏幕内。 x和y轴的坐标范围是[-1, 1],z轴的坐标范围是[0, 1]

webgl和three.js都是右手坐标系,即z轴是朝向屏幕外的

对于webgpu这种坐标系,在图形学中,又叫标准化设备坐标系(归一化设备坐标系),简称NDC

矩阵的执行顺序:先缩放、再旋转、最后平移

看矩阵要从右往左看: 比如:平移矩阵 x 缩放矩阵 x 旋转矩阵,这就意味着:先经历了旋转,再经历缩放,最后平移

- diff --git "a/2023/webgl\345\255\246\344\271\240/qian2yan2.html" "b/2023/webgl\345\255\246\344\271\240/qian2yan2.html" index d7c6e7e..924ff51 100644 --- "a/2023/webgl\345\255\246\344\271\240/qian2yan2.html" +++ "b/2023/webgl\345\255\246\344\271\240/qian2yan2.html" @@ -6,16 +6,16 @@ 轻踏云层 | 轻踏云层 - + - +
Skip to content
On this page

webgl 水案例: https://github.com/evanw/webgl-water

在实际开发中,不发生变化的代码可以说是不存在的。我们能够做的只有将这个变化造成的影响最小化——将变与不变分离,确保变化的部分灵活、不变的部分稳定。 这个过程,就叫"封装变化",这样的代码,就是我们所谓的"健壮"的代码,它可以经得起变化的考验。而设计模式出现的意义,就是帮我们写出这样的代码。

cad的sdk的viewer和controller需要增加单例模式的限制,让它创建的时候始终是最开始new的实例对象

- diff --git "a/2023/webgl\345\255\246\344\271\240/thre0e0.jsde0yuan2ma3.html" "b/2023/webgl\345\255\246\344\271\240/thre0e0.jsde0yuan2ma3.html" index 162b921..6059cb5 100644 --- "a/2023/webgl\345\255\246\344\271\240/thre0e0.jsde0yuan2ma3.html" +++ "b/2023/webgl\345\255\246\344\271\240/thre0e0.jsde0yuan2ma3.html" @@ -6,17 +6,17 @@ 轻踏云层 | 轻踏云层 - + - +
Skip to content
On this page

在一个最简单的three.js案例中,我们需要有场景(scene)、相机(camera)、渲染器(WebGLRenderer)。

scene:

源码路径:src\scenes\Scene.js 发现scene类其实比较简单,它继承自Object3D类,接下来继续去看看Object3D,源码路径:src\core\Object3D.js;发现 Object3D 又继承自 EventDispatcher ,接着看:src\core\EventDispatcher.js。

EventDispatcher类封装了事件的监听处理,包含四个函数:addEventListener(添加事件监听)、hasEventListener(判断事件监听是否已经存在)、removeEventListener(移除事件监听)、dispatchEvent(事件监听调度)

在scene的add方法中,设置了scene的children和添加的Object3D的parent属性。

camera

这里看的是透视相机 PerspectiveCamera ,源码路径:src\cameras\PerspectiveCamera.js,PerspectiveCamera 继承自 Camera ,src\cameras\Camera.js,发现Camera类也是继承自Object3D。在Camera的构造函数中,对各种矩阵进行了初始化操作,在 PerspectiveCamera 的构造函数中,调用了 updateProjectionMatrix方法,这个方法会根据透视相机构造参数进行矩阵更新。

WebGLRenderer

源码路径:src\renderers\WebGLRenderer.js,妈的,一个构造函数两千多行,不想看了。在webGLRenderer的源码中看到了这一行,所以用three.js构建的canvas上,会有data-engine属性。

js
if ( 'setAttribute' in canvas ) canvas.setAttribute( 'data-engine', `three.js r${REVISION}` )

在webGLRenderer的源码中还会做XR的相关处理,而 WebXRManager 这个类的构造函数又是八百多行,是一个比较复杂的类,这些逻辑对于cad来说其实是完全多余的。

js
const xr = new WebXRManager( _this, _gl )
 this.xr = xr

在webGLRenderer的源码中很多方法都是直接挂载到this上面,这就导致了很多方法根据不会被使用,却需要花费内存来创建。更好的方式可能是实现按需导入,这样打包的时候会就可以Tree-Shaking掉那些并没有用到的方法。

WebGLRenderer的render方法

影响图纸加载卡顿的关系就是render方法的执行时间,在WebGLRenderer的源码src\renderers\WebGLRenderer.js中,render方法的代码并不算很多,只有一百多行。根本看不懂! 在src\renderers\WebGLRenderer.js的 WebGLRenderer 构造函数中调用了 initGLContext 方法,该方法中会 实例化 WebGLBufferRenderer和WebGLIndexedBufferRenderer,在这两个类中分别封装了gl.drawArrays和gl.drawElements这两个绘制方法!

我问chatgpt,它说: render方法的目标是在WebGL上下文中呈现场景和相机,将3D对象渲染到屏幕上。该方法通常包含以下步骤:

  • 检查渲染器的参数、状态和场景数据的完整性以及各个变量的有效性。
  • 准备渲染前的工作,如清除缓冲区、设置渲染目标(如屏幕或纹理)、设置视口、设置渲染器的渲染状态等。
  • 更新相机的投影矩阵和视图矩阵,以便将场景中的对象正确地显示在相机的视野中。
  • 对场景中的每个可见对象进行循环迭代,并针对每个对象进行必要的计算和渲染操作。
  • 根据对象的材质、纹理、光照、阴影等属性,设置相应的WebGL着色器程序以实现物体的渲染。
  • 将物体的几何数据(顶点位置、法线、纹理坐标等)传递给绑定的着色器程序。
  • 执行WebGL绘制调用,将几何数据发送到GPU进行渲染。
  • 根据需要,执行后期处理操作,如应用后期特效、渲染到纹理等。
  • 恢复渲染状态和缓冲区,以备下一帧绘制。

cad中没有光照,也没有纹理、阴影、后期特效这些,甚至连旋转矩阵都用不上,cad只需要最基础的平移和缩放操作即可。

Raycaster

来看一看three中的鼠标拾取

图形学中关于鼠标拾取有两种常见方案:

  • 射线法拾取
  • gpu拾取,gpu拾取是否就是缓冲区拾取,three中案例:webgl_interactive_cubes_gpu

缓冲区拾取:https://juejin.cn/post/6988013072686252046?searchId=20230828182808DC2E896F0BF7B80CC6AE#heading-3 three中使用的是射线法拾取:https://juejin.cn/post/7205025712170942525?searchId=2023082817240424C3C2D3FF19B302C296#comment

- diff --git "a/2023/webgl\345\255\246\344\271\240/zhuo2se4qi4xue2xi2.html" "b/2023/webgl\345\255\246\344\271\240/zhuo2se4qi4xue2xi2.html" index 9d9b54c..880a591 100644 --- "a/2023/webgl\345\255\246\344\271\240/zhuo2se4qi4xue2xi2.html" +++ "b/2023/webgl\345\255\246\344\271\240/zhuo2se4qi4xue2xi2.html" @@ -6,10 +6,10 @@ 轻踏云层 | 轻踏云层 - + - + @@ -22,7 +22,7 @@ // 包括顶点着色器中的uv,也是three内置好的变量 // 粒子效果的实现使用的是three中的Point

https://github.com/alphardex/webgl-shader-book-code.git

- diff --git a/2023/yong4i0ma0ge0.lo0a0dti2qian2pan4duan4zi1yuan2shi4fou3cun2zai4.html b/2023/yong4i0ma0ge0.lo0a0dti2qian2pan4duan4zi1yuan2shi4fou3cun2zai4.html index 7697900..e25c7b2 100644 --- a/2023/yong4i0ma0ge0.lo0a0dti2qian2pan4duan4zi1yuan2shi4fou3cun2zai4.html +++ b/2023/yong4i0ma0ge0.lo0a0dti2qian2pan4duan4zi1yuan2shi4fou3cun2zai4.html @@ -6,10 +6,10 @@ 用image.load提前判断资源是否存在 | 轻踏云层 - + - + @@ -22,7 +22,7 @@ img.onerror = function () { console.log('资源不存在') }

使用img.onload方法确实让报错提示温和了很多,但是还是会在控制台报错:

comment.json:1     GET https://api.ourbim.com:8181/CADFile/20230818102838961/comment.json 404 (Not Found)

在不想新增接口来判断图纸是否有批注的情况下,只能先采用这种方法让报错提示尽可能温和一点了。 不行!使用img.onload方法去测试json数据,即使json数据存在,也会走img.onerror方法提示资源不存在,只能去新增批注是否存在的判断接口了。

因为ourbim官网部署了https,而https发不出http请求,只能通过nginx代理去请求过去,但sdk的封装请求不可能使用代理的字段去封装。如果对应的请求地址调整为https,那后面的每次修改都要进行修改

- diff --git a/404.html b/404.html index 3baa28f..4e5b8ca 100644 --- a/404.html +++ b/404.html @@ -6,13 +6,13 @@ 404 | 轻踏云层 - +
Skip to content

404

PAGE NOT FOUND

But if you don't change your direction, and if you keep looking, you may end up where you are heading.
- diff --git a/assets/2023_ca0dyou1hua4.md.2cd62bff.js b/assets/2023_ca0dyou1hua4.md.c346e90c.js similarity index 99% rename from assets/2023_ca0dyou1hua4.md.2cd62bff.js rename to assets/2023_ca0dyou1hua4.md.c346e90c.js index c120d28..a69a75b 100644 --- a/assets/2023_ca0dyou1hua4.md.2cd62bff.js +++ b/assets/2023_ca0dyou1hua4.md.c346e90c.js @@ -1,4 +1,4 @@ -import{_ as s,o as a,c as n,V as l}from"./chunks/framework.c5c8a48b.js";const A=JSON.parse('{"title":"cad优化","description":"","frontmatter":{},"headers":[],"relativePath":"2023/ca0dyou1hua4.md","filePath":"2023/ca0dyou1hua4.md","lastUpdated":null}'),o={name:"2023/ca0dyou1hua4.md"},p=l(`

cad优化

ts
// 在合模的方法中,进行绘制前,先使用 three 的 BufferGeometry先进行insert数据的旋转、缩放等处理,处理成positions后,再统一合模
+import{_ as s,o as a,c as n,V as l}from"./chunks/framework.c5c8a48b.js";const A=JSON.parse('{"title":"cad优化","description":"","frontmatter":{},"headers":[],"relativePath":"2023/ca0dyou1hua4.md","filePath":"2023/ca0dyou1hua4.md","lastUpdated":null}'),o={name:"2023/ca0dyou1hua4.md"},p=l(`

cad优化

  • dxf-parse: 从dxf数据中解析最原始的数据出来,然后交给shape-parse层
  • shape-parse层拿到原始数据后,将数据区分为: models(普通数据)、insert(insrt、dimension数据) ,同时会将所有的线性类型数据全部转为线段数据,它是一个中间层数据处理
  • draw-three 中会先对所有的普通数据合模,然后将insert中的数据进行合模绘制。在具体的合模中还需要根据layer来划分数据合模
ts
// 在合模的方法中,进行绘制前,先使用 three 的 BufferGeometry先进行insert数据的旋转、缩放等处理,处理成positions后,再统一合模
 let mergeGeometry = new THREE.BufferGeometry()
 
 if (index === 8) {
@@ -25,7 +25,7 @@ import{_ as s,o as a,c as n,V as l}from"./chunks/framework.c5c8a48b.js";const A=
 }
 if (position) {
     geometry.translate(position.x, position.y, 0)
-}

计算边界的逻辑也可以放到 draw-three 中进行绘制

包围盒自己实现不了,我无法得到线段什么时候需要闭合,什么时候转弯的时候内圈的线段要比外圈要小 换一种思路:用粗线的线宽来实现这种包围盒效果

文字优化

为了让文字可以很好的进行各种旋转,一直在用 troika-three-text 在处理Mtext类型的数据,然后这个库绘制文字使用的是纹理绘制,会有很大的性能开销。而three.js官方使用的 FontLoader 加载json字体文件则使用的是文字数据生成geometry来进行绘制。理论上,我们可以制作自己的font字体文件,来满足cad的各种文字需求,并可以通过 geometry 通过合模操作来进行性能优化

???突然发现字体转为json的facetype.js竟然是一个开源的js库,那岂不是还可以更进一步,能根据用户图片中的具体文字内容来生成最简洁的font字体文件 不可行,字体文件必须引入所有文字,因为批注功能需要输入,这就必须有所有文字可供批注添加

后面的优化方向

  • 使用webworker开多线程进行数据处理的优化、还可以使用wasm方案
  • 对图纸进行分层加载,避免大图纸加载时间过长
  • 手绘线的平滑优化,关于批注的移动可以参考three中的 webgl_geometry_spline_editor 案例
  • 碰撞案例:webgl_mirror
  • 文字破碎的案例:webgl_modifier_tessellation
  • 一个页面中渲染多个three内容: webgl_multiple_elements
  • 多视角渲染的案例:webgl_multiple_views
  • 飞鸟案例:鸟会根据鼠标位置进行驱散: webgl_gpgpu_birds

svg的提取尝试

如果可以将正常图片转化为svg格式图片,然后将svg用three.js中的svgloader来加载出来并进行一些数据优化处理,这样就可以通过图片来实现一些thre场景中的数据加载,比如我想在three中绘制一个雾山五行的角色,那我只需要一张图片,然后转为svg,再进行一些处理就可以实现吗? https://convertio.co/zh/ 这个网站可以将图片转为svg,但是颜色等信息会丢失 有没有一些很好的方法能够将普通图片转化为svg,并且还能保证图片不失真? html2canvas支持将页面保存为svg图片?

目前使用文心一言和通义千问都无法直接生成svg格式的图片,先实现通过svg来提取图片中的内容

cad的内存泄漏问题

因为文字使用了线条来绘制,这样就造成了大量的线条数据,一张文字比较多的图纸,解析下来的数据量有1-2G,这是一个很恐怖的内容问题,导致图纸根据渲染不出来,直接报错:Uncaught (in promise) RangeError: Maximum call stack size exceeded。调用栈溢出,这样就必须要进行内存上的一个优化处理了。

堆栈溢出:在计算机科学中是指使用过多的存储器时导致调用堆栈产生的溢出。堆栈溢出的产生是由于过多的函数调用,导致使用的调用堆栈大小超过事先规划的大小,覆盖其他存储器内的资料,一般在递归中产生。堆栈溢出很可能由无限递归产生,但也可能仅仅是过多的堆栈层级。

由于文字转线条绘制的数据量比较大,大概一个数组的长度如果超过4千万,浏览器就会报错。

这次堆栈溢出的原因是:我用了多次数组结构出现了堆栈溢出,实际场景的代码比较复杂,后续尝试简单复现却并没有将问题复现出来。尝试复现的代码如下:

ts
let position = []
+}

计算边界的逻辑也可以放到 draw-three 中进行绘制

包围盒自己实现不了,我无法得到线段什么时候需要闭合,什么时候转弯的时候内圈的线段要比外圈要小 换一种思路:用粗线的线宽来实现这种包围盒效果

文字优化

为了让文字可以很好的进行各种旋转,一直在用 troika-three-text 在处理Mtext类型的数据,然后这个库绘制文字使用的是纹理绘制,会有很大的性能开销。而three.js官方使用的 FontLoader 加载json字体文件则使用的是文字数据生成geometry来进行绘制。理论上,我们可以制作自己的font字体文件,来满足cad的各种文字需求,并可以通过 geometry 通过合模操作来进行性能优化

???突然发现字体转为json的facetype.js竟然是一个开源的js库,那岂不是还可以更进一步,能根据用户图片中的具体文字内容来生成最简洁的font字体文件 不可行,字体文件必须引入所有文字,因为批注功能需要输入,这就必须有所有文字可供批注添加

后面的优化方向

  • 使用webworker开多线程进行数据处理的优化、还可以使用wasm方案
  • 对图纸进行分层加载,避免大图纸加载时间过长
  • 手绘线的平滑优化,关于批注的移动可以参考three中的 webgl_geometry_spline_editor 案例
  • 碰撞案例:webgl_mirror
  • 文字破碎的案例:webgl_modifier_tessellation
  • 一个页面中渲染多个three内容: webgl_multiple_elements
  • 多视角渲染的案例:webgl_multiple_views
  • 飞鸟案例:鸟会根据鼠标位置进行驱散: webgl_gpgpu_birds

svg的提取尝试

如果可以将正常图片转化为svg格式图片,然后将svg用three.js中的svgloader来加载出来并进行一些数据优化处理,这样就可以通过图片来实现一些thre场景中的数据加载,比如我想在three中绘制一个雾山五行的角色,那我只需要一张图片,然后转为svg,再进行一些处理就可以实现吗? https://convertio.co/zh/ 这个网站可以将图片转为svg,但是颜色等信息会丢失 有没有一些很好的方法能够将普通图片转化为svg,并且还能保证图片不失真? html2canvas支持将页面保存为svg图片?

目前使用文心一言和通义千问都无法直接生成svg格式的图片,先实现通过svg来提取图片中的内容

cad的内存泄漏问题

因为文字使用了线条来绘制,这样就造成了大量的线条数据,一张文字比较多的图纸,解析下来的数据量有1-2G,这是一个很恐怖的内存问题,导致图纸根据渲染不出来,直接报错:Uncaught (in promise) RangeError: Maximum call stack size exceeded。调用栈溢出,这样就必须要进行内存上的一个优化处理了。

堆栈溢出:在计算机科学中是指使用过多的存储器时导致调用堆栈产生的溢出。堆栈溢出的产生是由于过多的函数调用,导致使用的调用堆栈大小超过事先规划的大小,覆盖其他存储器内的资料,一般在递归中产生。堆栈溢出很可能由无限递归产生,但也可能仅仅是过多的堆栈层级。

由于文字转线条绘制的数据量比较大,大概一个数组的长度如果超过4千万,浏览器就会报错。

这次堆栈溢出的原因是:我用了多次数组结构出现了堆栈溢出,实际场景的代码比较复杂,后续尝试简单复现却并没有将问题复现出来。尝试复现的代码如下:

ts
let position = []
 for (let i = 0; i < 10000; i++) {
     let arr = [
         {
diff --git a/assets/2023_ca0dyou1hua4.md.2cd62bff.lean.js b/assets/2023_ca0dyou1hua4.md.c346e90c.lean.js
similarity index 100%
rename from assets/2023_ca0dyou1hua4.md.2cd62bff.lean.js
rename to assets/2023_ca0dyou1hua4.md.c346e90c.lean.js
diff --git a/assets/2023_flutter_flu0tte0rxiang4mu4xue2xi2.md.6df3122a.js b/assets/2023_flutter_flu0tte0rxiang4mu4xue2xi2.md.b55898ca.js
similarity index 54%
rename from assets/2023_flutter_flu0tte0rxiang4mu4xue2xi2.md.6df3122a.js
rename to assets/2023_flutter_flu0tte0rxiang4mu4xue2xi2.md.b55898ca.js
index ec6fb59..d58c5f9 100644
--- a/assets/2023_flutter_flu0tte0rxiang4mu4xue2xi2.md.6df3122a.js
+++ b/assets/2023_flutter_flu0tte0rxiang4mu4xue2xi2.md.b55898ca.js
@@ -1,3 +1,3 @@
-import{_ as e,o as t,c as a,V as o}from"./chunks/framework.c5c8a48b.js";const _=JSON.parse('{"title":"flutter项目学习","description":"","frontmatter":{},"headers":[],"relativePath":"2023/flutter/flu0tte0rxiang4mu4xue2xi2.md","filePath":"2023/flutter/flu0tte0rxiang4mu4xue2xi2.md","lastUpdated":null}'),l={name:"2023/flutter/flu0tte0rxiang4mu4xue2xi2.md"},s=o(`

flutter项目学习

7个Flutter开源项目让你成为更好的Flutter开发者 https://juejin.cn/post/7219234932735934524

键盘弹起页面布局上移问题

Scaffold中加上resizeToAvoidBottomInset: false

dart
Scaffold(
+import{_ as e,o as t,c as a,V as o}from"./chunks/framework.c5c8a48b.js";const _=JSON.parse('{"title":"flutter项目学习","description":"","frontmatter":{},"headers":[],"relativePath":"2023/flutter/flu0tte0rxiang4mu4xue2xi2.md","filePath":"2023/flutter/flu0tte0rxiang4mu4xue2xi2.md","lastUpdated":null}'),l={name:"2023/flutter/flu0tte0rxiang4mu4xue2xi2.md"},s=o(`

flutter项目学习

7个Flutter开源项目让你成为更好的Flutter开发者 https://juejin.cn/post/7219234932735934524

键盘弹起页面布局上移问题

Scaffold中加上resizeToAvoidBottomInset: false

dart
Scaffold(
     resizeToAvoidBottomInset: false, // 禁止布局随着键盘上移动
-    body:

Flutter打包问题

  • Android Studio中用Flutter build ios打包,打包后会生成build文件夹
  • 打开Xcode,选择Window -> Devices and Simulators打开设备管理器
  • 在设备管理器选择设备,然后点击右侧的+按钮
  • 在弹出的窗口中选择刚才打包生成的build文件夹下的ios -> iphoneos -> Runner.app即可安装到设备上
`,8),n=[s];function r(c,i,d,p,u,f){return t(),a("div",null,n)}const m=e(l,[["render",r]]);export{_ as __pageData,m as default}; + body:

Flutter打包问题

  • Android Studio中用Flutter build ios打包,打包后会生成build文件夹
  • 打开Xcode,选择Window -> Devices and Simulators打开设备管理器
  • 在设备管理器选择设备,然后点击右侧的+按钮
  • 在弹出的窗口中选择刚才打包生成的build文件夹下的ios -> iphoneos -> Runner.app即可安装到设备上

正式发包

https://help.apple.com/itc/transporteruserguide/zh_CN.lproj/static.html

`,9),r=[s];function n(c,i,d,p,u,h){return t(),a("div",null,r)}const m=e(l,[["render",n]]);export{_ as __pageData,m as default}; diff --git a/assets/2023_flutter_flu0tte0rxiang4mu4xue2xi2.md.6df3122a.lean.js b/assets/2023_flutter_flu0tte0rxiang4mu4xue2xi2.md.b55898ca.lean.js similarity index 65% rename from assets/2023_flutter_flu0tte0rxiang4mu4xue2xi2.md.6df3122a.lean.js rename to assets/2023_flutter_flu0tte0rxiang4mu4xue2xi2.md.b55898ca.lean.js index acf8a26..3a8a654 100644 --- a/assets/2023_flutter_flu0tte0rxiang4mu4xue2xi2.md.6df3122a.lean.js +++ b/assets/2023_flutter_flu0tte0rxiang4mu4xue2xi2.md.b55898ca.lean.js @@ -1 +1 @@ -import{_ as e,o as t,c as a,V as o}from"./chunks/framework.c5c8a48b.js";const _=JSON.parse('{"title":"flutter项目学习","description":"","frontmatter":{},"headers":[],"relativePath":"2023/flutter/flu0tte0rxiang4mu4xue2xi2.md","filePath":"2023/flutter/flu0tte0rxiang4mu4xue2xi2.md","lastUpdated":null}'),l={name:"2023/flutter/flu0tte0rxiang4mu4xue2xi2.md"},s=o("",8),n=[s];function r(c,i,d,p,u,f){return t(),a("div",null,n)}const m=e(l,[["render",r]]);export{_ as __pageData,m as default}; +import{_ as e,o as t,c as a,V as o}from"./chunks/framework.c5c8a48b.js";const _=JSON.parse('{"title":"flutter项目学习","description":"","frontmatter":{},"headers":[],"relativePath":"2023/flutter/flu0tte0rxiang4mu4xue2xi2.md","filePath":"2023/flutter/flu0tte0rxiang4mu4xue2xi2.md","lastUpdated":null}'),l={name:"2023/flutter/flu0tte0rxiang4mu4xue2xi2.md"},s=o("",9),r=[s];function n(c,i,d,p,u,h){return t(),a("div",null,r)}const m=e(l,[["render",n]]);export{_ as __pageData,m as default}; diff --git a/assets/2023_jiao3shou3jia4kai1fa1.md.45a40831.js b/assets/2023_jiao3shou3jia4kai1fa1.md.7f2baba3.js similarity index 99% rename from assets/2023_jiao3shou3jia4kai1fa1.md.45a40831.js rename to assets/2023_jiao3shou3jia4kai1fa1.md.7f2baba3.js index d6f4584..268c53d 100644 --- a/assets/2023_jiao3shou3jia4kai1fa1.md.45a40831.js +++ b/assets/2023_jiao3shou3jia4kai1fa1.md.7f2baba3.js @@ -1,4 +1,4 @@ -import{d as o}from"./chunks/pinyin.data.7aef660e.js";import{o as p,c as e,k as s,a,l as t,V as c}from"./chunks/framework.c5c8a48b.js";const r=s("h1",{id:"脚手架开发",tabindex:"-1"},[a("脚手架开发 "),s("a",{class:"header-anchor",href:"#脚手架开发","aria-label":'Permalink to "脚手架开发"'},"​")],-1),D=["href"],F=c(`

package.json 配置 bin

json
"bin": {
+import{d as o}from"./chunks/pinyin.data.f658c8fa.js";import{o as p,c as e,k as s,a,l as t,V as c}from"./chunks/framework.c5c8a48b.js";const r=s("h1",{id:"脚手架开发",tabindex:"-1"},[a("脚手架开发 "),s("a",{class:"header-anchor",href:"#脚手架开发","aria-label":'Permalink to "脚手架开发"'},"​")],-1),D=["href"],F=c(`

package.json 配置 bin

json
"bin": {
     "wakk": "./index.js"
 }

执行npm link命令,link相当于将当前本地模块链接到npm目录下,这个目录可以直接访问。默认package.jsonname为基准,也可以通过bin配置别名。 npm unlink解除链接: npm unlink chaochao-cli --location=global 只有本地开发需要执行这一步,正常脚手架全局安装无需执行此步骤。因为npm link以后,相当于全局可以执行wakk命令,这里不执行npm link命令。

删除依赖、执行命令

删除项目中已经安装好的目录,重新pnpm install,让demo1项目下生成wakk的软链接。这个时候去demo1打开终端,运行wakk会报如下错误:

ts
wakk: The term 'wakk' is not recognized as a name of a cmdlet, function, script file, or executable program.
 Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

执行npx wakk则可以正常执行,所以脚手架发布以后,可以全局安装使用,也可以单个项目安装,然后配置npx使用。

到这里我就弄懂了如何配置一个可以不使用npm run执行的脚手架命令,至于后续的如何拉去git远程模板,配置友好的脚手架命令提示等内容,以后有时候再补。 可以参考: https://juejin.cn/post/7086340583697940516?searchId=202308011333480F886C2A2AE1C06DAA0B#comment

我之前一直理解的脚手架就是拉取一份模板项目代码下来,而有难度的脚手架应该是支持扩展的,能够根据用户的选择来构建不同的项目模板。

https://github.com/xun082/react-cli

https://juejin.cn/post/7246001188449550396?share_token=aac06d17-4ce8-429d-b237-63e10991e6cb#comment

脚手架开发

书接上回,这次来做一个脚手架开发,先实现拉去 template 仓库里面的固定代码,如果后续脚手架需要扩展,适配不同的框架和项目,就只需要在 template 里面新建一个分支,每次都去拉取不同的分支代码就可以了。 新的脚手架项目我决定要用 ESlint 来做代码格式化,弃用 Prettier。

  • npm init -y 初始化包

  • package.json 中配置 bin

  • npm install -save-dev typescript @types/node 安装 ts

  • tsc --init 生成 ts 配置文件 ts 的配置 include 和 exclude 配置是用来说明哪些文件需要编译,哪些文件不需要被编译的,比如我这里配置的 include 是 src 下面的文件,那我 src 外的 ts 文件则不会被编译。而如果我不添加 include 配置,则所有的 ts 文件都会被编译

    json
    "include": ["src/**/*"],
    diff --git a/assets/2023_jiao3shou3jia4kai1fa1.md.45a40831.lean.js b/assets/2023_jiao3shou3jia4kai1fa1.md.7f2baba3.lean.js
    similarity index 92%
    rename from assets/2023_jiao3shou3jia4kai1fa1.md.45a40831.lean.js
    rename to assets/2023_jiao3shou3jia4kai1fa1.md.7f2baba3.lean.js
    index 33fcfb9..9f12f03 100644
    --- a/assets/2023_jiao3shou3jia4kai1fa1.md.45a40831.lean.js
    +++ b/assets/2023_jiao3shou3jia4kai1fa1.md.7f2baba3.lean.js
    @@ -1 +1 @@
    -import{d as o}from"./chunks/pinyin.data.7aef660e.js";import{o as p,c as e,k as s,a,l as t,V as c}from"./chunks/framework.c5c8a48b.js";const r=s("h1",{id:"脚手架开发",tabindex:"-1"},[a("脚手架开发 "),s("a",{class:"header-anchor",href:"#脚手架开发","aria-label":'Permalink to "脚手架开发"'},"​")],-1),D=["href"],F=c("",22),m=JSON.parse('{"title":"脚手架开发","description":"","frontmatter":{},"headers":[],"relativePath":"2023/jiao3shou3jia4kai1fa1.md","filePath":"2023/jiao3shou3jia4kai1fa1.md","lastUpdated":null}'),y={name:"2023/jiao3shou3jia4kai1fa1.md"},h=Object.assign(y,{setup(i){const n="Monorepo学习",l=o.data[n]?o.data[n]:n;return(A,C)=>(p(),e("div",null,[r,s("p",null,[a("这次我们还是在 "),s("a",{href:"./"+t(l)},"Monorepo+pnpm",8,D),a(" 的代码基础上进行开发")]),F]))}});export{m as __pageData,h as default};
    +import{d as o}from"./chunks/pinyin.data.f658c8fa.js";import{o as p,c as e,k as s,a,l as t,V as c}from"./chunks/framework.c5c8a48b.js";const r=s("h1",{id:"脚手架开发",tabindex:"-1"},[a("脚手架开发 "),s("a",{class:"header-anchor",href:"#脚手架开发","aria-label":'Permalink to "脚手架开发"'},"​")],-1),D=["href"],F=c("",22),m=JSON.parse('{"title":"脚手架开发","description":"","frontmatter":{},"headers":[],"relativePath":"2023/jiao3shou3jia4kai1fa1.md","filePath":"2023/jiao3shou3jia4kai1fa1.md","lastUpdated":null}'),y={name:"2023/jiao3shou3jia4kai1fa1.md"},h=Object.assign(y,{setup(i){const n="Monorepo学习",l=o.data[n]?o.data[n]:n;return(A,C)=>(p(),e("div",null,[r,s("p",null,[a("这次我们还是在 "),s("a",{href:"./"+t(l)},"Monorepo+pnpm",8,D),a(" 的代码基础上进行开发")]),F]))}});export{m as __pageData,h as default};
    diff --git a/assets/2023_n0pmru0n0de0vhou4fa1sheng1le0shen2me0.md.f131a4f6.js b/assets/2023_n0pmru0n0de0vhou4fa1sheng1le0shen2me0.md.2ef37717.js
    similarity index 99%
    rename from assets/2023_n0pmru0n0de0vhou4fa1sheng1le0shen2me0.md.f131a4f6.js
    rename to assets/2023_n0pmru0n0de0vhou4fa1sheng1le0shen2me0.md.2ef37717.js
    index 043e67c..e7ae1a2 100644
    --- a/assets/2023_n0pmru0n0de0vhou4fa1sheng1le0shen2me0.md.f131a4f6.js
    +++ b/assets/2023_n0pmru0n0de0vhou4fa1sheng1le0shen2me0.md.2ef37717.js
    @@ -1,4 +1,4 @@
    -import{d as a}from"./chunks/pinyin.data.7aef660e.js";import{o as r,c as D,k as s,a as n,l as p,V as e}from"./chunks/framework.c5c8a48b.js";const y=e(`

    npm run dev后发生了什么

    npm run dev后发生了什么

    这里以acorn为例:

    • npm install的时候会根据库源代码的package.json中的bin配置来生成node_modules/.bin下的软链接
    json
    "bin": {
    +import{d as a}from"./chunks/pinyin.data.f658c8fa.js";import{o as r,c as D,k as s,a as n,l as p,V as e}from"./chunks/framework.c5c8a48b.js";const y=e(`

    npm run dev后发生了什么

    npm run dev后发生了什么

    这里以acorn为例:

    • npm install的时候会根据库源代码的package.json中的bin配置来生成node_modules/.bin下的软链接
    json
    "bin": {
        "acorn": "./bin/acorn"
     }
    • 软链接是一个脚本,它会用node去执行node_modulesacorn/bin/acorn.js文件
      软链接有三个文件,windows执行的是cmd文件:
      acornunix默认的可执行文件
      acorn.cmdwindows cmd中默认的可执行文件
      acorn.ps1windows powershell中可执行文件,可以跨平台
    sh
    #!/bin/sh
     basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')")
    diff --git a/assets/2023_n0pmru0n0de0vhou4fa1sheng1le0shen2me0.md.f131a4f6.lean.js b/assets/2023_n0pmru0n0de0vhou4fa1sheng1le0shen2me0.md.2ef37717.lean.js
    similarity index 96%
    rename from assets/2023_n0pmru0n0de0vhou4fa1sheng1le0shen2me0.md.f131a4f6.lean.js
    rename to assets/2023_n0pmru0n0de0vhou4fa1sheng1le0shen2me0.md.2ef37717.lean.js
    index 4f1e182..e19998b 100644
    --- a/assets/2023_n0pmru0n0de0vhou4fa1sheng1le0shen2me0.md.f131a4f6.lean.js
    +++ b/assets/2023_n0pmru0n0de0vhou4fa1sheng1le0shen2me0.md.2ef37717.lean.js
    @@ -1 +1 @@
    -import{d as a}from"./chunks/pinyin.data.7aef660e.js";import{o as r,c as D,k as s,a as n,l as p,V as e}from"./chunks/framework.c5c8a48b.js";const y=e("",8),F=s("code",null,"ourcad",-1),i=s("code",null,"package.json",-1),d=s("code",null,"bin",-1),C=s("code",null,"node_modules/.bin",-1),A=s("br",null,null,-1),u=s("code",null,"bin",-1),h=s("code",null,"node_modules",-1),_=s("br",null,null,-1),m=["href"],b=s("br",null,null,-1),q=s("code",null,"demo3",-1),g=s("code",null,"index.ts",-1),f=e("",7),E=s("code",null,"vue-cli install",-1),v=s("code",null,"npm run vue-cli",-1),k=s("br",null,null,-1),B=["href"],$=JSON.parse('{"title":"npm run dev后发生了什么","description":"","frontmatter":{},"headers":[],"relativePath":"2023/n0pmru0n0de0vhou4fa1sheng1le0shen2me0.md","filePath":"2023/n0pmru0n0de0vhou4fa1sheng1le0shen2me0.md","lastUpdated":null}'),x={name:"2023/n0pmru0n0de0vhou4fa1sheng1le0shen2me0.md"},P=Object.assign(x,{setup(j){const o="Monorepo学习",l="脚手架开发",t=a.data[o]?a.data[o]:o,c=a.data[l]?a.data[l]:l;return(T,w)=>(r(),D("div",null,[y,s("p",null,[F,n("由于没有在"),i,n("中配置"),d,n("字段数据,所以不会在"),C,n("下生成软链接"),A,n(" 配置了"),u,n("字段的所有包都会在"),h,n("下生成软链接吗?"),_,n(" 是的!我在上午刚用 "),s("a",{href:"./"+p(t)},"Monorepo+pnpm",8,m),n(" 搭建的项目里做了如下测试:"),b,n(" 1 修改"),q,n("中的"),g,n("代码,修改如下:")]),f,s("p",null,[n("问:如何做一个脚手架,让安装的人直接执行你的命令,就像:"),E,n("一样,而不是"),v,k,n(" 答:后续补充了脚手架相关内容的学习,具体内容可以查看"),s("a",{href:"./"+p(c)},"脚手架开发",8,B)])]))}});export{$ as __pageData,P as default};
    +import{d as a}from"./chunks/pinyin.data.f658c8fa.js";import{o as r,c as D,k as s,a as n,l as p,V as e}from"./chunks/framework.c5c8a48b.js";const y=e("",8),F=s("code",null,"ourcad",-1),i=s("code",null,"package.json",-1),d=s("code",null,"bin",-1),C=s("code",null,"node_modules/.bin",-1),A=s("br",null,null,-1),u=s("code",null,"bin",-1),h=s("code",null,"node_modules",-1),_=s("br",null,null,-1),m=["href"],b=s("br",null,null,-1),q=s("code",null,"demo3",-1),g=s("code",null,"index.ts",-1),f=e("",7),E=s("code",null,"vue-cli install",-1),v=s("code",null,"npm run vue-cli",-1),k=s("br",null,null,-1),B=["href"],$=JSON.parse('{"title":"npm run dev后发生了什么","description":"","frontmatter":{},"headers":[],"relativePath":"2023/n0pmru0n0de0vhou4fa1sheng1le0shen2me0.md","filePath":"2023/n0pmru0n0de0vhou4fa1sheng1le0shen2me0.md","lastUpdated":null}'),x={name:"2023/n0pmru0n0de0vhou4fa1sheng1le0shen2me0.md"},P=Object.assign(x,{setup(j){const o="Monorepo学习",l="脚手架开发",t=a.data[o]?a.data[o]:o,c=a.data[l]?a.data[l]:l;return(T,w)=>(r(),D("div",null,[y,s("p",null,[F,n("由于没有在"),i,n("中配置"),d,n("字段数据,所以不会在"),C,n("下生成软链接"),A,n(" 配置了"),u,n("字段的所有包都会在"),h,n("下生成软链接吗?"),_,n(" 是的!我在上午刚用 "),s("a",{href:"./"+p(t)},"Monorepo+pnpm",8,m),n(" 搭建的项目里做了如下测试:"),b,n(" 1 修改"),q,n("中的"),g,n("代码,修改如下:")]),f,s("p",null,[n("问:如何做一个脚手架,让安装的人直接执行你的命令,就像:"),E,n("一样,而不是"),v,k,n(" 答:后续补充了脚手架相关内容的学习,具体内容可以查看"),s("a",{href:"./"+p(c)},"脚手架开发",8,B)])]))}});export{$ as __pageData,P as default};
    diff --git a/assets/2023_vitePress_xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.md.1b4135f9.js b/assets/2023_vitePress_xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.md.86c6ddbe.js
    similarity index 99%
    rename from assets/2023_vitePress_xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.md.1b4135f9.js
    rename to assets/2023_vitePress_xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.md.86c6ddbe.js
    index 994cb8d..75daa98 100644
    --- a/assets/2023_vitePress_xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.md.1b4135f9.js
    +++ b/assets/2023_vitePress_xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.md.86c6ddbe.js
    @@ -1,4 +1,4 @@
    -import{d as l}from"./chunks/pinyin.data.7aef660e.js";import{o as p,c as e,k as s,a,l as t,V as c}from"./chunks/framework.c5c8a48b.js";const r=s("h1",{id:"学习element-plus的vitepress配置",tabindex:"-1"},[a("学习element-plus的vitePress配置 "),s("a",{class:"header-anchor",href:"#学习element-plus的vitepress配置","aria-label":'Permalink to "学习element-plus的vitePress配置"'},"​")],-1),D=s("code",null,"element-plus",-1),y=s("code",null,"element-plus",-1),F=["href"],i=c(`
    json
    "@element-plus/build": "workspace:*",
    +import{d as l}from"./chunks/pinyin.data.f658c8fa.js";import{o as p,c as e,k as s,a,l as t,V as c}from"./chunks/framework.c5c8a48b.js";const r=s("h1",{id:"学习element-plus的vitepress配置",tabindex:"-1"},[a("学习element-plus的vitePress配置 "),s("a",{class:"header-anchor",href:"#学习element-plus的vitepress配置","aria-label":'Permalink to "学习element-plus的vitePress配置"'},"​")],-1),D=s("code",null,"element-plus",-1),y=s("code",null,"element-plus",-1),F=["href"],i=c(`
    json
    "@element-plus/build": "workspace:*",
     "@element-plus/build-constants": "workspace:*",
     "@element-plus/build-utils": "workspace:*",

    element-plus 写文档的做法是在.vitepress 文档下新建 theme 文件夹,页面内容全部自己开发,甚至vitepress自带的组件都需要自己写一遍,这种方法的优点是:效果也很好,页面自由度极高。缺点是不太适合我这种懒人,暂不采用。

    element-plustheme文件夹下index.ts的配置如下所示:

    ts
    import ElementPlus from 'element-plus'
     
    diff --git a/assets/2023_vitePress_xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.md.1b4135f9.lean.js b/assets/2023_vitePress_xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.md.86c6ddbe.lean.js
    similarity index 95%
    rename from assets/2023_vitePress_xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.md.1b4135f9.lean.js
    rename to assets/2023_vitePress_xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.md.86c6ddbe.lean.js
    index 8f66658..0796d6a 100644
    --- a/assets/2023_vitePress_xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.md.1b4135f9.lean.js
    +++ b/assets/2023_vitePress_xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.md.86c6ddbe.lean.js
    @@ -1 +1 @@
    -import{d as l}from"./chunks/pinyin.data.7aef660e.js";import{o as p,c as e,k as s,a,l as t,V as c}from"./chunks/framework.c5c8a48b.js";const r=s("h1",{id:"学习element-plus的vitepress配置",tabindex:"-1"},[a("学习element-plus的vitePress配置 "),s("a",{class:"header-anchor",href:"#学习element-plus的vitepress配置","aria-label":'Permalink to "学习element-plus的vitePress配置"'},"​")],-1),D=s("code",null,"element-plus",-1),y=s("code",null,"element-plus",-1),F=["href"],i=c("",7),g=JSON.parse('{"title":"学习element-plus的vitePress配置","description":"","frontmatter":{},"headers":[],"relativePath":"2023/vitePress/xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.md","filePath":"2023/vitePress/xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.md","lastUpdated":null}'),C={name:"2023/vitePress/xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.md"},f=Object.assign(C,{setup(A){const n="Monorepo学习",o=l.data[n]?l.data[n]:n;return(u,d)=>(p(),e("div",null,[r,s("p",null,[a("本来想单独把 "),D,a(" 的项目拎出来,这样更方便学习。但是因为 "),y,a(" 项目是用 "),s("a",{href:"../"+t(o)},"Monorepo",8,F),a(" 来搭建的,它的文档项目中引用了自己项目内部的一些依赖,所有不能直接把项目的文档部分单独拿出来运行")]),i]))}});export{g as __pageData,f as default};
    +import{d as l}from"./chunks/pinyin.data.f658c8fa.js";import{o as p,c as e,k as s,a,l as t,V as c}from"./chunks/framework.c5c8a48b.js";const r=s("h1",{id:"学习element-plus的vitepress配置",tabindex:"-1"},[a("学习element-plus的vitePress配置 "),s("a",{class:"header-anchor",href:"#学习element-plus的vitepress配置","aria-label":'Permalink to "学习element-plus的vitePress配置"'},"​")],-1),D=s("code",null,"element-plus",-1),y=s("code",null,"element-plus",-1),F=["href"],i=c("",7),g=JSON.parse('{"title":"学习element-plus的vitePress配置","description":"","frontmatter":{},"headers":[],"relativePath":"2023/vitePress/xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.md","filePath":"2023/vitePress/xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.md","lastUpdated":null}'),C={name:"2023/vitePress/xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.md"},f=Object.assign(C,{setup(A){const n="Monorepo学习",o=l.data[n]?l.data[n]:n;return(u,d)=>(p(),e("div",null,[r,s("p",null,[a("本来想单独把 "),D,a(" 的项目拎出来,这样更方便学习。但是因为 "),y,a(" 项目是用 "),s("a",{href:"../"+t(o)},"Monorepo",8,F),a(" 来搭建的,它的文档项目中引用了自己项目内部的一些依赖,所有不能直接把项目的文档部分单独拿出来运行")]),i]))}});export{g as __pageData,f as default};
    diff --git "a/assets/2023_webGPU\345\255\246\344\271\240_WGSL.md.663139ea.js" "b/assets/2023_webGPU\345\255\246\344\271\240_WGSL.md.c78978e1.js"
    similarity index 99%
    rename from "assets/2023_webGPU\345\255\246\344\271\240_WGSL.md.663139ea.js"
    rename to "assets/2023_webGPU\345\255\246\344\271\240_WGSL.md.c78978e1.js"
    index 82999c8..f85e69d 100644
    --- "a/assets/2023_webGPU\345\255\246\344\271\240_WGSL.md.663139ea.js"
    +++ "b/assets/2023_webGPU\345\255\246\344\271\240_WGSL.md.c78978e1.js"
    @@ -1,4 +1,4 @@
    -import{_ as s,o as a,c as n,V as l}from"./chunks/framework.c5c8a48b.js";const i=JSON.parse('{"title":"着色器语言WGSL","description":"","frontmatter":{},"headers":[],"relativePath":"2023/webGPU学习/WGSL.md","filePath":"2023/webGPU学习/WGSL.md","lastUpdated":1698929614000}'),p={name:"2023/webGPU学习/WGSL.md"},o=l(`

    着色器语言WGSL

    WGSL是在gpu上执行

    • 函数
    ts
    // wgsl中的函数写法, ->后面是函数返回值类型
    +import{_ as s,o as a,c as n,V as l}from"./chunks/framework.c5c8a48b.js";const i=JSON.parse('{"title":"着色器语言WGSL","description":"","frontmatter":{},"headers":[],"relativePath":"2023/webGPU学习/WGSL.md","filePath":"2023/webGPU学习/WGSL.md","lastUpdated":1698998049000}'),p={name:"2023/webGPU学习/WGSL.md"},o=l(`

    着色器语言WGSL

    WGSL是在gpu上执行

    • 函数
    ts
    // wgsl中的函数写法, ->后面是函数返回值类型
     fn add(x: f32, y:f32) -> f32 {
         return x + y;
     }
    • 向量
    ts
    // 声明一个四维向量并赋值
    diff --git "a/assets/2023_webGPU\345\255\246\344\271\240_WGSL.md.663139ea.lean.js" "b/assets/2023_webGPU\345\255\246\344\271\240_WGSL.md.c78978e1.lean.js"
    similarity index 85%
    rename from "assets/2023_webGPU\345\255\246\344\271\240_WGSL.md.663139ea.lean.js"
    rename to "assets/2023_webGPU\345\255\246\344\271\240_WGSL.md.c78978e1.lean.js"
    index bac1a1b..e2258f9 100644
    --- "a/assets/2023_webGPU\345\255\246\344\271\240_WGSL.md.663139ea.lean.js"
    +++ "b/assets/2023_webGPU\345\255\246\344\271\240_WGSL.md.c78978e1.lean.js"
    @@ -1 +1 @@
    -import{_ as s,o as a,c as n,V as l}from"./chunks/framework.c5c8a48b.js";const i=JSON.parse('{"title":"着色器语言WGSL","description":"","frontmatter":{},"headers":[],"relativePath":"2023/webGPU学习/WGSL.md","filePath":"2023/webGPU学习/WGSL.md","lastUpdated":1698929614000}'),p={name:"2023/webGPU学习/WGSL.md"},o=l("",12),t=[o];function e(c,r,y,F,C,D){return a(),n("div",null,t)}const g=s(p,[["render",e]]);export{i as __pageData,g as default};
    +import{_ as s,o as a,c as n,V as l}from"./chunks/framework.c5c8a48b.js";const i=JSON.parse('{"title":"着色器语言WGSL","description":"","frontmatter":{},"headers":[],"relativePath":"2023/webGPU学习/WGSL.md","filePath":"2023/webGPU学习/WGSL.md","lastUpdated":1698998049000}'),p={name:"2023/webGPU学习/WGSL.md"},o=l("",12),t=[o];function e(c,r,y,F,C,D){return a(),n("div",null,t)}const g=s(p,[["render",e]]);export{i as __pageData,g as default};
    diff --git a/assets/app.0e1ca757.js b/assets/app.a10be103.js
    similarity index 95%
    rename from assets/app.0e1ca757.js
    rename to assets/app.a10be103.js
    index 70297e5..604ec70 100644
    --- a/assets/app.0e1ca757.js
    +++ b/assets/app.a10be103.js
    @@ -1 +1 @@
    -import{W as s,a5 as i,a6 as p,a7 as u,a8 as c,a9 as l,aa as f,ab as d,ac as m,ad as h,ae as A,Z as g,d as P,u as v,j as y,A as C,af as w,ag as _,ah as b,ai as E}from"./chunks/framework.c5c8a48b.js";import{t as R}from"./chunks/theme.ce6d32d1.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const o=r(R),D=P({name:"VitePressApp",setup(){const{site:e}=v();return y(()=>{C(()=>{document.documentElement.lang=e.value.lang,document.documentElement.dir=e.value.dir})}),w(),_(),b(),o.setup&&o.setup(),()=>E(o.Layout)}});async function j(){const e=S(),a=O();a.provide(p,e);const t=u(e.route);return a.provide(c,t),a.component("Content",l),a.component("ClientOnly",f),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),o.enhanceApp&&await o.enhanceApp({app:a,router:e,siteData:d}),{app:a,router:e,data:t}}function O(){return m(D)}function S(){let e=s,a;return h(t=>{let n=A(t);return n?(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),s&&(e=!1),g(()=>import(n),[])):null},o.NotFound)}s&&j().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{j as createApp};
    +import{W as s,a5 as i,a6 as p,a7 as u,a8 as c,a9 as l,aa as f,ab as d,ac as m,ad as h,ae as A,Z as g,d as P,u as v,j as y,A as C,af as w,ag as _,ah as b,ai as E}from"./chunks/framework.c5c8a48b.js";import{t as R}from"./chunks/theme.14e22398.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const o=r(R),D=P({name:"VitePressApp",setup(){const{site:e}=v();return y(()=>{C(()=>{document.documentElement.lang=e.value.lang,document.documentElement.dir=e.value.dir})}),w(),_(),b(),o.setup&&o.setup(),()=>E(o.Layout)}});async function j(){const e=S(),a=O();a.provide(p,e);const t=u(e.route);return a.provide(c,t),a.component("Content",l),a.component("ClientOnly",f),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),o.enhanceApp&&await o.enhanceApp({app:a,router:e,siteData:d}),{app:a,router:e,data:t}}function O(){return m(D)}function S(){let e=s,a;return h(t=>{let n=A(t);return n?(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),s&&(e=!1),g(()=>import(n),[])):null},o.NotFound)}s&&j().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{j as createApp};
    diff --git a/assets/chunks/@localSearchIndexroot.da0703be.js b/assets/chunks/@localSearchIndexroot.da0703be.js
    deleted file mode 100644
    index d8da2db..0000000
    --- a/assets/chunks/@localSearchIndexroot.da0703be.js
    +++ /dev/null
    @@ -1 +0,0 @@
    -const t='{"documentCount":314,"nextId":314,"documentIds":{"0":"/myblog/2023/ESli0n0the2Pre0tti0e0rde0bi3jiao4.html#eslint和prettier的比较","1":"/myblog/2023/ESli0n0the2Pre0tti0e0rde0bi3jiao4.html#替代方案","2":"/myblog/2023/G2xue2xi2.html#g2","3":"/myblog/2023/G2xue2xi2.html#g2学习","4":"/myblog/2023/G2xue2xi2.html#安装","5":"/myblog/2023/G2xue2xi2.html#绘制第一张图表","6":"/myblog/2023/G2xue2xi2.html#使用复合节点在一个容器中绘制两张图表","7":"/myblog/2023/G2xue2xi2.html#请求json文件作为数据源","8":"/myblog/2023/G2xue2xi2.html#图表数据叠加","9":"/myblog/2023/G2xue2xi2.html#使用复合-mark","10":"/myblog/2023/G2xue2xi2.html#桑基图绘制","11":"/myblog/2023/Mo0n0o0re0po0xue2xi2.html#monorepo学习","12":"/myblog/2023/Mo0n0o0re0po0xue2xi2.html#安装pnpm","13":"/myblog/2023/Mo0n0o0re0po0xue2xi2.html#项目结构搭建","14":"/myblog/2023/Mo0n0o0re0po0xue2xi2.html#安装公共的vue、element-plus和typescript依赖","15":"/myblog/2023/Mo0n0o0re0po0xue2xi2.html#demo1中创建vue3项目","16":"/myblog/2023/Mo0n0o0re0po0xue2xi2.html#demo2、demo3中提供一些封装好的逻辑","17":"/myblog/2023/Mo0n0o0re0po0xue2xi2.html#在vue3项目中安装demo2、demo3作为依赖","18":"/myblog/2023/Mo0n0o0re0po0xue2xi2.html#在外层的package-json中配置命令启动packages文件夹下面的项目","19":"/myblog/2023/Mo0n0o0re0po0xue2xi2.html#npm-run-all来串行-并行执行命令","20":"/myblog/2023/Mo0n0o0re0po0xue2xi2.html#学习参考链接","21":"/myblog/2023/Nest学习/1-huan2jing4an1zhuang1he2xiang4mu4da1jian4.html#环境安装和项目搭建","22":"/myblog/2023/Nest学习/qian2yan2.html#前言","23":"/myblog/2023/ca0dsi1lu4he2liu2cheng2.html#cad思路和流程","24":"/myblog/2023/ca0dyou1hua4.html#cad优化","25":"/myblog/2023/ca0dyou1hua4.html#文字优化","26":"/myblog/2023/ca0dyou1hua4.html#后面的优化方向","27":"/myblog/2023/ca0dyou1hua4.html#svg的提取尝试","28":"/myblog/2023/ca0dyou1hua4.html#cad的内存泄漏问题","29":"/myblog/2023/ca0dyou1hua4.html#事件执行顺序优化","30":"/myblog/2023/ca0dyou1hua4.html#three中是如何绘制出line2的-它的底层原理是什么","31":"/myblog/2023/ca0dyou1hua4.html#图层数据收集过程中的数据数据污染问题","32":"/myblog/2023/ca0dyou1hua4.html#用贝塞尔曲线来优化cad的手绘线批注","33":"/myblog/2023/flutter/da0rtxue2xi2.html#dart学习","34":"/myblog/2023/flutter/da0rtxue2xi2.html#定义变量的关键字","35":"/myblog/2023/flutter/da0rtxue2xi2.html#基础数据类型","36":"/myblog/2023/flutter/da0rtxue2xi2.html#数据类型判断","37":"/myblog/2023/flutter/da0rtxue2xi2.html#数据类型转换","38":"/myblog/2023/flutter/da0rtxue2xi2.html#变量名-在字符串中插入变量值","39":"/myblog/2023/flutter/da0rtxue2xi2.html#运算符","40":"/myblog/2023/flutter/da0rtxue2xi2.html#函数","41":"/myblog/2023/flutter/da0rtxue2xi2.html#命名参数","42":"/myblog/2023/flutter/da0rtxue2xi2.html#位置参数","43":"/myblog/2023/flutter/da0rtxue2xi2.html#class类","44":"/myblog/2023/flutter/da0rtxue2xi2.html#继承","45":"/myblog/2023/flutter/da0rtxue2xi2.html#子类覆写父类方法","46":"/myblog/2023/flutter/da0rtxue2xi2.html#聚合类型","47":"/myblog/2023/flutter/da0rtxue2xi2.html#列表list","48":"/myblog/2023/flutter/da0rtxue2xi2.html#集合set","49":"/myblog/2023/flutter/da0rtxue2xi2.html#映射map","50":"/myblog/2023/flutter/da0rtxue2xi2.html#空安全","51":"/myblog/2023/flutter/da0rtxue2xi2.html#异步任务","52":"/myblog/2023/flutter/da0rtxue2xi2.html#ar-sdk学习了解","53":"/myblog/2023/flutter/da0rtxue2xi2.html#nvidia-cloudxr-sdk","54":"/myblog/2023/flutter/da0rtxue2xi2.html#arkit","55":"/myblog/2023/flutter/da0rtxue2xi2.html#metal","56":"/myblog/2023/flutter/flu0tte0rbu4ju2.html#flutter学习","57":"/myblog/2023/flutter/flu0tte0rbu4ju2.html#布局","58":"/myblog/2023/flutter/flu0tte0rbu4ju2.html#基于material的应用","59":"/myblog/2023/flutter/flu0tte0rbu4ju2.html#非material-apps","60":"/myblog/2023/flutter/flu0tte0rbu4ju2.html#横向或纵向布局多个widgets","61":"/myblog/2023/flutter/flu0tte0rbu4ju2.html#对齐widgets","62":"/myblog/2023/flutter/flu0tte0rbu4ju2.html#调整widgets大小","63":"/myblog/2023/flutter/flu0tte0rbu4ju2.html#组合widgets","64":"/myblog/2023/flutter/flu0tte0rbu4ju2.html#嵌套行和列","65":"/myblog/2023/flutter/flu0tte0rbu4ju2.html#通用布局widgets","66":"/myblog/2023/flutter/flu0tte0rbu4ju2.html#stack","67":"/myblog/2023/flutter/flu0tte0rbu4ju2.html#statelesswidget和statefulwidget的区别","68":"/myblog/2023/flutter/flu0tte0rbu4ju2.html#getx","69":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#flutter常用组件","70":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#container","71":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#scaffold","72":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#text","73":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#style封装","74":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#expanded","75":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#image","76":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#icon","77":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#row、column","78":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#center","79":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#sizebox","80":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#card","81":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#defaulttextstyle-merge","82":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#padding","83":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#stack","84":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#circleavatar","85":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#listtile","86":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#输入框","87":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#按钮","88":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#tooltip","89":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#popupmenubutton弹出菜单","90":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#进度条","91":"/myblog/2023/flutter/flu0tte0rhuan2jing4da1jian4.html#flutter入门学习","92":"/myblog/2023/flutter/flu0tte0rhuan2jing4da1jian4.html#环境安装","93":"/myblog/2023/flutter/flu0tte0rhuan2jing4da1jian4.html#flutter的包管理工具pub","94":"/myblog/2023/flutter/flu0tte0rhuan2jing4da1jian4.html#mac-mini环境配置","95":"/myblog/2023/flutter/flu0tte0rhuan2jing4da1jian4.html#vscode如何配置环境","96":"/myblog/2023/flutter/flu0tte0rhuan2jing4da1jian4.html#如何用xcode运行flutter项目","97":"/myblog/2023/flutter/flu0tte0rhuan2jing4da1jian4.html#mac-mini-配置环境变量","98":"/myblog/2023/flutter/flu0tte0rhuan2jing4da1jian4.html#fvm切换flutter版本","99":"/myblog/2023/flutter/flu0tte0rhuan2jing4da1jian4.html#impeller","100":"/myblog/2023/flutter/flu0tte0rhuan2jing4da1jian4.html#happinessx","101":"/myblog/2023/flutter/flu0tte0rhuan2jing4da1jian4.html#skia","102":"/myblog/2023/flutter/flu0tte0rshi3yong4Me0ta0l.html#flutter中使用metal","103":"/myblog/2023/flutter/flu0tte0rshi3yong4Me0ta0l.html#安装arkit-plugin","104":"/myblog/2023/flutter/flu0tte0rxiang4mu4xue2xi2.html#flutter项目学习","105":"/myblog/2023/flutter/flu0tte0rxiang4mu4xue2xi2.html#键盘弹起页面布局上移问题","106":"/myblog/2023/flutter/flu0tte0rxiang4mu4xue2xi2.html#flutter打包问题","107":"/myblog/2023/flutter/jie1kou3qing3qiu2.html#接口请求","108":"/myblog/2023/flutter/jie1kou3qing3qiu2.html#安装http库","109":"/myblog/2023/flutter/jie1kou3qing3qiu2.html#使用http库进行接口请求","110":"/myblog/2023/flutter/jie1kou3qing3qiu2.html#使用http封装数据模型进行接口请求","111":"/myblog/2023/flutter/jie1kou3qing3qiu2.html#安装dio库","112":"/myblog/2023/flutter/jie1kou3qing3qiu2.html#使用dio进行接口请求","113":"/myblog/2023/flutter/jie1kou3qing3qiu2.html#自定义请求头和参数传递","114":"/myblog/2023/flutter/jie1kou3qing3qiu2.html#使用baseoptions","115":"/myblog/2023/flutter/jie1kou3qing3qiu2.html#请求拦截和响应拦截","116":"/myblog/2023/flutter/lu4you2.html#路由","117":"/myblog/2023/flutter/lu4you2.html#页面之间跳转","118":"/myblog/2023/flutter/lu4you2.html#路由传参","119":"/myblog/2023/flutter/lu4you2.html#从新页面返回数据","120":"/myblog/2023/flutter/shu4ju4chi2jiu3hua4.html#数据持久化","121":"/myblog/2023/flutter/shu4ju4chi2jiu3hua4.html#shared-preferences","122":"/myblog/2023/flutter/yi1xie1chang2yong4chang3jing3.html#一些常用场景","123":"/myblog/2023/flutter/yi1xie1chang2yong4chang3jing3.html#有校验功能的表单","124":"/myblog/2023/flutter/yi1xie1chang2yong4chang3jing3.html#事件响应函数中弹出dialog弹窗","125":"/myblog/2023/flutter/yi1xie1chang2yong4chang3jing3.html#底部弹窗","126":"/myblog/2023/flutter/zhuang4tai4guan3li3.html#状态管理","127":"/myblog/2023/flutter/zhuang4tai4guan3li3.html#getx安装","128":"/myblog/2023/flutter/zhuang4tai4guan3li3.html#getx状态管理","129":"/myblog/2023/flutter/zhuang4tai4guan3li3.html#obx","130":"/myblog/2023/flutter/zhuang4tai4guan3li3.html#路由管理","131":"/myblog/2023/gi0tchang2yong4ming4ling4.html#git常用命令","132":"/myblog/2023/gi0thu0bti2jiao1pu0llre0qu0e0st.html#提交pull-request","133":"/myblog/2023/gi0thu0bti2jiao1pu0llre0qu0e0st.html#commit-规范","134":"/myblog/2023/ios学习/Swi0ftUIshi2zhan4.html#swiftui进阶","135":"/myblog/2023/ios学习/Swi0ftUIshi2zhan4.html#state","136":"/myblog/2023/ios学习/Swi0ftUIshi2zhan4.html#swift发请求","137":"/myblog/2023/ios学习/Swi0ftUIshi2zhan4.html#如何实现一个文字一行左对齐的效果","138":"/myblog/2023/ios学习/Swi0ftUIshi2zhan4.html#复选框控件的封装和使用","139":"/myblog/2023/ios学习/Swi0ftUIshi2zhan4.html#页面之间的跳转","140":"/myblog/2023/ios学习/Swi0ftUIshi2zhan4.html#闭包","141":"/myblog/2023/ios学习/Swi0ftUIshi2zhan4.html#将字符串转为对象","142":"/myblog/2023/ios学习/Swi0ftUIshi2zhan4.html#使用async-await发请求","143":"/myblog/2023/ios学习/ma0chuan2jing4an1zhuang1.html#mac环境安装","144":"/myblog/2023/ios学习/ma0chuan2jing4an1zhuang1.html#chrome浏览器","145":"/myblog/2023/ios学习/ma0chuan2jing4an1zhuang1.html#homebrew","146":"/myblog/2023/ios学习/ma0chuan2jing4an1zhuang1.html#nvm","147":"/myblog/2023/ios学习/ma0chuan2jing4an1zhuang1.html#git","148":"/myblog/2023/ios学习/ma0chuan2jing4an1zhuang1.html#vscode和xcode","149":"/myblog/2023/ios学习/me0ta0lxue2xi2.html#metal学习","150":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#swiftui开发","151":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#xcode中的快捷键","152":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#简单布局","153":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#将text中的文字改为大写","154":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#设置阴影","155":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#设置背景图片","156":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#设置覆盖","157":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#文字的颜色渐变","158":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#遮罩","159":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#自定义修饰符以及获取系统中的白天黑夜模式","160":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#navigationview、list的使用","161":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#sf-symbols-图标库","162":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#导航-navigationlink","163":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#swipe-actions-左滑右滑响应","164":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#structure-将代码封装成component","165":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#canvas画布","166":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#canvas动画","167":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#tabbar-组件","168":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#使用geometryreader来做tabbar的自适应处理","169":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#appstorage缓存","170":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#项目结构","171":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#数据绑定","172":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#横向tabview-走马灯效果","173":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#matched-geometry-effect","174":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#combine-环境变量的使用","175":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#安装和使用-cocoapods","176":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#lazy-grid","177":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#搜索列表和搜索建议","178":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#文本使用markdown语法","179":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#asyncimage异步加载图片","180":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#接口请求","181":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#打开开发人员工具","182":"/myblog/2023/ios学习/swi0fthe2flu0tte0rnei3ge4geng4hao3.html#swift和flutter的区别","183":"/myblog/2023/ios学习/swi0fthe2flu0tte0rnei3ge4geng4hao3.html#swift-package-manager使用","184":"/myblog/2023/ios学习/swi0fthe2flu0tte0rnei3ge4geng4hao3.html#使用阿里图标库","185":"/myblog/2023/ios学习/swi0fthe2flu0tte0rnei3ge4geng4hao3.html#cocoapods如何发布公有库","186":"/myblog/2023/ios学习/swi0ftxue2xi2.html#swift学习","187":"/myblog/2023/ios学习/swi0ftxue2xi2.html#hello-world","188":"/myblog/2023/ios学习/swi0ftxue2xi2.html#基本数据类型","189":"/myblog/2023/ios学习/swi0ftxue2xi2.html#常量和普通变量","190":"/myblog/2023/ios学习/swi0ftxue2xi2.html#数组和字典","191":"/myblog/2023/ios学习/swi0ftxue2xi2.html#元组","192":"/myblog/2023/ios学习/swi0ftxue2xi2.html#控制流","193":"/myblog/2023/ios学习/swi0ftxue2xi2.html#可选类型、隐式解析可选类型","194":"/myblog/2023/ios学习/swi0ftxue2xi2.html#if语句以及强制解析","195":"/myblog/2023/ios学习/swi0ftxue2xi2.html#switch语句","196":"/myblog/2023/ios学习/swi0ftxue2xi2.html#while和repeat-while","197":"/myblog/2023/ios学习/swi0ftxue2xi2.html#函数和闭包","198":"/myblog/2023/ios学习/swi0ftxue2xi2.html#数组的map方法和sorted方法","199":"/myblog/2023/ios学习/swi0ftxue2xi2.html#对象和类","200":"/myblog/2023/ios学习/swi0ftxue2xi2.html#枚举和结构体","201":"/myblog/2023/ios学习/swi0ftxue2xi2.html#协议和扩展","202":"/myblog/2023/ios学习/swi0ftxue2xi2.html#错误处理","203":"/myblog/2023/ios学习/swi0ftxue2xi2.html#泛型","204":"/myblog/2023/ios学习/swi0ftxue2xi2.html#断言和先决条件","205":"/myblog/2023/ios学习/swi0ftxue2xi2.html#字符和字符串","206":"/myblog/2023/ios学习/u0i0ki0tkai1fa1.html#uikit开发","207":"/myblog/2023/ios学习/u0i0ki0tkai1fa1.html#创建项目","208":"/myblog/2023/ios学习/u0i0ki0tkai1fa1.html#项目结构","209":"/myblog/2023/ios学习/u0i0ki0tkai1fa1.html#基础组件的使用","210":"/myblog/2023/ios学习/u0i0ki0tkai1fa1.html#页面的布局","211":"/myblog/2023/ios学习/u0i0ki0tkai1fa1.html#多个页面之间的跳转","212":"/myblog/2023/ios学习/u0i0ki0tkai1fa1.html#view-controller","213":"/myblog/2023/ios学习/u0i0ki0tkai1fa1.html#动态库和静态库","214":"/myblog/2023/ji4lu4yi1ci4je0n0ki0n0sda3bao1dao3zhi4fu2wu4qi4ka3si3.html#jenkins同时打包多个项目导致服务器卡死","215":"/myblog/2023/jiao3shou3jia4kai1fa1.html#脚手架开发","216":"/myblog/2023/jiao3shou3jia4kai1fa1.html#package-json-配置-bin","217":"/myblog/2023/jiao3shou3jia4kai1fa1.html#删除依赖、执行命令","218":"/myblog/2023/jiao3shou3jia4kai1fa1.html#脚手架开发-1","219":"/myblog/2023/n0gi0n0xpei4zhi4.html#nginx-配置","220":"/myblog/2023/n0gi0n0xpei4zhi4.html#vue中history路由问题","221":"/myblog/2023/n0pmru0n0de0vhou4fa1sheng1le0shen2me0.html#npm-run-dev后发生了什么","222":"/myblog/2023/n0pmru0n0de0vhou4fa1sheng1le0shen2me0.html#npm-run-dev后发生了什么-1","223":"/myblog/2023/n0pmru0n0de0vhou4fa1sheng1le0shen2me0.html#配置了bin就一定会生成软链接吗","224":"/myblog/2023/n0px.html#npx","225":"/myblog/2023/n0px.html#介绍","226":"/myblog/2023/n0px.html#npx会把远端的包下载到本地吗","227":"/myblog/2023/n0px.html#npx执行完成之后-下载的包是否会被删除","228":"/myblog/2023/pi0n0i0a0zhong1de0o0pti0o0n0sa0pi0he2co0mpo0si0to0n0a0pi0dui4bi3.html#pinia","229":"/myblog/2023/pi0n0i0a0zhong1de0o0pti0o0n0sa0pi0he2co0mpo0si0to0n0a0pi0dui4bi3.html#pinia中的options-api和compositon-api写法对比","230":"/myblog/2023/pi0n0i0a0zhong1de0o0pti0o0n0sa0pi0he2co0mpo0si0to0n0a0pi0dui4bi3.html#一些思考","231":"/myblog/2023/ru2he2di0yer4wei2ma3.html#如何diy二维码","232":"/myblog/2023/thi0s、ca0ll、a0pply、bi0n0d.html#this、call、apply、bind","233":"/myblog/2023/thi0s、ca0ll、a0pply、bi0n0d.html#默认执行时","234":"/myblog/2023/thi0s、ca0ll、a0pply、bi0n0d.html#隐式执行时","235":"/myblog/2023/thi0s、ca0ll、a0pply、bi0n0d.html#显式执行时","236":"/myblog/2023/vitePress/xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.html#学习element-plus的vitepress配置","237":"/myblog/2023/vitePress/xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.html#consola","238":"/myblog/2023/vue3源码学习/qian2yan2.html#前言","239":"/myblog/2023/vue3源码学习/xiang3ying4shi4xi4tong3.html#响应式系统","240":"/myblog/2023/webGPU学习/WGSL.html#着色器语言wgsl","241":"/myblog/2023/webGPU学习/huan3chong1qu1shi2qu3.html#缓冲区拾取","242":"/myblog/2023/webGPU学习/huan3chong1qu1shi2qu3.html#orillusion的帧缓冲拾取","243":"/myblog/2023/webGPU学习/huan3chong1qu1shi2qu3.html#走一遍orillusion最简单的流程来看源码","244":"/myblog/2023/webGPU学习/hui4zhi4xian4duan4de0neng2li4.html#绘制线段的能力","245":"/myblog/2023/webGPU学习/hui4zhi4xian4duan4de0neng2li4.html#平移场景","246":"/myblog/2023/webGPU学习/o0ri0llu0si0o0n0yuan2ma3xue2xi2.html#orillusion源码","247":"/myblog/2023/webGPU学习/o0ri0llu0si0o0n0yuan2ma3xue2xi2.html#engine3d","248":"/myblog/2023/webGPU学习/o0ri0llu0si0o0n0yuan2ma3xue2xi2.html#scene3d","249":"/myblog/2023/webGPU学习/o0ri0llu0si0o0n0yuan2ma3xue2xi2.html#camera3d","250":"/myblog/2023/webGPU学习/o0ri0llu0si0o0n0yuan2ma3xue2xi2.html#渲染流程","251":"/myblog/2023/webGPU学习/o0ri0llu0si0o0n0yuan2ma3xue2xi2.html#ecs","252":"/myblog/2023/webGPU学习/o0ri0llu0si0o0n0yuan2ma3xue2xi2.html#一些思考","253":"/myblog/2023/webGPU学习/qian2yan2.html#前言","254":"/myblog/2023/webGPU学习/qian2yan2.html#跨平台性","255":"/myblog/2023/webGPU学习/qian2yan2.html#webgpu","256":"/myblog/2023/webGPU学习/yi1xie1gu4shi4.html#今天给勇哥发了下面的一段话","257":"/myblog/2023/webGPU学习/yi1xie1gu4shi4.html#他回复我说","258":"/myblog/2023/webGPU学习/yi1xie1gu4shi4.html#webgpu性能测试","259":"/myblog/2023/webGPU学习/zuo4biao1xi4.html#webgpu坐标系","260":"/myblog/2023/webgl学习/thre0e0.jsde0yuan2ma3.html#scene","261":"/myblog/2023/webgl学习/thre0e0.jsde0yuan2ma3.html#camera","262":"/myblog/2023/webgl学习/thre0e0.jsde0yuan2ma3.html#webglrenderer","263":"/myblog/2023/webgl学习/thre0e0.jsde0yuan2ma3.html#webglrenderer的render方法","264":"/myblog/2023/webgl学习/thre0e0.jsde0yuan2ma3.html#raycaster","265":"/myblog/2023/webgl学习/zhuo2se4qi4xue2xi2.html#着色器学习","266":"/myblog/2023/yong4i0ma0ge0.lo0a0dti2qian2pan4duan4zi1yuan2shi4fou3cun2zai4.html#用image-load提前判断资源是否存在","267":"/myblog/demo/xiao4guo3can1kao3.html#markdown-extensions","268":"/myblog/demo/xiao4guo3can1kao3.html#加粗效果","269":"/myblog/demo/xiao4guo3can1kao3.html#code-group","270":"/myblog/demo/xiao4guo3can1kao3.html#details","271":"/myblog/demo/xiao4guo3can1kao3.html#表格","272":"/myblog/demo/xiao4guo3can1kao3.html#header-anchors","273":"/myblog/demo/xiao4guo3can1kao3.html#custom-anchors","274":"/myblog/demo/xiao4guo3can1kao3.html#links","275":"/myblog/demo/xiao4guo3can1kao3.html#internal-links","276":"/myblog/demo/xiao4guo3can1kao3.html#page-suffix","277":"/myblog/demo/xiao4guo3can1kao3.html#external-links","278":"/myblog/demo/xiao4guo3can1kao3.html#frontmatter","279":"/myblog/demo/xiao4guo3can1kao3.html#github-style-tables","280":"/myblog/demo/xiao4guo3can1kao3.html#emoji","281":"/myblog/demo/xiao4guo3can1kao3.html#table-of-contents","282":"/myblog/demo/xiao4guo3can1kao3.html#custom-containers","283":"/myblog/demo/xiao4guo3can1kao3.html#default-title","284":"/myblog/demo/xiao4guo3can1kao3.html#custom-title","285":"/myblog/demo/xiao4guo3can1kao3.html#raw","286":"/myblog/demo/xiao4guo3can1kao3.html#syntax-highlighting-in-code-blocks","287":"/myblog/demo/xiao4guo3can1kao3.html#line-highlighting-in-code-blocks","288":"/myblog/demo/xiao4guo3can1kao3.html#focus-in-code-blocks","289":"/myblog/demo/xiao4guo3can1kao3.html#colored-diffs-in-code-blocks","290":"/myblog/demo/xiao4guo3can1kao3.html#errors-and-warnings-in-code-blocks","291":"/myblog/demo/xiao4guo3can1kao3.html#line-numbers","292":"/myblog/demo/xiao4guo3can1kao3.html#code-groups","293":"/myblog/demo/xiao4guo3can1kao3.html#markdown-file-inclusion","294":"/myblog/demo/xiao4guo3can1kao3.html#advanced-configuration","295":"/myblog/#缘起","296":"/myblog/#中文命名md文件","297":"/myblog/杂记/ji4yi1xie1nei4rong2duan3bu4zu2yi3xie3yi1pian1bo2ke4de0dong1xi1.html#杂记","298":"/myblog/杂记/ji4yi1xie1nei4rong2duan3bu4zu2yi3xie3yi1pian1bo2ke4de0dong1xi1.html#后端支付直接返回png处理","299":"/myblog/杂记/ji4yi1xie1nei4rong2duan3bu4zu2yi3xie3yi1pian1bo2ke4de0dong1xi1.html#npm发布的sdk通过链接形式访问","300":"/myblog/杂记/ji4yi1xie1nei4rong2duan3bu4zu2yi3xie3yi1pian1bo2ke4de0dong1xi1.html#使用scss打包成css的纯css项目","301":"/myblog/杂记/ji4yi1xie1nei4rong2duan3bu4zu2yi3xie3yi1pian1bo2ke4de0dong1xi1.html#原子化css框架tailwind","302":"/myblog/杂记/ji4yi1xie1nei4rong2duan3bu4zu2yi3xie3yi1pian1bo2ke4de0dong1xi1.html#查看github热门趋势和star排行榜","303":"/myblog/杂记/ji4yi1xie1nei4rong2duan3bu4zu2yi3xie3yi1pian1bo2ke4de0dong1xi1.html#服务的部署和资源访问这些链接","304":"/myblog/杂记/ji4yi1xie1nei4rong2duan3bu4zu2yi3xie3yi1pian1bo2ke4de0dong1xi1.html#图形学相关地书","305":"/myblog/速记/01.html#js的数据类型","306":"/myblog/速记/01.html#_0-1-0-2不等于0-3","307":"/myblog/速记/01.html#vue生命周期","308":"/myblog/速记/01.html#回流和重绘","309":"/myblog/速记/we0bgl.html#嘉立创","310":"/myblog/速记/we0bgl.html#顶点着色器是不是只有顶点信息-法线这些如何获取","311":"/myblog/速记/we0bgl.html#webgl的渲染管线它的流程是怎样的","312":"/myblog/速记/we0bgl.html#gltf格式的数据格式是怎样的-如何优化","313":"/myblog/速记/we0bgl.html#node的子进程有哪些方法"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[1,1,16],"1":[1,2,56],"2":[1,1,47],"3":[1,1,30],"4":[1,1,38],"5":[1,1,59],"6":[1,1,69],"7":[1,1,59],"8":[1,1,66],"9":[2,1,67],"10":[1,1,86],"11":[1,1,16],"12":[1,1,5],"13":[1,1,22],"14":[3,1,9],"15":[1,1,13],"16":[2,1,48],"17":[2,1,39],"18":[2,1,11],"19":[4,1,52],"20":[1,1,16],"21":[1,1,21],"22":[1,1,3],"23":[1,1,55],"24":[1,1,79],"25":[1,2,27],"26":[1,2,26],"27":[1,2,20],"28":[1,2,59],"29":[1,2,22],"30":[2,2,48],"31":[1,2,20],"32":[1,2,112],"33":[1,1,3],"34":[1,1,37],"35":[1,1,12],"36":[1,1,21],"37":[1,1,7],"38":[2,1,16],"39":[1,1,9],"40":[1,1,13],"41":[1,2,29],"42":[1,2,26],"43":[1,1,16],"44":[1,2,27],"45":[1,2,36],"46":[1,1,9],"47":[1,1,65],"48":[1,1,45],"49":[1,1,31],"50":[1,1,18],"51":[1,1,38],"52":[2,1,1],"53":[3,2,22],"54":[1,5,45],"55":[1,5,65],"56":[1,1,1],"57":[1,1,23],"58":[1,1,40],"59":[2,1,47],"60":[1,1,35],"61":[1,1,19],"62":[1,1,27],"63":[1,1,19],"64":[1,1,2],"65":[1,1,26],"66":[1,1,81],"67":[1,1,78],"68":[1,1,13],"69":[1,1,1],"70":[1,1,46],"71":[1,1,8],"72":[1,1,26],"73":[1,1,23],"74":[1,1,7],"75":[1,1,13],"76":[1,1,23],"77":[2,1,21],"78":[1,1,4],"79":[1,1,6],"80":[1,1,4],"81":[2,1,8],"82":[1,1,9],"83":[1,1,10],"84":[1,1,11],"85":[1,1,28],"86":[1,1,35],"87":[1,1,12],"88":[1,1,44],"89":[1,1,76],"90":[1,1,33],"91":[1,1,1],"92":[1,1,30],"93":[1,1,15],"94":[2,1,37],"95":[1,1,10],"96":[1,1,21],"97":[3,1,38],"98":[1,1,41],"99":[1,1,49],"100":[1,1,16],"101":[1,1,11],"102":[1,1,20],"103":[2,1,68],"104":[1,1,1],"105":[1,1,7],"106":[1,1,18],"107":[1,1,1],"108":[1,1,34],"109":[1,1,54],"110":[1,1,112],"111":[1,1,11],"112":[1,1,23],"113":[1,1,89],"114":[1,1,86],"115":[1,1,106],"116":[1,1,1],"117":[1,1,52],"118":[1,1,76],"119":[1,1,118],"120":[1,1,10],"121":[2,1,86],"122":[1,1,1],"123":[1,1,101],"124":[1,1,70],"125":[1,1,42],"126":[1,1,1],"127":[1,1,18],"128":[1,1,29],"129":[1,2,76],"130":[1,1,8],"131":[1,1,80],"132":[2,1,26],"133":[2,2,43],"134":[1,1,1],"135":[2,1,7],"136":[1,1,72],"137":[2,1,59],"138":[1,1,54],"139":[1,1,47],"140":[1,1,81],"141":[1,1,25],"142":[2,1,35],"143":[1,1,7],"144":[1,1,1],"145":[1,1,2],"146":[1,1,12],"147":[1,1,3],"148":[1,1,1],"149":[1,1,13],"150":[1,1,5],"151":[1,1,22],"152":[1,1,60],"153":[1,1,5],"154":[1,1,14],"155":[1,1,32],"156":[1,1,18],"157":[1,1,18],"158":[1,1,14],"159":[1,1,54],"160":[2,1,28],"161":[3,1,50],"162":[2,1,38],"163":[3,1,45],"164":[2,1,50],"165":[1,1,52],"166":[1,1,106],"167":[2,1,129],"168":[1,1,147],"169":[1,1,13],"170":[1,1,13],"171":[1,1,25],"172":[2,1,27],"173":[3,1,70],"174":[2,1,47],"175":[2,1,34],"176":[2,1,45],"177":[1,1,75],"178":[1,1,41],"179":[1,1,41],"180":[1,1,41],"181":[1,1,9],"182":[1,1,17],"183":[3,1,27],"184":[1,1,8],"185":[1,1,12],"186":[1,1,1],"187":[2,1,5],"188":[1,1,9],"189":[1,1,28],"190":[1,1,26],"191":[1,1,36],"192":[1,1,8],"193":[2,1,57],"194":[1,1,76],"195":[1,1,73],"196":[2,1,27],"197":[1,1,84],"198":[1,2,31],"199":[1,1,99],"200":[1,1,39],"201":[1,1,14],"202":[1,1,97],"203":[1,1,25],"204":[1,1,39],"205":[1,1,111],"206":[1,1,1],"207":[1,1,15],"208":[1,1,10],"209":[1,1,66],"210":[1,1,48],"211":[1,1,13],"212":[2,1,18],"213":[1,1,50],"214":[1,1,46],"215":[1,1,4],"216":[4,1,26],"217":[2,1,73],"218":[1,1,178],"219":[2,1,1],"220":[1,2,17],"221":[3,1,1],"222":[3,3,54],"223":[1,3,84],"224":[1,1,1],"225":[1,1,25],"226":[2,1,9],"227":[3,1,9],"228":[1,1,1],"229":[3,1,64],"230":[1,1,17],"231":[1,1,38],"232":[4,1,1],"233":[1,4,13],"234":[1,4,42],"235":[1,4,48],"236":[2,1,88],"237":[1,3,6],"238":[1,1,29],"239":[1,1,22],"240":[1,1,60],"241":[1,1,15],"242":[1,2,29],"243":[1,2,37],"244":[1,1,20],"245":[1,2,140],"246":[1,1,14],"247":[1,2,86],"248":[1,2,48],"249":[1,2,9],"250":[1,2,56],"251":[1,2,20],"252":[1,2,122],"253":[1,1,10],"254":[1,1,7],"255":[1,1,25],"256":[1,1,69],"257":[1,1,42],"258":[1,2,18],"259":[1,1,31],"260":[2,1,27],"261":[1,1,17],"262":[1,1,43],"263":[1,1,61],"264":[1,1,24],"265":[1,1,38],"266":[2,1,57],"267":[2,1,1],"268":[1,2,4],"269":[2,2,10],"270":[1,2,74],"271":[1,2,25],"272":[2,2,17],"273":[2,4,28],"274":[1,2,9],"275":[2,3,61],"276":[2,3,13],"277":[2,3,15],"278":[1,2,38],"279":[3,2,21],"280":[2,2,14],"281":[3,2,43],"282":[2,2,12],"283":[2,4,21],"284":[2,4,40],"285":[1,4,97],"286":[5,2,77],"287":[5,2,78],"288":[4,2,51],"289":[5,2,45],"290":[6,2,42],"291":[2,2,53],"292":[2,2,30],"293":[3,2,81],"294":[2,2,69],"295":[1,1,8],"296":[1,1,22],"297":[1,1,1],"298":[1,2,35],"299":[1,2,30],"300":[1,2,4],"301":[1,2,18],"302":[1,2,20],"303":[1,2,3],"304":[1,2,5],"305":[1,1,38],"306":[4,1,12],"307":[1,1,28],"308":[1,1,170],"309":[1,1,1],"310":[3,1,7],"311":[2,1,47],"312":[3,1,1],"313":[2,1,49]},"averageFieldLength":[1.3694267515923566,1.305732484076434,35.194267515923556],"storedFields":{"0":{"title":"ESlint和Prettier的比较","titles":[]},"1":{"title":"替代方案","titles":["ESlint和Prettier的比较",null]},"2":{"title":"G2","titles":[]},"3":{"title":"G2学习","titles":["G2"]},"4":{"title":"安装","titles":["G2"]},"5":{"title":"绘制第一张图表","titles":["G2"]},"6":{"title":"使用复合节点在一个容器中绘制两张图表","titles":["G2"]},"7":{"title":"请求json文件作为数据源","titles":["G2"]},"8":{"title":"图表数据叠加","titles":["G2"]},"9":{"title":"使用复合 Mark","titles":["G2"]},"10":{"title":"桑基图绘制","titles":["G2"]},"11":{"title":"Monorepo学习","titles":[]},"12":{"title":"安装pnpm","titles":["Monorepo学习"]},"13":{"title":"项目结构搭建","titles":["Monorepo学习"]},"14":{"title":"安装公共的Vue、Element-plus和typescript依赖","titles":["Monorepo学习"]},"15":{"title":"demo1中创建vue3项目","titles":["Monorepo学习"]},"16":{"title":"demo2、demo3中提供一些封装好的逻辑","titles":["Monorepo学习"]},"17":{"title":"在vue3项目中安装demo2、demo3作为依赖","titles":["Monorepo学习"]},"18":{"title":"在外层的package.json中配置命令启动packages文件夹下面的项目","titles":["Monorepo学习"]},"19":{"title":"npm-run-all来串行/并行执行命令","titles":["Monorepo学习"]},"20":{"title":"学习参考链接","titles":["Monorepo学习"]},"21":{"title":"环境安装和项目搭建","titles":[]},"22":{"title":"前言","titles":[]},"23":{"title":"cad思路和流程","titles":[]},"24":{"title":"cad优化","titles":[]},"25":{"title":"文字优化","titles":["cad优化",null]},"26":{"title":"后面的优化方向","titles":["cad优化",null]},"27":{"title":"svg的提取尝试","titles":["cad优化",null]},"28":{"title":"cad的内存泄漏问题","titles":["cad优化",null]},"29":{"title":"事件执行顺序优化","titles":["cad优化",null]},"30":{"title":"three中是如何绘制出line2的,它的底层原理是什么","titles":["cad优化",null]},"31":{"title":"图层数据收集过程中的数据数据污染问题","titles":["cad优化",null]},"32":{"title":"用贝塞尔曲线来优化cad的手绘线批注","titles":["cad优化",null]},"33":{"title":"dart学习","titles":[]},"34":{"title":"定义变量的关键字","titles":["dart学习"]},"35":{"title":"基础数据类型","titles":["dart学习"]},"36":{"title":"数据类型判断","titles":["dart学习"]},"37":{"title":"数据类型转换","titles":["dart学习"]},"38":{"title":"$变量名 在字符串中插入变量值","titles":["dart学习"]},"39":{"title":"运算符","titles":["dart学习"]},"40":{"title":"函数","titles":["dart学习"]},"41":{"title":"命名参数","titles":["dart学习","函数"]},"42":{"title":"位置参数","titles":["dart学习","函数"]},"43":{"title":"class类","titles":["dart学习"]},"44":{"title":"继承","titles":["dart学习","class类"]},"45":{"title":"子类覆写父类方法","titles":["dart学习","class类"]},"46":{"title":"聚合类型","titles":["dart学习"]},"47":{"title":"列表List","titles":["dart学习"]},"48":{"title":"集合Set","titles":["dart学习"]},"49":{"title":"映射Map","titles":["dart学习"]},"50":{"title":"空安全","titles":["dart学习"]},"51":{"title":"异步任务","titles":["dart学习"]},"52":{"title":"AR sdk学习了解","titles":[]},"53":{"title":"NVIDIA CloudXR SDK","titles":["AR sdk学习了解"]},"54":{"title":"ARKit","titles":["AR sdk学习了解","NVIDIA CloudXR SDK"]},"55":{"title":"Metal","titles":["AR sdk学习了解","NVIDIA CloudXR SDK"]},"56":{"title":"flutter学习","titles":[]},"57":{"title":"布局","titles":["flutter学习"]},"58":{"title":"基于Material的应用","titles":["flutter学习"]},"59":{"title":"非Material apps","titles":["flutter学习"]},"60":{"title":"横向或纵向布局多个widgets","titles":["flutter学习"]},"61":{"title":"对齐widgets","titles":["flutter学习"]},"62":{"title":"调整widgets大小","titles":["flutter学习"]},"63":{"title":"组合widgets","titles":["flutter学习"]},"64":{"title":"嵌套行和列","titles":["flutter学习"]},"65":{"title":"通用布局widgets","titles":["flutter学习"]},"66":{"title":"Stack","titles":["flutter学习"]},"67":{"title":"StatelessWidget和StatefulWidget的区别","titles":["flutter学习"]},"68":{"title":"GetX","titles":["flutter学习"]},"69":{"title":"flutter常用组件","titles":[]},"70":{"title":"Container","titles":["flutter常用组件"]},"71":{"title":"Scaffold","titles":["flutter常用组件"]},"72":{"title":"Text","titles":["flutter常用组件"]},"73":{"title":"style封装","titles":["flutter常用组件"]},"74":{"title":"Expanded","titles":["flutter常用组件"]},"75":{"title":"Image","titles":["flutter常用组件"]},"76":{"title":"Icon","titles":["flutter常用组件"]},"77":{"title":"Row、Column","titles":["flutter常用组件"]},"78":{"title":"Center","titles":["flutter常用组件"]},"79":{"title":"SizeBox","titles":["flutter常用组件"]},"80":{"title":"Card","titles":["flutter常用组件"]},"81":{"title":"DefaultTextStyle.merge","titles":["flutter常用组件"]},"82":{"title":"Padding","titles":["flutter常用组件"]},"83":{"title":"Stack","titles":["flutter常用组件"]},"84":{"title":"CircleAvatar","titles":["flutter常用组件"]},"85":{"title":"ListTile","titles":["flutter常用组件"]},"86":{"title":"输入框","titles":["flutter常用组件"]},"87":{"title":"按钮","titles":["flutter常用组件"]},"88":{"title":"tooltip","titles":["flutter常用组件"]},"89":{"title":"PopupMenuButton弹出菜单","titles":["flutter常用组件"]},"90":{"title":"进度条","titles":["flutter常用组件"]},"91":{"title":"flutter入门学习","titles":[]},"92":{"title":"环境安装","titles":["flutter入门学习"]},"93":{"title":"flutter的包管理工具pub","titles":["flutter入门学习"]},"94":{"title":"mac mini环境配置","titles":["flutter入门学习"]},"95":{"title":"vscode如何配置环境","titles":["flutter入门学习"]},"96":{"title":"如何用xcode运行flutter项目","titles":["flutter入门学习"]},"97":{"title":"mac mini 配置环境变量","titles":["flutter入门学习"]},"98":{"title":"fvm切换flutter版本","titles":["flutter入门学习"]},"99":{"title":"Impeller","titles":["flutter入门学习"]},"100":{"title":"HappinessX","titles":["flutter入门学习"]},"101":{"title":"Skia","titles":["flutter入门学习"]},"102":{"title":"Flutter中使用Metal","titles":[]},"103":{"title":"安装ARkit_plugin","titles":["Flutter中使用Metal"]},"104":{"title":"flutter项目学习","titles":[]},"105":{"title":"键盘弹起页面布局上移问题","titles":["flutter项目学习"]},"106":{"title":"Flutter打包问题","titles":["flutter项目学习"]},"107":{"title":"接口请求","titles":[]},"108":{"title":"安装http库","titles":["接口请求"]},"109":{"title":"使用http库进行接口请求","titles":["接口请求"]},"110":{"title":"使用http封装数据模型进行接口请求","titles":["接口请求"]},"111":{"title":"安装dio库","titles":["接口请求"]},"112":{"title":"使用dio进行接口请求","titles":["接口请求"]},"113":{"title":"自定义请求头和参数传递","titles":["接口请求"]},"114":{"title":"使用Baseoptions","titles":["接口请求"]},"115":{"title":"请求拦截和响应拦截","titles":["接口请求"]},"116":{"title":"路由","titles":[]},"117":{"title":"页面之间跳转","titles":["路由"]},"118":{"title":"路由传参","titles":["路由"]},"119":{"title":"从新页面返回数据","titles":["路由"]},"120":{"title":"数据持久化","titles":[]},"121":{"title":"shared_preferences","titles":["数据持久化"]},"122":{"title":"一些常用场景","titles":[]},"123":{"title":"有校验功能的表单","titles":["一些常用场景"]},"124":{"title":"事件响应函数中弹出dialog弹窗","titles":["一些常用场景"]},"125":{"title":"底部弹窗","titles":["一些常用场景"]},"126":{"title":"状态管理","titles":[]},"127":{"title":"GetX安装","titles":["状态管理"]},"128":{"title":"GetX状态管理","titles":["状态管理"]},"129":{"title":"Obx","titles":["状态管理","GetX状态管理"]},"130":{"title":"路由管理","titles":["状态管理"]},"131":{"title":"git常用命令","titles":[]},"132":{"title":"提交Pull Request","titles":[]},"133":{"title":"commit 规范","titles":["提交Pull Request"]},"134":{"title":"SwiftUI进阶","titles":[]},"135":{"title":"@State","titles":["SwiftUI进阶"]},"136":{"title":"Swift发请求","titles":["SwiftUI进阶"]},"137":{"title":"如何实现一个文字一行左对齐的效果?","titles":["SwiftUI进阶"]},"138":{"title":"复选框控件的封装和使用","titles":["SwiftUI进阶"]},"139":{"title":"页面之间的跳转","titles":["SwiftUI进阶"]},"140":{"title":"闭包","titles":["SwiftUI进阶"]},"141":{"title":"将字符串转为对象","titles":["SwiftUI进阶"]},"142":{"title":"使用async/await发请求","titles":["SwiftUI进阶"]},"143":{"title":"mac环境安装","titles":[]},"144":{"title":"chrome浏览器","titles":["mac环境安装"]},"145":{"title":"homebrew","titles":["mac环境安装"]},"146":{"title":"nvm","titles":["mac环境安装"]},"147":{"title":"git","titles":["mac环境安装"]},"148":{"title":"vscode和xcode","titles":["mac环境安装"]},"149":{"title":"Metal学习","titles":[]},"150":{"title":"swiftUI开发","titles":[]},"151":{"title":"Xcode中的快捷键","titles":["swiftUI开发"]},"152":{"title":"简单布局","titles":["swiftUI开发"]},"153":{"title":"将Text中的文字改为大写","titles":["swiftUI开发"]},"154":{"title":"设置阴影","titles":["swiftUI开发"]},"155":{"title":"设置背景图片","titles":["swiftUI开发"]},"156":{"title":"设置覆盖","titles":["swiftUI开发"]},"157":{"title":"文字的颜色渐变","titles":["swiftUI开发"]},"158":{"title":"遮罩","titles":["swiftUI开发"]},"159":{"title":"自定义修饰符以及获取系统中的白天黑夜模式","titles":["swiftUI开发"]},"160":{"title":"NavigationView、List的使用","titles":["swiftUI开发"]},"161":{"title":"sf symbols 图标库","titles":["swiftUI开发"]},"162":{"title":"导航 NavigationLink","titles":["swiftUI开发"]},"163":{"title":"Swipe Actions 左滑右滑响应","titles":["swiftUI开发"]},"164":{"title":"structure 将代码封装成component","titles":["swiftUI开发"]},"165":{"title":"canvas画布","titles":["swiftUI开发"]},"166":{"title":"canvas动画","titles":["swiftUI开发"]},"167":{"title":"tabbar 组件","titles":["swiftUI开发"]},"168":{"title":"使用GeometryReader来做tabbar的自适应处理","titles":["swiftUI开发"]},"169":{"title":"AppStorage缓存","titles":["swiftUI开发"]},"170":{"title":"项目结构","titles":["swiftUI开发"]},"171":{"title":"数据绑定","titles":["swiftUI开发"]},"172":{"title":"横向TabView, 走马灯效果","titles":["swiftUI开发"]},"173":{"title":"Matched Geometry Effect","titles":["swiftUI开发"]},"174":{"title":"Combine 环境变量的使用","titles":["swiftUI开发"]},"175":{"title":"安装和使用 CocoaPods","titles":["swiftUI开发"]},"176":{"title":"lazy grid","titles":["swiftUI开发"]},"177":{"title":"搜索列表和搜索建议","titles":["swiftUI开发"]},"178":{"title":"文本使用markdown语法","titles":["swiftUI开发"]},"179":{"title":"AsyncImage异步加载图片","titles":["swiftUI开发"]},"180":{"title":"接口请求","titles":["swiftUI开发"]},"181":{"title":"打开开发人员工具","titles":["swiftUI开发"]},"182":{"title":"swift和flutter的区别","titles":[]},"183":{"title":"Swift Package Manager使用","titles":["swift和flutter的区别"]},"184":{"title":"使用阿里图标库","titles":["swift和flutter的区别"]},"185":{"title":"Cocoapods如何发布公有库","titles":["swift和flutter的区别"]},"186":{"title":"swift学习","titles":[]},"187":{"title":"Hello World","titles":["swift学习"]},"188":{"title":"基本数据类型","titles":["swift学习"]},"189":{"title":"常量和普通变量","titles":["swift学习"]},"190":{"title":"数组和字典","titles":["swift学习"]},"191":{"title":"元组","titles":["swift学习"]},"192":{"title":"控制流","titles":["swift学习"]},"193":{"title":"可选类型、隐式解析可选类型","titles":["swift学习"]},"194":{"title":"if语句以及强制解析","titles":["swift学习"]},"195":{"title":"switch语句","titles":["swift学习"]},"196":{"title":"while和repeat while","titles":["swift学习"]},"197":{"title":"函数和闭包","titles":["swift学习"]},"198":{"title":"数组的map方法和sorted方法","titles":["swift学习","函数和闭包"]},"199":{"title":"对象和类","titles":["swift学习"]},"200":{"title":"枚举和结构体","titles":["swift学习"]},"201":{"title":"协议和扩展","titles":["swift学习"]},"202":{"title":"错误处理","titles":["swift学习"]},"203":{"title":"泛型","titles":["swift学习"]},"204":{"title":"断言和先决条件","titles":["swift学习"]},"205":{"title":"字符和字符串","titles":["swift学习"]},"206":{"title":"UIKit开发","titles":[]},"207":{"title":"创建项目","titles":["UIKit开发"]},"208":{"title":"项目结构","titles":["UIKit开发"]},"209":{"title":"基础组件的使用","titles":["UIKit开发"]},"210":{"title":"页面的布局","titles":["UIKit开发"]},"211":{"title":"多个页面之间的跳转","titles":["UIKit开发"]},"212":{"title":"View Controller","titles":["UIKit开发"]},"213":{"title":"动态库和静态库","titles":["UIKit开发"]},"214":{"title":"jenkins同时打包多个项目导致服务器卡死","titles":[]},"215":{"title":"脚手架开发","titles":[]},"216":{"title":"package.json 配置 bin","titles":["脚手架开发"]},"217":{"title":"删除依赖、执行命令","titles":["脚手架开发"]},"218":{"title":"脚手架开发","titles":["脚手架开发"]},"219":{"title":"nginx 配置","titles":[]},"220":{"title":"vue中history路由问题","titles":["nginx 配置"]},"221":{"title":"npm run dev后发生了什么","titles":[]},"222":{"title":"npm run dev后发生了什么","titles":["npm run dev后发生了什么"]},"223":{"title":"配置了bin就一定会生成软链接吗","titles":["npm run dev后发生了什么"]},"224":{"title":"npx","titles":[]},"225":{"title":"介绍","titles":["npx"]},"226":{"title":"npx会把远端的包下载到本地吗?","titles":["npx"]},"227":{"title":"npx执行完成之后,下载的包是否会被删除?","titles":["npx"]},"228":{"title":"pinia","titles":[]},"229":{"title":"pinia中的options api和compositon api写法对比","titles":["pinia"]},"230":{"title":"一些思考","titles":["pinia"]},"231":{"title":"如何diy二维码","titles":[]},"232":{"title":"this、call、apply、bind","titles":[]},"233":{"title":"默认执行时","titles":["this、call、apply、bind"]},"234":{"title":"隐式执行时","titles":["this、call、apply、bind"]},"235":{"title":"显式执行时","titles":["this、call、apply、bind"]},"236":{"title":"学习element-plus的vitePress配置","titles":[]},"237":{"title":"consola","titles":["学习element-plus的vitePress配置",null,null]},"238":{"title":"前言","titles":[]},"239":{"title":"响应式系统","titles":[]},"240":{"title":"着色器语言WGSL","titles":[]},"241":{"title":"缓冲区拾取","titles":[]},"242":{"title":"orillusion的帧缓冲拾取","titles":["缓冲区拾取",null]},"243":{"title":"走一遍orillusion最简单的流程来看源码","titles":["缓冲区拾取",null]},"244":{"title":"绘制线段的能力","titles":[]},"245":{"title":"平移场景","titles":["绘制线段的能力",null]},"246":{"title":"orillusion源码","titles":[]},"247":{"title":"Engine3D","titles":["orillusion源码",null]},"248":{"title":"Scene3D","titles":["orillusion源码",null]},"249":{"title":"Camera3D","titles":["orillusion源码",null]},"250":{"title":"渲染流程","titles":["orillusion源码",null]},"251":{"title":"ECS","titles":["orillusion源码",null]},"252":{"title":"一些思考","titles":["orillusion源码",null]},"253":{"title":"前言","titles":[]},"254":{"title":"跨平台性","titles":["前言"]},"255":{"title":"webgpu","titles":["前言"]},"256":{"title":"今天给勇哥发了下面的一段话","titles":[null]},"257":{"title":"他回复我说","titles":[null]},"258":{"title":"webgpu性能测试","titles":[null,"他回复我说"]},"259":{"title":"webgpu坐标系","titles":[]},"260":{"title":"scene:","titles":[null,null]},"261":{"title":"camera","titles":[null,null]},"262":{"title":"WebGLRenderer","titles":[null,null]},"263":{"title":"WebGLRenderer的render方法","titles":[null,null]},"264":{"title":"Raycaster","titles":[null,null]},"265":{"title":"着色器学习","titles":[null,null]},"266":{"title":"用image.load提前判断资源是否存在","titles":[]},"267":{"title":"Markdown Extensions","titles":[]},"268":{"title":"加粗效果","titles":["Markdown Extensions"]},"269":{"title":"code-group","titles":["Markdown Extensions"]},"270":{"title":"details","titles":["Markdown Extensions"]},"271":{"title":"表格","titles":["Markdown Extensions"]},"272":{"title":"Header Anchors","titles":["Markdown Extensions"]},"273":{"title":"Custom anchors","titles":["Markdown Extensions","Header Anchors"]},"274":{"title":"Links","titles":["Markdown Extensions"]},"275":{"title":"Internal Links","titles":["Markdown Extensions","Links"]},"276":{"title":"Page Suffix","titles":["Markdown Extensions","Links"]},"277":{"title":"External Links","titles":["Markdown Extensions","Links"]},"278":{"title":"Frontmatter","titles":["Markdown Extensions"]},"279":{"title":"GitHub-Style Tables","titles":["Markdown Extensions"]},"280":{"title":"Emoji 🎉","titles":["Markdown Extensions"]},"281":{"title":"Table of Contents","titles":["Markdown Extensions"]},"282":{"title":"Custom Containers","titles":["Markdown Extensions"]},"283":{"title":"Default Title","titles":["Markdown Extensions","Custom Containers"]},"284":{"title":"Custom Title","titles":["Markdown Extensions","Custom Containers"]},"285":{"title":"raw","titles":["Markdown Extensions","Custom Containers"]},"286":{"title":"Syntax Highlighting in Code Blocks","titles":["Markdown Extensions"]},"287":{"title":"Line Highlighting in Code Blocks","titles":["Markdown Extensions"]},"288":{"title":"Focus in Code Blocks","titles":["Markdown Extensions"]},"289":{"title":"Colored Diffs in Code Blocks","titles":["Markdown Extensions"]},"290":{"title":"Errors and Warnings in Code Blocks","titles":["Markdown Extensions"]},"291":{"title":"Line Numbers","titles":["Markdown Extensions"]},"292":{"title":"Code Groups","titles":["Markdown Extensions"]},"293":{"title":"Markdown File Inclusion","titles":["Markdown Extensions"]},"294":{"title":"Advanced Configuration","titles":["Markdown Extensions"]},"295":{"title":"缘起","titles":[null,null]},"296":{"title":"中文命名md文件","titles":[null,null]},"297":{"title":"杂记","titles":[]},"298":{"title":"后端支付直接返回png处理","titles":["杂记",null]},"299":{"title":"npm发布的sdk通过链接形式访问","titles":["杂记",null]},"300":{"title":"使用scss打包成css的纯css项目","titles":["杂记",null]},"301":{"title":"原子化css框架tailwind","titles":["杂记",null]},"302":{"title":"查看github热门趋势和star排行榜","titles":["杂记",null]},"303":{"title":"服务的部署和资源访问这些链接","titles":["杂记",null]},"304":{"title":"图形学相关地书","titles":["杂记",null]},"305":{"title":"js的数据类型","titles":[null]},"306":{"title":"0.1+0.2不等于0.3","titles":[null]},"307":{"title":"Vue生命周期","titles":[null]},"308":{"title":"回流和重绘","titles":[null]},"309":{"title":"嘉立创","titles":[]},"310":{"title":"顶点着色器是不是只有顶点信息?法线这些如何获取?","titles":["嘉立创"]},"311":{"title":"webgl的渲染管线它的流程是怎样的?","titles":["嘉立创"]},"312":{"title":"gltf格式的数据格式是怎样的?如何优化?","titles":["嘉立创"]},"313":{"title":"Node的子进程有哪些方法?","titles":["嘉立创"]}},"dirtCount":0,"index":[["建立一个通信管道",{"2":{"313":1}}],["读取二进制数据等等",{"2":{"313":1}}],["读取时也是相同的操作即可",{"2":{"169":1}}],["缓存子进程的输出",{"2":{"313":1}}],["缓冲区拾取就是利用fbo",{"2":{"245":1}}],["缓冲区拾取是用空间",{"2":{"241":1,"245":2}}],["缓冲区拾取的原理是",{"2":{"241":1,"245":1}}],["缓冲区拾取",{"0":{"241":1},"1":{"242":1,"243":1},"2":{"264":1}}],["混合多个纹理",{"2":{"311":1}}],["片元的属性会被处理",{"2":{"311":1}}],["片元着色器会执行一系列运算",{"2":{"311":1}}],["片元着色器阶段",{"2":{"311":1}}],["片元着色器的代码注册",{"2":{"247":1}}],["深度值等",{"2":{"311":1}}],["嘉立创",{"0":{"309":1},"1":{"310":1,"311":1,"312":1,"313":1}}],["展示在页面上",{"2":{"308":1}}],["展示时长",{"2":{"88":1}}],["性能更好",{"2":{"308":1}}],["减少回流和重绘的开销",{"2":{"308":1}}],["减少页面性能消耗",{"2":{"308":1}}],["位置",{"2":{"308":1}}],["位置参数可以给默认值",{"2":{"42":1}}],["位置参数",{"0":{"42":1}}],["位移",{"2":{"308":1}}],["善用内存",{"2":{"308":1}}],["样式集中改变",{"2":{"308":1}}],["优化建议",{"2":{"308":1}}],["局部范围",{"2":{"308":1}}],["全局范围",{"2":{"308":1}}],["全屏跳转",{"2":{"139":1}}],["准确性",{"2":{"308":1}}],["准备渲染前的工作",{"2":{"263":1}}],["准备好两份数据",{"2":{"245":1}}],["准备数据",{"2":{"5":1,"6":1}}],["批量修改样式",{"2":{"308":1}}],["批注的颜色和线宽需要去实现",{"2":{"245":1}}],["激活css伪类",{"2":{"308":1}}],["宽度和高度等",{"2":{"308":1}}],["边框",{"2":{"308":1}}],["边框或背景颜色",{"2":{"57":1}}],["填充",{"2":{"308":1}}],["填充token",{"2":{"115":1}}],["浏览器使用流式布局模型",{"2":{"308":1}}],["浏览器会将新样式赋予元素重新绘制它",{"2":{"308":1}}],["浏览器就会报错",{"2":{"28":1}}],["被keep",{"2":{"307":2}}],["被嵌套的函数可以访问外侧函数的变量",{"2":{"197":1}}],["订单编号之类的数据",{"2":{"306":1}}],["扩展自己的想象力",{"2":{"304":1}}],["原理是一样的",{"2":{"308":1}}],["原研哉相关的书",{"2":{"304":1}}],["原子化css框架tailwind",{"0":{"301":1}}],["按照tailwindcss官网所说的",{"2":{"301":1}}],["按钮操作",{"2":{"177":1}}],["按钮点击跳转",{"2":{"139":1}}],["按钮的单击事件",{"2":{"113":1,"114":1,"115":1,"121":1}}],["按钮",{"0":{"87":1},"2":{"124":1}}],["发布的版本号",{"2":{"299":1}}],["发现camera类也是继承自object3d",{"2":{"261":1}}],["发现",{"2":{"260":1}}],["发现scene类其实比较简单",{"2":{"260":1}}],["发现他们在类的使用上更注重public",{"2":{"252":1}}],["发现xshell连接不上了",{"2":{"214":1}}],["发现依赖正常引入",{"2":{"17":1}}],["杂记",{"0":{"297":1},"1":{"298":1,"299":1,"300":1,"301":1,"302":1,"303":1,"304":1}}],["果断弃之",{"2":{"295":1}}],["缘起",{"0":{"295":1}}],["🎉table",{"2":{"281":1}}],["🎉",{"0":{"280":1},"2":{"280":1}}],["🎨",{"2":{"133":1}}],["└─",{"2":{"275":3}}],["│",{"2":{"275":3}}],["├─",{"2":{"275":6}}],["表格",{"0":{"271":1}}],["表示值是唯一的",{"2":{"305":1}}],["表示高亮",{"2":{"245":1}}],["表示不使用参数标签",{"2":{"197":2}}],["表示点击灰色背景的时候是否消失弹出框",{"2":{"124":2}}],["表示可空",{"2":{"50":1}}],["表示最终时间或位置以及最终状态",{"2":{"32":1}}],["表示起始时间或位置以及初始状态",{"2":{"32":1}}],["资源不存在",{"2":{"266":1}}],["资源存在",{"2":{"266":1}}],["资源文件一起使用",{"2":{"213":1}}],["避免使用table布局",{"2":{"308":1}}],["避免控制台报错",{"2":{"266":1}}],["避免大图纸加载时间过长",{"2":{"26":1}}],["粒子效果的实现使用的是three中的point",{"2":{"265":1}}],["投影矩阵",{"2":{"265":1}}],["射线法拾取",{"2":{"264":1}}],["射线如果穿过",{"2":{"245":1}}],["阴影",{"2":{"263":1}}],["阴影等属性",{"2":{"263":1}}],["恢复渲染状态和缓冲区",{"2":{"263":1}}],["光栅化阶段",{"2":{"311":1}}],["光照",{"2":{"263":1}}],["光源强度",{"2":{"240":1}}],["光源颜色",{"2":{"240":1}}],["纹理",{"2":{"263":1}}],["纹理坐标等等",{"2":{"311":1}}],["纹理坐标等",{"2":{"30":1,"263":1,"310":1}}],["根本看不懂",{"2":{"263":1}}],["根据render",{"2":{"308":2}}],["根据需要",{"2":{"263":1}}],["根据对象的材质",{"2":{"263":1}}],["根据图元来合模肯定会让cad的卡顿问题回到从前",{"2":{"256":1}}],["根据事件的优先级进行排序",{"2":{"252":2}}],["根据用户的配置初始化各种数据",{"2":{"243":1}}],["根据数据的变化",{"2":{"238":1}}],["根据白天黑夜模式设置不同的效果",{"2":{"159":1}}],["根据不同的后端",{"2":{"99":1}}],["根据线条宽度",{"2":{"30":1}}],["影响图纸加载卡顿的关系就是render方法的执行时间",{"2":{"263":1}}],["却需要花费内存来创建",{"2":{"262":1}}],["妈的",{"2":{"262":1}}],["旋转矩阵",{"2":{"259":1}}],["简称ndc",{"2":{"259":1}}],["简单布局",{"0":{"152":1}}],["简单理解",{"2":{"67":1}}],["归一化设备坐标系",{"2":{"259":1}}],["朝向屏幕内",{"2":{"259":1}}],["今天打开github一看",{"2":{"301":1}}],["今天",{"2":{"265":1}}],["今天自己推矩阵实现了顶点缩放",{"2":{"258":1}}],["今天给勇哥发了下面的一段话",{"0":{"256":1}}],["非常的丝滑流畅",{"2":{"258":1}}],["非material",{"0":{"59":1},"2":{"59":1}}],["缩放和旋转操作",{"2":{"308":1}}],["缩放矩阵",{"2":{"259":1}}],["缩放这些操作也稳定在60帧",{"2":{"258":1}}],["缩放等处理",{"2":{"24":1}}],["百万级别数量的三角形绘制丝毫没有压力",{"2":{"258":1}}],["希望我以后可以回答出来这个问题的答案",{"2":{"257":1}}],["希望能帮助用户能快速完成报表搭建",{"2":{"3":1}}],["本质是二进制模拟十进制进行计算时的精度问题",{"2":{"306":1}}],["本质的区别是什么",{"2":{"257":1}}],["本地不会有什么影响",{"2":{"296":1}}],["本来想单独把",{"2":{"236":1}}],["造成有很多坑",{"2":{"257":1}}],["造成了数据污染",{"2":{"31":1}}],["事先准备好二维图纸和三维模型",{"2":{"256":1}}],["事件监听调度",{"2":{"248":1,"260":1}}],["事件响应函数中弹出dialog弹窗",{"0":{"124":1}}],["事件",{"2":{"29":1}}],["事件是可以注册多个的",{"2":{"29":1}}],["事件先执行",{"2":{"29":1}}],["事件会比",{"2":{"29":1}}],["事件执行顺序优化",{"0":{"29":1}}],["畅想一下",{"2":{"256":1}}],["了解到photoshop开始在基于webgpu来做网页版的开发了",{"2":{"256":1}}],["好家伙",{"2":{"301":1}}],["好",{"2":{"265":1}}],["好消息是",{"2":{"256":1}}],["好了",{"2":{"246":1}}],["难点是",{"2":{"256":1}}],["难道每次接口请求都需要先封装一个数据模型",{"2":{"110":1}}],["尤其是后面的二三维图模融合",{"2":{"256":1}}],["老的graphic就是opengl",{"2":{"255":1}}],["跨平台性",{"0":{"254":1}}],["跨平台性肯定是flutter更好",{"2":{"182":1}}],["终于要开始了",{"2":{"253":1}}],["高二三班",{"2":{"252":2}}],["高度设置为0来撑起这个盒子",{"2":{"137":1}}],["得把矩阵用的越来越熟练才行",{"2":{"258":1}}],["得抓紧去学了",{"2":{"250":1}}],["得到节点的像素信息",{"2":{"308":1}}],["得到后面的一个索引",{"2":{"205":1}}],["得到前面的一个索引",{"2":{"205":1}}],["得到的是一个区间在",{"2":{"166":1}}],["得到两个控制点",{"2":{"32":1}}],["得到三个控制点",{"2":{"32":1}}],["推送gpu指令到设备对象的命令队列queue中去执行绘制",{"2":{"250":1}}],["各种矩阵初始化",{"2":{"249":1}}],["各有所好",{"2":{"230":1}}],["跳过跳过",{"2":{"248":1,"249":1}}],["跳转项目列表",{"2":{"211":1}}],["跳转到外链",{"2":{"162":1}}],["太臃肿了",{"2":{"248":1}}],["毕竟three的源码一个文件动不动就上千行",{"2":{"248":1}}],["毕竟不管是flutter还是rn",{"2":{"182":1}}],["没错",{"2":{"248":1}}],["没有用three",{"2":{"256":1}}],["没有记录下来模型第一次平移后的坐标",{"2":{"245":1}}],["没有索引信息",{"2":{"47":1}}],["没有上诉依赖冲突的报错问题",{"2":{"4":1}}],["继续",{"2":{"247":1}}],["继承自",{"2":{"248":4,"261":1}}],["继承",{"0":{"44":1}}],["熟悉的策略模式解决if",{"2":{"247":1}}],["具体的实现可能会有所不同",{"2":{"311":1}}],["具体原因可能是",{"2":{"256":1}}],["具体矩阵和缓冲区的作用看不清楚",{"2":{"247":1}}],["具体",{"2":{"247":1}}],["具体内容可以查看脚手架开发",{"2":{"223":1}}],["刚发版的时候天天盯着chrome刷新看看更新了没有",{"2":{"253":1}}],["刚看到源码就感觉到了熟悉的味道",{"2":{"248":1}}],["刚去看完three",{"2":{"246":1}}],["刚用完",{"2":{"214":1}}],["抽象出来图元对象来做数据处理",{"2":{"245":1}}],["同理数据坐标y",{"2":{"245":1}}],["同时显示错误信息",{"2":{"313":1}}],["同时把每个物体的信息存起来",{"2":{"245":1}}],["同时也可以确保使用的是最新版本的包",{"2":{"226":1}}],["同时",{"2":{"30":1,"99":1,"183":1}}],["同时会将所有的线性类型数据全部转为线段数据",{"2":{"24":1}}],["同时demo2有自己独立的依赖ts",{"2":{"11":1}}],["移动相机的位置矩阵到模型的中心",{"2":{"245":1}}],["移除事件监听",{"2":{"248":1,"260":1}}],["移除最后元素",{"2":{"47":1}}],["移除指定索引处的元素",{"2":{"47":1}}],["移除某个元素值",{"2":{"47":1}}],["屏幕",{"2":{"245":1}}],["判断事件监听是否已经存在",{"2":{"248":1,"260":1}}],["判断是否支持webgpu",{"2":{"247":1}}],["判断点击了哪个物体",{"2":{"245":1}}],["判断设备是否支持webgpu并获取webgpu的设备对象和上下文",{"2":{"243":1}}],["彻底弄懂鼠标拾取的原理",{"2":{"245":1}}],["回流比重绘的成本大得多",{"2":{"308":1}}],["回流",{"2":{"308":2}}],["回流和重绘",{"0":{"308":1}}],["回去了学习顶点数据和片元数据共用缓冲区",{"2":{"245":1}}],["回到根目录下执行pnpm",{"2":{"223":1}}],["视锥体中的距离近裁剪平面最近的模型",{"2":{"245":1}}],["视图",{"2":{"170":1}}],["视图是由数据驱动的",{"2":{"135":1}}],["视图复合",{"2":{"3":1}}],["形成几何图形",{"2":{"311":1}}],["形成一个用户个性化的图元库",{"2":{"256":1}}],["形成一条射线",{"2":{"245":1}}],["形成三条线段",{"2":{"32":1}}],["鼠标拾取的原理",{"2":{"245":1}}],["源码路径src",{"2":{"247":1}}],["源码路径",{"2":{"245":1,"248":1,"249":1,"260":2,"261":1,"262":1}}],["应该尽量减少回流操作",{"2":{"308":1}}],["应该还会存在",{"2":{"245":1}}],["应该程序中止",{"2":{"204":1}}],["精度问题导致的原因是js",{"2":{"245":1}}],["精度问题是否依然存在",{"2":{"245":1}}],["精度只能全图纸统一进行处理了",{"2":{"24":1}}],["做选中效果",{"2":{"245":1}}],["世界空间变换到观察空间",{"2":{"245":1}}],["正交投影和透视投影为什么用的是同一个lookat方法",{"2":{"245":1}}],["正常脚手架全局安装无需执行此步骤",{"2":{"216":1}}],["现在距离webgpu正式发版已经三个半月了",{"2":{"253":1}}],["现在我们绘制线段的能力已经有了",{"2":{"244":1}}],["现在看g2的源码好像没有那么恐怖了",{"2":{"2":1}}],["底层使用的是webgl中的gl",{"2":{"244":1}}],["底部弹窗",{"0":{"125":1}}],["线段",{"2":{"311":1}}],["线段绘制使用new",{"2":{"244":1}}],["线条的起点和终点会在gpu上复制多次",{"2":{"30":1}}],["线条的原始定义可能只包含线条的起点和终点",{"2":{"30":1}}],["已完成",{"2":{"245":1}}],["已经粗略的看过了three",{"2":{"244":1}}],["已连接未待机的状态",{"2":{"55":1}}],["碰撞组件",{"2":{"242":1}}],["碰撞案例",{"2":{"26":1}}],["拾取检测依赖",{"2":{"242":1}}],["拾取快",{"2":{"241":1,"245":2}}],["帧缓冲拾取",{"2":{"242":1}}],["帧缓冲区",{"2":{"241":1,"245":2}}],["引用数据类型",{"2":{"305":1}}],["引擎启动前需要配置开启拾取和拾取类型",{"2":{"242":1}}],["引入竟然会报错",{"2":{"218":1}}],["引入环境变量",{"2":{"174":1}}],["引入",{"2":{"108":1,"111":1}}],["引入的jank问题所做的重要尝试",{"2":{"99":1}}],["引入同样独立的demo2和demo3模块",{"2":{"11":1}}],["利用fbo",{"2":{"241":1,"245":1}}],["利弊就和vue3使用compositon",{"2":{"230":1}}],["块级注释",{"2":{"240":1}}],["单行注释",{"2":{"240":1}}],["单个语句会把它语句的值当做结果返回",{"2":{"198":1}}],["注",{"2":{"255":1}}],["注释",{"2":{"240":1}}],["注意看src",{"2":{"247":1}}],["注意",{"2":{"193":1}}],["结构体",{"2":{"240":1}}],["结构体都可以遵循协议",{"2":{"201":1}}],["矩阵的执行顺序",{"2":{"259":1}}],["矩阵",{"2":{"240":1}}],["向量",{"2":{"240":1}}],["向widget增加padding",{"2":{"65":1}}],["要复杂得多",{"2":{"257":1}}],["要做到好的一个效果",{"2":{"256":1}}],["要补",{"2":{"239":1}}],["要创建一个类的实例",{"2":{"199":1}}],["见到了一些对象底层的东西",{"2":{"239":1}}],["虚拟dom",{"2":{"238":1}}],["仔细想一想",{"2":{"238":1}}],["里面加载各种组件展开整个项目",{"2":{"236":1}}],["里面新建一个分支",{"2":{"218":1}}],["暂不采用",{"2":{"236":1}}],["暂时放弃使用fvm工具",{"2":{"98":1}}],["缺点是不太适合我这种懒人",{"2":{"236":1}}],["缺货",{"2":{"202":1}}],["效果也很好",{"2":{"236":1}}],["效果却一点都不好",{"2":{"98":1}}],["传参的方式和call不一样",{"2":{"235":1}}],["传递给绑定的着色器程序",{"2":{"263":1}}],["传递时值前要加",{"2":{"171":1}}],["传递参数",{"2":{"113":1}}],["永久改变this指向",{"2":{"235":1}}],["临时改变this指向",{"2":{"235":1}}],["显示执行时",{"2":{"235":1}}],["显示隐藏的文件夹",{"2":{"151":1}}],["显式执行时",{"0":{"235":1}}],["改成createelement创建ul元素",{"2":{"308":1}}],["改成感叹号",{"2":{"193":1}}],["改变浏览器窗口尺寸",{"2":{"308":1}}],["改变元素字体大小",{"2":{"308":1}}],["改变元素尺寸",{"2":{"308":1}}],["改变元素位置",{"2":{"308":1}}],["改变函数的执行上下文",{"2":{"234":1}}],["虽然是各有利弊",{"2":{"230":1}}],["虽然还是比较慢",{"2":{"92":1}}],["写文档的做法是在",{"2":{"236":1}}],["写法更自由",{"2":{"230":1}}],["写入地代码会在属性值发生改变时调用",{"2":{"199":1}}],["检查渲染器的参数",{"2":{"263":1}}],["检查本地项目中是否安装了对应的依赖",{"2":{"225":1}}],["检查安装版本",{"2":{"175":1}}],["直接扔进img中",{"2":{"298":1}}],["直接看最后的渲染流程",{"2":{"250":1}}],["直接在函数中进行接口请求",{"2":{"229":1}}],["直接读取store中的数据修改",{"2":{"229":2}}],["直接运行该包提供的命令行工具",{"2":{"225":1}}],["直接报错",{"2":{"28":1}}],["介绍",{"0":{"225":1}}],["答",{"2":{"223":2}}],["问题",{"2":{"266":1}}],["问",{"2":{"223":2}}],["思路是",{"2":{"296":1}}],["思考",{"2":{"223":1}}],["思想和前端的组件封装一样",{"2":{"164":1}}],["成功",{"2":{"223":1}}],["成就智能时代全球领先的数据可视化解决方案",{"2":{"2":1}}],["控制台就会报一大片请求失败的错误",{"2":{"266":1}}],["控制台输出了",{"2":{"223":1}}],["控制流",{"0":{"192":1}}],["脚手架搭建测试",{"2":{"223":2}}],["脚手架开发",{"0":{"215":1,"218":1},"1":{"216":1,"217":1,"218":1}}],["搭建的项目里做了如下测试",{"2":{"223":1}}],["`highlighted",{"2":{"287":2}}],["```ts",{"2":{"291":1,"292":1}}],["```html",{"2":{"286":1}}],["```",{"2":{"284":1,"286":2,"287":3,"288":1,"289":1,"290":1,"291":2,"292":2}}],["```js",{"2":{"284":1,"286":1,"287":3,"288":1,"289":1,"290":1,"292":1}}],["`three",{"2":{"262":1}}],["`bound`",{"2":{"242":1}}],["`my",{"2":{"234":3}}],["`",{"2":{"222":1,"234":3,"262":1,"287":2,"293":2,"298":2}}],["`uname`",{"2":{"222":1}}],["`view",{"2":{"210":1}}],["|",{"2":{"222":3,"279":20}}],["||",{"2":{"123":1,"177":1}}],["软链接有三个文件",{"2":{"222":1}}],["软链接是一个脚本",{"2":{"222":1}}],["\\tthis",{"2":{"252":1}}],["\\treturn",{"2":{"252":1}}],["\\tconsole",{"2":{"252":2}}],["\\t\\ttry",{"2":{"220":1}}],["\\t\\talias",{"2":{"220":1}}],["\\tlocation",{"2":{"220":1}}],["\\tlisten",{"2":{"220":1}}],["\\t",{"2":{"220":2}}],["于是我改用了下面的命令来执行脚手架",{"2":{"218":1}}],["又继承自",{"2":{"260":1}}],["又叫标准化设备坐标系",{"2":{"259":1}}],["又可以使用esm的包",{"2":{"218":1}}],["又或者说",{"2":{"23":1}}],["到这里",{"2":{"218":1,"247":1}}],["到这里我就弄懂了如何配置一个可以不使用npm",{"2":{"217":1}}],["保存代码时缩进4个空格",{"2":{"218":1}}],["保持能量的平衡",{"2":{"10":1}}],["关闭定义变量转为const",{"2":{"218":1}}],["关于cad方向上的一些想法",{"2":{"256":1}}],["关于手绘线的优化方案",{"2":{"245":1}}],["关于运行项目一直卡在running",{"2":{"92":1}}],["关于批注的移动可以参考three中的",{"2":{"26":1}}],["勾选",{"2":{"218":1}}],["外的",{"2":{"218":1}}],["外部依赖变更",{"2":{"133":1}}],["哪些文件不需要被编译的",{"2":{"218":1}}],["弃用",{"2":{"218":1}}],["适配不同的框架和项目",{"2":{"218":1}}],["适合存储的键值集合相对较少的情况",{"2":{"120":1}}],["仓库里面的固定代码",{"2":{"218":1}}],["书接上回",{"2":{"218":1}}],["至于这种二三维联动",{"2":{"257":1}}],["至于后续的如何拉去git远程模板",{"2":{"217":1}}],["至此",{"2":{"17":1}}],["速度要快",{"2":{"214":1}}],["排查过程一定要思路清晰",{"2":{"214":1}}],["妥妥的生产事故",{"2":{"214":1}}],["登录上去以后看到刚才服务器的cpu占用一直是百分百",{"2":{"214":1}}],["登录上去又花了一段时间",{"2":{"214":1}}],["勇哥",{"2":{"256":1}}],["勇哥又再和客户打电话沟通",{"2":{"214":1}}],["勇哥在群里说",{"2":{"214":1}}],["服务的访问链接和一些静态资源的访问最好都新建一个统一配置的文件来管理",{"2":{"303":1}}],["服务的部署和资源访问这些链接",{"0":{"303":1}}],["服务器崩了",{"2":{"214":1}}],["服务器驱动程序还通过使用steamvr接收来自客户端设备的运动和控制数据",{"2":{"53":1}}],["服务器驱动程序通过与steamvr集成",{"2":{"53":1}}],["服务端会用秋全的app",{"2":{"213":1}}],["苹果推出了一个叫做",{"2":{"213":1}}],["启动时间还有内存占比上都是很有优势的",{"2":{"213":1}}],["取而代之的是",{"2":{"213":1}}],["取消eslint的报错提示",{"2":{"218":1}}],["取消",{"2":{"124":1}}],["取消订阅等清理操作",{"2":{"67":1}}],["细心的朋友发现了",{"2":{"213":1}}],["区别于静态库",{"2":{"213":1}}],["区间内",{"2":{"32":1}}],["静态库与app可执行文件一起被加载到同一块代码区中",{"2":{"213":1}}],["动态库在包体积",{"2":{"213":1}}],["动态库是在程序运行的时候被添加另外一块内存区域",{"2":{"213":1}}],["动态库和静态库",{"0":{"213":1}}],["动画使用transform",{"2":{"308":1}}],["动画",{"2":{"3":1,"167":1,"168":1}}],["管理和这些view相关的交互",{"2":{"212":1}}],["管理和增强视图",{"2":{"3":1}}],["代表最后返回的页面",{"2":{"212":1}}],["代码解构显得不是那么清晰",{"2":{"230":1}}],["代码展开",{"2":{"151":1}}],["代码折叠",{"2":{"151":1}}],["代码生成等",{"2":{"133":1}}],["代码如下",{"2":{"16":1}}],["上面的矩阵是three中内置好的矩阵变量",{"2":{"265":1}}],["上传以后",{"2":{"256":1}}],["上午十点零六",{"2":{"214":1}}],["上下左右居中",{"2":{"210":1}}],["上方",{"2":{"88":1}}],["属性来设置",{"2":{"210":1}}],["属性和子脚本",{"2":{"199":1}}],["内边距区域的大小可以通过视图的",{"2":{"210":1}}],["内边距区域的底部边缘",{"2":{"210":1}}],["内边距区域的顶部边缘",{"2":{"210":1}}],["内边距区域的右侧边缘",{"2":{"210":1}}],["内边距区域的左侧边缘",{"2":{"210":1}}],["内边距区域是视图内容与视图边缘之间的空白区域",{"2":{"210":1}}],["便于oc的代码调用能找到swift的方法",{"2":{"209":1}}],["变成ast树",{"2":{"238":1}}],["变量",{"2":{"205":1}}],["变体",{"2":{"161":1}}],["作为一个图形学的开发工程师",{"2":{"265":1}}],["作为续行符",{"2":{"205":1}}],["作为image之后的第一个修饰符",{"2":{"152":1}}],["断言仅在调试环境运行",{"2":{"204":1}}],["断言和先决条件的不同点是",{"2":{"204":1}}],["断言和先决条件是在运行时所做的检查",{"2":{"204":1}}],["断言和先决条件",{"0":{"204":1}}],["他回复我说",{"0":{"257":1},"1":{"258":1}}],["他们可能需要多次计算",{"2":{"308":1}}],["他们是自己基于webgl写了一套自己的渲染",{"2":{"256":1}}],["他们是在观察矩阵之后的投影操作",{"2":{"245":1}}],["他们什么时候进行状态检测",{"2":{"204":1}}],["他的定义文件更加轻松易懂",{"2":{"183":1}}],["程序将会崩溃",{"2":{"313":1}}],["程序的当前状态是无效的",{"2":{"204":1}}],["程序会退出switch语句",{"2":{"195":1}}],["泛型",{"0":{"203":1}}],["金额不足",{"2":{"202":1}}],["错误用遵循error协议的类型的值来表示",{"2":{"202":1}}],["错误处理",{"0":{"202":1}}],["协议和扩展",{"0":{"201":1}}],["枚举的关联值还可以提供错误状态的额外信息",{"2":{"202":1}}],["枚举",{"2":{"201":1}}],["枚举和结构体",{"0":{"200":1}}],["枚举或结构体的方法如果会修改self",{"2":{"140":1}}],["整个表达式地值也是一个可选值",{"2":{"199":1}}],["描述了需要链接的动态库的信息",{"2":{"213":1}}],["描述",{"2":{"199":1}}],["面积",{"2":{"199":1}}],["该方法通常包含以下步骤",{"2":{"263":1}}],["该方法中会",{"2":{"263":1}}],["该技术能够为3d图像提高10倍的渲染性能",{"2":{"255":1}}],["该元组的元素可以用名称或数字来获取",{"2":{"197":1}}],["该参数的值等于线段上某一个点距离起点的长度除以线段长度",{"2":{"32":1}}],["输出合并阶段",{"2":{"311":1}}],["输出到颜色缓冲区",{"2":{"245":1}}],["输出",{"2":{"195":1,"252":3}}],["输入的顶点数据会被处理",{"2":{"311":1}}],["输入flutter",{"2":{"95":1}}],["输入框",{"0":{"86":1}}],["找管理员账户",{"2":{"214":1}}],["找出字典中的最大值",{"2":{"195":1}}],["找到项目的build",{"2":{"136":1}}],["两层for",{"2":{"195":1}}],["两个事件的函数都会执行",{"2":{"29":1}}],["操作符来提供一个默认值",{"2":{"194":1}}],["操作视图并且展现详细信息",{"2":{"3":1}}],["条件必须是一个布尔表达式",{"2":{"194":1}}],["把所有相同图层的图元的点线面数据进行合模处理成一个大图元来渲染",{"2":{"256":1}}],["把",{"2":{"238":1}}],["把想要用作可选的类型的后面的问号",{"2":{"193":1}}],["把合并后的代码提交到自己新建的分支当中",{"2":{"132":1}}],["隐藏的dom元素操作不会引发其他元素的重排",{"2":{"308":1}}],["隐藏系统的导航返回按钮",{"2":{"139":1}}],["隐式执行时",{"0":{"234":1}}],["隐式解析可选类型确定有值后不需要强制解析",{"2":{"193":1}}],["隐式解析可选类型",{"0":{"193":1}}],["依然可以对元组进行分解和下标访问",{"2":{"191":1}}],["依赖安装不上",{"2":{"175":1}}],["依赖安装好以后如果是ios真机测试还需要用xcode打开项目下的ios项目",{"2":{"97":1}}],["值是",{"2":{"191":1}}],["值永远不会被隐式转换为其他类型",{"2":{"189":1}}],["总结",{"2":{"307":1}}],["总结一下分析的过程",{"2":{"214":1}}],["总结一下就是",{"2":{"182":1}}],["总体呈现的流畅效果都会相差很大",{"2":{"256":1}}],["总之",{"2":{"210":1}}],["总的来说init方法进行了各种各样的数据初始化和一些webgpu的使用准备工作",{"2":{"247":1}}],["总的来说",{"2":{"30":1}}],["电池信息等都只能通过系统级的sdk",{"2":{"182":1}}],["想要调用手机系统的其他功能如",{"2":{"182":1}}],["想不到吧",{"2":{"139":3}}],["都为求一个",{"2":{"308":1}}],["都使用图元对象最终操作一个float32array的数组来实现",{"2":{"245":1}}],["都和观察矩阵没有关系",{"2":{"245":1}}],["都只能提供绘制ui的功能",{"2":{"182":1}}],["都会为该视图和该视图中使用的状态数据之间创建一个依赖关系",{"2":{"135":1}}],["搜索",{"2":{"218":1}}],["搜索列表和搜索建议",{"0":{"177":1}}],["搜索sandbox",{"2":{"136":1}}],["页面初始渲染",{"2":{"308":1}}],["页面自由度极高",{"2":{"236":1}}],["页面内容全部自己开发",{"2":{"236":1}}],["页面加载不出来了",{"2":{"214":1}}],["页面的布局",{"0":{"210":1}}],["页面显示需要做特殊处理",{"2":{"176":1}}],["页面之间的跳转",{"0":{"139":1}}],["页面之间跳转",{"0":{"117":1}}],["删掉之前的源",{"2":{"175":1}}],["删除可见的dom元素",{"2":{"308":1}}],["删除所有项目的依赖",{"2":{"223":1}}],["删除项目中已经安装好的目录",{"2":{"217":1}}],["删除依赖",{"0":{"217":1}}],["删除缓存",{"2":{"121":1}}],["删除缓存数据",{"2":{"121":1}}],["删除ios",{"2":{"103":3}}],["查询某些属性或调用某些计算方法",{"2":{"308":1}}],["查找包",{"2":{"175":1}}],["查看github热门趋势和star排行榜",{"0":{"302":1}}],["查看浏览器是否支持webgpu",{"2":{"247":1}}],["查看nginx的访问日志",{"2":{"214":1}}],["查看文件的权限",{"2":{"103":1}}],["查看安装列表",{"2":{"98":1}}],["查看fvm的版本",{"2":{"98":1}}],["环境变量的使用比数据绑定更方便",{"2":{"174":1}}],["环境变量的使用",{"0":{"174":1}}],["环境安装",{"0":{"92":1}}],["环境安装和项目搭建",{"0":{"21":1}}],["走一遍orillusion最简单的流程来看源码",{"0":{"243":1}}],["走马灯效果",{"0":{"172":1}}],["走的远一些",{"2":{"23":1}}],["横向tabview",{"0":{"172":1}}],["横向或纵向布局多个widgets",{"0":{"60":1}}],["连接上服务器查看情况",{"2":{"214":1}}],["连接线段以及自定义着色器等技术",{"2":{"30":1}}],["连接线段",{"2":{"30":1}}],["连续曲率圆角",{"2":{"167":1,"168":1}}],["四维向量表示齐次坐标",{"2":{"240":1}}],["四分之一圆的圆角",{"2":{"167":1,"168":1}}],["四个控制点通过先后顺序进行连接",{"2":{"32":1}}],["组件",{"0":{"167":1},"2":{"164":1,"170":1}}],["组合widgets",{"0":{"63":1}}],["垫片",{"2":{"162":1,"163":1}}],["符号",{"2":{"161":1,"171":1}}],["去执行",{"2":{"250":1}}],["去官网下载sf",{"2":{"161":1}}],["去掉vue",{"2":{"15":1}}],["色彩",{"2":{"160":1}}],["遮罩",{"0":{"158":1}}],["渐变颜色设置透明度",{"2":{"157":1}}],["其实类似的产品",{"2":{"257":1}}],["其他的模块都知之甚少",{"2":{"239":1}}],["其他修饰符才能生效",{"2":{"152":1}}],["其中盛放的对象类型放在",{"2":{"47":1}}],["其中required关键字表示该入参必须传入",{"2":{"41":1}}],["其中x1和x2的范围必须在",{"2":{"32":1}}],["其中",{"2":{"32":1}}],["限制行数为1",{"2":{"152":1}}],["垂直的",{"2":{"152":1}}],["垂直排列布局",{"2":{"152":1}}],["水平的",{"2":{"152":1}}],["水平的linearprogressindicator",{"2":{"90":1}}],["水平排列布局",{"2":{"152":1}}],["下面情况会发生重排",{"2":{"308":1}}],["下面的文件",{"2":{"218":1}}],["下一步就直接执行命令编码器的finish方法",{"2":{"250":1}}],["下标从零开始",{"2":{"191":1}}],["下箭头",{"2":{"151":1}}],["下载了它的字体文件",{"2":{"245":1}}],["下载的包是否会被删除",{"0":{"227":1}}],["下载的时候要关闭代理",{"2":{"94":1}}],["下载flutter",{"2":{"94":1}}],["下载android",{"2":{"94":1}}],["右箭头",{"2":{"151":1}}],["左下角的",{"2":{"218":1}}],["左滑右滑响应",{"0":{"163":1}}],["左箭头",{"2":{"151":1}}],["左边文字和右边蚊子对齐的布局效果",{"2":{"137":1}}],["掘金上有很多比较新的教程可以用",{"2":{"145":1}}],["异步调用请求",{"2":{"140":1}}],["异步任务",{"0":{"51":1}}],["则进行的是值传递",{"2":{"305":1}}],["则进行的是引用传递",{"2":{"305":1}}],["则是用渲染管线的",{"2":{"244":1}}],["则直接执行命令",{"2":{"225":1}}],["则所有的",{"2":{"218":1}}],["则代码执行结束",{"2":{"204":1}}],["则代码像往常一样继续执行",{"2":{"204":1}}],["则该函数为一个闭包",{"2":{"197":1}}],["则逃逸闭包能铺货self",{"2":{"140":1}}],["则必须以mutaing声明修饰符标记",{"2":{"140":1}}],["则必须自己构建它们",{"2":{"59":1}}],["逃逸闭包不能捕获self",{"2":{"140":1}}],["逃逸闭包不可修改self这个参数",{"2":{"140":1}}],["闭包学习",{"2":{"140":1}}],["闭包",{"0":{"140":1}}],["模块来创建子进程",{"2":{"313":1}}],["模块化机制",{"2":{"68":1}}],["模型矩阵",{"2":{"265":1}}],["模型平移结束后",{"2":{"245":1}}],["模板解析",{"2":{"238":1}}],["模态跳转",{"2":{"139":1}}],["开始期待后面它在cad上面的一个性能表现",{"2":{"258":1}}],["开始",{"2":{"231":1}}],["开发者可以自定义这些内边距",{"2":{"210":1}}],["开关2",{"2":{"138":1}}],["开关1",{"2":{"138":2}}],["开箱即用是个很棒的功能",{"2":{"0":1}}],["封装",{"2":{"138":1}}],["封装数据模型的好处是什么",{"2":{"110":1}}],["复制当前行",{"2":{"151":1}}],["复选框控件的封装和使用",{"0":{"138":1}}],["复合节点",{"2":{"6":1}}],["始终都是居中效果",{"2":{"137":1}}],["始末端的分支宽度总和相等",{"2":{"10":1}}],["紧凑型组件和贪婪型组件",{"2":{"137":1}}],["返回上级页面",{"2":{"139":1}}],["返回",{"2":{"136":1}}],["失败了",{"2":{"136":1}}],["解析css生成cssom",{"2":{"308":1}}],["解析下来的数据量有1",{"2":{"28":1}}],["解决方法",{"2":{"306":1}}],["解决方案",{"2":{"136":1}}],["解决history路由访问问题",{"2":{"220":1}}],["增加修改测试用例",{"2":{"133":1}}],["增量编译指的是生成",{"2":{"19":1}}],["✅",{"2":{"133":1}}],["⚡️",{"2":{"133":1}}],["重排会引起重绘",{"2":{"308":3}}],["重排影响的范围",{"2":{"308":1}}],["重绘不一定导致回流",{"2":{"308":1}}],["重绘",{"2":{"308":1}}],["重构代码",{"2":{"133":1}}],["重新计算各节点和css具体的大小和位置",{"2":{"308":1}}],["重新排列元素",{"2":{"308":1}}],["重新生成布局",{"2":{"308":1}}],["重新pnpm",{"2":{"217":1}}],["重新安装依赖即可",{"2":{"127":1}}],["重新打包",{"2":{"103":1}}],["♻️",{"2":{"133":1}}],["修饰符的先后顺序很重要",{"2":{"152":1}}],["修改参数不会影响到数据本身",{"2":{"305":1}}],["修改参数会影响到对象本身",{"2":{"305":1}}],["修改demo1的命令如下",{"2":{"223":1}}],["修改demo3中的index",{"2":{"223":1}}],["修改如下",{"2":{"223":1}}],["修改打开的第一个页面的颜色",{"2":{"207":1,"209":1}}],["修改一下",{"2":{"174":1}}],["修改",{"2":{"133":1}}],["修改工具相关",{"2":{"133":1}}],["修改代码格式",{"2":{"133":1}}],["修改文档",{"2":{"133":1}}],["修复问题",{"2":{"133":1}}],["💯",{"2":{"280":1}}],["📦️",{"2":{"133":1}}],["🔨",{"2":{"133":1}}],["📚",{"2":{"133":1}}],["🚀",{"2":{"133":1}}],["🧩",{"2":{"133":1}}],["新的graphic技术就是vulkan",{"2":{"255":1}}],["新的脚手架项目我决定要用",{"2":{"218":1}}],["新增下面一行",{"2":{"223":1}}],["新增如下代码",{"2":{"207":1}}],["新增源",{"2":{"175":1}}],["新值的名字是newvalue",{"2":{"199":1}}],["新功能",{"2":{"133":1}}],["新建styles来配置自定义修饰符的内容",{"2":{"159":1}}],["新建文件",{"2":{"151":1}}],["新建test",{"2":{"16":1}}],["新建pnpm",{"2":{"13":1}}],["新建一个文件夹",{"2":{"13":1}}],["规范",{"0":{"133":1}}],["合并修改",{"2":{"132":1}}],["报错就消失了",{"2":{"218":1}}],["报错",{"2":{"131":1}}],["允许使用console",{"2":{"218":1}}],["允许不同git历史拉代码",{"2":{"131":1}}],["允许你自定义其子widget",{"2":{"57":1}}],["撤销最近的一次提交",{"2":{"131":1}}],["参考资料",{"2":{"128":1}}],["提供了",{"2":{"313":1}}],["提取出来图元数据并配合ai来做一些事情",{"2":{"256":1}}],["提升性能",{"2":{"133":1}}],["提交",{"2":{"133":1}}],["提交pull",{"0":{"132":1},"1":{"133":1},"2":{"132":2}}],["提高应用程序的性能和内存使用效率",{"2":{"128":1}}],["提示信息",{"2":{"124":1}}],["提示条和底部列表弹窗的api",{"2":{"58":1}}],["状态和场景数据的完整性以及各个变量的有效性",{"2":{"263":1}}],["状态管理",{"0":{"126":1},"1":{"127":1,"128":1,"129":1,"130":1}}],["状态就不允许再变动",{"2":{"67":1}}],["分解的时候可以把要忽略的部分用下划线",{"2":{"191":1}}],["分割线",{"2":{"176":1}}],["分隔符",{"2":{"160":1}}],["分享",{"2":{"125":1}}],["分别是",{"2":{"90":1}}],["分别是npm",{"2":{"19":1}}],["分别表示key的类型和value的类型",{"2":{"49":1}}],["分别对应串行和并行",{"2":{"19":1}}],["带选择的dialog弹窗",{"2":{"124":1}}],["弹窗函数使用",{"2":{"124":1}}],["弹窗函数封装",{"2":{"124":1}}],["确实",{"2":{"301":1}}],["确定",{"2":{"124":1}}],["确认pico还在刚才steamvr的界面",{"2":{"55":1}}],["您确定要删除吗",{"2":{"124":1}}],["您的电脑的ip地址",{"2":{"55":1}}],["路由管理",{"0":{"130":1}}],["路由传参",{"0":{"118":1}}],["路由",{"0":{"116":1},"1":{"117":1,"118":1,"119":1}}],["路飞",{"2":{"88":1}}],["响应系统",{"2":{"239":1}}],["响应式系统应该是我对vue最熟悉的一个模块",{"2":{"239":1}}],["响应式系统",{"0":{"239":1},"2":{"238":1}}],["响应拦截",{"2":{"115":1}}],["响应数据",{"2":{"109":1}}],["帅气的阿斌",{"2":{"113":1}}],["接收以后处理成url",{"2":{"298":1}}],["接着看",{"2":{"260":1}}],["接着往下看",{"2":{"247":2}}],["接下来继续去看看object3d",{"2":{"260":1}}],["接下来持续学习开始吧",{"2":{"253":1}}],["接下来对每一条线段做同样的操作",{"2":{"32":1}}],["接下面要对cad需要的线段绘制能力进行性能测试",{"2":{"244":1}}],["接口调用",{"2":{"180":1}}],["接口请求",{"0":{"107":1,"180":1},"1":{"108":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1}}],["打包结束以后",{"2":{"296":1}}],["打包前",{"2":{"296":1}}],["打包后的js中如果以这行代码开头",{"2":{"218":1}}],["打包后会生成build文件夹",{"2":{"106":1}}],["打包过程cpu的占用会很高",{"2":{"214":1}}],["打开官网查看页面的访问",{"2":{"214":1}}],["打开viewcontroller编辑viewdidload函数",{"2":{"207":1}}],["打开开发人员工具",{"0":{"181":1}}],["打开终端",{"2":{"143":1}}],["打开xcode",{"2":{"106":1}}],["打开环境变量配置文件",{"2":{"97":1}}],["打开",{"2":{"94":1,"136":1}}],["打开ue5",{"2":{"55":1}}],["禁止布局随着键盘上移动",{"2":{"105":1}}],["键盘弹起页面布局上移问题",{"0":{"105":1}}],["给uilabel设置点击事件",{"2":{"209":1}}],["给元组单个元素命名后",{"2":{"191":1}}],["给文件重新赋予权限",{"2":{"103":1}}],["给项目分配一个开发team",{"2":{"97":1}}],["给项目选择一个team",{"2":{"96":1}}],["编译器",{"2":{"238":1}}],["编译器会自动推断其类型",{"2":{"189":1}}],["编译",{"2":{"103":1}}],["编码",{"2":{"5":2,"6":4}}],["qrcode",{"2":{"231":1}}],["qrbtf",{"2":{"231":1}}],["qr",{"2":{"231":1}}],["queue",{"2":{"250":1}}],["queen",{"2":{"200":3}}],["questionmark",{"2":{"161":1,"162":1}}],["queryparameters",{"2":{"113":1,"114":1,"115":1}}],["quotation",{"2":{"205":2}}],["quot",{"2":{"1":18,"5":4,"6":4,"7":4,"8":4,"9":4,"10":14,"16":6,"17":10,"18":6,"19":24,"47":4,"48":2,"49":2,"51":6,"87":2,"88":4,"113":10,"114":4,"115":8,"119":4,"121":8,"124":24,"125":14,"129":4,"131":4,"136":6,"137":20,"138":8,"139":16,"140":12,"141":10,"142":6,"152":6,"153":2,"155":2,"156":2,"157":2,"160":10,"161":16,"162":30,"163":26,"164":10,"165":8,"166":2,"167":24,"168":16,"169":2,"171":4,"172":2,"173":28,"174":6,"176":2,"177":16,"178":10,"179":2,"180":6,"187":2,"189":4,"190":8,"191":6,"193":6,"194":22,"195":26,"197":12,"199":20,"200":8,"202":20,"203":2,"204":4,"205":26,"209":4,"216":6,"218":48,"222":24,"223":12,"233":2,"236":32,"270":10,"277":4,"284":2,"285":2,"286":8,"298":8,"308":30}}],["qq",{"2":{"102":1,"183":1}}],["核心组成是flutter",{"2":{"100":1}}],["背景",{"2":{"99":1}}],["背景颜色",{"2":{"90":2}}],["切换flutter版本",{"2":{"98":1}}],["添加",{"2":{"308":1}}],["添加了对vulkan的支持",{"2":{"255":1}}],["添加事件监听",{"2":{"248":1,"260":1}}],["添加改行代码到打包文件的开头",{"2":{"218":1}}],["添加到view中",{"2":{"209":1}}],["添加相关注释后提交",{"2":{"132":2}}],["添加homebrew",{"2":{"98":1}}],["添加flutter的安装路径到环境变量",{"2":{"97":1}}],["获取设备对象",{"2":{"247":1}}],["获取canvas中webgpu的上下文并进行了一些配置",{"2":{"247":1}}],["获取webgpu设备对象",{"2":{"247":1}}],["获取对应偏移量的索引",{"2":{"205":1}}],["获取app的白天黑夜模型状态",{"2":{"159":1}}],["获取项目最新代码",{"2":{"132":1}}],["获取依赖",{"2":{"97":1}}],["获取缓存数据",{"2":{"121":1}}],["获取缓存",{"2":{"87":1,"121":1}}],["~",{"2":{"97":2}}],["导航栏",{"2":{"170":1}}],["导航",{"0":{"162":1}}],["导航返回按钮图标",{"2":{"139":1}}],["导入刚才下载好的flutter",{"2":{"94":1}}],["导致重排",{"2":{"308":1}}],["导致重绘",{"2":{"308":2}}],["导致本次循环的offsetpositiondata临时变量不会被释放",{"2":{"31":1}}],["导致使用的调用堆栈大小超过事先规划的大小",{"2":{"28":1}}],["导致图纸根据渲染不出来",{"2":{"28":1}}],["官网说自己是",{"2":{"250":1}}],["官网全程崩溃了将近二十分钟",{"2":{"214":1}}],["官网崩了",{"2":{"214":1}}],["官网文档",{"2":{"123":1}}],["官网下载",{"2":{"94":1}}],["官网的开发文档",{"2":{"55":1,"149":1}}],["前端根据链接用qrcode去生成二维码展示",{"2":{"298":1}}],["前端中的npm库类似",{"2":{"93":1}}],["前几天看到一个视频",{"2":{"256":1}}],["前段时间我们的cad就是从图纸卡顿一步步优化过来的",{"2":{"256":1}}],["前言",{"0":{"22":1,"238":1,"253":1},"1":{"254":1,"255":1}}],["与spawn方法不同的是",{"2":{"313":1}}],["与skia不同的是",{"2":{"99":1}}],["与其每个项目都维护一个自己习惯的commom",{"2":{"301":1}}],["与android中的jcenter",{"2":{"93":1}}],["与p3的y相同",{"2":{"32":1}}],["第三方库",{"2":{"306":1}}],["第5行被执行",{"2":{"252":2}}],["第20节",{"2":{"245":1}}],["第283行被执行",{"2":{"24":2}}],["第五章看不下去了",{"2":{"239":1}}],["第一次被赋值之后",{"2":{"193":1}}],["第二次挂了梯子然后就没有卡住",{"2":{"92":1}}],["刷新时refreshprogressindicator",{"2":{"90":1}}],["圆形的circularprogressindicator",{"2":{"90":1}}],["之后地所有代码都会按照解包后地值运行",{"2":{"199":1}}],["之后消失",{"2":{"88":1}}],["之前处理的支付都是后端生成支付链接",{"2":{"298":1}}],["之前地值是nil",{"2":{"199":1}}],["之前加",{"2":{"199":1}}],["之前和之后均匀地划分",{"2":{"61":1}}],["之间的数",{"2":{"166":1}}],["指针悬停多久后展示",{"2":{"88":1}}],["指定配置文件进行类型检查",{"2":{"19":1}}],["时",{"2":{"88":1}}],["时刻提醒自己这个东西要去学",{"2":{"22":1}}],["距离",{"2":{"88":1}}],["是一个比较复杂的类",{"2":{"262":1}}],["是时候该学些shader的高级应用了",{"2":{"258":1}}],["是非常好的",{"2":{"257":1}}],["是否已经找到了性能问题的本质了",{"2":{"257":1}}],["是否还可以使用这些指令",{"2":{"223":1}}],["是否使用语义标签",{"2":{"88":1}}],["是的",{"2":{"223":1}}],["是",{"2":{"218":1,"313":1}}],["是某个资源加载404",{"2":{"214":1}}],["是离用户最近的第一层代码",{"2":{"212":1}}],["是要成为海贼王的男人",{"2":{"88":5}}],["是面条",{"2":{"2":1}}],["是面粉",{"2":{"2":1}}],["点击open",{"2":{"218":1}}],["点击左下角的setting打开设置后",{"2":{"218":1}}],["点击了",{"2":{"163":1}}],["点击项目根路径",{"2":{"136":1}}],["点击右上角的fork按钮",{"2":{"132":1}}],["点击事件",{"2":{"124":1}}],["点击事件响应",{"2":{"87":1}}],["点击vr",{"2":{"55":1}}],["否则",{"2":{"199":1}}],["否则会报错",{"2":{"86":1}}],["否则这个曲线就是无效的",{"2":{"32":1}}],["副轴排列方式",{"2":{"77":1}}],["keeping",{"2":{"289":1}}],["key=",{"2":{"286":2}}],["keyname",{"2":{"247":7}}],["key",{"2":{"49":3,"58":1,"59":1,"89":2,"103":2,"110":1,"113":1,"114":1,"115":1,"117":2,"118":2,"119":3,"121":7,"123":3,"129":1,"168":1}}],["kk",{"2":{"252":2}}],["k",{"2":{"250":2,"252":2}}],["knock",{"2":{"203":1}}],["king",{"2":{"200":3}}],["kitchen",{"2":{"76":1}}],["国内预览网站",{"2":{"76":1}}],["国际化多语言管理",{"2":{"68":1}}],["功能强大并且高性能",{"2":{"68":1}}],["网络请求",{"2":{"68":1}}],["主要目的是为了减少app的下载大小",{"2":{"213":1}}],["主要用于制作基于网页的可视化",{"2":{"3":1}}],["主轴排列方式",{"2":{"77":1}}],["主题管理",{"2":{"68":1}}],["执行后期处理操作",{"2":{"263":1}}],["执行webgl绘制调用",{"2":{"263":1}}],["执行npx",{"2":{"217":1}}],["执行npm",{"2":{"216":1,"223":1}}],["执行命令",{"0":{"217":1}}],["执行",{"2":{"127":1,"131":1}}],["执行flutter",{"2":{"103":1}}],["执行一些相应的操作",{"2":{"67":1}}],["执行vue",{"2":{"19":1}}],["需要注意的是",{"2":{"311":1}}],["需要有个连接和转换层",{"2":{"257":1}}],["需要提取cad图纸中的图元数据",{"2":{"256":1}}],["需要重写实现接口中的所有属性和方法",{"2":{"252":1}}],["需要重建或者父部件更新时都会调用这个方法",{"2":{"67":1}}],["需要使用npx",{"2":{"223":1}}],["需要按照自己的需求做些修改",{"2":{"218":1}}],["需要配合头文件",{"2":{"213":1}}],["需要用override标记",{"2":{"199":1}}],["需要显示进行类型转换",{"2":{"189":1}}],["需要动态生成对应的着色器代码并对其进行编译",{"2":{"99":1}}],["需要在类型后加上",{"2":{"50":1}}],["初始化了一些矩阵",{"2":{"247":1}}],["初始化透视投影",{"2":{"243":1}}],["初始化包",{"2":{"218":1}}],["初始化以后会生成一个podfile文件",{"2":{"175":1}}],["初始化",{"2":{"175":1}}],["初始化变量等",{"2":{"67":1}}],["初始化图表实例",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1}}],["此外",{"2":{"311":1}}],["此方法只会调用一次",{"2":{"67":1}}],["此软件可在nvidia",{"2":{"55":1}}],["每个片元都有自己的属性",{"2":{"311":1}}],["每个顶点需要计算一些属性",{"2":{"30":1}}],["每一次都会引起重排",{"2":{"308":1}}],["每一次设置都会触发一次reflow",{"2":{"308":1}}],["每一个viewcontroller都有一个single",{"2":{"212":1}}],["每一个string值都有一个关联的索引类型",{"2":{"205":1}}],["每次都去拉取不同的分支代码就可以了",{"2":{"218":1}}],["每次都要判断和解析可选值是非常低效的",{"2":{"193":1}}],["每当状态的信息发生变化",{"2":{"135":1}}],["每当视图在创建或解析时",{"2":{"135":1}}],["每当需要重新构建部件时",{"2":{"67":1}}],["除了顶点信息",{"2":{"310":1}}],["除了贝塞尔曲线",{"2":{"32":1}}],["除此之外",{"2":{"308":1}}],["除非由父部件重新创建",{"2":{"67":1}}],["无状态widget",{"2":{"67":1}}],["无线串流成功",{"2":{"55":1}}],["为canvas注册各种交互事件",{"2":{"243":1}}],["为什么下面的icon使用需要加上const",{"2":{"76":1}}],["为什么有的widget是当做变量定义",{"2":{"66":1}}],["为了解决",{"2":{"213":1}}],["为了表示一个函数",{"2":{"202":1}}],["为了标识出这些地方",{"2":{"202":1}}],["为了达到这个效果",{"2":{"62":1}}],["为了让文字可以很好的进行各种旋转",{"2":{"25":1}}],["子控件",{"2":{"88":1}}],["子wiget",{"2":{"79":1}}],["子widgets",{"2":{"77":1}}],["子widget",{"2":{"70":1,"71":1,"74":1,"78":1,"80":1,"81":1,"82":1}}],["子列表中的第一个widget是基础widget",{"2":{"66":1,"83":1}}],["子类如果要重写父类的方法的话",{"2":{"199":1}}],["子类的定义方法是在它们的类名后面加上父类的名字",{"2":{"199":1}}],["子类没有该方法时",{"2":{"45":1}}],["子类中的方法就会覆写父类中的方法",{"2":{"45":1}}],["子类覆写父类方法",{"0":{"45":1}}],["任何app都可以使用widget库",{"2":{"65":1}}],["嵌套行和列",{"0":{"64":1}}],["请使用它",{"2":{"194":1}}],["请说出你的疑问",{"2":{"162":1}}],["请选择内容",{"2":{"124":1}}],["请选择macos",{"2":{"92":1}}],["请求webgpu适配器",{"2":{"247":2}}],["请求拦截",{"2":{"115":2}}],["请求拦截和响应拦截",{"0":{"115":1}}],["请求json文件作为数据源",{"0":{"7":1}}],["请将其`mainaxissize`设置为`mainaxissize",{"2":{"77":1}}],["请将其mainaxissize设置为mainaxissize",{"2":{"63":1}}],["行或列沿其主轴会占用尽可能多的空间",{"2":{"63":1,"77":1}}],["默认就添加了一个skyobject到场景中",{"2":{"248":1}}],["默认执行时",{"0":{"233":1}}],["默认package",{"2":{"216":1}}],["默认是",{"2":{"175":1}}],["默认为",{"2":{"88":1}}],["默认为1",{"2":{"74":1}}],["默认的弹性系数为1",{"2":{"62":1}}],["默认情况下",{"2":{"59":1,"63":1,"77":1,"197":1,"200":1,"313":1}}],["默认情况下线条宽度是1个像素",{"2":{"30":1}}],["受影响的边缘会出现黄色和黑色条纹图案",{"2":{"62":1}}],["设计完以后可以一键生成对应的3d模型并自动构建好二三维的联动逻辑",{"2":{"256":1}}],["设计好以后平台会告诉他",{"2":{"23":1}}],["设备选择chrome",{"2":{"95":1}}],["设置style属性的值",{"2":{"308":1}}],["设置相应的webgl着色器程序以实现物体的渲染",{"2":{"263":1}}],["设置渲染器的渲染状态等",{"2":{"263":1}}],["设置渲染目标",{"2":{"263":1}}],["设置视口",{"2":{"263":1}}],["设置了scene的children和添加的object3d的parent属性",{"2":{"260":1}}],["设置约束",{"2":{"209":1,"210":1}}],["设置capsule胶囊和透明度",{"2":{"158":1}}],["设置覆盖",{"0":{"156":1}}],["设置阴影",{"0":{"154":1}}],["设置不同的修饰符顺序会得到不同的效果",{"2":{"152":1}}],["设置缓存",{"2":{"121":1}}],["设置缓存数据",{"2":{"121":1}}],["设置为",{"2":{"88":1}}],["设置背景图片并设置图片偏移",{"2":{"155":1,"172":1}}],["设置背景图片",{"0":{"155":1},"2":{"70":1}}],["设置背景颜色",{"2":{"70":1}}],["设置主轴对齐方式为",{"2":{"61":1}}],["更新相机的投影矩阵和视图矩阵",{"2":{"263":1}}],["更新配置文件",{"2":{"97":1}}],["更好的方式可能是实现按需导入",{"2":{"262":1}}],["更多的使用getter和setter来改变属性的读取和赋值行为",{"2":{"252":1}}],["更漂亮的控制台日志输出控件",{"2":{"237":1}}],["更高级别的widgets",{"2":{"60":1}}],["更优方案提醒等等",{"2":{"23":1}}],["标准widgets",{"2":{"65":1}}],["标题和背景颜色",{"2":{"59":1}}],["标记",{"2":{"3":1,"5":1,"191":1}}],["大小",{"2":{"308":1}}],["大多数widgets都有一个build方法",{"2":{"57":1}}],["大概一个数组的长度如果超过4千万",{"2":{"28":1}}],["例如计算最终的颜色",{"2":{"311":1}}],["例如计算变换后的顶点位置",{"2":{"311":1}}],["例如颜色",{"2":{"311":1}}],["例如点",{"2":{"311":1}}],["例如ourcad",{"2":{"299":1}}],["例如物理模拟子系统",{"2":{"251":1}}],["例如没有面向对象的编程模式只管",{"2":{"251":1}}],["例如",{"2":{"60":1,"193":1,"225":1,"308":1}}],["例如row",{"2":{"57":1}}],["例如center和container",{"2":{"57":1}}],["例如顶点的位置",{"2":{"30":1}}],["所讲的这些未来可以拓展的功能",{"2":{"257":1}}],["所有的片元会被送入帧缓冲区",{"2":{"311":1}}],["所有不能直接把项目的文档部分单独拿出来运行",{"2":{"236":1}}],["所有布局widgets都具有以下任一项",{"2":{"57":1}}],["所以要避免频繁获取布局信息",{"2":{"308":1}}],["所以要知道character的确定位置",{"2":{"205":1}}],["所以像",{"2":{"306":1}}],["所以用three",{"2":{"262":1}}],["所以后面的图模融合",{"2":{"256":1}}],["所以init方法用了async",{"2":{"247":1}}],["所以方法是用类直接调用",{"2":{"247":1}}],["所以这个时候需要引入相机投影",{"2":{"245":1}}],["所以模型是可以做合模处理的",{"2":{"241":1,"245":2}}],["所以不会在node",{"2":{"223":1}}],["所以不需要在每个子句结尾写break",{"2":{"195":1}}],["所以打包以后的js执行npm",{"2":{"218":1}}],["所以有些eslint的配置我并不喜欢",{"2":{"218":1}}],["所以脚手架发布以后",{"2":{"217":1}}],["所以断言会触发",{"2":{"204":1}}],["所以在调用它的时候在它前面加了try关键字",{"2":{"202":1}}],["所以重要的是你能迅速识别代码中会抛出错误的地方",{"2":{"202":1}}],["所以map类型有两个泛型",{"2":{"49":1}}],["所以无法通过索引来访问和修改元素",{"2":{"48":1}}],["布局容器",{"2":{"152":1}}],["布局框架允许你根据需要在行和列内嵌套行和列",{"2":{"64":1}}],["布局",{"0":{"57":1}}],["工程打开后启用steamvr和openxr",{"2":{"55":1}}],["生成了名为chaochao的软链接",{"2":{"223":1}}],["生成",{"2":{"218":1}}],["生成对应的c++文件",{"2":{"99":1}}],["生成对应的package",{"2":{"13":1}}],["生成apk安装包并安装到pico",{"2":{"55":1}}],["生成apk过程",{"2":{"55":1}}],["构造函数中调用了",{"2":{"263":1}}],["构造函数的函数名和类名相同",{"2":{"43":1}}],["构建流程",{"2":{"133":1}}],["构建",{"2":{"67":1}}],["构建一个ue5",{"2":{"55":1}}],["构建cloudxr",{"2":{"55":1}}],["如",{"2":{"310":1,"313":1}}],["如应用后期特效",{"2":{"263":1}}],["如屏幕或纹理",{"2":{"263":1}}],["如清除缓冲区",{"2":{"263":1}}],["如升级",{"2":{"133":1}}],["如何优化",{"0":{"312":1}}],["如何提前判断资源文件是否存在",{"2":{"266":1}}],["如何进行内容填充",{"2":{"245":1}}],["如何diy二维码",{"0":{"231":1}}],["如何做一个脚手架",{"2":{"223":1}}],["如何实现一个文字一行左对齐的效果",{"0":{"137":1}}],["如何上架",{"2":{"98":1}}],["如何维护",{"2":{"98":1}}],["如何用xcode运行flutter项目",{"0":{"96":1}}],["如3d",{"2":{"54":1}}],["如果子进程返回的数据大小超过了200k",{"2":{"313":1}}],["如果函数的参数是基础数据",{"2":{"305":1}}],["如果函数的参数是对象",{"2":{"305":1}}],["如果对应的请求地址调整为https",{"2":{"266":1}}],["如果确定存在才发起资源请求",{"2":{"266":1}}],["如果做不出来一些能够帅到自己的酷炫效果",{"2":{"265":1}}],["如果处理的好",{"2":{"256":1}}],["如果所有内容都是一次性的绘制",{"2":{"245":1}}],["如果本地已经存在该依赖",{"2":{"225":1}}],["如果没有安装则会自动下载安装",{"2":{"225":1}}],["如果没有添加override就重写父类方法的话编译器会报错",{"2":{"199":1}}],["如果不全局安装",{"2":{"223":1}}],["如果不使用",{"2":{"223":1}}],["如果后续脚手架需要扩展",{"2":{"218":1}}],["如果都不是",{"2":{"214":1}}],["如果布尔条件评估结果为false",{"2":{"204":1}}],["如果断言或者先决条件中的布尔条件评估的结果为true",{"2":{"204":1}}],["如果在do子句中的代码抛出了一个错误",{"2":{"202":1}}],["如果",{"2":{"199":1}}],["如果想包含的话需要使用",{"2":{"196":1}}],["如果可选值缺少的话",{"2":{"194":1}}],["如果可选类型有值",{"2":{"194":1}}],["如果可以将正常图片转化为svg格式图片",{"2":{"27":1}}],["如果有值的话可以通过可选绑定来解析值",{"2":{"193":1}}],["如果只需要一部分元组值",{"2":{"191":1}}],["如果只是普通闭包则能铺货所有类型的self",{"2":{"140":1}}],["如果一款app不需要一些系统底层的能力",{"2":{"182":1}}],["如果一个项目中同时存在各种事件同时需要触发执行",{"2":{"29":1}}],["如果项目只在android生态或ios生态内运行",{"2":{"182":1}}],["如果self是一个类的实例",{"2":{"140":1}}],["如果提示没有安装成功可以尝试重启ide",{"2":{"127":1}}],["如果ar的画面是调用gpu实现的",{"2":{"98":1}}],["如果能够做",{"2":{"98":1}}],["如果需要同时搭建android和ios开发环境",{"2":{"92":1}}],["如果进度是确定的",{"2":{"90":2}}],["如果我们的widget是statelesswidget",{"2":{"67":1}}],["如果我能联系到瓷板店铺",{"2":{"23":1}}],["如果你想换行",{"2":{"205":1}}],["如果你想要一个widget占用的空间是兄弟项的两倍",{"2":{"62":1}}],["如果你不需要计算属性",{"2":{"199":1}}],["如果你需要在对象释放之前进行一些清理工作",{"2":{"199":1}}],["如果你需要使用eslint",{"2":{"0":1}}],["如果你希望在非material",{"2":{"59":1}}],["如果它们包含多个子项",{"2":{"57":1}}],["如果它们只包含一个子项",{"2":{"57":1}}],["如果要添加padding",{"2":{"57":1}}],["如果您已获得编译好的apk或pico设备已安装过了可略过",{"2":{"55":1}}],["如果希望对象可以赋值为null",{"2":{"50":1}}],["如果再细节一点",{"2":{"23":1}}],["如果cad图纸中的一个个的图元能被我剔除出来",{"2":{"23":1}}],["如果eslint已经能够进行代码格式化",{"2":{"1":1}}],["严格来讲arkit并没有渲染的能力",{"2":{"54":1}}],["物体",{"2":{"54":1}}],["人脸",{"2":{"54":1}}],["平移矩阵",{"2":{"259":1}}],["平移场景",{"0":{"245":1}}],["平面",{"2":{"54":1}}],["平台能够根据他的设计来进行智能提示",{"2":{"23":1}}],["空间",{"2":{"54":1}}],["空安全",{"0":{"50":1}}],["跟踪当前环境",{"2":{"54":1}}],["渲染过程",{"2":{"308":1}}],["渲染树需要重新计算所有受影响的节点",{"2":{"308":1}}],["渲染到纹理等",{"2":{"263":1}}],["渲染流程",{"0":{"250":1}}],["渲染fbo",{"2":{"245":1}}],["渲染另外一份顶点数据一样",{"2":{"241":1,"245":2}}],["渲染器",{"2":{"238":2,"246":1}}],["渲染",{"2":{"54":1}}],["渲染可视化",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1}}],["场景理解上我们无需关注细节",{"2":{"54":1}}],["场景理解",{"2":{"54":1}}],["客户端sdk和示例客户端应用程序组成",{"2":{"53":1}}],["映射中的一个元素记录着两个对象",{"2":{"49":1}}],["映射map",{"0":{"49":1}}],["映射map和集合set",{"2":{"46":1}}],["索引只能使用for",{"2":{"48":1}}],["索引$i",{"2":{"47":1}}],["遍历",{"2":{"48":1}}],["交集",{"2":{"48":1}}],["交互",{"2":{"3":1}}],["差集",{"2":{"48":1}}],["集合最重要的特征是可以进行集合间的运算",{"2":{"48":1}}],["集合本身是没有索引概念的",{"2":{"48":1}}],["集合set",{"0":{"48":1}}],["自己就需要熟悉一些简单的问题定位操作",{"2":{"214":1}}],["自动返回decode模型",{"2":{"136":1}}],["自动合并重复元素",{"2":{"48":1}}],["自定义修饰符等",{"2":{"170":1}}],["自定义修饰符以及获取系统中的白天黑夜模式",{"0":{"159":1}}],["自定义扩展样式",{"2":{"170":1}}],["自定义导航的返回按钮",{"2":{"139":1}}],["自定义请求头",{"2":{"113":1}}],["自定义请求头和参数传递",{"0":{"113":1}}],["自定义着色器",{"2":{"30":1}}],["元组的分解",{"2":{"191":1}}],["元组内的值可以是任意类型",{"2":{"191":1}}],["元组把多个值组合成一个复合值",{"2":{"191":1}}],["元组",{"0":{"191":1}}],["元素值",{"2":{"47":1,"48":1}}],["元素值$value",{"2":{"47":1}}],["元宇宙",{"2":{"23":1}}],["称之为泛型",{"2":{"47":1}}],["列表中只能盛放整数数据",{"2":{"47":1}}],["列表类型中可以盛放若干个同类型的对象",{"2":{"47":1}}],["列表list",{"0":{"47":1},"2":{"46":1}}],["聚合类型或容器类型",{"2":{"46":1}}],["聚合类型",{"0":{"46":1}}],["加粗效果code",{"2":{"281":1}}],["加粗效果",{"0":{"268":1}}],["加上try关键字",{"2":{"202":1}}],["加",{"2":{"45":1}}],["加载json字体文件则使用的是文字数据生成geometry来进行绘制",{"2":{"25":1}}],["才会触发父类方法",{"2":{"45":1}}],["湖南科技学院",{"2":{"44":1,"45":1}}],["类中的方法如果想要访问static属性",{"2":{"252":1}}],["类中使用init来创建一个构造器",{"2":{"199":1}}],["类进行实例化再进行方法调用",{"2":{"247":1}}],["类的init方法是个static修饰的方法",{"2":{"247":1}}],["类的成员函数访问自身属性可以省略this",{"2":{"44":1}}],["类",{"2":{"201":1}}],["类型转换中int",{"2":{"193":1}}],["类型转换为string",{"2":{"189":1}}],["类型的对象",{"2":{"136":1}}],["类似于vue中组件传值的父传子",{"2":{"171":1}}],["类似flex布局中",{"2":{"152":1}}],["类似代码格式化",{"2":{"151":1}}],["类似typescript的any",{"2":{"34":1}}],["省略的参数使用默认值",{"2":{"42":1}}],["方便我自己的维护",{"2":{"296":1}}],["方便你创建属于你自己的配置",{"2":{"1":1}}],["方式二",{"2":{"127":1}}],["方式一",{"2":{"127":1}}],["方法有",{"2":{"313":1}}],["方法也要用static修饰",{"2":{"252":1}}],["方法中调用",{"2":{"250":1}}],["方法",{"2":{"247":1,"250":3,"263":1}}],["方法可以在一个字符串的指定索引删除一个子字符串",{"2":{"205":1}}],["方法可以在一个字符串的指定索引删除一个字符",{"2":{"205":1}}],["方法可以在一个字符串的指定索引插入一段字符串",{"2":{"205":1}}],["方法可以在一个字符串的指定索引插入一个字符",{"2":{"205":1}}],["方法或构造器可以抛出错误",{"2":{"202":1}}],["方法或者构造器之前",{"2":{"202":1}}],["方法三",{"2":{"139":1}}],["方法二",{"2":{"139":1}}],["方法一",{"2":{"139":1}}],["方法会将string类型数据解析成map数据结构",{"2":{"109":1}}],["方法会将map类型转换为string类型",{"2":{"109":1}}],["方法会返回一个包含response的future",{"2":{"108":1}}],["方法需要引入dart",{"2":{"109":2}}],["方法从jsonplaceholder上获取到一个样本相册数据",{"2":{"108":1}}],["方括号",{"2":{"42":1}}],["年龄",{"2":{"41":1,"42":1}}],["选中内容右移一个tab",{"2":{"151":1}}],["选中内容左移一个tab",{"2":{"151":1}}],["选中图元",{"2":{"23":1,"256":1}}],["选择ios和app开发",{"2":{"207":1}}],["选择无效",{"2":{"202":1}}],["选择平台原生的开发框架就是更具可行性的选择",{"2":{"182":1}}],["选择window",{"2":{"106":1}}],["选择apple",{"2":{"94":1}}],["选择mac",{"2":{"94":1}}],["选填参数必须给默认值",{"2":{"41":1}}],["必须添加",{"2":{"152":1}}],["必须在body中修改",{"2":{"140":1}}],["必须要自己写着色器来进行代码优化",{"2":{"29":1}}],["必传参数不需要给默认值",{"2":{"41":1}}],["另一种处理可选值的方法是通过使用",{"2":{"194":1}}],["另一个地方再注册一个",{"2":{"29":1}}],["另外由于缓冲区拾取不需要遍历模型",{"2":{"241":1,"245":2}}],["另外",{"2":{"41":1}}],["包含四个函数",{"2":{"248":1,"260":1}}],["包含此viewcontroller的所有内容",{"2":{"212":1}}],["包裹条件和循环变量的括号可以省略",{"2":{"192":1}}],["包裹命名的参数",{"2":{"41":1}}],["包",{"2":{"133":1}}],["包括顶点着色器中的uv",{"2":{"265":1}}],["包括图元的显示和隐藏",{"2":{"245":1}}],["包括但不限于文档",{"2":{"133":1}}],["包括以下几种",{"2":{"133":1}}],["包围盒拾取",{"2":{"242":1}}],["包围盒自己实现不了",{"2":{"24":1}}],["包围参数列表",{"2":{"42":1}}],["命名参数",{"0":{"41":1}}],["名字",{"2":{"40":1,"41":1,"42":1}}],["测试",{"2":{"40":1}}],["函数传参",{"2":{"234":1}}],["函数也可以当做参数传入另一个函数",{"2":{"197":1}}],["函数是第一等类型",{"2":{"197":1}}],["函数可以嵌套",{"2":{"197":1}}],["函数使用它们的参数名称作为它们参数的标签",{"2":{"197":1}}],["函数和闭包",{"0":{"197":1},"1":{"198":1}}],["函数参数必须按照参数顺序传入",{"2":{"42":1}}],["函数名前是函数的返回值",{"2":{"40":1}}],["函数",{"0":{"40":1},"1":{"41":1,"42":1},"2":{"240":1}}],["函数定义了一个三次贝塞尔曲线",{"2":{"32":1}}],["运动跟踪",{"2":{"54":2}}],["运算符",{"0":{"39":1},"2":{"39":1}}],["运行wakk会报如下错误",{"2":{"217":1}}],["运行switch中匹配到的case语句之后",{"2":{"195":1}}],["运行xcode",{"2":{"103":1}}],["运行时会提示相机权限不够",{"2":{"103":1}}],["运行项目",{"2":{"17":1}}],["运行成功",{"2":{"16":1}}],["$emit",{"2":{"236":1}}],["$patch",{"2":{"229":2}}],["$path",{"2":{"97":2}}],["$basedir",{"2":{"222":5}}],["$uri",{"2":{"220":2}}],["$12",{"2":{"271":1,"279":2}}],["$1600",{"2":{"271":1,"279":2}}],["$1",{"2":{"198":1,"271":1,"279":2}}],["$text",{"2":{"177":1}}],["$token",{"2":{"115":1}}],["$0",{"2":{"177":1,"198":1,"222":1}}],["$hasscrolled",{"2":{"171":1}}],["$jumptologin",{"2":{"139":3}}],["$remberpassword",{"2":{"138":3}}],["$result",{"2":{"119":1}}],["$count",{"2":{"129":1}}],["$i",{"2":{"118":2}}],["$index",{"2":{"47":1}}],["$word",{"2":{"50":1}}],["$key",{"2":{"49":1}}],["$value",{"2":{"47":1,"48":1,"49":1}}],["$name",{"2":{"40":1,"41":1,"42":1}}],["$",{"2":{"38":2,"44":2,"45":5,"51":2,"110":1,"123":2,"129":1,"171":1,"222":3,"234":3,"285":1}}],["$age",{"2":{"41":1,"42":1}}],["$a",{"2":{"38":1}}],["$变量名",{"0":{"38":1},"2":{"38":1}}],["字号",{"2":{"209":1}}],["字面量和表达式",{"2":{"205":1}}],["字符和字符串",{"0":{"205":1}}],["字符串插入",{"2":{"205":1}}],["字符串插入和删除",{"2":{"205":1}}],["字符串插值",{"2":{"205":1}}],["字符串插值是一种构建新字符串的方式",{"2":{"205":1}}],["字符串索引",{"2":{"205":1}}],["字符串字面量和多行字符串字面量都可以使用字符串插值",{"2":{"205":1}}],["字符串字面量",{"2":{"205":2}}],["字符串123可以被转换成数字123",{"2":{"193":1}}],["字符串必须使用双引号",{"2":{"189":1}}],["字符串转数字",{"2":{"36":1}}],["字节跳动apm",{"2":{"183":1}}],["字间距",{"2":{"72":1}}],["字体文件必须引入所有文字",{"2":{"25":1}}],["基本上涵盖了大部分的现代智能手机和平板电脑设备",{"2":{"254":1}}],["基本数据类型",{"0":{"188":1},"2":{"305":1}}],["基础组件的使用",{"0":{"209":1}}],["基础数据类型",{"0":{"35":1}}],["基于material的应用",{"0":{"58":1}}],["基于给定的材质和光照模型",{"2":{"30":1}}],["基于这套设计的一个总体报价以及具体的购买方式",{"2":{"23":1}}],["基于cad的一些设计的思路",{"2":{"23":1}}],["换时间",{"2":{"245":2}}],["换间",{"2":{"241":1}}],["换成dynamic就表示这是动态类型",{"2":{"34":1}}],["换一种思路",{"2":{"24":1}}],["会返回一个带有stdout和stderr流的对象",{"2":{"313":1}}],["会把html解析成dom",{"2":{"308":1}}],["会有data",{"2":{"262":1}}],["会有很大的性能开销",{"2":{"25":1}}],["会比全部webgl实现的统一架构",{"2":{"257":1}}],["会根据init属性来进行canvas的一些公共样式配置",{"2":{"247":1}}],["会先执行一次代码再进行判断",{"2":{"196":1}}],["会打印出当前使用的gem源",{"2":{"175":1}}],["会将静态库的所有文件都添加到目标app可执行文件中",{"2":{"213":1}}],["会将按钮和背景的融合效果显得更好",{"2":{"167":1,"168":1}}],["会将空余空间在每个图像之间",{"2":{"61":1}}],["会展示在",{"2":{"88":1}}],["会调用didupdatewidget方法",{"2":{"67":1}}],["会立即调用initstate方法",{"2":{"67":1}}],["会优先使用子类方法",{"2":{"45":1}}],["会报错",{"2":{"34":1}}],["相加后再除以这个倍数",{"2":{"306":1}}],["相机矩阵",{"2":{"265":1}}],["相机有什么好看的",{"2":{"249":1}}],["相机",{"2":{"246":1}}],["相机位置y",{"2":{"245":1}}],["相机位置x",{"2":{"245":1}}],["相机的位置矩阵移动意味着对模型的数据坐标x",{"2":{"245":1}}],["相等",{"2":{"194":1}}],["相较于其他组件管理控件",{"2":{"183":1}}],["相比三维几何",{"2":{"257":1}}],["相比较与静态库和动态库",{"2":{"213":1}}],["相比于动态库的方案",{"2":{"213":1}}],["相比数据绑定和appstorage缓存",{"2":{"174":1}}],["相比其他状态管理插件getx简单",{"2":{"68":1}}],["相当于",{"2":{"313":1}}],["相当于全局可以执行wakk命令",{"2":{"216":1}}],["相当于vscode中的",{"2":{"151":1}}],["相当于一个可以兼容所有类型的超级类型",{"2":{"34":1}}],["相反",{"2":{"67":1,"226":1}}],["相信我上面的想法很多人都有过",{"2":{"23":1}}],["即时性",{"2":{"308":1}}],["即z轴是朝向屏幕外的",{"2":{"259":1}}],["即使json数据存在",{"2":{"266":1}}],["即使是这样的合模方法",{"2":{"256":1}}],["即使子类继承自父类",{"2":{"252":1}}],["即可实现vscode按照eslint规则来实现代码格式化",{"2":{"218":1}}],["即可实现保存代码自动格式化",{"2":{"218":1}}],["即",{"2":{"34":1}}],["即所有主支宽度的总和应与所有分出去的分支宽度的总和相等",{"2":{"10":1}}],["常量和普通变量",{"0":{"189":1}}],["常量",{"2":{"34":1}}],["普通按钮",{"2":{"113":1,"114":1,"115":1}}],["普通变量",{"2":{"34":1}}],["普通数据",{"2":{"24":1}}],["由于浏览器使用流式布局",{"2":{"308":1}}],["由于文字转线条绘制的数据量比较大",{"2":{"28":1}}],["由0增加至1",{"2":{"32":1}}],["∈",{"2":{"32":1}}],["三角形等",{"2":{"311":1}}],["三维向量",{"2":{"240":1}}],["三次贝塞尔曲线通过四个点",{"2":{"32":1}}],["三阶贝塞尔曲线",{"2":{"32":1}}],["三个包共用vue3",{"2":{"11":1}}],["二阶贝塞尔曲线",{"2":{"32":1}}],["贝塞尔曲线根据控制点的数量分为",{"2":{"32":1}}],["图形学相关地书",{"0":{"304":1}}],["图形学中关于鼠标拾取有两种常见方案",{"2":{"264":1}}],["图形的意思",{"2":{"255":1}}],["图纸的数据体量",{"2":{"257":1}}],["图纸加载时间太长就做文件切割",{"2":{"256":1}}],["图元会被分解成一组更小的像素",{"2":{"311":1}}],["图元装配阶段",{"2":{"311":1}}],["图元数据量太多会卡顿就根据图层来合模",{"2":{"256":1}}],["图元的显示和隐藏就不可能像three一样通过对象的一个属性来实现显示和隐藏",{"2":{"245":1}}],["图标库",{"0":{"161":1}}],["图片",{"2":{"54":1}}],["图层数据收集过程中的数据数据污染问题",{"0":{"31":1}}],["图表数据叠加",{"0":{"8":1}}],["图表宽度",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1}}],["图表高度",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1}}],["顶点着色器会对每个顶点执行一系列运算",{"2":{"311":1}}],["顶点着色器阶段",{"2":{"311":1}}],["顶点着色器还可以访问其他类型的数据",{"2":{"310":1}}],["顶点着色器是不是只有顶点信息",{"0":{"310":1}}],["顶点位置",{"2":{"263":1}}],["顶点属性计算",{"2":{"30":1}}],["顶点扩展",{"2":{"30":1}}],["着色器学习",{"0":{"265":1}}],["着色器语言wgsl",{"0":{"240":1}}],["着色器代码可以简单理解为一段跑在gpu上的代码",{"2":{"99":1}}],["着色器是一种运行在gpu上的小型程序",{"2":{"30":1}}],["着色和渲染",{"2":{"30":1}}],["法线这些如何获取",{"0":{"310":1}}],["法线",{"2":{"30":1,"263":1,"310":1,"311":1}}],["法语检查时不能设置为true",{"2":{"19":1}}],["定时器传参",{"2":{"234":1}}],["定位",{"2":{"182":1}}],["定义一个描边样式",{"2":{"159":1}}],["定义int泛型的列表",{"2":{"47":1}}],["定义变量的关键字",{"0":{"34":1}}],["定义复合",{"2":{"9":1}}],["定点属性计算",{"2":{"30":1}}],["使得线条宽度可以在像素级别进行调整",{"2":{"30":1}}],["使用指定的命令行参数创建新进程",{"2":{"313":1}}],["使用子进程执行命令",{"2":{"313":1}}],["使用absolute或fixed脱离文档流",{"2":{"308":1}}],["使用async",{"0":{"142":1}}],["使用贝塞尔曲线或柏林噪声来解决手绘线不平滑的问题",{"2":{"245":1}}],["使用$patch修改",{"2":{"229":2}}],["使用npx时",{"2":{"225":1}}],["使用npm",{"2":{"218":1}}],["使用静态库将花费更多的启动时间和内存消耗",{"2":{"213":1}}],["使用xcode创建项目",{"2":{"207":1}}],["使用img",{"2":{"266":2}}],["使用insert",{"2":{"205":1}}],["使用indices属性会创建一个包含全部索引的范围",{"2":{"205":1}}],["使用if和switch来进行条件操作",{"2":{"192":1}}],["使用scss打包成css的纯css项目",{"0":{"300":1}}],["使用static静态方法来辅助完成单例设计模式",{"2":{"252":1}}],["使用startindex属性获取一个string的第一个character的索引",{"2":{"205":1}}],["使用sorted对数组进行排序",{"2":{"198":1}}],["使用protocol来声明一个协议",{"2":{"201":1}}],["使用rawvalue属性来访问一个枚举成员的原始值",{"2":{"200":1}}],["使用willset和didset",{"2":{"199":1}}],["使用webworker开多线程进行数据处理的优化",{"2":{"26":1}}],["使用getter和setter的计算属性",{"2":{"199":1}}],["使用geometryreader来做tabbar的自适应处理",{"0":{"168":1}}],["使用点语法来访问实例的属性和方法",{"2":{"199":1}}],["使用class和类名来创建一个类",{"2":{"199":1}}],["使用computed来实现和getters",{"2":{"229":1}}],["使用count属性来获取一个字符串的长度",{"2":{"205":1}}],["使用cornerradius会将超出的内容隐藏",{"2":{"158":1}}],["使用column",{"2":{"60":1}}],["使用元组来生成复合值",{"2":{"197":1}}],["使用可选类型",{"2":{"193":1}}],["使用for",{"2":{"192":1,"205":1}}],["使用flutter",{"2":{"103":1}}],["使用var来声明变量",{"2":{"189":1}}],["使用let来声明常量",{"2":{"189":1}}],["使用阿里图标库",{"0":{"184":1}}],["使用overlay来使用geometryreader获取button的宽度",{"2":{"168":1}}],["使用three中的shadermaterial材质来使用着色器时",{"2":{"265":1}}],["使用three中的cubicbeziercurve3实现css中的动画效果的贝塞尔曲线绘制",{"2":{"32":1}}],["使用tabview组件",{"2":{"167":1}}],["使用方式二",{"2":{"162":1}}],["使用方式一",{"2":{"162":1}}],["使用自定义组件实现tabbar",{"2":{"167":1,"168":1}}],["使用自定义tabbar",{"2":{"167":1}}],["使用自定义修饰符",{"2":{"159":1}}],["使用自定义着色器对线条进行着色",{"2":{"30":1}}],["使用homebrew安装",{"2":{"175":1}}],["使用homebrew安装nvm",{"2":{"146":1}}],["使用http封装数据模型进行接口请求",{"0":{"110":1}}],["使用http库进行接口请求",{"0":{"109":1}}],["使用http",{"2":{"108":1}}],["使用依赖注入",{"2":{"128":1}}],["使用baseoptions",{"0":{"114":1}}],["使用deinit创建一个析构函数",{"2":{"199":1}}],["使用dio进行接口请求",{"0":{"112":1}}],["使用dxf",{"2":{"23":1}}],["使用者在调用时可以选填",{"2":{"41":1}}],["使用顶点扩展技术",{"2":{"30":1}}],["使用",{"2":{"19":1,"73":1,"138":1,"189":1,"196":1,"197":1,"245":1}}],["使用复合",{"0":{"9":1},"2":{"9":1}}],["使用复合节点在一个容器中绘制两张图表",{"0":{"6":1}}],["使用eslint其实也可以非常简单",{"2":{"1":1}}],["以防止后续有私有化的情况需要重新部署",{"2":{"303":1}}],["以备下一帧绘制",{"2":{"263":1}}],["以便将场景中的对象正确地显示在相机的视野中",{"2":{"263":1}}],["以便加强代码的可读性",{"2":{"205":1}}],["以后有时候再补",{"2":{"217":1}}],["以确保用户界面在不同设备和屏幕尺寸下都能正确呈现",{"2":{"210":1}}],["以确保视图的子视图与内边距之间保持一定的间距",{"2":{"210":1}}],["以满足特定的界面设计需求",{"2":{"210":1}}],["以key",{"2":{"120":1}}],["以提高网页的渲染性能",{"2":{"101":1,"308":1}}],["以及一般流所具有的事件",{"2":{"313":1}}],["以及针对混合工程的提效工具",{"2":{"100":1}}],["以及额外的技术",{"2":{"30":1}}],["以上只是一个通用的渲染管线流程",{"2":{"311":1}}],["以上操作会导致3次重绘1次重排",{"2":{"308":1}}],["以上命令会在本地下载并运行create",{"2":{"225":1}}],["以上是别人的博客里面的一些信息",{"2":{"182":1}}],["以上app将背景颜色更改为白色",{"2":{"59":1}}],["以上文字落笔",{"2":{"23":1}}],["以上prettier和eslint的观点来自",{"2":{"1":1}}],["然而",{"2":{"30":1,"193":1}}],["然后再打包",{"2":{"296":1}}],["然后再借助spir",{"2":{"99":1}}],["然后调整正交投影的参数进行投影",{"2":{"245":1}}],["然后执行该包中的命令",{"2":{"226":1}}],["然后查看demo1中node",{"2":{"223":1}}],["然后我们来看init方法的实现",{"2":{"247":1}}],["然后我就去tsconfig",{"2":{"218":1}}],["然后我打开官网",{"2":{"214":1}}],["然后配置npx使用",{"2":{"217":1}}],["然后服务器就自己好了",{"2":{"214":1}}],["然后尝试用xshell连接服务器看看情况",{"2":{"214":1}}],["然后ue用来区分显示摇杆",{"2":{"213":1}}],["然后项目就创建成功了",{"2":{"207":1}}],["然后输入terminal打开",{"2":{"143":1}}],["然后重新编译项目即可解决问题",{"2":{"136":1}}],["然后出现三个报错",{"2":{"136":1}}],["然后来合并代码",{"2":{"131":1}}],["然后点击右侧的+按钮",{"2":{"106":1}}],["然后debugging调试",{"2":{"95":1}}],["然后按要求重启本地ue5项目",{"2":{"55":1}}],["然后按提示执行npm",{"2":{"4":1}}],["然后对三个控制点重复操作",{"2":{"32":1}}],["然后转为svg",{"2":{"27":1}}],["然后将svg用three",{"2":{"27":1}}],["然后将insert中的数据进行合模绘制",{"2":{"24":1}}],["然后这个库绘制文字使用的是纹理绘制",{"2":{"25":1}}],["然后交给shape",{"2":{"24":1}}],["然后在vue项目中的app",{"2":{"17":1}}],["然后就可以看到依赖的安装情况",{"2":{"17":1}}],["然后去外层执行命令pnpm",{"2":{"15":1}}],["你最好使用spawn方法",{"2":{"313":1}}],["你插入的字符串字面量的每一项都在以反斜线为前缀的圆括号中",{"2":{"205":1}}],["你的仓库名",{"2":{"299":1}}],["你的用户名",{"2":{"299":1}}],["你的程序流程会发生改变",{"2":{"202":1}}],["你的github账号中会出现这个项目",{"2":{"132":1}}],["你可以通过stdout流来读取子进程返回给node",{"2":{"313":1}}],["你可以通过在exec的可选项中设置一个更大的buffer体积来解决这个问题",{"2":{"313":1}}],["你可以用在行尾写一个反斜杠",{"2":{"205":1}}],["你可以用他们来检查在执行后续代码之前是否一个必要的条件已经被满足了",{"2":{"204":1}}],["你可以在操作",{"2":{"199":1}}],["你可以在可选的名字后面加一个感叹号",{"2":{"194":1}}],["你可以在eslint中完全控制代码风格",{"2":{"0":1}}],["你可以解析可选类型访问这个值",{"2":{"193":1}}],["你可以剪切掉超出渲染框的子项",{"2":{"66":1}}],["你可以使用if语句和nil比较来判断一个可选值是否包含值",{"2":{"194":1}}],["你可以使用row",{"2":{"60":1}}],["你可以使用scaffold",{"2":{"58":1}}],["你可以将center",{"2":{"58":1,"59":1}}],["你就可以用上container了",{"2":{"57":1}}],["你无法将一个非空类型对象的值设为null",{"2":{"50":1}}],["你在这个地方注册一个",{"2":{"29":1}}],["首先使用cocoapods安装alamofire",{"2":{"136":1}}],["首先需要fork这个项目",{"2":{"132":1}}],["首先",{"2":{"29":1}}],["尝试复现的代码如下",{"2":{"28":1}}],["实例化",{"2":{"263":1}}],["实例化model",{"2":{"174":1}}],["实现思路是清晰的",{"2":{"256":1}}],["实现各种数据变化时的响应监听",{"2":{"238":1}}],["实现了绘制出宽线的功能",{"2":{"30":1}}],["实现一个vue3的项目",{"2":{"11":1}}],["实际场景的代码比较复杂",{"2":{"28":1}}],["覆盖其他存储器内的资料",{"2":{"28":1}}],["堆栈溢出很可能由无限递归产生",{"2":{"28":1}}],["堆栈溢出的产生是由于过多的函数调用",{"2":{"28":1}}],["堆栈溢出",{"2":{"28":1}}],["调用了",{"2":{"261":1}}],["调用区别",{"2":{"252":1}}],["调用actions中的接口请求方法",{"2":{"229":1}}],["调用getters中的方法",{"2":{"229":1}}],["调用栈溢出",{"2":{"28":1}}],["调整navigationbar中preview的传值",{"2":{"171":1}}],["调整widgets大小",{"0":{"62":1}}],["调整为如下收集即可解决",{"2":{"31":1}}],["调整定点位置以形成宽线的外观",{"2":{"30":1}}],["调整package",{"2":{"15":1}}],["ulele",{"2":{"308":4}}],["ul",{"2":{"286":4,"308":1}}],["ultrathinmaterial",{"2":{"155":1,"161":1,"167":1,"168":1}}],["utils",{"2":{"236":2}}],["utf8",{"2":{"140":1,"141":1,"142":1,"180":1}}],["uitextfield",{"2":{"245":1}}],["uitapgesturerecognizer",{"2":{"209":2}}],["uicomponents",{"2":{"245":1}}],["uifont",{"2":{"209":1}}],["uilabel",{"2":{"209":2}}],["uilabel组件的使用",{"2":{"209":1}}],["uiviewcontroller",{"2":{"209":1}}],["uikit",{"2":{"209":1}}],["uikit开发",{"0":{"206":1},"1":{"207":1,"208":1,"209":1,"210":1,"211":1,"212":1,"213":1}}],["uikit中如何查看storyboard的入口",{"2":{"205":1}}],["uid",{"2":{"136":1}}],["u",{"2":{"205":2}}],["uuid",{"2":{"167":1,"168":1}}],["updated",{"2":{"307":1}}],["updateprojectionmatrix方法",{"2":{"261":1}}],["updateframe",{"2":{"250":1}}],["uppercased",{"2":{"153":1}}],["upstream",{"2":{"4":1}}],["usage",{"2":{"294":1}}],["us",{"2":{"270":1,"278":1}}],["usr",{"2":{"218":2}}],["using",{"2":{"141":1,"270":1,"272":1,"273":3,"281":1,"286":1,"287":1,"288":1,"293":4,"294":1}}],["uses",{"2":{"286":1,"294":1}}],["useful",{"2":{"285":1}}],["useinformationstore",{"2":{"229":6}}],["used",{"2":{"119":1,"285":2}}],["userconfig",{"2":{"292":6}}],["userdidtaplabel",{"2":{"209":2}}],["user",{"2":{"185":2,"270":3,"275":3}}],["username",{"2":{"137":1}}],["userid",{"2":{"110":4}}],["users",{"2":{"97":3}}],["use",{"2":{"98":1,"233":1,"236":1,"294":2}}],["usematerial3",{"2":{"89":1}}],["uri",{"2":{"108":1,"109":1,"110":1}}],["urlsession",{"2":{"140":1,"142":1,"180":1}}],["url=https",{"2":{"97":2}}],["url",{"2":{"92":4,"109":2,"140":3,"142":3,"162":2,"163":1,"179":2,"180":3,"266":1,"275":1,"298":2}}],["unpkg",{"2":{"299":2}}],["unless",{"2":{"293":1}}],["unlink",{"2":{"216":1}}],["unlink解除链接",{"2":{"216":1}}],["uno",{"2":{"236":1}}],["undefined",{"2":{"233":1,"234":3,"305":1}}],["unexpected",{"2":{"202":1}}],["unknown",{"2":{"179":1}}],["unrelated",{"2":{"131":1}}],["unix默认的可执行文件",{"2":{"222":1}}],["unity3d对cloudxr的支持度更好",{"2":{"67":1}}],["union",{"2":{"48":1}}],["uncaught",{"2":{"28":1}}],["目前在新版的chrome和edge上都已经对webgpu进行了支持",{"2":{"254":1}}],["目前使用文心一言和通义千问都无法直接生成svg格式的图片",{"2":{"27":1}}],["目标",{"2":{"10":1}}],["鸟会根据鼠标位置进行驱散",{"2":{"26":1}}],["飞鸟案例",{"2":{"26":1}}],["案例",{"2":{"26":1}}],["手绘线的平滑优化",{"2":{"26":1}}],["对render",{"2":{"308":1}}],["对元素操作完成后",{"2":{"308":1}}],["对渲染树的某部分或某一个渲染对象进行重新布局",{"2":{"308":1}}],["对渲染的帧和系统音频进行编码",{"2":{"53":1}}],["对场景中的每个可见对象进行循环迭代",{"2":{"263":1}}],["对各种矩阵进行了初始化操作",{"2":{"261":1}}],["对属性更名后的处理",{"2":{"252":1}}],["对比composition",{"2":{"229":1}}],["对应的userdidtaplabel方法要加上",{"2":{"209":1}}],["对应的依赖管理文件是pubspace",{"2":{"93":1}}],["对象和类",{"0":{"199":1}}],["对齐widgets",{"0":{"61":1}}],["对于webgpu这种坐标系",{"2":{"259":1}}],["对于静态库的后缀名是",{"2":{"213":1}}],["对于静态库而言",{"2":{"213":1}}],["对于动态库而言",{"2":{"213":1}}],["对于非material",{"2":{"59":1}}],["对于material",{"2":{"58":1}}],["对图纸进行分层加载",{"2":{"26":1}}],["对空间通道应用点变换",{"2":{"3":1}}],["不同的webgl",{"2":{"311":1}}],["不行",{"2":{"266":1}}],["不存在就不去请求",{"2":{"266":1}}],["不想看了",{"2":{"262":1}}],["不是的",{"2":{"310":1}}],["不是统一的",{"2":{"257":1}}],["不是某个静态资源访问404",{"2":{"214":1}}],["不利于后期的修改和维护",{"2":{"251":1}}],["不直接输出到屏幕",{"2":{"245":1}}],["不管是正交还是透视投影",{"2":{"245":1}}],["不再有",{"2":{"213":1}}],["不过你可以通过显式赋值进行改变",{"2":{"200":1}}],["不仅仅是整数以及测试相等",{"2":{"195":1}}],["不仅具有状态管理的功能",{"2":{"68":1}}],["不等",{"2":{"194":1}}],["不能通过类的实例来进行访问",{"2":{"252":2}}],["不能直接执行",{"2":{"223":1}}],["不能直接拿来使用",{"2":{"213":1}}],["不能if",{"2":{"194":1}}],["不能使用单引号",{"2":{"189":1}}],["不能修改上面定义的",{"2":{"140":1}}],["不需要安装",{"2":{"147":1}}],["不需要在意入参的顺序",{"2":{"41":1}}],["不影响代码逻辑",{"2":{"133":1}}],["不然打包不了",{"2":{"97":1}}],["不然内存消耗太大会导致很多问题",{"2":{"29":1}}],["不允许重复",{"2":{"48":1}}],["不可行",{"2":{"25":1}}],["不安装ts",{"2":{"16":1}}],["突然发现字体转为json的facetype",{"2":{"25":1}}],["通常要花3倍于同等元素的时间",{"2":{"308":1}}],["通常分为两类",{"2":{"235":1}}],["通常情况下",{"2":{"210":1}}],["通常是因为父部件的状态变化",{"2":{"67":1}}],["通用布局widgets",{"0":{"65":1}}],["通过修改dom节点的display属性",{"2":{"308":1}}],["通过类来调用",{"2":{"252":1}}],["通过id值获取到点击的物体的信息",{"2":{"245":1}}],["通过is关键词来判断一个变量类型",{"2":{"36":1}}],["通过获取到的颜色位换算回id值",{"2":{"245":1}}],["通过this来访问state中的数据",{"2":{"229":2}}],["通过this对象进行赋值的操作",{"2":{"43":1}}],["通过组合简单的widgets来构建复杂的widgets",{"2":{"57":1}}],["通过remove方法移除元素",{"2":{"48":1}}],["通过add方法添加元素",{"2":{"48":1}}],["通过",{"2":{"41":1,"49":1}}],["通过控制t的值",{"2":{"32":1}}],["通过控制点是怎么绘制出贝塞尔曲线的呢",{"2":{"32":1}}],["通过一个参数t",{"2":{"32":1}}],["通过使用额外的定点属性",{"2":{"30":1}}],["通过对顶点和片元进行操作来定义对象的外观",{"2":{"30":1}}],["通过合模操作来进行性能优化",{"2":{"25":1}}],["通道",{"2":{"5":2,"6":4}}],["来看一看three中的鼠标拾取",{"2":{"264":1}}],["来看看orillusion的",{"2":{"246":1}}],["来搭建的",{"2":{"236":1}}],["来做代码格式化",{"2":{"218":1}}],["来做页面的自适应",{"2":{"168":1}}],["来表示下标范围",{"2":{"196":1}}],["来获取值",{"2":{"194":1}}],["来执行比较",{"2":{"194":1}}],["来声明一个隐式解析可选类型",{"2":{"193":1}}],["来处理值可能缺失的情况",{"2":{"193":1}}],["来修饰就可以将数据保存到",{"2":{"169":1}}],["来嵌入表达式",{"2":{"38":1}}],["来满足cad的各种文字需求",{"2":{"25":1}}],["来源",{"2":{"10":1}}],["理论上不影响现有功能",{"2":{"133":1}}],["理论上",{"2":{"25":1}}],["文档下新建",{"2":{"236":1}}],["文本使用markdown语法",{"0":{"178":1}}],["文字的绘制",{"2":{"245":1}}],["文字的颜色渐变",{"0":{"157":1}}],["文字左对齐",{"2":{"152":1}}],["文字也始终无法实现对齐效果",{"2":{"137":1}}],["文字破碎的案例",{"2":{"26":1}}],["文字优化",{"0":{"25":1}}],["文件夹",{"2":{"236":1}}],["文件夹下新建demo1",{"2":{"13":1}}],["文件都会被编译",{"2":{"218":1}}],["文件则不会被编译",{"2":{"218":1}}],["文件存储方案",{"2":{"120":1}}],["文件路径",{"2":{"103":2,"299":1}}],["文件内容为",{"2":{"55":1}}],["文件写入",{"2":{"51":1}}],["文件读取",{"2":{"51":1}}],["文件",{"2":{"19":1}}],["什么时候转弯的时候内圈的线段要比外圈要小",{"2":{"24":1}}],["中文命名md文件",{"0":{"296":1}}],["中间创建创建渲染通道对象",{"2":{"250":1}}],["中间做了些组件式操作以后",{"2":{"250":1}}],["中的",{"2":{"248":1}}],["中配置",{"2":{"218":1}}],["中进行配置",{"2":{"210":1}}],["中进行绘制",{"2":{"24":1}}],["中心点的竖直方向偏移量",{"2":{"88":1}}],["中",{"2":{"47":1,"169":1}}],["中会先对所有的普通数据合模",{"2":{"24":1}}],["计算边界的逻辑也可以放到",{"2":{"24":1}}],["zone",{"2":{"284":2}}],["zebra",{"2":{"271":1,"279":2}}],["zero",{"2":{"49":1,"204":2}}],["z轴的坐标范围是",{"2":{"259":1}}],["z轴垂直于canvas画布",{"2":{"259":1}}],["zstack",{"2":{"167":1,"168":1,"173":1}}],["zstack组件可以使用alignment来实现对齐",{"2":{"167":1,"168":1}}],["zvideo",{"2":{"53":1}}],["z",{"2":{"24":4}}],["zhuanlan",{"2":{"251":1}}],["zhihu",{"2":{"53":1,"251":1}}],["zhangsan",{"2":{"34":2,"41":1,"42":1,"44":1,"45":1,"114":1,"115":1,"190":1,"305":3}}],["zh",{"2":{"1":1,"27":1}}],["因此通常是将ecs应用于一些性能敏感的子系统",{"2":{"251":1}}],["因此我们可以在提交前先把远程其他开发者的commit和我们的commit合并",{"2":{"132":1}}],["因此",{"2":{"67":1,"205":1}}],["因为exec本来就不是用来返回很多数据的方法",{"2":{"313":1}}],["因为通过设置style属性改变结点样式的话",{"2":{"308":1}}],["因为ourbim官网部署了https",{"2":{"266":1}}],["因为获取webgpu适配器和设备对象的操作是异步的",{"2":{"247":1}}],["因为软链接的生成是在npm",{"2":{"223":1}}],["因为我这里使用的是",{"2":{"218":1}}],["因为npm",{"2":{"216":1}}],["因为同事使用jenkins打包多个项目导致服务器cpu占用达到百分百直接卡死",{"2":{"214":1}}],["因为不同的字符可能会占用不同数量的内存空间",{"2":{"205":1}}],["因为",{"2":{"204":1}}],["因为vend方法能抛出错误",{"2":{"202":1}}],["因为可以确定它总会有值",{"2":{"193":1}}],["因为盒子没有撑开",{"2":{"137":1}}],["因为集合没有索引",{"2":{"48":1}}],["因为集合本身在数学上的概念就是无序的",{"2":{"48":1}}],["因为这里是直接将offsetpositiondata赋值给collectpositionbylayer",{"2":{"31":1}}],["因为文字使用了线条来绘制",{"2":{"28":1}}],["因为批注功能需要输入",{"2":{"25":1}}],["因为要全图纸统一进行绘制",{"2":{"24":1}}],["因小食材怀大梦想",{"2":{"2":1}}],["处理变量地可选值时",{"2":{"199":1}}],["处理成positions后",{"2":{"24":1}}],["处理解析的数据",{"2":{"23":1}}],["的特殊形式",{"2":{"313":1}}],["的构造函数中",{"2":{"248":1,"261":1}}],["的init方法就看完了",{"2":{"247":1}}],["的源码路径",{"2":{"247":1}}],["的源码中用到了这个插件",{"2":{"237":1}}],["的相关源码",{"2":{"246":1}}],["的第四章",{"2":{"239":1}}],["的项目拎出来",{"2":{"236":1}}],["的保存时自动格式化代码",{"2":{"218":1}}],["的配置",{"2":{"218":1}}],["的代码基础上进行开发",{"2":{"215":1}}],["的作用是将一个string值转换成一个int值",{"2":{"193":1}}],["的类型",{"2":{"133":1}}],["的解决方法",{"2":{"92":1}}],["的能力",{"2":{"54":1}}],["的",{"2":{"24":1}}],["的梦想前行",{"2":{"2":1}}],["先将元素脱离文档流",{"2":{"308":1}}],["先乘以一个倍数",{"2":{"306":1}}],["先经历了旋转",{"2":{"259":1}}],["先缩放",{"2":{"259":1}}],["先看第一步",{"2":{"247":1}}],["先实现拉去",{"2":{"218":1}}],["先实现通过svg来提取图片中的内容",{"2":{"27":1}}],["先决条件",{"2":{"204":1}}],["先确认flutter和dart是否能够做ar",{"2":{"98":1}}],["先在电脑上运行steamvr然后在pico上运行刚安装的cloudxr客户端软件",{"2":{"55":1}}],["先使用",{"2":{"24":1}}],["先把文件夹建好",{"2":{"22":1}}],["进行雾效处理等等",{"2":{"311":1}}],["进行绘制前",{"2":{"24":1}}],["进入项目页面",{"2":{"132":1}}],["进度动画颜色",{"2":{"90":2}}],["进度条本身不能设置高度",{"2":{"90":1}}],["进度条",{"0":{"90":1}}],["进一寸有一寸的欢喜",{"2":{"23":1}}],["从根节点html开始对整个渲染树进行重新布局",{"2":{"308":1}}],["从老的graphic技术带到了新的graphic技术",{"2":{"255":1}}],["从",{"2":{"231":1}}],["从xcode7我们再导入系统提供的动态库的时候",{"2":{"213":1}}],["从libsqlite3",{"2":{"213":1}}],["从而减少重绘次数",{"2":{"308":1}}],["从而避免内容紧贴到视图的边缘",{"2":{"210":1}}],["从而决定哪条子句能处理它",{"2":{"202":1}}],["从而导致我们提交pull",{"2":{"132":1}}],["从而将openvr应用程序中的音频和视频内容提供给客户端",{"2":{"53":1}}],["从新页面返回数据",{"0":{"119":1}}],["从github下载并用android",{"2":{"55":1}}],["从def数据中解析最原始的数据出来",{"2":{"24":1}}],["从结果来看",{"2":{"1":1}}],["怕什么真理无穷",{"2":{"23":1}}],["8181",{"2":{"266":1}}],["8081",{"2":{"220":1}}],["80",{"2":{"167":1}}],["800",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"24":2}}],["88",{"2":{"167":2,"168":1}}],["87",{"2":{"32":1,"194":1}}],["8",{"2":{"23":1,"24":1,"47":2,"70":1,"119":2,"152":1,"167":3,"168":3,"173":1,"195":1,"214":1,"253":1,"258":1,"287":2}}],["再一次性添加到页面中去",{"2":{"308":1}}],["再整个添加到dom树",{"2":{"308":1}}],["再把元素放回文档流",{"2":{"308":1}}],["再将文件名进行还原",{"2":{"296":1}}],["再经历缩放",{"2":{"259":1}}],["再旋转",{"2":{"259":1}}],["再让我们手动添加二三维的联动逻辑这样麻烦",{"2":{"256":1}}],["再甚至我们可以对一些最常用的cad图元做3d的建模",{"2":{"256":1}}],["再次平移",{"2":{"245":1}}],["再次运行即可",{"2":{"103":1}}],["再位换算回id值就可以知道点击到哪个物体了",{"2":{"241":1,"245":2}}],["再进行一些处理就可以实现吗",{"2":{"27":1}}],["再统一合模",{"2":{"24":1}}],["再回头看看",{"2":{"23":1}}],["再提供给用户一个类似游戏视角的环境漫游功能",{"2":{"23":1}}],["多看orillusion的源码",{"2":{"258":1}}],["多一份数据",{"2":{"241":1,"245":2}}],["多个页面之间的跳转",{"0":{"211":1}}],["多行字符串中",{"2":{"205":1}}],["多行字符串",{"2":{"205":1}}],["多于一条会失效",{"2":{"177":1}}],["多视角渲染的案例",{"2":{"26":1}}],["多在图形学的世界里面走一走",{"2":{"23":1}}],["多年前第一次看到知源",{"2":{"2":1}}],["很美",{"2":{"23":1}}],["一直有记笔记的习惯",{"2":{"295":1}}],["一直在想究竟如何才能让ts既可以使用commonjs的包",{"2":{"218":1}}],["一直在用",{"2":{"25":1}}],["一键拖拽即可实现常用图元的绘制",{"2":{"256":1}}],["一开始看视频还以为graphic是一种技术",{"2":{"255":1}}],["一开始我的图层position数据收集是这样写的",{"2":{"31":1}}],["一份渲染到fbo",{"2":{"245":1}}],["一份渲染输出到屏幕",{"2":{"245":1}}],["一些思考",{"0":{"230":1,"252":1}}],["一些底层的功能支持会更好一些",{"2":{"182":1}}],["一些常用场景",{"0":{"122":1},"1":{"123":1,"124":1,"125":1}}],["一种自适应的布局方式",{"2":{"176":1}}],["一端是算力无穷的云",{"2":{"53":1}}],["一端是越来越轻便的终端设备",{"2":{"53":1}}],["一般来说要小1",{"2":{"257":1}}],["一般出现服务器崩溃的问题也是运维排查问题",{"2":{"214":1}}],["一般可以将项目中的文件分别放入",{"2":{"170":1}}],["一般都创建一个新的分支来修改代码",{"2":{"132":1}}],["一般子类覆写方法时",{"2":{"45":1}}],["一般在递归中产生",{"2":{"28":1}}],["一阶贝塞尔曲线",{"2":{"32":1}}],["一张文字比较多的图纸",{"2":{"28":1}}],["一个构造函数两千多行",{"2":{"262":1}}],["一个三维向量转化为四维向量",{"2":{"240":1}}],["一个vue框架想要能够工作下去",{"2":{"238":1}}],["一个由node",{"2":{"225":1}}],["一个app中可以有一个或多个viewcontroller",{"2":{"212":1}}],["一个标有throws关键字的函数被称做throwing函数",{"2":{"202":1}}],["一个可选的值是一个具体的值或者是nil以表示值缺失",{"2":{"194":1}}],["一个常见的问题是远程的项目upstream有了新的更新",{"2":{"132":1}}],["一个子widget本身可以是row",{"2":{"60":1}}],["一个flutter",{"2":{"57":1}}],["一个children属性",{"2":{"57":1}}],["一个child属性",{"2":{"57":1}}],["一个页面中渲染多个three内容",{"2":{"26":1}}],["一个数字化的构想",{"2":{"23":1}}],["一群有爱有梦的人",{"2":{"2":1}}],["而https发不出http请求",{"2":{"266":1}}],["而如果没有批注数据",{"2":{"266":1}}],["而如果我不添加",{"2":{"218":1}}],["而在一个稍微大一点的cad图纸中",{"2":{"256":1}}],["而非整个引擎",{"2":{"251":1}}],["而我还不知道",{"2":{"250":1}}],["而我们知道metal后端需要的shader语言是msl",{"2":{"99":1}}],["而不需要像",{"2":{"256":1}}],["而不需要对",{"2":{"247":1}}],["而不是通过类的实例调用",{"2":{"252":1}}],["而不是npm",{"2":{"223":1}}],["而且还提供了vscode插件的支持",{"2":{"301":1}}],["而且还支持动态库",{"2":{"213":1}}],["而且平移",{"2":{"258":1}}],["而且线宽的调整也不是很好实现",{"2":{"245":1}}],["而vue3中采用的proxy",{"2":{"239":1}}],["而使用const定义的变量不会挂载到windows上",{"2":{"235":1}}],["而使用rollup打包以后",{"2":{"218":1}}],["而有难度的脚手架应该是支持扩展的",{"2":{"217":1}}],["而有的widget确实当做函数实现",{"2":{"66":1}}],["而",{"2":{"213":1,"248":2,"262":1}}],["而先决条件则在调试环境和生产环境中运行",{"2":{"204":1}}],["而webgl这样的技术让开发者可以直接自己操作gpu进行绘制",{"2":{"101":1}}],["而是对象需要递归去劫持实现响应式",{"2":{"239":1}}],["而是根据内部元素来定",{"2":{"137":1}}],["而是提前写好",{"2":{"99":1}}],["而是需要有人去做",{"2":{"23":1}}],["而直接使用android",{"2":{"96":1}}],["而宽线需要顶点的多个副本以形成线条的宽度",{"2":{"30":1}}],["而three",{"2":{"25":1}}],["而每一个用户设计的小房子",{"2":{"23":1}}],["有很多的未知和挑战",{"2":{"256":1}}],["有好几万图元数据的情况下",{"2":{"256":1}}],["有three",{"2":{"248":1}}],["有一些生命周期的回调函数",{"2":{"212":1}}],["有一类数据总是批量呈现的",{"2":{"46":1}}],["有圆角的矩形形状",{"2":{"167":1,"168":1}}],["有依赖关系的视图会马上翻译出这些变化并重绘",{"2":{"135":1}}],["有校验功能的表单",{"0":{"123":1}}],["有时候在程序架构中",{"2":{"193":1}}],["有时候会有几十甚至上百毫秒的一个耗时",{"2":{"99":1}}],["有时间都可以读一读",{"2":{"304":1}}],["有时间还是需要好好研究研究",{"2":{"2":1}}],["有时间可以参考一下他的实现来配置自己的eslint最佳实践",{"2":{"1":1}}],["有状态widget",{"2":{"67":1}}],["有属性可以设置头尾图标",{"2":{"60":1}}],["有三个最常用的聚合类型",{"2":{"46":1}}],["有有没有一个事件处理机制来统一规范的对触发事件进行控制",{"2":{"29":1}}],["有没有一些很好的方法能够将普通图片转化为svg",{"2":{"27":1}}],["有的时候缺的其实并不是那么多奇思妙想的思路",{"2":{"23":1}}],["让用户可以很便捷的在cad里面做到二三维联动",{"2":{"256":1}}],["让用户能够真实的进到自己设计的房子内部进行各种参观",{"2":{"23":1}}],["让安装的人直接执行你的命令",{"2":{"223":1}}],["让demo1项目下生成wakk的软链接",{"2":{"217":1}}],["让人们在数据世界里获得视觉化思考能力",{"2":{"2":1}}],["安全提醒",{"2":{"23":1}}],["安装和使用",{"0":{"175":1}}],["安装完以后关闭项目",{"2":{"136":1}}],["安装dio库",{"0":{"111":1}}],["安装依赖",{"2":{"108":1,"121":1,"175":1}}],["安装依赖时报错",{"2":{"4":1}}],["安装http库",{"0":{"108":1}}],["安装下面两个库",{"2":{"103":1}}],["安装arkit",{"0":{"103":1}}],["安装过程等待了很久",{"2":{"98":1}}],["安装flutter版本",{"2":{"98":1}}],["安装flutter插件",{"2":{"95":1}}],["安装好android",{"2":{"94":1}}],["安装cloudxr",{"2":{"55":1}}],["安装公共的vue",{"0":{"14":1}}],["安装pnpm",{"0":{"12":1}}],["安装",{"0":{"4":1},"2":{"98":1,"111":1,"218":1}}],["比如说图像处理",{"2":{"313":1}}],["比如resize事件发生时",{"2":{"308":1}}],["比如边距",{"2":{"308":1}}],["比如",{"2":{"247":1,"259":1,"308":1}}],["比如pnpm",{"2":{"223":1}}],["比如p0和p3的需要连接的起始点和终点",{"2":{"32":1}}],["比如我这里配置的",{"2":{"218":1}}],["比如我想在three中绘制一个雾山五行的角色",{"2":{"27":1}}],["比如方法",{"2":{"199":1}}],["比如让一个函数返回多个值",{"2":{"197":1}}],["比如获取来自inheritedwidget的数据",{"2":{"67":1}}],["比如订阅事件",{"2":{"67":1}}],["比如这里在索引1处插入一个9",{"2":{"47":1}}],["比如在一个房间里面放上一个音响",{"2":{"23":1}}],["比如防火提醒",{"2":{"23":1}}],["比例尺",{"2":{"3":1}}],["甚至连旋转矩阵都用不上",{"2":{"263":1}}],["甚至我们可以把一些用户常用的图元数据保存下来",{"2":{"256":1}}],["甚至我们可以提供3d场景让用户自己根据2d图纸来构件自己的3d场景并自己绑定好对应的二三维联动关系",{"2":{"23":1}}],["甚至vitepress自带的组件都需要自己写一遍",{"2":{"236":1}}],["甚至更强大一点",{"2":{"23":1}}],["甚至他能够决定每一个细节应该怎样落地",{"2":{"23":1}}],["木材店铺",{"2":{"23":1}}],["灯光店铺",{"2":{"23":1}}],["幻想一下",{"2":{"23":1}}],["用webgpu是不是有些大材小用",{"2":{"257":1}}],["用webgpu实现出来",{"2":{"245":1}}],["用它来做二维可能会带来一些额外的性能开销",{"2":{"256":1}}],["用var定义的变量会挂载到windows上",{"2":{"235":1}}],["用tsc编译index",{"2":{"223":1}}],["用top命令查看cpu占用",{"2":{"214":1}}],["用",{"2":{"218":1}}],["用来表示大于2^53",{"2":{"305":1}}],["用来在一个字符串中访问单个字符",{"2":{"205":1}}],["用来管理代码和资源",{"2":{"93":1}}],["用冒号分隔",{"2":{"199":1}}],["用image",{"0":{"266":1}}],["用if和let一起来处理值缺少的情况",{"2":{"194":1}}],["用ios的调用gpu的方法实现",{"2":{"98":1}}],["用垫片实现左右对齐",{"2":{"137":1}}],["用xcode打开项目",{"2":{"96":2}}],["用android",{"2":{"94":1}}],["用于进程之间的通信",{"2":{"313":1}}],["用于在子进程中运行的模块",{"2":{"313":1}}],["用于处理html",{"2":{"101":1,"308":1}}],["用于处理依赖关系的变化",{"2":{"67":1}}],["用于绑定数据等",{"2":{"99":1}}],["用于释放资源",{"2":{"67":1}}],["用于构建部件的ui",{"2":{"67":1}}],["用于管理部件的状态和响应不同阶段的变化",{"2":{"67":1}}],["用于覆盖另一个widget",{"2":{"66":1}}],["用函数这里可以传参",{"2":{"66":1}}],["用metal绘制一个三角形",{"2":{"55":1,"149":1}}],["用贝塞尔曲线再次将随机点连起来",{"2":{"32":1}}],["用贝塞尔曲线来优化cad的手绘线批注",{"0":{"32":1}}],["用粗线的线宽来实现这种包围盒效果",{"2":{"24":1}}],["用户如果是在我们的平台通过拖拽图元库中的图元来从零设计图纸",{"2":{"256":1}}],["用户可以很方便的在我们的网页上打开图纸并进行二次开发",{"2":{"256":1}}],["用户可以在我们的平台上上传图纸",{"2":{"256":1}}],["用户可以创建自己的图元库在我们的网页上进行一个更轻量化的图纸开发",{"2":{"23":1}}],["用户反馈",{"2":{"60":1}}],["用户在模型中漫游的时候会根据距离这个房间的远近和房间的材质会有一个音效放大缩小的一个效果",{"2":{"23":1}}],["用编辑器打开文件夹",{"2":{"13":1}}],["那后面的每次修改都要进行修改",{"2":{"266":1}}],["那还做什么图形学开发工程师啊",{"2":{"265":1}}],["那public",{"2":{"252":1}}],["那flutter良好的跨平台支持是更好的选择",{"2":{"182":1}}],["那我做个推断",{"2":{"248":1}}],["那我",{"2":{"218":1}}],["那我只需要一张图片",{"2":{"27":1}}],["那我这边其实可以根据图元来生成图元库",{"2":{"23":1}}],["那岂不是还可以更进一步",{"2":{"25":1}}],["那么代表鼠标选中了该模型",{"2":{"245":1}}],["那么全局指令",{"2":{"223":1}}],["那么npm",{"2":{"218":1}}],["那么impeller是如何做到将glsl4",{"2":{"99":1}}],["那么可以设置进度百分比",{"2":{"90":2}}],["那么当他的内容被创建出来之后",{"2":{"67":1}}],["那么p1需要添加在p0右侧",{"2":{"32":1}}],["那么整个属性的声明都会被无视",{"2":{"32":1}}],["那么",{"2":{"11":1}}],["那么对我来说最好的解决方案就是一次性都有它处理",{"2":{"1":1}}],["拿到按外层entries解析的图元数据",{"2":{"23":1}}],["将像素发送给gpu",{"2":{"308":1}}],["将dom",{"2":{"308":1}}],["将dom脱离文档流",{"2":{"308":1}}],["将元素脱离文档流",{"2":{"308":1}}],["将几何数据发送到gpu进行渲染",{"2":{"263":1}}],["将物体的几何数据",{"2":{"263":1}}],["将3d对象渲染到屏幕上",{"2":{"263":1}}],["将图纸正常加载出来并居中显示",{"2":{"245":1}}],["将摄像机原点与近裁剪平面的一点连起来",{"2":{"245":1}}],["将各个部分的内容实现出来",{"2":{"238":1}}],["将需要执行的包下载到一个临时目录中",{"2":{"227":1}}],["将需要安装的依赖装到podfile中执行install命令即可安装好依赖",{"2":{"175":1}}],["将可选类型赋值给非可选类型需要强制解析获取值",{"2":{"193":1}}],["将视图扩展到安全区域之外",{"2":{"167":1,"168":1}}],["将数值转换为string类型",{"2":{"189":1}}],["将数值转化为度数",{"2":{"166":1}}],["将数据区分为",{"2":{"24":1}}],["将svg转换为canvas绘制",{"2":{"165":1}}],["将代码封装成component",{"0":{"164":1}}],["将text中的文字改为大写",{"0":{"153":1}}],["将所有代码进行缩进",{"2":{"151":1}}],["将字符串转为对象",{"0":{"141":1}}],["将函数作为参数传递使用",{"2":{"140":1}}],["将build",{"2":{"136":1}}],["将glsl转换为spir",{"2":{"99":1}}],["将下载好的flutter",{"2":{"94":1}}],["将最多三行的文本",{"2":{"65":1}}],["将相关信息整理到一个🈶圆角和阴影的盒子中",{"2":{"65":1}}],["将相邻的定点连接起来形成线段",{"2":{"30":1}}],["将widget覆盖在另一个的上面",{"2":{"65":1}}],["将widget展示为一个可滚动的列表",{"2":{"65":1}}],["将widget展示为一个可滚动的网格",{"2":{"65":1}}],["将文本更改为深灰色来模拟一个material",{"2":{"59":1}}],["将cloudxrlanchoptions",{"2":{"55":1}}],["将他们能够提供的材料和材质入库",{"2":{"23":1}}],["将除了文字以外的所有物体打碎成线段",{"2":{"23":1}}],["将抽象的数据映射为视觉数据",{"2":{"3":1}}],["看来下一个项目又要开始用新东西了",{"2":{"301":1}}],["看矩阵要从右往左看",{"2":{"259":1}}],["看别人的框架代码",{"2":{"252":1}}],["看下面的源码",{"2":{"250":1}}],["看不了太细",{"2":{"247":1}}],["看看会不会易懂一些",{"2":{"246":1}}],["看看是不是异常访问",{"2":{"214":1}}],["看了一下源码",{"2":{"239":1}}],["看完了",{"2":{"239":1}}],["看完",{"2":{"238":1}}],["看新建的项目目录可以看到",{"2":{"21":1}}],["看到他们都已经用了pnpm+monorepo",{"2":{"11":1}}],["轻松简单",{"2":{"21":1}}],["项目是用",{"2":{"236":1}}],["项目的info中查看main",{"2":{"205":1}}],["项目结构",{"0":{"170":1,"208":1}}],["项目结构搭建",{"0":{"13":1}}],["项目重启后可以看到vr",{"2":{"55":1}}],["项目中不仅使用prettier",{"2":{"21":1}}],["项目新建结束运行pnpm",{"2":{"21":1}}],["javascript所能表示的最大的数字",{"2":{"305":1}}],["jack",{"2":{"137":2,"200":3}}],["j++",{"2":{"245":1}}],["j",{"2":{"245":5}}],["jenkins一定不要部署在生产环境的服务器上面",{"2":{"214":1}}],["jenkins同时打包多个项目导致服务器卡死",{"0":{"214":1}}],["john",{"2":{"194":2}}],["justthestatuscode",{"2":{"191":1}}],["jumptologin",{"2":{"139":1}}],["juejin",{"2":{"20":1,"55":1,"92":1,"98":1,"100":1,"128":1,"130":1,"146":1,"149":1,"184":1,"185":3,"217":2,"251":1,"264":2}}],["jpg",{"2":{"61":3,"231":1}}],["jsdelivr",{"2":{"299":3}}],["jsconfig",{"2":{"292":1}}],["jsconsole",{"2":{"284":1}}],["jsconst",{"2":{"235":3,"262":1,"294":1,"308":3}}],["jsexport",{"2":{"286":1,"287":3,"288":1,"289":1,"290":1,"291":1,"298":1}}],["jsmodule",{"2":{"285":1}}],["js的数据",{"2":{"313":1}}],["js的数据类型",{"0":{"305":1}}],["js的",{"2":{"263":1}}],["js的源码味道了",{"2":{"248":1}}],["jsif",{"2":{"262":1}}],["js构建的canvas上",{"2":{"262":1}}],["js都是右手坐标系",{"2":{"259":1}}],["js它本身是一个三维的技术框架",{"2":{"256":1}}],["js渲染器中的源码根本看不懂",{"2":{"246":1}}],["js中的",{"2":{"248":1}}],["js中的svgloader来加载出来并进行一些数据优化处理",{"2":{"27":1}}],["js中场景",{"2":{"246":1}}],["js中",{"2":{"244":1,"263":1}}],["js和orillusion的渲染源码",{"2":{"244":1}}],["js设计与实现",{"2":{"238":1}}],["jsvar",{"2":{"234":5}}],["jsfunction",{"2":{"233":1}}],["js官方提供的用于快速执行npm包中的可执行文件的工具",{"2":{"225":1}}],["js官方使用的",{"2":{"25":1}}],["js文件",{"2":{"222":1}}],["js是否是根据设备ua来进行判断",{"2":{"213":1}}],["js判断视频流的请求对象是移动端",{"2":{"213":1}}],["js竟然是一个开源的js库",{"2":{"25":1}}],["json`",{"2":{"293":2}}],["json数据",{"2":{"266":1}}],["json的name为基准",{"2":{"216":1}}],["json格式的对象",{"2":{"190":1}}],["jsonstring",{"2":{"141":2}}],["jsondecoder",{"2":{"141":1,"180":1}}],["jsondecode",{"2":{"110":1}}],["jsonplaceholder",{"2":{"108":1,"109":1,"110":1,"112":1,"113":1,"114":1,"115":1}}],["jsonpackages",{"2":{"13":1}}],["json2dart",{"2":{"100":1}}],["json下的包名来定",{"2":{"17":1}}],["json中的bin配置来生成node",{"2":{"222":1}}],["json中的配置",{"2":{"15":1}}],["json中有type",{"2":{"218":1}}],["json中配置bin字段数据",{"2":{"223":1}}],["json中配置了bin字段",{"2":{"223":1}}],["json中配置了",{"2":{"218":1}}],["json中配置的",{"2":{"218":1}}],["json中配置命令启动packages文件夹下面的项目",{"0":{"18":1}}],["json中配置测试命令",{"2":{"16":1}}],["json文件",{"2":{"13":1}}],["json文件的数据格式",{"2":{"10":1}}],["json",{"0":{"216":1},"2":{"1":1,"7":1,"8":1,"10":2,"16":1,"17":1,"18":1,"19":6,"109":5,"110":4,"113":1,"216":1,"218":5,"222":1,"223":2,"236":1,"266":2,"270":2}}],["js",{"2":{"1":1,"216":1,"218":2,"223":2,"231":1,"256":1,"260":3,"261":2,"262":2,"270":1,"292":2,"294":1,"299":1,"305":1,"306":2,"313":2}}],["jsnpm",{"2":{"1":1,"21":1}}],["串行",{"2":{"20":1}}],["学习如何将模型数据转化为webgpu可以使用的数据实现图纸的加载",{"2":{"245":1}}],["学习鼠标拾取的底层原理",{"2":{"245":1}}],["学习element",{"0":{"236":1},"1":{"237":1}}],["学习参考链接",{"0":{"20":1}}],["学了`webgl`的渲染以后",{"2":{"2":1}}],["最终生成显示在屏幕上的图像",{"2":{"311":1}}],["最终将msl编译链接得到metal",{"2":{"99":1}}],["最好让后端以字符串的形式返回",{"2":{"306":1}}],["最开始还在学校的时候还比较勤快",{"2":{"295":1}}],["最薄的材料",{"2":{"155":1}}],["最多可以显示3行文本",{"2":{"60":1}}],["最常见的布局模式之一是垂直或水平widgets",{"2":{"60":1}}],["最重要的它是运行时常量",{"2":{"34":1}}],["最后平移",{"2":{"259":2}}],["最后正常渲染场景",{"2":{"245":1}}],["最后一个问题",{"2":{"218":1}}],["最后还是决定使用rollup来对ts进行打包",{"2":{"218":1}}],["最后",{"2":{"214":1}}],["最后再用同样的方法可以得到最终的一个点",{"2":{"32":1}}],["最后配置一个typecheck命令",{"2":{"19":1}}],["最近看了一点vue3和element",{"2":{"11":1}}],["和基于threejs修改",{"2":{"257":1}}],["和我们现在ourbim的资源库一样方便",{"2":{"256":1}}],["和你聊一聊我们cad目前的一个现状",{"2":{"256":1}}],["和获取",{"2":{"247":1}}],["和javascript中的this一样",{"2":{"199":1}}],["和js中的map方法一样",{"2":{"198":1}}],["和上面直接请求接口相比",{"2":{"110":1}}],["和column相比你也可能更喜欢listview",{"2":{"60":1}}],["和row相比你可能更喜欢listtile",{"2":{"60":1}}],["和",{"2":{"19":1,"152":1,"218":1,"308":1}}],["随后即可在navigationbar中使用绑定的hasscrolled数据",{"2":{"171":1}}],["随后选择新建项目运行即可",{"2":{"95":1}}],["随后我又测试了一下修改demo2中的打印日志",{"2":{"17":1}}],["随后在demo2中打开终端执行npm",{"2":{"16":1}}],["能不能根据讲解",{"2":{"238":1}}],["能够将虚拟dom渲染成功真实的dom",{"2":{"238":1}}],["能够将组件中的内容解析出来",{"2":{"238":1}}],["能够细微的知道哪些节点需要更新",{"2":{"238":1}}],["能够根据用户的选择来构建不同的项目模板",{"2":{"217":1}}],["能够成功运行",{"2":{"15":1}}],["能根据用户图片中的具体文字内容来生成最简洁的font字体文件",{"2":{"25":1}}],["能正常打印出需要的日志信息",{"2":{"17":1}}],["^2",{"2":{"103":1}}],["^1",{"2":{"103":1}}],["^",{"2":{"17":2}}],["只要每个图元的渲染都多上一点点性能开销",{"2":{"256":1}}],["只能通过nginx代理去请求过去",{"2":{"266":1}}],["只能通过类来进行访问",{"2":{"252":1}}],["只能去新增批注是否存在的判断接口了",{"2":{"266":1}}],["只能先采用这种方法让报错提示尽可能温和一点了",{"2":{"266":1}}],["只能搭建android开发环境",{"2":{"92":1}}],["只知道初始化了矩阵和缓冲区",{"2":{"247":1}}],["只有批注数据存在时才能请求回来comment",{"2":{"266":1}}],["只有一百多行",{"2":{"263":1}}],["只有400k大小",{"2":{"245":1}}],["只有本地开发需要执行这一步",{"2":{"216":1}}],["只会引起一次重排",{"2":{"308":1}}],["只会导致1次重排",{"2":{"308":1}}],["只会将动态库被引用的头文件添加到目标app可执行文件",{"2":{"213":1}}],["只会打包正在使用的相关功能",{"2":{"68":1}}],["只需将源码放入相应的文件夹内",{"2":{"183":1}}],["只需要声明变量前使用",{"2":{"169":1}}],["只是简单的ui功能",{"2":{"182":1}}],["只修改了打印信息",{"2":{"16":1}}],["只单纯使用prettier十分合理",{"2":{"0":1}}],["证明demo2中能共用typescript依赖且自己独立安装的ts",{"2":{"16":1}}],["证明外层的公共模块依赖正常生效了",{"2":{"15":1}}],["创建渲染管线的逻辑被隐藏在组件式操作中",{"2":{"250":1}}],["创建gpu缓冲区等",{"2":{"247":1}}],["创建实例",{"2":{"209":1}}],["创建项目",{"0":{"207":1}}],["创建项目后修改项目general中的minimum",{"2":{"150":1}}],["创建的范围不包含上界",{"2":{"196":1}}],["创建空数组和空字典时必须指定类型",{"2":{"190":1}}],["创建strokestyle实例时指定了一个参数",{"2":{"159":1}}],["创建分支",{"2":{"132":1}}],["创建cloudxrlanchoptions",{"2":{"55":1}}],["创建完以后将项目文件移动到demo1文件夹下",{"2":{"15":1}}],["创建一个webglrendertarget",{"2":{"245":1}}],["创建一个名为my",{"2":{"225":1}}],["创建一个collab",{"2":{"55":1}}],["创建一个",{"2":{"5":1}}],["就像",{"2":{"223":1}}],["就只需要在",{"2":{"218":1}}],["就必须从string开头遍历每一个unicode标量直到结尾",{"2":{"205":1}}],["就是说当前widget创建完成之后",{"2":{"67":1}}],["就是说一旦这个widget创建完成",{"2":{"67":1}}],["就不能再改变了",{"2":{"67":1}}],["就绘制出了一条由起点至终点的贝塞尔曲线",{"2":{"32":1}}],["就叫monorepo",{"2":{"13":1}}],["就来浅浅的尝试一下",{"2":{"11":1}}],["2号",{"2":{"308":2}}],["2不等于0",{"0":{"306":1}}],["2^53",{"2":{"305":1}}],["2个数量级",{"2":{"257":1}}],["2个控制点",{"2":{"32":1}}],["22",{"2":{"252":4}}],["2x2矩阵",{"2":{"240":1}}],["27",{"2":{"287":1}}],["2792",{"2":{"218":1}}],["275",{"2":{"5":1,"6":1}}],["28",{"2":{"167":1,"168":1}}],["29",{"2":{"167":1,"168":1}}],["2661268541946365",{"2":{"185":1}}],["2695",{"2":{"166":1}}],["26",{"2":{"152":2}}],["24",{"2":{"129":1,"209":1,"258":1}}],["20px",{"2":{"308":1}}],["2022",{"2":{"302":1}}],["20230818102838961",{"2":{"266":1}}],["2023",{"2":{"23":1,"214":1,"253":1,"258":1,"301":1}}],["2014上",{"2":{"255":1}}],["2016年8月22日发布的android",{"2":{"255":1}}],["207",{"2":{"166":1}}],["200",{"2":{"90":1,"109":1,"110":1,"113":1,"114":1,"115":1,"152":1,"155":1,"156":1,"161":1,"165":6,"166":3,"176":1,"179":3,"191":1}}],["203",{"2":{"70":1}}],["20",{"2":{"66":1,"70":1,"72":1,"82":1,"88":2,"118":1,"121":2,"138":1,"141":1,"152":1,"154":2,"155":4,"165":1,"172":2,"173":3,"176":1,"179":1,"197":1,"198":3,"202":1,"301":1}}],["2d",{"2":{"54":1}}],["234",{"2":{"189":1}}],["23012",{"2":{"166":1}}],["23",{"2":{"36":3,"214":1,"287":1}}],["255",{"2":{"70":1}}],["25",{"2":{"32":4,"137":1,"195":2}}],["2g",{"2":{"28":1}}],["2",{"2":{"10":1,"28":1,"30":1,"36":1,"47":7,"48":4,"62":1,"72":1,"73":1,"74":1,"89":1,"140":1,"190":1,"195":2,"196":4,"197":1,"199":2,"205":2,"223":1,"229":3,"234":2,"235":6,"238":1,"240":4,"245":2,"257":1,"271":1,"279":2,"287":2,"291":4,"294":1}}],["07436",{"2":{"166":1}}],["05906",{"2":{"166":1}}],["00248",{"2":{"166":1}}],["0896",{"2":{"166":1}}],["08995",{"2":{"166":1}}],["06324",{"2":{"166":1}}],["0xff6750a4",{"2":{"89":1}}],["0xff0000",{"2":{"32":1}}],["03",{"2":{"10":1}}],["0",{"0":{"306":1},"2":{"10":2,"24":4,"28":1,"32":58,"41":1,"42":1,"43":1,"44":1,"45":1,"47":4,"49":2,"66":2,"70":2,"73":1,"83":2,"88":2,"90":4,"98":2,"103":1,"121":6,"129":2,"136":1,"137":1,"140":1,"150":1,"152":3,"154":1,"155":2,"157":1,"158":1,"159":4,"160":1,"161":1,"164":1,"165":2,"166":27,"167":3,"168":5,"173":2,"176":2,"178":1,"179":1,"191":2,"195":1,"196":2,"197":3,"199":7,"202":1,"203":1,"204":3,"209":1,"229":2,"234":1,"240":51,"243":1,"245":10,"250":2,"252":2,"255":1,"259":1,"265":1,"299":2}}],["数组还需要重写原型方法来实现响应式",{"2":{"239":1}}],["数组的map方法和sorted方法",{"0":{"198":1}}],["数组在添加元素时会自动变大",{"2":{"190":1}}],["数组和字典",{"0":{"190":1}}],["数字转字符串",{"2":{"36":1}}],["数值",{"2":{"10":1}}],["数据可视化创意手记",{"2":{"304":1}}],["数据绑定",{"0":{"171":1}}],["数据模型",{"2":{"170":1}}],["数据库实现方案",{"2":{"120":1}}],["数据持久化",{"0":{"120":1},"1":{"121":1}}],["数据验证等功能",{"2":{"68":1}}],["数据类型转换",{"0":{"37":1}}],["数据类型判断",{"0":{"36":1}}],["数据驱动的动画和连续的形变动画",{"2":{"3":1}}],["数据探索",{"2":{"3":1}}],["在内存中多次操作dom",{"2":{"308":1}}],["在有了vscode插件的加持下",{"2":{"301":1}}],["在npm上发布的js代码",{"2":{"299":1}}],["在不想新增接口来判断图纸是否有批注的情况下",{"2":{"266":1}}],["在图形学中",{"2":{"259":1}}],["在wwdc",{"2":{"255":1}}],["在webglrenderer的源码src",{"2":{"263":1}}],["在webglrenderer的源码中很多方法都是直接挂载到this上面",{"2":{"262":1}}],["在webglrenderer的源码中还会做xr的相关处理",{"2":{"262":1}}],["在webglrenderer的源码中看到了这一行",{"2":{"262":1}}],["在webgl中",{"2":{"30":1}}],["在webgpu中",{"2":{"244":1}}],["在",{"2":{"248":1,"261":1}}],["在gpu上创建了一个缓冲区",{"2":{"247":1}}],["在getx中",{"2":{"128":1}}],["在生成一个正方体套在点击物体外面",{"2":{"245":1}}],["在three",{"2":{"244":1}}],["在engine3d",{"2":{"243":1}}],["在vue2中",{"2":{"239":1}}],["在vue3项目中安装demo2",{"0":{"17":1}}],["在本地缓存中寻找并下载包",{"2":{"226":1}}],["在本地拉取github的代码并添加远程地址",{"2":{"132":1}}],["在rollup的打包配置中加上banner配置即可解决这个问题",{"2":{"218":1}}],["在配置文件中添加下面的配置",{"2":{"218":1}}],["在编译链接的时候",{"2":{"213":2}}],["在页面上的所有view都会被加入到以这个root",{"2":{"212":1}}],["在页面的init方法中",{"2":{"140":1}}],["在尖括号里写一个名字来创建一个泛型函数或者类型",{"2":{"203":1}}],["在函数声明的参数之后加上throws关键字",{"2":{"202":1}}],["在调用一个能抛出错误的函数",{"2":{"202":1}}],["在调用时",{"2":{"42":1}}],["在类名后面加上括号",{"2":{"199":1}}],["在类型后面加一个问号来标记这个变量的值是可选的",{"2":{"194":1}}],["在javascript中",{"2":{"197":1}}],["在js中",{"2":{"197":1}}],["在参数名称前可以自定义参数标签",{"2":{"197":2}}],["在循环中使用",{"2":{"196":1}}],["在if语句中",{"2":{"194":1}}],["在ios中是作为静态库的文件名后缀",{"2":{"213":1}}],["在ios文件夹下执行pod",{"2":{"103":1}}],["在ios",{"2":{"103":1}}],["在homeview中声明变量",{"2":{"171":1}}],["在hstack",{"2":{"137":1}}],["在闭包中修改和使用外部的变量和值",{"2":{"140":2}}],["在布局中还可以使用垫片来灵活布局",{"2":{"137":1}}],["在弹出的窗口中选择刚才打包生成的build文件夹下的ios",{"2":{"106":1}}],["在设备管理器选择设备",{"2":{"106":1}}],["在src",{"2":{"263":1}}],["在scene的add方法中",{"2":{"260":1}}],["在scaffold中加上resizetoavoidbottominset",{"2":{"105":1}}],["在swift中",{"2":{"202":1}}],["在swiftui中",{"2":{"135":1}}],["在setter中",{"2":{"199":1}}],["在state对象即将被销毁时调用",{"2":{"67":1}}],["在state对象被创建后",{"2":{"67":1}}],["在引擎编译阶段",{"2":{"99":1}}],["在pubspec",{"2":{"127":1}}],["在plugins中安装flutter插件",{"2":{"94":1}}],["在package",{"2":{"16":1}}],["在这个阶段",{"2":{"311":4}}],["在这个案例中",{"2":{"10":1}}],["在这两个类中分别封装了gl",{"2":{"263":1}}],["在这两种情况下",{"2":{"199":1}}],["在这种情况下",{"2":{"193":1}}],["在这里可以比较新旧部件的属性",{"2":{"67":1}}],["在build方法之后立即调用",{"2":{"67":1}}],["在部件第一次创建",{"2":{"67":1}}],["在flutter中",{"2":{"67":2}}],["在app的build方法中实例化和返回一个widget会让它显示出来",{"2":{"57":1}}],["在api层面arkit中的arsession给我们提供了打开摄像头去检测",{"2":{"54":1}}],["在android",{"2":{"55":1,"106":1}}],["在指定索引处插入一个元素",{"2":{"47":1}}],["在末尾添加一个元素",{"2":{"47":1}}],["在声明列表对象时",{"2":{"47":1}}],["在demo3项目的package",{"2":{"223":1}}],["在demo1中打开终端运行代码",{"2":{"15":1}}],["在dart中",{"2":{"46":1}}],["在日常生活中",{"2":{"46":1}}],["在子类中可以通过super调用父类中的方法",{"2":{"45":1}}],["在对象调用方法时",{"2":{"45":1}}],["在入参中为父类中的成员赋值",{"2":{"44":1}}],["在构造函数中",{"2":{"43":1}}],["在字符串中插入变量值",{"0":{"38":1},"2":{"38":1}}],["在运行时第一次使用前才初始化",{"2":{"34":1}}],["在两点之间找两个控制点",{"2":{"32":1}}],["在camera的构造函数中",{"2":{"261":1}}],["在chrome浏览器中",{"2":{"101":1,"308":1}}],["在css中起点和终点都是固定的",{"2":{"32":1}}],["在cesium地图的加持下",{"2":{"23":1}}],["在顶点扩展的基础上",{"2":{"30":1}}],["在计算机科学中是指使用过多的存储器时导致调用堆栈产生的溢出",{"2":{"28":1}}],["在处理mtext类型的数据",{"2":{"25":1}}],["在合模的方法中",{"2":{"24":1}}],["在具体的合模中还需要根据layer来划分数据合模",{"2":{"24":1}}],["在外层的package",{"0":{"18":1}}],["在monorepo",{"2":{"13":1}}],["在后面加上",{"2":{"4":1}}],["桑基图最明显的特征就是",{"2":{"10":1}}],["桑基图绘制",{"0":{"10":1}}],["7174214038765699108",{"2":{"251":1}}],["7146183222425518093",{"2":{"20":1}}],["735",{"2":{"245":1}}],["7086340583697940516",{"2":{"217":1}}],["77304",{"2":{"166":1}}],["77749",{"2":{"166":1}}],["777",{"2":{"103":1}}],["7205025712170942525",{"2":{"264":1}}],["7246001188449550396",{"2":{"217":1}}],["7243357900940378170",{"2":{"92":1}}],["7257333598469439546",{"2":{"185":1}}],["7254107670012543013",{"2":{"184":1}}],["7234324615015497787",{"2":{"130":1}}],["7231184167735820346",{"2":{"128":1}}],["7215891370890952741",{"2":{"55":1,"149":1}}],["729",{"2":{"10":1}}],["75",{"2":{"32":1,"194":1,"231":4}}],["7",{"2":{"9":1,"32":1,"47":2,"90":1,"103":1,"167":1,"168":1,"178":1,"195":1,"197":2,"198":3,"199":1,"202":2,"205":1,"255":1,"287":2}}],["618971664",{"2":{"251":1}}],["63e10991e6cb",{"2":{"217":1}}],["6355",{"2":{"166":1}}],["67924",{"2":{"166":1}}],["6988013072686252046",{"2":{"264":1}}],["6985073338334838814",{"2":{"146":1}}],["6924104248275763208",{"2":{"100":1}}],["6939712499465846798",{"2":{"98":1}}],["60171",{"2":{"166":1}}],["60",{"2":{"152":2,"155":1,"159":1,"165":1,"166":1,"243":1}}],["60转换成msl的呢",{"2":{"99":1}}],["60写的",{"2":{"99":1}}],["600",{"2":{"10":1,"70":1,"165":1}}],["66822111",{"2":{"24":1}}],["6",{"2":{"9":1,"47":7,"66":2,"83":2,"127":2,"158":1,"159":1,"166":1,"173":1,"205":1,"223":1,"240":1,"287":1}}],["6b4aa721",{"2":{"7":1}}],["91864",{"2":{"166":1}}],["92554",{"2":{"166":1}}],["9923",{"2":{"166":2}}],["99984",{"2":{"85":1}}],["99d8",{"2":{"7":1}}],["900",{"2":{"10":1}}],["9",{"2":{"9":2,"47":7,"48":4,"90":1,"195":1,"197":1,"199":2,"287":1,"301":1}}],["5号",{"2":{"308":2}}],["5000",{"2":{"243":1}}],["500",{"2":{"63":3,"76":1,"85":1,"165":1}}],["50",{"2":{"32":1,"125":1,"161":1,"194":1,"231":2}}],["58",{"2":{"32":4}}],["5",{"2":{"9":2,"30":1,"32":2,"47":9,"73":1,"154":1,"155":1,"157":1,"160":1,"164":1,"166":2,"167":1,"168":1,"176":1,"179":1,"195":2,"197":2,"199":2,"205":2,"223":1,"245":3,"257":1,"287":1,"299":1}}],["540b3f87d339",{"2":{"7":1}}],["↑",{"2":{"8":1}}],["4号",{"2":{"308":2}}],["4x4矩阵",{"2":{"240":1}}],["4ce8",{"2":{"217":1}}],["43",{"2":{"194":1}}],["430",{"2":{"172":1}}],["43038",{"2":{"166":1}}],["404",{"2":{"191":2,"193":1,"266":1}}],["40",{"2":{"158":1,"165":2,"287":1}}],["4001234656",{"2":{"137":1}}],["400",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"155":2,"165":1,"172":2}}],["44",{"2":{"167":1,"168":1,"177":2}}],["440",{"2":{"79":1}}],["444",{"2":{"51":1}}],["429d",{"2":{"217":1}}],["42593",{"2":{"166":2}}],["42",{"2":{"32":4}}],["4个控制点",{"2":{"32":1}}],["4",{"2":{"9":2,"10":1,"30":1,"47":9,"48":6,"66":3,"99":1,"103":1,"127":1,"177":1,"190":1,"195":1,"196":1,"199":1,"203":1,"218":2,"223":1,"235":3,"238":1,"245":2,"257":1,"287":4}}],["49b9",{"2":{"7":1}}],["vulkan是khronos在2016年的gdc上提出的新一代的图形和计算",{"2":{"255":1}}],["vue3",{"2":{"307":1}}],["vue2中叫deactivated",{"2":{"307":1}}],["vue2中叫activated",{"2":{"307":1}}],["vue2",{"2":{"307":1}}],["vue生命周期",{"0":{"307":1}}],["vuejs",{"2":{"277":1}}],["vue设计与实现",{"2":{"239":1}}],["vue组件",{"2":{"236":1}}],["vue现成的组件",{"2":{"231":1}}],["vue中history路由问题",{"0":{"220":1}}],["vue中测试一下依赖安装情况",{"2":{"17":1}}],["vue的项目中第一时间就更新了过去",{"2":{"17":1}}],["vue项目文件夹",{"2":{"13":1}}],["vue",{"2":{"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"14":1,"19":6,"223":2,"229":3,"231":1,"236":1,"238":1,"294":3}}],["vp",{"2":{"285":4}}],["vpnavbarhamburger",{"2":{"236":1}}],["vpnavbarsociallinks",{"2":{"236":1}}],["vpnavbarsearch",{"2":{"236":1}}],["vpnavbartranslation",{"2":{"236":1}}],["vpnavbarthemetoggler",{"2":{"236":1}}],["vpnavbarmenu",{"2":{"236":1}}],["vpapp组件类似于vue项目的app",{"2":{"236":1}}],["vpapp",{"2":{"236":2}}],["vscode默认的保存代码自动格式化",{"2":{"218":1}}],["vscode和xcode",{"0":{"148":1}}],["vscode如何配置环境",{"0":{"95":1}}],["vstack",{"2":{"137":4,"139":3,"140":1,"152":3,"164":1,"167":1,"168":1,"173":2,"177":1}}],["vstack和zstack这三种容器中",{"2":{"137":1}}],["v",{"2":{"99":6,"250":2,"252":2,"286":2}}],["vec3",{"2":{"240":7}}],["vec4",{"2":{"240":7,"265":4}}],["vector",{"2":{"103":1}}],["vector3",{"2":{"32":20}}],["vend",{"2":{"202":2}}],["vendingmachine",{"2":{"202":2}}],["vendingmachineerror",{"2":{"202":7}}],["vegetable",{"2":{"195":2}}],["vertexarray",{"2":{"245":1}}],["vertex",{"2":{"240":1,"311":1}}],["vertical",{"2":{"123":1,"152":1}}],["verticaloffset",{"2":{"88":1}}],["verify",{"2":{"217":1}}],["version",{"2":{"98":1,"175":1}}],["versions",{"2":{"67":2}}],["vr应用程序并通过cloudxr无线串流到pico",{"2":{"55":1}}],["void",{"2":{"40":1,"44":1,"45":2,"50":1,"51":1,"89":1,"109":1,"110":2,"112":1,"113":1,"114":1,"115":3,"117":1,"118":1,"119":2,"121":1,"123":4,"124":2,"129":2,"140":1,"252":2}}],["valeriangalliat",{"2":{"294":1}}],["valid",{"2":{"286":2}}],["validate",{"2":{"123":1}}],["validator",{"2":{"123":1}}],["validation",{"2":{"123":2}}],["value的方式保存到磁盘",{"2":{"120":1}}],["valuecolor",{"2":{"90":2}}],["value添加元素",{"2":{"49":1}}],["value",{"2":{"7":1,"8":1,"9":10,"10":2,"47":2,"48":1,"49":2,"89":3,"90":2,"121":2,"123":3,"166":1,"168":5,"194":2,"205":1,"229":2,"252":2,"291":1}}],["variety",{"2":{"286":1}}],["variant",{"2":{"161":1}}],["var",{"2":{"34":1,"51":4,"109":1,"115":1,"121":4,"124":2,"125":1,"129":2,"136":15,"140":4,"159":2,"164":1,"166":3,"167":9,"168":11,"169":1,"171":2,"173":3,"174":5,"177":2,"190":2,"193":1,"194":3,"195":1,"196":1,"197":6,"198":3,"199":11,"201":1,"202":5,"203":1,"205":1,"209":1,"234":1,"235":3,"240":8}}],["via",{"2":{"291":1,"294":1}}],["viewposition",{"2":{"265":2}}],["viewmatrix",{"2":{"265":2}}],["viewmodifier",{"2":{"159":1}}],["view3d",{"2":{"243":1}}],["view为根的树形结构中去",{"2":{"212":1}}],["viewdidload",{"2":{"209":2}}],["viewcontroller拥有所有的view",{"2":{"212":1}}],["viewcontroller有一个view属性",{"2":{"212":1}}],["viewcontroller",{"2":{"208":1,"209":1}}],["viewcontext",{"2":{"174":1}}],["view",{"0":{"212":1},"2":{"138":1,"140":2,"159":3,"164":1,"166":2,"167":3,"168":3,"170":1,"173":2,"177":2,"207":1,"209":4,"210":10,"212":1,"243":3,"250":1,"284":2}}],["viewer模板工程",{"2":{"55":1}}],["views",{"2":{"26":1}}],["vitepress如果用中文进行md的文件命名",{"2":{"296":1}}],["vitepress",{"2":{"236":3,"269":3,"270":1,"271":1,"277":1,"284":2,"285":1,"286":1,"287":2,"292":4,"293":1,"294":2}}],["vitest",{"2":{"19":3}}],["vite",{"2":{"19":3}}],["y轴竖直向上",{"2":{"259":1}}],["yarn",{"2":{"269":1}}],["yarn这些",{"2":{"223":1}}],["yaml",{"2":{"93":1,"270":1,"278":2}}],["yaml文件中添加get依赖",{"2":{"127":1}}],["yaml文件",{"2":{"13":1}}],["yum",{"2":{"202":1}}],["yuque",{"2":{"2":1}}],["your",{"2":{"131":1,"270":1,"285":1,"291":1,"293":1}}],["you",{"2":{"131":4,"178":1,"218":1,"270":5,"273":1,"275":4,"284":1,"285":2,"286":2,"287":1,"288":1,"291":2,"292":1,"293":3,"294":1}}],["yep",{"2":{"119":3}}],["yellow",{"2":{"90":1,"163":1}}],["year",{"2":{"9":10}}],["y2",{"2":{"32":1}}],["y1",{"2":{"32":1}}],["y创建包",{"2":{"13":1}}],["y",{"2":{"5":2,"6":4,"7":1,"8":2,"9":1,"24":3,"154":1,"155":2,"156":1,"161":1,"165":5,"166":16,"172":1,"197":3,"218":1,"240":2}}],["xxx",{"2":{"294":1}}],["xr",{"2":{"262":3}}],["x和y轴的坐标范围是",{"2":{"259":1}}],["x轴水平向右",{"2":{"259":1}}],["xiaoming",{"2":{"234":6,"235":3}}],["xiaohua",{"2":{"17":1}}],["xun082",{"2":{"217":1}}],["xcworkspace后缀的文件启动项目",{"2":{"136":1}}],["xcworkspace",{"2":{"96":1}}],["xcode就会自动生成工程文件",{"2":{"183":1}}],["xcode中的快捷键",{"0":{"151":1}}],["xcode",{"2":{"96":1,"181":1}}],["x2",{"2":{"32":1,"166":10}}],["x2和y2定义了p2点的横纵坐标",{"2":{"32":1}}],["x1",{"2":{"32":1}}],["x1和y1定义了p1点的横纵坐标",{"2":{"32":1}}],["x",{"2":{"5":2,"6":3,"7":1,"8":1,"9":1,"24":3,"140":1,"154":1,"155":2,"156":1,"161":1,"165":5,"166":25,"172":1,"195":3,"222":1,"240":2,"259":2}}],["绑定数据",{"2":{"5":1}}],["声明一个四维向量并赋值",{"2":{"240":1}}],["声明周期理解",{"2":{"67":1}}],["声明可视化",{"2":{"5":1}}],["声明形式的api和组件化的编程范式",{"2":{"3":1}}],["挂载容器的id",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1}}],["hl",{"2":{"287":2}}],["hl=zh",{"2":{"54":1,"94":1}}],["h和资源文件",{"2":{"213":1}}],["huang",{"2":{"164":1}}],["human",{"2":{"43":3,"44":3,"45":3}}],["hstack",{"2":{"137":2,"138":1,"152":1,"162":2,"163":1,"164":1,"167":3,"168":3,"177":1,"178":1}}],["highlighted",{"2":{"287":8}}],["highlight",{"2":{"286":2,"287":1}}],["highlighting",{"0":{"286":1,"287":1},"2":{"281":2}}],["hidden",{"2":{"160":1}}],["hide",{"2":{"119":1}}],["hint",{"2":{"131":12}}],["hinttext",{"2":{"86":1}}],["histories",{"2":{"131":1}}],["hacker",{"2":{"270":1,"278":1}}],["hamburger",{"2":{"236":1}}],["handlefn",{"2":{"234":2}}],["handler",{"2":{"115":4}}],["have",{"2":{"131":1,"178":1}}],["haseventlistener",{"2":{"248":1,"260":1}}],["haserror",{"2":{"110":1}}],["hasanymatches",{"2":{"197":2}}],["hassuffix",{"2":{"195":1}}],["hasscrolled",{"2":{"171":4}}],["has",{"2":{"194":1}}],["hashomeindicator",{"2":{"176":2}}],["hasdata",{"2":{"110":1}}],["happinessx",{"0":{"100":1}}],["hover",{"2":{"308":1}}],["house",{"2":{"162":2,"163":1,"167":2,"168":1}}],["horizontal",{"2":{"152":1,"167":3,"168":3}}],["how",{"2":{"131":2}}],["hosted",{"2":{"97":1}}],["homeview中使用",{"2":{"174":1}}],["homeview使用navigationbar时传递",{"2":{"171":1}}],["homebrew",{"0":{"145":1}}],["homescreen",{"2":{"119":3}}],["home",{"2":{"58":1,"89":1,"110":1,"113":1,"114":1,"115":1,"117":1,"118":1,"119":1,"121":1,"123":1,"124":1,"129":4,"167":6,"168":6,"169":1,"270":1,"275":1}}],["html",{"2":{"220":1,"245":1,"270":3,"275":4,"276":1,"286":1}}],["html2canvas支持将页面保存为svg图片",{"2":{"27":1}}],["http200status",{"2":{"191":4}}],["http404error",{"2":{"191":4}}],["http404error的类型是",{"2":{"191":1}}],["httpheaders",{"2":{"113":1,"114":1,"115":1}}],["http",{"2":{"108":7,"109":4,"110":4,"127":1}}],["https",{"2":{"1":1,"2":2,"7":1,"8":1,"10":1,"20":1,"27":1,"53":1,"54":3,"55":2,"67":2,"76":2,"92":5,"93":1,"94":2,"98":1,"100":1,"102":2,"103":2,"108":1,"109":1,"110":1,"112":1,"113":1,"114":1,"115":1,"123":1,"128":1,"130":1,"136":1,"140":1,"142":1,"146":1,"149":2,"162":2,"163":1,"175":3,"178":1,"179":1,"180":1,"183":2,"184":1,"185":3,"217":3,"231":3,"245":2,"251":2,"257":2,"264":2,"265":1,"266":1,"294":2,"296":1,"299":4,"302":2}}],["hence",{"2":{"293":1}}],["here",{"2":{"288":1,"289":1,"290":1}}],["hexagon",{"2":{"161":1,"165":2}}],["help",{"2":{"160":1,"161":1,"162":1}}],["hello",{"0":{"187":1},"2":{"16":1,"58":1,"59":1,"89":1,"103":1,"139":3,"140":1,"187":1,"194":5,"197":2,"205":5,"209":1,"284":2}}],["helloworld",{"2":{"16":2,"17":1}}],["headerlink",{"2":{"294":1}}],["header",{"0":{"272":1},"1":{"273":1},"2":{"164":2}}],["headers",{"2":{"113":1,"114":1,"115":2,"272":1}}],["headimg",{"2":{"136":1}}],["heading",{"2":{"20":1,"264":1,"270":3,"273":3,"275":3}}],["head~",{"2":{"131":1}}],["height",{"2":{"5":1,"6":1,"7":2,"8":1,"9":1,"10":1,"70":1,"73":1,"88":1,"90":1,"125":2,"137":1,"138":1,"152":2,"155":2,"156":1,"158":1,"165":6,"166":18,"167":3,"168":3,"172":2,"176":2,"177":1,"179":1}}],["3号",{"2":{"308":2}}],["3x3矩阵",{"2":{"240":1}}],["34",{"2":{"167":2,"168":2,"176":1}}],["34086",{"2":{"166":1}}],["35237",{"2":{"166":1}}],["35",{"2":{"137":1}}],["350",{"2":{"5":1,"6":1}}],["300",{"2":{"86":1,"125":1,"165":1,"176":2}}],["30",{"2":{"66":1,"88":1,"125":1,"138":2,"159":1,"165":1}}],["325111172054350",{"2":{"185":1}}],["32",{"2":{"59":1,"161":1}}],["360",{"2":{"166":1}}],["36",{"2":{"32":1,"164":1}}],["3个控制点",{"2":{"32":1}}],["336678",{"2":{"24":1}}],["3",{"0":{"306":1},"2":{"9":2,"10":1,"30":1,"38":1,"47":9,"48":7,"49":2,"89":1,"98":2,"159":1,"161":1,"166":3,"167":2,"168":2,"190":1,"194":1,"195":2,"197":2,"198":2,"199":4,"202":1,"204":1,"205":1,"223":1,"234":1,"235":3,"238":1,"240":3,"245":2,"257":1,"264":1,"271":1,"279":2,"287":1,"291":4}}],["39",{"2":{"5":24,"6":38,"7":18,"8":24,"9":32,"10":20,"13":2,"16":6,"17":8,"24":4,"28":4,"34":9,"36":8,"38":4,"40":4,"41":4,"42":6,"43":2,"44":8,"45":10,"47":2,"49":6,"50":2,"51":8,"58":6,"59":2,"60":2,"61":6,"62":8,"66":8,"70":2,"72":4,"73":2,"75":2,"84":2,"85":4,"86":2,"87":2,"89":12,"92":8,"108":4,"109":12,"110":24,"111":2,"112":4,"113":14,"114":26,"115":32,"117":12,"118":10,"119":20,"121":16,"123":12,"124":8,"129":12,"204":1,"217":2,"218":6,"222":2,"223":4,"229":18,"231":2,"234":10,"235":12,"236":14,"252":14,"262":4,"266":4,"284":4,"285":6,"286":4,"287":18,"288":4,"289":8,"290":8,"291":16,"292":8,"294":4,"298":2,"305":8,"308":14}}],["1+0",{"0":{"306":1}}],["1是es10之前",{"2":{"305":1}}],["1的整数",{"2":{"305":1}}],["1k的star数了",{"2":{"301":1}}],["17",{"2":{"287":1}}],["170",{"2":{"72":1}}],["15px",{"2":{"308":1}}],["15",{"2":{"150":1,"173":2}}],["150",{"2":{"5":1,"6":1,"66":1}}],["19",{"2":{"197":1,"198":3}}],["192",{"2":{"70":1}}],["1999",{"2":{"9":1}}],["1998",{"2":{"9":1}}],["1997",{"2":{"9":1}}],["1996",{"2":{"9":1}}],["1995",{"2":{"9":1}}],["1994",{"2":{"9":1}}],["1993",{"2":{"9":1}}],["1992",{"2":{"9":1}}],["1991",{"2":{"9":1}}],["160",{"2":{"156":1}}],["1625",{"2":{"85":1}}],["16",{"2":{"42":1,"44":1,"45":1,"118":1,"123":1,"195":1,"287":1}}],["103",{"2":{"194":1}}],["10364",{"2":{"166":1}}],["10",{"2":{"32":1,"47":2,"70":3,"88":1,"98":2,"129":1,"138":1,"140":1,"152":1,"154":1,"155":2,"166":2,"197":2,"202":1,"229":2,"252":6,"287":2}}],["1000",{"2":{"234":1,"245":1,"308":2}}],["10000",{"2":{"28":1}}],["100",{"2":{"32":15,"66":1,"84":1,"90":1,"156":1,"158":1,"161":1,"176":1,"196":2,"197":1,"280":1}}],["18",{"2":{"41":1,"73":1,"114":1,"115":1,"253":1}}],["180",{"2":{"24":2}}],["1819667714",{"2":{"24":1}}],["1190000041361406",{"2":{"245":1}}],["1109201",{"2":{"24":1}}],["11",{"2":{"23":1,"195":1,"202":1}}],["115",{"2":{"5":1,"6":1}}],["14",{"2":{"20":1,"167":1,"168":1}}],["1",{"2":{"10":1,"24":2,"28":1,"30":1,"32":10,"34":2,"36":1,"38":2,"47":9,"48":8,"49":2,"70":1,"88":1,"89":1,"90":2,"103":1,"108":1,"109":1,"110":1,"112":1,"113":1,"114":1,"115":1,"137":2,"152":2,"159":1,"166":3,"167":1,"168":1,"180":1,"190":1,"195":3,"197":1,"199":1,"200":1,"202":1,"223":1,"229":5,"234":3,"235":3,"238":1,"240":14,"243":1,"245":3,"250":2,"252":2,"257":1,"259":3,"265":1,"266":1,"287":1,"291":2,"294":1,"299":1}}],["12",{"2":{"173":2,"177":1,"194":1,"197":1,"198":3,"202":1}}],["1231313",{"2":{"205":1}}],["123123",{"2":{"28":1}}],["123peppe",{"2":{"195":1}}],["123",{"2":{"36":8,"37":1,"51":1,"112":1,"137":4,"180":1,"189":1,"193":1,"194":1,"291":1}}],["124",{"2":{"10":1}}],["120",{"2":{"5":1,"6":1,"165":1}}],["1365679354203189248",{"2":{"53":1}}],["13",{"2":{"9":1,"195":1,"287":1}}],["==",{"2":{"36":4,"109":1,"110":1,"113":1,"114":1,"115":1,"123":1,"159":1,"167":14,"168":14,"177":1,"194":1}}],["===",{"2":{"24":3,"252":1}}],["=12",{"2":{"21":1}}],["=",{"2":{"5":3,"6":3,"7":2,"8":3,"9":4,"10":3,"16":2,"17":2,"24":5,"28":5,"31":2,"32":9,"34":2,"36":8,"37":2,"38":2,"40":1,"41":1,"42":2,"43":4,"44":3,"45":3,"47":8,"48":3,"49":3,"50":1,"51":4,"66":4,"73":1,"86":1,"89":4,"109":4,"110":4,"112":2,"113":5,"114":4,"115":6,"117":1,"118":2,"119":3,"121":8,"123":4,"124":2,"125":1,"129":12,"136":1,"138":3,"139":1,"140":11,"141":3,"142":6,"159":1,"163":2,"166":10,"167":6,"168":10,"169":1,"171":1,"173":1,"174":5,"176":1,"177":1,"180":4,"189":4,"190":4,"191":5,"193":8,"194":11,"195":4,"196":5,"197":12,"198":7,"199":22,"200":4,"202":9,"203":2,"204":2,"205":13,"207":1,"209":9,"211":2,"223":1,"229":23,"231":3,"234":9,"235":17,"236":2,"238":2,"240":9,"242":3,"243":6,"245":7,"247":2,"248":1,"250":5,"252":15,"262":2,"265":3,"266":4,"285":3,"291":8,"292":4,"294":3,"298":2,"305":4,"308":18}}],["ccc",{"2":{"308":1}}],["cdn",{"2":{"299":3}}],["cjs",{"2":{"285":1}}],["cb",{"2":{"234":2}}],["ctx",{"2":{"231":1}}],["ctrl",{"2":{"143":1}}],["cygwin",{"2":{"222":1}}],["cmd中默认的可执行文件",{"2":{"222":1}}],["cmd",{"2":{"222":1}}],["cmdlet",{"2":{"217":1}}],["ceventlistener",{"2":{"252":1}}],["ceventdispatcher类封装的事件处理",{"2":{"248":1}}],["ceventdispatcher",{"2":{"248":1}}],["celery",{"2":{"195":1}}],["cesrf",{"2":{"190":1}}],["central",{"2":{"92":1}}],["centered",{"2":{"271":1,"279":2}}],["centerxanchor",{"2":{"210":2}}],["centeryanchor",{"2":{"210":2}}],["center",{"0":{"78":1},"2":{"10":1,"58":1,"59":1,"72":1,"88":1,"89":1,"110":1,"113":1,"114":1,"115":1,"117":2,"119":3,"121":2,"125":1,"129":2,"179":1}}],["cgrect",{"2":{"165":4,"166":2}}],["cgpoint",{"2":{"165":1,"166":15}}],["cgfloat",{"2":{"159":2,"168":4}}],["ciaochaos",{"2":{"231":1}}],["city案例",{"2":{"296":1}}],["city",{"2":{"85":1,"136":1}}],["circle",{"2":{"138":3,"139":1,"161":3,"164":1,"167":1,"168":1,"177":1}}],["circleavatar",{"0":{"84":1},"2":{"66":1}}],["circularprogressindicator",{"2":{"110":1}}],["circular",{"2":{"70":1,"167":1,"168":1}}],["createelement",{"2":{"308":3}}],["create阶段合并成了setup阶段",{"2":{"307":1}}],["createobjecturl",{"2":{"298":1}}],["createtopuporder",{"2":{"298":1}}],["created",{"2":{"293":2,"307":1}}],["createcommandencoder",{"2":{"250":1}}],["create",{"2":{"178":1,"225":1,"285":1,"289":1}}],["createstate",{"2":{"67":1,"89":1,"110":1,"119":1,"123":1}}],["creditcard",{"2":{"161":1,"162":1}}],["crowncad",{"2":{"257":1}}],["crop",{"2":{"161":1,"164":1}}],["cross将spir",{"2":{"99":1}}],["crossaxisalignment",{"2":{"77":2,"123":2}}],["crossaxisspacing",{"2":{"66":1}}],["css",{"2":{"236":2,"285":1,"300":1}}],["css和javascript的渲染",{"2":{"101":1,"308":1}}],["css中的ease",{"2":{"32":3}}],["css中的ease的贝塞尔曲线",{"2":{"32":1}}],["css中如果声明了无效的三次贝塞尔曲线",{"2":{"32":1}}],["css动画中使用的贝塞尔曲线其实是三次贝塞尔曲线",{"2":{"32":1}}],["cubes",{"2":{"264":1}}],["cubic",{"2":{"32":6}}],["cubicbeziercurve3",{"2":{"32":6}}],["cucumber",{"2":{"195":1}}],["currently",{"2":{"285":1}}],["currentstate",{"2":{"123":1}}],["curveobject",{"2":{"32":2}}],["curve",{"2":{"32":6}}],["customize",{"2":{"286":1,"294":1}}],["custom",{"0":{"273":1,"282":1,"284":1},"1":{"283":1,"284":1,"285":1},"2":{"10":1,"173":2,"273":3,"278":1,"282":1,"284":1,"294":1}}],["cameras",{"2":{"261":2}}],["camera3d",{"0":{"249":1},"2":{"243":1,"249":1}}],["camera",{"0":{"261":1},"2":{"243":4,"246":1,"261":2}}],["cameraobj",{"2":{"243":2}}],["cameradesciption",{"2":{"103":1}}],["calculatestatistics",{"2":{"197":2}}],["call可以调用函数",{"2":{"235":1}}],["call的使用",{"2":{"235":1}}],["calling",{"2":{"119":1}}],["call",{"0":{"232":1},"1":{"233":1,"234":1,"235":1},"2":{"28":1,"235":3,"239":1}}],["callback",{"2":{"10":1,"89":1,"140":3}}],["catch",{"2":{"180":1,"202":4}}],["catmull",{"2":{"32":1}}],["catmullromcurve3",{"2":{"32":1}}],["caption2",{"2":{"167":1,"168":1}}],["capsule",{"2":{"158":1}}],["case",{"2":{"136":2,"138":2,"167":8,"168":8,"179":3,"195":3,"200":7,"202":3,"222":1}}],["cannot",{"2":{"204":1,"218":1}}],["candy",{"2":{"202":1}}],["canvasconfig",{"2":{"247":1}}],["canvas",{"2":{"166":1,"247":1,"262":2}}],["canvasview",{"2":{"166":1}}],["canvas动画",{"0":{"166":1}}],["canvas中绘制中间logo",{"2":{"231":1}}],["canvas中绘制sf图标",{"2":{"165":1}}],["canvas中绘制图片",{"2":{"165":1}}],["canvas中绘制圆",{"2":{"165":1}}],["canvas画布",{"0":{"165":1}}],["can",{"2":{"131":3,"270":3,"272":1,"275":3,"281":1,"282":1,"285":2,"287":1,"288":1,"291":2,"292":1,"293":5,"294":1}}],["cancle",{"2":{"124":1}}],["cache",{"2":{"97":1}}],["ca",{"2":{"85":1}}],["card",{"0":{"80":1},"2":{"65":1}}],["cadfile",{"2":{"266":1}}],["cad只需要最基础的平移和缩放操作即可",{"2":{"263":1}}],["cad中没有光照",{"2":{"263":1}}],["cad",{"2":{"257":1}}],["cad目前的研发工作已经比较难在短时间内有一个阶段性的进展",{"2":{"256":1}}],["cad的批注数据不一定所有图纸都有",{"2":{"266":1}}],["cad的图纸填充这个可以后面再考虑",{"2":{"245":1}}],["cad的内存泄漏问题",{"0":{"28":1}}],["cad优化",{"0":{"24":1},"1":{"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1}}],["cad思路和流程",{"0":{"23":1}}],["cn",{"2":{"20":1,"54":2,"55":2,"76":1,"92":1,"93":1,"94":1,"97":2,"98":1,"100":1,"123":1,"128":1,"130":1,"146":1,"149":2,"183":1,"184":1,"185":3,"217":2,"251":1,"264":2}}],["c",{"2":{"18":1,"124":2,"125":2,"250":2,"252":2}}],["clear",{"2":{"137":1,"168":1}}],["cleanup选项来禁止删除下载的包",{"2":{"227":1}}],["clean",{"2":{"103":2}}],["cloud",{"2":{"257":1}}],["cloudxr网站申请获得",{"2":{"55":1}}],["cloudxr部署",{"2":{"55":1}}],["cloudxr平台基于腾讯云的部署和应用",{"2":{"53":1}}],["cloudxr",{"0":{"53":1},"1":{"54":1,"55":1},"2":{"53":1,"55":2}}],["closesubpath",{"2":{"166":1}}],["close",{"2":{"8":1,"51":1,"119":2}}],["click",{"2":{"284":2}}],["click=",{"2":{"236":1}}],["clicked",{"2":{"209":1}}],["clicking",{"2":{"178":1}}],["client",{"2":{"55":2,"270":1}}],["cli",{"2":{"21":2,"216":1,"217":1,"223":2,"299":1}}],["classname",{"2":{"252":2}}],["class=",{"2":{"236":7,"285":1}}],["class中的成员属性必须给个默认值",{"2":{"43":1}}],["class类",{"0":{"43":1},"1":{"44":1,"45":1}}],["class",{"2":{"16":1,"44":1,"45":1,"89":3,"110":3,"113":1,"114":1,"115":2,"117":2,"118":3,"119":4,"121":2,"123":3,"129":3,"174":1,"199":2,"202":1,"209":1,"223":1,"252":2,"285":1}}],["chrome浏览器",{"0":{"144":1}}],["chrome显示一个页面",{"2":{"101":1}}],["check",{"2":{"217":1,"285":1}}],["checkmark",{"2":{"138":1,"161":1,"164":1}}],["checkboxshape",{"2":{"138":3}}],["checkboxstyle",{"2":{"138":3}}],["checked",{"2":{"119":1}}],["chore",{"2":{"133":1}}],["chmod",{"2":{"103":1}}],["chksm=be585f63892fd6758ccbf517fba2a5a93da38afb49418c34eac8209e9c93d3e47702ef12ac1f",{"2":{"102":1}}],["chipss",{"2":{"202":1}}],["chips",{"2":{"202":1}}],["chip版本",{"2":{"94":1}}],["china",{"2":{"164":1,"175":1}}],["childlinode",{"2":{"308":3}}],["childulnode",{"2":{"308":3}}],["childnode",{"2":{"308":3}}],["child",{"2":{"58":1,"59":2,"62":4,"66":3,"70":1,"74":1,"78":1,"79":1,"80":1,"81":1,"82":1,"86":1,"87":1,"88":3,"89":5,"90":1,"110":1,"113":2,"114":2,"115":2,"117":4,"118":1,"119":7,"121":6,"123":3,"124":6,"125":3,"129":4,"313":4}}],["children",{"2":{"6":1,"61":1,"62":1,"63":1,"66":2,"77":1,"83":1,"119":1,"121":1,"123":1,"124":1,"125":1}}],["character",{"2":{"205":2}}],["chart",{"2":{"5":5,"6":5,"7":5,"8":5,"9":5,"10":5}}],["chao",{"2":{"164":1}}],["chaochao2",{"2":{"299":1}}],["chaochao",{"2":{"16":1,"17":1,"21":1,"97":3,"216":1,"223":2,"299":1}}],["change",{"2":{"8":1}}],["coins",{"2":{"202":1}}],["coinsdeposited",{"2":{"202":4}}],["coinsneeded",{"2":{"202":4}}],["cocoapods如何发布公有库",{"0":{"185":1}}],["cocoapods",{"0":{"175":1},"2":{"175":2}}],["cos",{"2":{"166":2}}],["corresponding",{"2":{"275":1}}],["correct",{"2":{"217":1}}],["core",{"2":{"248":2,"249":1,"260":2}}],["core库中list",{"2":{"47":1}}],["cornerradius",{"2":{"152":1,"155":1,"159":10,"167":3,"168":3,"176":1,"179":1}}],["codable",{"2":{"136":3,"141":1}}],["codeimage",{"2":{"298":2}}],["codeblock",{"2":{"289":1}}],["code",{"0":{"269":1,"286":1,"287":1,"288":1,"289":1,"290":1,"292":1},"2":{"96":1,"193":2,"247":2,"265":1,"281":5,"284":2,"286":2,"287":2,"288":5,"289":5,"290":5,"291":2,"292":2,"293":1}}],["codeactionsonsave",{"2":{"1":1,"218":1}}],["cool",{"2":{"271":1,"279":2}}],["cookbook",{"2":{"123":1}}],["coordinate",{"2":{"3":1,"6":1}}],["course",{"2":{"172":1}}],["courses",{"2":{"172":1,"177":1}}],["could",{"2":{"86":1}}],["country",{"2":{"180":2}}],["count++",{"2":{"129":1,"229":2}}],["counter",{"2":{"129":1,"229":1}}],["count",{"2":{"66":1,"129":6,"140":4,"202":6,"205":1,"229":10}}],["cover",{"2":{"66":1,"75":1}}],["coloured",{"2":{"286":1}}],["colored",{"0":{"289":1}}],["color或者其他的装饰",{"2":{"65":1}}],["colorscheme",{"2":{"159":3}}],["colorschemeseed",{"2":{"89":1}}],["colors",{"2":{"31":2,"59":2,"63":5,"66":2,"70":2,"72":1,"73":1,"76":2,"85":1,"90":4,"110":1,"124":3,"125":1,"157":2,"159":1,"165":1,"166":1,"289":1}}],["color",{"2":{"6":2,"7":1,"8":2,"32":1,"59":2,"63":5,"66":2,"70":3,"72":1,"73":1,"76":2,"85":1,"89":1,"124":1,"125":1,"137":1,"152":1,"154":2,"155":2,"165":1,"167":12,"168":13,"173":2,"176":2,"179":1,"240":4,"290":1,"308":1}}],["col",{"2":{"271":2,"279":4}}],["collidercomponent",{"2":{"242":2}}],["collider源码路径",{"2":{"242":1}}],["collider",{"2":{"242":1}}],["columns",{"2":{"176":1}}],["column同理",{"2":{"77":1}}],["column或其他复杂widget",{"2":{"60":1}}],["column",{"0":{"77":1},"2":{"57":1,"119":1,"123":1,"125":1}}],["co",{"2":{"27":1,"302":1}}],["condition",{"2":{"197":3}}],["control2",{"2":{"166":4}}],["control1",{"2":{"166":4}}],["controller中的变量可以是observable类型的变量",{"2":{"128":1}}],["controller是状态的管理者",{"2":{"128":1}}],["controller",{"0":{"212":1},"2":{"123":1,"129":3,"211":3,"212":1}}],["continuous",{"2":{"159":1,"167":2,"168":2,"176":1}}],["contained",{"2":{"275":1}}],["containers",{"0":{"282":1},"1":{"283":1,"284":1,"285":1},"2":{"282":1}}],["containersdefault",{"2":{"281":1}}],["container是一个widget",{"2":{"57":1}}],["container",{"0":{"70":1},"2":{"5":3,"6":3,"7":3,"8":3,"9":3,"10":3,"59":1,"65":1,"66":3,"174":1,"284":1,"285":1}}],["contains",{"2":{"177":1,"194":1}}],["contain",{"2":{"66":2,"75":1}}],["context3d",{"2":{"247":1}}],["context",{"2":{"58":1,"59":1,"89":3,"110":2,"113":1,"114":1,"115":1,"117":5,"118":5,"119":10,"121":1,"123":3,"124":14,"125":7,"129":2,"165":6,"166":2}}],["contentscustom",{"2":{"281":1}}],["contents",{"0":{"281":1},"2":{"282":1,"293":1}}],["contentsof",{"2":{"205":2}}],["contentview",{"2":{"162":2,"167":2,"168":1,"174":1}}],["contentmode",{"2":{"156":1,"177":1}}],["contenttextstyle",{"2":{"124":1}}],["content",{"2":{"51":2,"119":1,"123":1,"124":1,"139":2,"152":1,"159":3,"236":1}}],["converted",{"2":{"275":2}}],["convertednumber",{"2":{"194":5}}],["convert库",{"2":{"109":2}}],["convert",{"2":{"109":1,"110":1}}],["convertio",{"2":{"27":1}}],["conversion",{"2":{"10":1}}],["consola是一个功能更丰富",{"2":{"237":1}}],["consola",{"0":{"237":1}}],["console",{"2":{"16":1,"24":2,"28":1,"218":1,"223":2,"229":2,"233":2,"234":5,"235":6,"245":1,"252":7,"266":2,"284":1,"305":4}}],["constraint",{"2":{"209":2,"210":4}}],["constructor",{"2":{"16":1,"223":1,"252":1}}],["constants",{"2":{"236":1}}],["constant",{"2":{"171":1}}],["const",{"2":{"5":2,"6":2,"7":1,"8":1,"9":2,"10":1,"16":1,"17":2,"32":9,"34":1,"58":3,"59":3,"63":2,"66":5,"70":4,"76":1,"83":1,"85":2,"86":1,"87":1,"89":10,"110":5,"113":4,"114":4,"115":4,"117":8,"118":5,"119":13,"121":8,"123":8,"124":13,"125":8,"129":3,"218":1,"229":12,"231":1,"234":1,"235":6,"245":3,"250":2,"252":5,"285":1,"291":8,"292":4,"308":3}}],["conflicts",{"2":{"285":1}}],["conflict",{"2":{"4":1}}],["configurable",{"2":{"294":1}}],["configuration",{"0":{"294":1},"2":{"138":5,"281":1,"293":2}}],["configured",{"2":{"131":1,"272":1,"281":1,"293":1}}],["config",{"2":{"1":2,"19":3,"131":6,"218":2,"286":1,"291":2,"292":11,"294":4}}],["com访问到资源",{"2":{"299":1}}],["comes",{"2":{"271":1}}],["combine",{"0":{"174":1},"2":{"174":1}}],["commonjs插件来解决这个问题",{"2":{"218":1}}],["comments",{"2":{"289":1,"290":1}}],["comment",{"2":{"184":1,"217":2,"264":1,"266":2,"287":1,"288":1}}],["commit",{"0":{"133":1},"2":{"133":1}}],["commander",{"2":{"218":3}}],["commands",{"2":{"131":1}}],["command",{"2":{"4":1,"95":1,"96":1,"131":1,"143":1,"151":7,"218":1,"250":3,"252":1}}],["comp",{"2":{"236":2}}],["computed",{"2":{"229":2}}],["componentbase",{"2":{"252":1}}],["componentbase类实现自icomponent接口",{"2":{"252":1}}],["componentcollect",{"2":{"250":1,"252":1}}],["component",{"2":{"236":1,"285":1}}],["componentslateupdatelist",{"2":{"243":1}}],["componentsupdatelist",{"2":{"243":1}}],["componentscomputelist",{"2":{"243":1,"250":1,"252":1}}],["componentsbeforeupdatelist",{"2":{"243":1}}],["components",{"2":{"170":1,"242":1,"245":1,"278":1}}],["composite",{"2":{"19":5}}],["composition",{"2":{"3":1,"230":1}}],["completes",{"2":{"119":1}}],["com",{"2":{"2":2,"7":1,"8":1,"10":1,"53":1,"54":3,"55":1,"76":1,"92":4,"94":1,"102":1,"103":1,"108":1,"109":1,"110":1,"112":1,"113":1,"114":1,"115":1,"136":1,"137":1,"140":1,"142":1,"149":1,"162":2,"163":1,"175":1,"180":1,"183":1,"217":1,"231":3,"245":2,"251":1,"257":2,"265":1,"266":1,"294":2,"296":1,"299":1,"302":1}}],["gh",{"2":{"299":2}}],["given",{"2":{"275":1}}],["git分支更名",{"2":{"131":1}}],["git",{"0":{"147":1},"2":{"131":9,"231":3,"265":1}}],["git常用命令",{"0":{"131":1}}],["github",{"0":{"279":1},"2":{"54":1,"103":1,"217":1,"231":3,"265":1,"277":1,"294":2,"296":1,"302":1}}],["gpu",{"2":{"264":1}}],["gpu拾取是否就是缓冲区拾取",{"2":{"264":1}}],["gpu拾取",{"2":{"264":1}}],["gpgpu",{"2":{"26":1,"265":1}}],["gltf格式的数据格式是怎样的",{"0":{"312":1}}],["gl",{"2":{"262":1}}],["globalbindgroup",{"2":{"247":1}}],["globals",{"2":{"236":2}}],["global",{"2":{"131":1}}],["globalkey",{"2":{"123":1}}],["games101的图形学也可以慢慢的学起来了",{"2":{"258":1}}],["gap",{"2":{"119":1}}],["gzip压缩",{"2":{"256":1}}],["gfx",{"2":{"247":1}}],["g来安装",{"2":{"223":1}}],["gui",{"2":{"245":2}}],["guide",{"2":{"245":1}}],["guten",{"2":{"205":2}}],["guard",{"2":{"202":3}}],["good",{"2":{"195":2}}],["google",{"2":{"54":1,"76":1,"92":1}}],["golabstring",{"2":{"174":3}}],["go",{"2":{"117":1}}],["griditem",{"2":{"176":1}}],["grid",{"0":{"176":1}}],["gridview",{"2":{"65":1,"66":1}}],["graphics",{"2":{"247":1}}],["gradient",{"2":{"166":1}}],["gradle",{"2":{"92":2}}],["gray",{"2":{"137":1,"163":1,"177":1,"179":1}}],["greater",{"2":{"204":1}}],["greet",{"2":{"197":4}}],["greeting",{"2":{"194":3,"205":15}}],["green",{"2":{"63":3,"76":1,"124":2}}],["grey",{"2":{"124":1}}],["groups",{"0":{"292":1}}],["groupsmarkdown",{"2":{"281":1}}],["groupdetails表格header",{"2":{"281":1}}],["groupdata",{"2":{"24":1}}],["group",{"0":{"269":1},"2":{"167":1,"168":1,"292":2}}],["groupby",{"2":{"8":1}}],["gems",{"2":{"175":1}}],["gem",{"2":{"175":4}}],["gear",{"2":{"161":1,"162":1}}],["getelementbyid",{"2":{"308":3}}],["gets",{"2":{"274":1}}],["getshader",{"2":{"247":2}}],["getstring",{"2":{"121":1}}],["getting",{"2":{"270":1,"293":2}}],["gettime",{"2":{"245":2}}],["getters",{"2":{"229":1}}],["getcomponenttree",{"2":{"229":4}}],["getinstance",{"2":{"121":3,"252":3}}],["getdata",{"2":{"121":2,"229":5}}],["get",{"2":{"94":1,"97":1,"108":3,"109":1,"110":1,"112":1,"113":1,"114":2,"115":2,"127":2,"129":5,"136":1,"199":1,"201":1,"266":1,"272":1,"276":1,"277":1}}],["getx路由管理",{"2":{"130":1}}],["getxcontroller",{"2":{"129":1}}],["getx会将已经实例化的controller注入到我们需要使用它的widget中",{"2":{"128":1}}],["getx会自动通知所有依赖它的widget",{"2":{"128":1}}],["getx还提供了依赖注入的功能",{"2":{"128":1}}],["getx使用rx库来实现响应式编程",{"2":{"128":1}}],["getx使用和插件",{"2":{"100":1}}],["getx的状态管理原理是基于响应式编程和依赖注入的",{"2":{"128":1}}],["getx状态管理",{"0":{"128":1},"1":{"129":1}}],["getx安装",{"0":{"127":1}}],["getx是第三方的状态管理插件",{"2":{"68":1}}],["getx",{"0":{"68":1}}],["getname",{"2":{"40":1}}],["getpoints",{"2":{"32":1}}],["geometryreader",{"2":{"168":1}}],["geometry",{"0":{"173":1},"2":{"24":4,"25":1,"26":1,"32":2}}],["generated",{"2":{"273":1,"276":1}}],["generate",{"2":{"47":2,"66":1,"118":1}}],["generate的用法",{"2":{"47":1}}],["gender",{"2":{"7":1}}],["genre",{"2":{"5":6,"6":7}}],["g",{"2":{"12":1,"21":1,"205":3,"222":1}}],["gw",{"2":{"7":1}}],["gt",{"2":{"5":7,"6":7,"7":7,"8":8,"9":7,"10":8,"21":1,"47":5,"48":3,"49":1,"55":1,"66":4,"89":11,"103":6,"106":3,"108":1,"109":1,"110":8,"113":3,"114":2,"115":2,"117":1,"118":3,"119":6,"121":1,"123":3,"124":2,"129":8,"136":1,"138":1,"140":2,"142":1,"159":2,"166":1,"168":1,"176":1,"181":2,"194":1,"195":1,"197":11,"198":1,"199":6,"200":1,"202":1,"203":2,"204":2,"229":9,"235":3,"236":11,"238":2,"240":21,"270":6,"275":6,"285":1,"286":8,"288":1,"293":1,"294":1,"298":1,"308":4}}],["g2中的核心概念",{"2":{"3":1}}],["g2是一个简洁的渐进式语法",{"2":{"3":1}}],["g2学习",{"0":{"3":1}}],["g2官网",{"2":{"2":1}}],["g2",{"0":{"2":1},"1":{"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1},"2":{"2":3,"4":1,"5":1,"6":1,"7":1,"8":2,"9":1,"10":2}}],["luosijie",{"2":{"296":1}}],["l",{"2":{"103":1}}],["ls",{"2":{"103":1}}],["lot",{"2":{"294":1}}],["lorem",{"2":{"287":2}}],["location=global",{"2":{"216":1}}],["location",{"2":{"164":1,"240":1}}],["lock",{"2":{"103":1}}],["load提前判断资源是否存在",{"0":{"266":1}}],["loading",{"2":{"110":1}}],["load",{"2":{"110":1,"113":1,"114":1,"115":1}}],["logo",{"2":{"231":1}}],["loginview",{"2":{"139":3,"140":1}}],["logfile",{"2":{"51":2}}],["log",{"2":{"16":1,"24":2,"28":1,"51":2,"195":1,"223":2,"229":2,"233":2,"234":5,"235":6,"245":1,"252":7,"266":2,"284":2,"305":4}}],["li",{"2":{"286":4,"308":2}}],["like",{"2":{"270":1,"278":1,"292":1}}],["light1",{"2":{"240":3}}],["literal",{"2":{"205":1}}],["libraries",{"2":{"285":1}}],["library",{"2":{"167":6,"168":6}}],["library并将其打包到engine当中",{"2":{"99":1}}],["lib",{"2":{"103":1,"218":2}}],["lisi",{"2":{"42":1,"121":1,"305":3}}],["listener2",{"2":{"252":1}}],["listenerceventlistener",{"2":{"252":1}}],["listener1",{"2":{"252":2}}],["listeners",{"2":{"252":1}}],["liststyle",{"2":{"160":1,"164":1}}],["listrowseparator",{"2":{"160":2}}],["listrowseparatortint",{"2":{"160":2}}],["list的使用",{"0":{"160":1}}],["listpage",{"2":{"136":2}}],["listtile",{"0":{"85":1},"2":{"65":1,"118":1,"125":3}}],["listview",{"2":{"65":1,"118":1}}],["listview和stack",{"2":{"57":1}}],["list遍历方法",{"2":{"47":1}}],["list中的常用方法",{"2":{"47":1}}],["list",{"2":{"35":1,"47":4,"66":2,"98":1,"118":2,"136":1,"160":1,"164":2,"177":1,"197":3,"235":6,"244":1,"280":1,"286":1,"294":1}}],["linux",{"2":{"254":1}}],["link后的命令不会执行",{"2":{"218":1}}],["link后的命令才会用node命令执行",{"2":{"218":1}}],["link为什么不会让命令执行",{"2":{"218":1}}],["link创建的软连接并不会执行",{"2":{"218":1}}],["link以后",{"2":{"216":1}}],["link相当于将当前本地模块链接到npm目录下",{"2":{"216":1}}],["link命令",{"2":{"216":2}}],["link",{"2":{"162":4,"163":1,"218":1,"273":1,"275":1}}],["linkfillopacity",{"2":{"10":1}}],["linksfrontmattergithub",{"2":{"281":1}}],["linkspage",{"2":{"281":1}}],["links",{"0":{"274":1,"275":1,"277":1},"1":{"275":1,"276":1,"277":1},"2":{"10":1,"236":1,"272":1,"274":1,"275":1,"276":1,"277":1}}],["line3",{"2":{"291":4}}],["linenumbers",{"2":{"291":1}}],["lines",{"2":{"287":3,"288":2}}],["lines绘制",{"2":{"244":1}}],["linesegments",{"2":{"244":1}}],["linear",{"2":{"166":1}}],["lineargradient",{"2":{"157":2,"159":1,"165":1,"166":1}}],["linearprogressindicator",{"2":{"90":1}}],["linelimit",{"2":{"152":2,"167":1,"168":1}}],["linebasicmaterial",{"2":{"32":1}}],["line2",{"2":{"291":4}}],["line2通过使用顶点扩展",{"2":{"30":1}}],["line2通过使用自定义着色器",{"2":{"30":1}}],["line2使用自定义的着色器程序来渲染线条",{"2":{"30":1}}],["line2的底层原理包括以下重要步骤",{"2":{"30":1}}],["line",{"0":{"287":1,"291":1},"2":{"8":1,"9":1,"32":1,"131":1,"218":1,"244":1,"287":6,"288":1,"289":2,"290":1,"291":16}}],["level",{"2":{"294":1}}],["left",{"2":{"209":1}}],["less",{"2":{"204":1,"301":1}}],["lessthanten",{"2":{"197":2}}],["learn",{"2":{"167":2,"168":1}}],["leadinganchor",{"2":{"210":3}}],["leading",{"2":{"85":1,"137":2,"139":1,"152":3,"163":1,"173":4,"177":1}}],["leoafarias",{"2":{"98":1}}],["length",{"2":{"47":1,"118":1,"199":2,"234":3}}],["let将匹配等式的值赋给常量x",{"2":{"195":1}}],["letterspacing",{"2":{"72":1,"73":1}}],["let",{"2":{"24":2,"28":4,"136":2,"138":2,"140":4,"141":5,"142":3,"166":7,"174":1,"176":1,"179":1,"180":2,"189":3,"190":2,"191":5,"193":4,"194":2,"195":1,"197":4,"198":4,"199":4,"200":3,"202":3,"203":1,"205":11,"209":1,"211":1,"234":1,"235":2,"242":1,"243":1,"245":3,"250":5,"252":4,"298":2,"305":2,"308":2}}],["legend",{"2":{"6":1}}],["legacy",{"2":{"4":2}}],["launchscreen",{"2":{"208":1}}],["launches",{"2":{"119":1}}],["lazyvgrid",{"2":{"176":1}}],["lazy",{"0":{"176":1}}],["largest",{"2":{"195":4}}],["large",{"2":{"164":1}}],["largetitle",{"2":{"152":1,"173":2}}],["late",{"2":{"110":1}}],["lang",{"2":{"270":1,"278":1}}],["languages",{"2":{"286":2,"302":1}}],["language",{"2":{"99":2,"286":2}}],["lang=",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1}}],["layer",{"2":{"31":4}}],["layoutmargins",{"2":{"210":1}}],["layoutmarginsguide的y轴中心对齐",{"2":{"210":1}}],["layoutmarginsguide的左侧对齐",{"2":{"210":1}}],["layoutmarginsguide的顶部对齐",{"2":{"210":1}}],["layoutmarginsguide是一个有助于创建视图布局约束并考虑内边距的便捷工具",{"2":{"210":1}}],["layoutmarginsguide是在ios中用于指代视图的内边距区域的一个特殊属性",{"2":{"210":1}}],["layoutmarginsguide`包括以下四个属性",{"2":{"210":1}}],["layoutmarginsguide",{"2":{"209":2,"210":8}}],["layouts",{"2":{"173":2}}],["layout",{"2":{"10":1,"58":2,"236":1,"308":1}}],["label",{"2":{"138":2,"139":3,"161":3,"162":7,"163":6,"167":1,"168":1,"177":1,"178":1,"209":1}}],["labelfontweight",{"2":{"10":1}}],["labelspacing",{"2":{"10":1}}],["ltr",{"2":{"59":1}}],["lt",{"2":{"5":6,"6":6,"7":6,"8":6,"9":6,"10":6,"28":1,"47":4,"48":3,"49":1,"55":1,"66":1,"89":8,"103":4,"108":1,"109":1,"110":6,"113":2,"114":1,"115":1,"118":1,"119":4,"123":2,"124":2,"136":1,"160":1,"164":1,"176":1,"196":5,"197":2,"198":1,"202":1,"203":2,"204":1,"205":1,"236":9,"240":18,"245":2,"270":6,"275":6,"285":1,"286":8,"288":1,"293":1,"298":1}}],["绘制线段",{"2":{"244":1}}],["绘制线段的能力",{"0":{"244":1},"1":{"245":1}}],["绘制线条时",{"2":{"30":1}}],["绘制宽度和高度为50的logo",{"2":{"231":1}}],["绘制过程中使用canvas本身的尺寸信息做不同屏幕的自适应",{"2":{"165":1}}],["绘制桑基图来说",{"2":{"10":1}}],["绘制第一张图表",{"0":{"5":1}}],["绘制数据驱动的图形",{"2":{"3":1}}],["后端支付直接返回png处理",{"0":{"298":1}}],["后来就一直用语雀",{"2":{"295":1}}],["后期特效这些",{"2":{"263":1}}],["后面我也会慢慢用webgpu来重写cad的一个渲染层",{"2":{"256":1}}],["后面是函数返回值类型",{"2":{"240":1}}],["后面地东西都会被忽略",{"2":{"199":1}}],["后面的子项覆盖在基础widget的顶部",{"2":{"66":1,"83":1}}],["后面的优化方向",{"0":{"26":1}}],["后面有时间还是要学习学习",{"2":{"2":1}}],["后续的方向也会基于webgpu做更多的案例学习和尝试",{"2":{"258":1}}],["后续可以尝试在自己的博客里面引入codepen",{"2":{"250":1}}],["后续补充了脚手架相关内容的学习",{"2":{"223":1}}],["后续即使给盒子增加了宽度",{"2":{"137":1}}],["后续尝试简单复现却并没有将问题复现出来",{"2":{"28":1}}],["后续学习一下如何使用eslint的配置安装",{"2":{"21":1}}],["后续又换了一个干净的vue3项目",{"2":{"4":1}}],["后两个是npm",{"2":{"19":1}}],["或许我们也可以尝试把cad做成一个网页版的autocad",{"2":{"256":1}}],["或try",{"2":{"202":1}}],["或者ie里的currentstyle时",{"2":{"308":1}}],["或者在",{"2":{"210":1}}],["或者try",{"2":{"202":1}}],["或者使用",{"2":{"197":1}}],["或者类型",{"2":{"193":1}}],["或者根本没有值",{"2":{"193":1}}],["或者有值",{"2":{"193":1}}],["或",{"2":{"4":1,"19":1,"194":1}}],["当对dom节点有较大改动时",{"2":{"308":1}}],["当元素的位置发生变化时",{"2":{"308":1}}],["当元素样式的改变不影响它在文档流中的位置时",{"2":{"308":1}}],["当天下午就用vitepress搭建了一个自己的文档站点",{"2":{"295":1}}],["当我们调用getcomputedstyle方法",{"2":{"308":1}}],["当我们需要使用controller时",{"2":{"128":1}}],["当我安装了以后",{"2":{"218":1}}],["当一个函数抛出一个错误时",{"2":{"202":1}}],["当一个observable对象的值改变时",{"2":{"128":1}}],["当函数主动维护了在函数内使用的外部的变量",{"2":{"197":1}}],["当你想要子进程返回大量数据给node时",{"2":{"313":1}}],["当你确定可选类型确定包含值之后",{"2":{"194":1}}],["当你通过一个值来声明变量和常量时",{"2":{"189":1}}],["当self是结构体或枚举实例时",{"2":{"140":1}}],["当observabel对象的值改变时",{"2":{"129":1}}],["当父部件重建时",{"2":{"67":1}}],["当某个布局太大而超出屏幕时",{"2":{"62":1}}],["当子类中存在和父类同名的方法时",{"2":{"45":1}}],["当前的依赖项和之前安装的某些包需求的依赖项有冲突",{"2":{"4":1}}],["当然",{"2":{"1":1,"251":1}}],["b237",{"2":{"217":1}}],["being",{"2":{"293":1}}],["beginning",{"2":{"286":1}}],["better",{"2":{"285":1}}],["bell",{"2":{"167":1,"168":1}}],["beforedestroy",{"2":{"307":1}}],["beforeupdate",{"2":{"307":1}}],["beforemount",{"2":{"307":1}}],["beforecreate",{"2":{"307":1}}],["before",{"2":{"131":1,"205":4}}],["be",{"2":{"118":1,"119":1,"204":2,"272":1,"275":1,"278":1,"281":1,"282":1,"285":2,"293":2}}],["bezier",{"2":{"32":6}}],["bytedance",{"2":{"183":1}}],["by",{"2":{"110":1,"131":1,"178":1,"276":1,"282":1,"284":1,"287":1,"291":2,"293":1}}],["branches",{"2":{"131":2}}],["branch",{"2":{"131":1}}],["brew",{"2":{"98":2,"146":1,"175":1}}],["broken",{"2":{"4":1}}],["banner",{"2":{"218":1}}],["bar",{"2":{"202":1,"270":6,"275":7}}],["barrierdismissible",{"2":{"124":2}}],["baidu",{"2":{"162":2,"163":1}}],["badge",{"2":{"161":1,"164":1}}],["backticks",{"2":{"286":1}}],["back",{"2":{"117":1}}],["background=",{"2":{"308":1}}],["backgroundcolor",{"2":{"90":2,"124":1,"207":1,"209":1}}],["backgroundimage",{"2":{"66":1,"84":1}}],["background",{"2":{"65":1,"137":1,"152":1,"155":2,"161":2,"167":2,"168":2,"172":1,"173":4,"176":1,"177":1}}],["basics",{"2":{"117":1,"293":4}}],["basic",{"2":{"115":1}}],["basis",{"2":{"8":1}}],["based",{"2":{"257":1}}],["basedir=`cygpath",{"2":{"222":1}}],["basedir=$",{"2":{"222":1}}],["baseurl",{"2":{"114":1,"115":1}}],["baseoptions",{"2":{"114":2,"115":2}}],["base",{"2":{"97":1,"205":1}}],["basement",{"2":{"7":1}}],["bash",{"2":{"97":2,"132":1}}],["bg",{"2":{"62":4,"66":3,"70":1,"75":1,"84":1}}],["blur",{"2":{"288":1}}],["blue",{"2":{"85":1,"110":1,"138":1,"152":1,"157":2,"160":1,"161":3,"163":1,"165":1,"166":1,"167":1,"168":1,"173":1}}],["blank",{"2":{"277":1}}],["black38",{"2":{"70":1}}],["black45",{"2":{"66":1}}],["black",{"2":{"63":2,"72":1,"73":1,"76":1,"90":1,"125":1,"139":3,"159":1,"173":1}}],["black87",{"2":{"59":1}}],["blendmode",{"2":{"159":1,"167":1,"168":1}}],["block",{"2":{"283":2,"286":1}}],["blocks",{"0":{"286":1,"287":1,"288":1,"289":1,"290":1},"2":{"286":1,"291":2,"292":1}}],["blockserrors",{"2":{"281":1}}],["blockscolored",{"2":{"281":1}}],["blocksfocus",{"2":{"281":1}}],["blocksline",{"2":{"281":2}}],["blob",{"2":{"103":1,"298":4}}],["blogging",{"2":{"270":1,"278":1}}],["blog",{"2":{"2":1}}],["blink渲染引擎使用skia来处理所有的2d图形操作",{"2":{"101":1,"308":1}}],["blink渲染引擎是google开发的一种基于webkit的渲染引擎",{"2":{"101":1,"308":1}}],["buycode",{"2":{"298":1}}],["but",{"2":{"287":2}}],["button",{"2":{"138":1,"139":2,"140":1,"142":1,"163":4,"167":1,"168":1,"177":1,"178":1}}],["built",{"2":{"271":1}}],["builtin",{"2":{"240":1}}],["builder",{"2":{"110":1,"117":1,"118":2,"119":1,"124":2,"125":1,"210":1}}],["buildgridtilelist",{"2":{"66":2}}],["buildgrid",{"2":{"66":1}}],["buildstack",{"2":{"66":1}}],["buildcontext",{"2":{"58":1,"59":1,"89":3,"110":1,"113":1,"114":1,"115":1,"117":2,"118":2,"119":5,"121":1,"123":2,"124":2,"125":1,"129":1}}],["build",{"2":{"58":1,"59":1,"67":2,"89":2,"103":1,"106":1,"110":1,"113":1,"114":1,"115":1,"117":2,"118":2,"119":3,"121":1,"123":2,"129":2,"133":1,"152":1,"173":2,"236":3}}],["buffergeometry",{"2":{"24":1,"32":1}}],["buffergeometry先进行insert数据的旋转",{"2":{"24":1}}],["b",{"2":{"36":7,"48":4,"66":1,"124":2,"125":2}}],["both",{"2":{"274":1,"287":1}}],["bottomanchor",{"2":{"210":1}}],["bottom",{"2":{"159":1,"167":2,"168":2,"176":1}}],["bottomtrailing",{"2":{"157":2,"165":1}}],["book",{"2":{"265":1}}],["boolean",{"2":{"305":1}}],["bool",{"2":{"35":1,"171":1,"174":1,"188":1,"197":3}}],["bound",{"2":{"242":1}}],["bob",{"2":{"197":2}}],["borderradius",{"2":{"70":2}}],["border",{"2":{"70":2,"86":1,"137":2}}],["borders",{"2":{"65":1}}],["box",{"2":{"278":1,"283":2}}],["boxfit",{"2":{"66":1,"75":1}}],["boxdecoration",{"2":{"59":1,"66":1,"70":3}}],["body",{"2":{"58":1,"71":1,"89":1,"105":1,"109":1,"110":2,"113":1,"114":1,"115":1,"117":2,"118":2,"119":2,"121":1,"123":1,"129":2,"140":1,"159":1,"166":1,"167":2,"168":2,"173":1,"174":1,"177":1}}],["bold",{"2":{"10":1,"66":1,"137":1,"152":1,"167":1,"168":1,"173":2,"177":2}}],["bb",{"2":{"28":2,"189":3,"190":2,"191":1,"252":2}}],["bignumber",{"2":{"306":1}}],["bigint是es10新增的数据类型",{"2":{"305":1}}],["bigint",{"2":{"305":1}}],["bitmap",{"2":{"245":1}}],["billing",{"2":{"160":1,"161":1,"162":1}}],["biz=mjm5mda2mti1ma==",{"2":{"102":1}}],["bind不会直接调用函数",{"2":{"235":1}}],["bind的使用",{"2":{"235":1}}],["bind",{"0":{"232":1},"1":{"233":1,"234":1,"235":1},"2":{"235":3}}],["binding",{"2":{"171":1}}],["binaryify",{"2":{"231":1}}],["bin下",{"2":{"223":1}}],["bin下生成软链接",{"2":{"223":1}}],["bin下的软链接",{"2":{"222":1}}],["bin",{"0":{"216":1},"2":{"97":3,"216":1,"218":3,"222":6,"223":1}}],["bin是flutter安装路径",{"2":{"97":1}}],["bimface的cad图纸加载图纸消耗的内存很少",{"2":{"29":1}}],["birds顺便来学一学在three中如何使用着色器并且如何实现一些优雅的效果",{"2":{"265":1}}],["birds",{"2":{"26":1}}],["bio",{"2":{"10":1}}],["b039",{"2":{"7":1}}],["npx执行完成之后",{"0":{"227":1}}],["npx不会像npm或yarn一样将包下载到本地的node",{"2":{"226":1}}],["npx会在执行完命令后删除下载的包",{"2":{"227":1}}],["npx会在执行时",{"2":{"225":1}}],["npx会把远端的包下载到本地吗",{"0":{"226":1}}],["npx",{"0":{"224":1},"1":{"225":1,"226":1,"227":1},"2":{"225":1}}],["npm发布的sdk通过链接形式访问",{"0":{"299":1}}],["npmpnpmyarn",{"2":{"269":1}}],["npm",{"0":{"19":1,"221":1,"222":1},"1":{"222":1,"223":1},"2":{"4":2,"19":2,"20":1,"133":1,"216":2,"218":5,"222":1,"269":1,"285":1}}],["nginx",{"0":{"219":1},"1":{"220":1}}],["nslayoutconstraint",{"2":{"209":1,"210":1}}],["nscamerausagedescription",{"2":{"103":1}}],["nine",{"2":{"200":1}}],["nil不能用于非可选的常量和变量",{"2":{"193":1}}],["nil",{"2":{"193":1,"194":3}}],["nvm",{"0":{"146":1},"2":{"146":1}}],["nvidia",{"0":{"53":1},"1":{"54":1,"55":1},"2":{"53":1}}],["navigateanddisplayselection",{"2":{"119":2}}],["navigator",{"2":{"117":2,"118":1,"119":6,"124":5,"125":3}}],["navigationtitle",{"2":{"160":1,"164":1,"177":1}}],["navigationbartitledisplaymode",{"2":{"177":1}}],["navigationbardrawer",{"2":{"177":1}}],["navigationbar中指定数据接收",{"2":{"171":1}}],["navigationbar",{"2":{"171":2}}],["navigationbaritems",{"2":{"139":1,"177":1}}],["navigationbarbackbuttonhidden",{"2":{"139":1}}],["navigationlink",{"0":{"162":1},"2":{"139":1,"162":3}}],["navigationview",{"0":{"160":1},"2":{"139":4,"177":1}}],["navigation",{"2":{"117":1,"170":1,"275":1}}],["nativexr",{"2":{"55":1}}],["named",{"2":{"285":1}}],["namedshape",{"2":{"199":4}}],["namespace",{"2":{"173":10}}],["name",{"2":{"16":5,"28":2,"40":1,"41":2,"42":1,"43":5,"44":5,"45":5,"114":1,"115":1,"121":3,"136":2,"141":4,"190":1,"194":2,"199":17,"202":4,"205":1,"217":2,"223":5,"234":12,"235":9,"236":2,"286":2,"305":7}}],["n",{"2":{"51":1,"151":1,"196":4,"205":1}}],["numberoflines",{"2":{"209":1}}],["numberoftimes",{"2":{"203":3}}],["numberofsides",{"2":{"199":9}}],["numberscode",{"2":{"281":1}}],["numbers",{"0":{"291":1},"2":{"195":2,"197":2,"198":7,"291":8}}],["number",{"2":{"193":2,"195":3,"197":4,"198":4,"229":1,"252":7,"288":1,"305":1}}],["nummap",{"2":{"49":4}}],["numset",{"2":{"48":4}}],["numlist",{"2":{"47":12}}],["null",{"2":{"35":1,"50":1,"123":2,"305":1}}],["n+1个控制点",{"2":{"32":1}}],["n阶贝塞尔曲线",{"2":{"32":1}}],["net",{"2":{"299":2}}],["net也可以这样访问github上面的资源",{"2":{"299":1}}],["netrequest",{"2":{"114":2,"115":3}}],["neat",{"2":{"271":1,"279":2}}],["never",{"2":{"172":1}}],["nextvalue",{"2":{"168":2}}],["next",{"2":{"131":1,"218":1,"287":2}}],["need",{"2":{"131":2,"286":1}}],["needs",{"2":{"118":1}}],["nested",{"2":{"293":1}}],["nest",{"2":{"21":1}}],["nestjs",{"2":{"21":1}}],["newpos",{"2":{"265":1}}],["newlist",{"2":{"235":6}}],["new绑定时",{"2":{"234":1}}],["newitem",{"2":{"202":3}}],["newvalue",{"2":{"199":2}}],["new",{"2":{"5":1,"6":1,"7":1,"8":2,"9":1,"10":1,"16":1,"17":2,"21":1,"24":1,"32":28,"119":1,"231":1,"234":1,"243":3,"245":3,"247":1,"248":1,"252":2,"262":1,"266":1,"298":1}}],["noreferrer",{"2":{"277":1}}],["normal",{"2":{"167":1,"168":1}}],["normalizey",{"2":{"8":1}}],["no",{"2":{"131":1,"218":2,"227":1,"291":1}}],["nope",{"2":{"119":3}}],["nonzero",{"2":{"96":1}}],["none",{"2":{"72":1}}],["nowtime",{"2":{"245":2}}],["now是获取的当前时间的毫秒数",{"2":{"166":1}}],["now",{"2":{"51":1,"166":5,"167":2,"168":1}}],["noemit时使用命令行参数",{"2":{"19":1}}],["noemit",{"2":{"19":5}}],["node的子进程有哪些方法",{"0":{"313":1}}],["nodenext",{"2":{"218":2}}],["node版本需要",{"2":{"21":1}}],["node依赖",{"2":{"16":1}}],["node生效",{"2":{"16":1}}],["node",{"2":{"16":3,"19":3,"218":5,"222":3,"313":2}}],["node来运行自己的测试代码",{"2":{"11":1}}],["nodestrokewidth",{"2":{"10":1}}],["nodepadding",{"2":{"10":1}}],["nodealign",{"2":{"10":1}}],["note",{"2":{"288":1,"289":1,"290":1,"293":1}}],["notice",{"2":{"270":1}}],["notifications",{"2":{"167":8,"168":8}}],["notfound",{"2":{"236":2}}],["not",{"2":{"1":1,"86":1,"191":2,"217":1,"266":1,"270":1,"284":2,"285":1,"293":2}}],["right",{"2":{"271":1,"279":2,"284":1}}],["r$",{"2":{"262":1}}],["r144",{"2":{"252":4}}],["rules",{"2":{"218":1}}],["ruby",{"2":{"175":1}}],["rubygems",{"2":{"175":2}}],["run执行的脚手架命令",{"2":{"217":1}}],["running",{"2":{"131":1}}],["runner",{"2":{"96":1,"103":1,"106":1}}],["runapp",{"2":{"89":1,"110":1,"113":1,"114":1,"115":1,"117":1,"118":1,"119":1,"121":1,"123":1,"129":2}}],["run",{"0":{"19":1,"221":1,"222":1},"1":{"222":1,"223":1},"2":{"1":1,"16":1,"19":7,"20":1,"21":1,"218":1,"223":2}}],["r",{"2":{"103":1,"175":1}}],["rasterization",{"2":{"311":1}}],["raw",{"0":{"285":1},"2":{"285":4}}],["rawvalue",{"2":{"138":2,"200":2}}],["raycaster",{"0":{"264":1}}],["raisins",{"2":{"195":1}}],["radians",{"2":{"166":2}}],["radius",{"2":{"66":1,"70":1,"84":1,"152":1,"154":1,"155":1}}],["ranges",{"2":{"287":3}}],["range",{"2":{"205":2}}],["rangeerror",{"2":{"28":1}}],["rank",{"2":{"200":2}}],["random",{"2":{"136":2,"140":2,"142":2,"180":2}}],["rollup",{"2":{"218":1}}],["root",{"2":{"212":1,"270":1,"275":1,"293":2}}],["roundedrectangle",{"2":{"159":1,"167":2,"168":2,"176":1}}],["router",{"2":{"275":1,"285":1}}],["route",{"2":{"117":3}}],["roboto",{"2":{"72":1,"73":1}}],["row",{"0":{"77":1},"2":{"61":1,"121":1}}],["row和column是水平和垂直布局的基本原始widgets",{"2":{"60":1}}],["row和column是两种最常用的布局模式",{"2":{"60":1}}],["row和column每个都有一个子widgets列表",{"2":{"60":1}}],["rom算法",{"2":{"32":1}}],["rotatez",{"2":{"24":2}}],["rotationeffect",{"2":{"166":1}}],["rotation",{"2":{"24":4}}],["relative",{"2":{"293":1}}],["rel=",{"2":{"277":1}}],["re",{"2":{"285":1}}],["revision",{"2":{"262":1}}],["reviews",{"2":{"72":1}}],["rename",{"2":{"305":4}}],["renamed",{"2":{"252":2}}],["renderele",{"2":{"308":4}}],["renderer",{"2":{"294":1}}],["renderers",{"2":{"262":1,"263":2}}],["rendered",{"2":{"293":1}}],["rendering",{"2":{"272":1,"281":1}}],["render方法的目标是在webgl上下文中呈现场景和相机",{"2":{"263":1}}],["render方法的代码并不算很多",{"2":{"263":1}}],["render方法执行",{"2":{"250":1}}],["render",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"250":1}}],["register",{"2":{"247":2}}],["reference",{"2":{"294":1}}],["ref",{"2":{"229":3}}],["refactor",{"2":{"133":1}}],["readme",{"2":{"299":1}}],["readasstring",{"2":{"51":1}}],["reate",{"2":{"225":1}}],["reactivity这一块的源代码大概是2100行左右",{"2":{"239":1}}],["react现成的组件",{"2":{"231":1}}],["react",{"2":{"217":1,"225":1}}],["recognized",{"2":{"217":1}}],["reconcile",{"2":{"131":2}}],["rectangle",{"2":{"167":2,"168":2}}],["rect",{"2":{"166":3}}],["remainder",{"2":{"166":4}}],["removed",{"2":{"289":2}}],["removedata",{"2":{"121":2}}],["removeeventlistener",{"2":{"248":1,"260":1}}],["removesubrange",{"2":{"205":2}}],["removecurrentsnackbar",{"2":{"119":1}}],["remove方法根据key移除元素",{"2":{"49":1}}],["removelast",{"2":{"47":1}}],["removeat",{"2":{"47":1}}],["remove",{"2":{"47":1,"48":1,"49":1,"121":1,"205":2}}],["repeating",{"2":{"203":2}}],["repeat",{"2":{"196":2}}],["repeatforever",{"2":{"166":1}}],["repositories",{"2":{"131":1}}],["repository",{"2":{"92":4,"286":1}}],["replace",{"2":{"131":1}}],["rebase",{"2":{"131":6}}],["require",{"2":{"231":1,"294":2}}],["required",{"2":{"41":1,"110":3,"118":2,"285":1,"288":1,"289":1,"290":1}}],["requestanimationframe",{"2":{"250":1}}],["request按钮",{"2":{"132":2}}],["request你可以在你的github代码仓库页面切换到branches页面点击branch1分支后点击new",{"2":{"132":1}}],["request时会导致冲突",{"2":{"132":1}}],["request需要实操一遍",{"2":{"132":1}}],["request",{"0":{"132":1},"1":{"133":1},"2":{"136":1,"298":1}}],["requestinterceptorhandler",{"2":{"115":1}}],["requestoptions",{"2":{"115":1}}],["requesttest",{"2":{"113":2,"114":2,"115":2}}],["reduce",{"2":{"168":1}}],["red",{"2":{"90":1,"137":2,"154":1,"155":1,"157":1,"160":1,"163":1,"167":1,"168":1,"173":1,"176":2,"308":1}}],["rest",{"2":{"278":1}}],["restaurant",{"2":{"85":1}}],["resume",{"2":{"250":2}}],["result",{"2":{"119":6,"124":4,"125":2,"136":1,"140":8,"142":4,"198":2,"203":3}}],["resizable",{"2":{"138":1,"152":2,"155":1,"156":1,"172":1,"177":1,"179":1}}],["resizetoavoidbottominset",{"2":{"105":1}}],["res",{"2":{"136":2,"203":2,"229":4,"298":1}}],["reset",{"2":{"131":1}}],["responsetype",{"2":{"298":1}}],["responsedecodable",{"2":{"136":1}}],["responselist",{"2":{"136":3}}],["responseinterceptorhandler",{"2":{"115":1}}],["response",{"2":{"108":1,"109":3,"110":3,"112":2,"113":4,"114":4,"115":7,"167":1,"168":1,"173":1}}],["response类包含成功的http请求接收到的数据",{"2":{"108":1}}],["resolution",{"2":{"4":1}}],["returnfifteen",{"2":{"197":2}}],["returns",{"2":{"119":2}}],["returning",{"2":{"119":2}}],["return",{"2":{"9":1,"58":1,"59":1,"66":1,"89":2,"108":1,"109":1,"110":6,"113":2,"114":2,"115":2,"117":2,"118":3,"119":6,"121":2,"123":5,"124":2,"125":1,"129":1,"140":1,"142":1,"166":1,"197":9,"198":1,"199":7,"200":5,"203":1,"229":3,"240":2,"247":2,"252":1,"285":1,"287":6,"288":2,"289":2,"290":2,"298":1}}],["retry",{"2":{"4":1}}],["omit",{"2":{"270":1,"275":1}}],["ourcad",{"2":{"299":1}}],["ourcad由于没有在package",{"2":{"223":1}}],["ourbim",{"2":{"220":2,"266":1}}],["our",{"2":{"178":1}}],["output",{"2":{"279":1,"280":1,"281":1,"283":1,"284":1,"286":1,"287":3,"288":1,"289":1,"290":1,"291":1,"292":1,"311":1}}],["outbound",{"2":{"277":1}}],["out",{"2":{"202":1,"278":1,"285":1}}],["outofstock",{"2":{"202":3}}],["outlink",{"2":{"164":1}}],["outlineinputborder",{"2":{"86":1}}],["out的贝塞尔曲线",{"2":{"32":2}}],["overflow的语言趋势",{"2":{"302":1}}],["overlay",{"2":{"156":1,"159":2,"167":2,"168":3}}],["override",{"2":{"45":1,"58":1,"59":1,"89":3,"110":3,"113":1,"114":1,"115":3,"117":2,"118":2,"119":4,"121":1,"123":5,"129":2,"131":1,"199":2,"209":1,"291":1}}],["override注解进行示意",{"2":{"45":1}}],["ok",{"2":{"124":1,"191":1}}],["off",{"2":{"218":2}}],["offsetheight等",{"2":{"308":1}}],["offsetwidth",{"2":{"308":1}}],["offsetby",{"2":{"205":3}}],["offset",{"2":{"155":1,"156":1,"161":1,"172":1}}],["offsetpositiondata",{"2":{"31":2}}],["ofsize",{"2":{"209":1}}],["of",{"0":{"281":1},"2":{"118":1,"119":1,"123":1,"131":1,"178":1,"194":1,"199":2,"202":1,"217":2,"250":2,"252":2,"270":1,"272":1,"273":2,"275":1,"278":2,"280":1,"281":2,"284":1,"286":2,"288":2,"289":2,"294":2}}],["olexale",{"2":{"103":1}}],["obj",{"2":{"234":2,"242":2,"305":3}}],["objc",{"2":{"209":2}}],["object3d",{"2":{"242":1,"243":2,"248":5,"260":2}}],["object",{"2":{"34":1,"305":1}}],["object是所有类的基类",{"2":{"34":1}}],["object和dynamic的区别",{"2":{"34":1}}],["observableobject",{"2":{"174":1}}],["observable类型的变量",{"2":{"129":1}}],["obs",{"2":{"129":2}}],["obx通常用于绑定单个变量的情况",{"2":{"129":1}}],["obx会自动重新构建widget",{"2":{"129":1}}],["obx是getx库中的一个特殊widget",{"2":{"129":1}}],["obx",{"0":{"129":1},"2":{"129":3}}],["obx局部更新",{"2":{"68":1}}],["opt",{"2":{"285":1}}],["optionalname",{"2":{"194":2}}],["optional",{"2":{"193":2,"194":1,"199":1}}],["optionalsquare",{"2":{"199":2}}],["optionals",{"2":{"193":1}}],["option",{"2":{"119":3,"124":3,"218":2,"272":1,"281":1,"294":1}}],["options=",{"2":{"236":1}}],["options中的user",{"2":{"136":1}}],["options",{"2":{"6":1,"7":1,"8":1,"9":1,"10":1,"113":5,"114":2,"115":5,"229":1,"286":1,"291":1,"294":3}}],["opacity",{"2":{"154":1,"155":1,"157":1,"158":1,"159":2,"161":1,"178":1,"308":1}}],["open",{"2":{"96":1,"97":1,"117":1,"181":1}}],["openwrite",{"2":{"51":1}}],["os",{"2":{"7":1}}],["other",{"2":{"5":1,"6":1,"288":1}}],["ondeactivated",{"2":{"307":1}}],["onactivated",{"2":{"307":1}}],["onappear",{"2":{"166":1}}],["onunmounted",{"2":{"307":1}}],["onupdated",{"2":{"307":1}}],["onbeforeunmount",{"2":{"307":1}}],["onbeforeupdate",{"2":{"307":1}}],["onbeforemount",{"2":{"307":1}}],["online",{"2":{"257":1}}],["onload方法去测试json数据",{"2":{"266":1}}],["onload方法确实让报错提示温和了很多",{"2":{"266":1}}],["onload",{"2":{"231":1,"266":1}}],["only",{"2":{"131":3,"288":1,"289":1,"290":1}}],["onpreferencechange",{"2":{"168":1}}],["onpressed",{"2":{"87":1,"113":1,"114":1,"115":1,"117":2,"119":3,"121":3,"123":1,"124":6,"129":2}}],["on",{"2":{"119":1,"131":1,"178":1,"195":1,"218":1,"277":1,"285":1,"286":1,"288":1,"289":1,"290":1}}],["ontapgesture",{"2":{"173":1}}],["ontap",{"2":{"118":1,"125":3}}],["onresponse",{"2":{"115":2}}],["onrequest",{"2":{"115":2}}],["onselected",{"2":{"89":1}}],["onsave",{"2":{"1":1,"218":1}}],["onerror方法提示资源不存在",{"2":{"266":1}}],["onerror",{"2":{"266":1}}],["one",{"2":{"49":2,"131":1,"273":1,"275":2,"288":1,"289":1,"290":1}}],["onmounted",{"2":{"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"307":1}}],["orillusion使用了codepen来做代码编辑",{"2":{"250":1}}],["orillusion在three的源码基础上做了更好的封装",{"2":{"248":1}}],["orillusion源码",{"0":{"246":1},"1":{"247":1,"248":1,"249":1,"250":1,"251":1,"252":1}}],["orillusion",{"2":{"245":1,"248":1,"250":1}}],["orillusion会在componentcollect这个类中进行各种类型的component收集",{"2":{"243":1}}],["orillusion中",{"2":{"242":1}}],["orillusion的帧缓冲拾取",{"0":{"242":1}}],["origin",{"2":{"131":1}}],["org",{"2":{"175":2,"277":1}}],["or切换到branch1分支的代码仓库点击compare",{"2":{"132":1}}],["or",{"2":{"4":2,"131":1,"217":2,"218":1,"270":1,"275":1,"287":1,"289":1,"290":1}}],["坐标系",{"2":{"3":1}}],["src=",{"2":{"298":1}}],["srcdir",{"2":{"293":1}}],["src",{"2":{"218":3,"231":1,"242":1,"245":1,"247":1,"248":2,"249":1,"260":3,"261":2,"262":1,"266":1}}],["s2gz13pvdva5t",{"2":{"183":1}}],["sf",{"0":{"161":1}}],["square",{"2":{"138":2,"195":1,"199":9}}],["sqlite",{"2":{"120":1}}],["syntax",{"0":{"286":1},"2":{"285":1,"286":2}}],["systemfont",{"2":{"209":1}}],["systemred",{"2":{"207":1,"209":1}}],["systemimage",{"2":{"161":3,"162":5,"163":5}}],["systemname",{"2":{"138":3,"139":1,"161":2,"162":2,"163":1,"164":2,"165":2,"167":3,"168":1}}],["system",{"2":{"137":2,"138":1,"161":2,"164":1}}],["symmetric",{"2":{"123":1}}],["symlinks文件夹",{"2":{"103":1}}],["symbol是es6新增的数据类型",{"2":{"305":1}}],["symbolrenderingmode",{"2":{"161":1}}],["symbolvariant",{"2":{"161":2,"167":1,"168":1}}],["symbols",{"0":{"161":1},"2":{"161":1}}],["symbol",{"2":{"8":1,"35":1,"161":1,"305":1}}],["swipeactions",{"2":{"163":2}}],["swipe",{"0":{"163":1}}],["swift的字符串不能用整数做索引",{"2":{"205":1}}],["swift的枚举类型尤为适合构建一组相关的错误状态",{"2":{"202":1}}],["swiftprotocol",{"2":{"201":1}}],["swiftprint",{"2":{"187":1}}],["swiftenum",{"2":{"200":1,"202":1}}],["swift按照从0开始每次加1的方式为原始值进行赋值",{"2":{"200":1}}],["swiftclass",{"2":{"199":3}}],["swiftcanvas",{"2":{"165":1}}],["swiftvar",{"2":{"194":2,"196":2,"199":1}}],["swiftif",{"2":{"194":1}}],["swiftimport",{"2":{"174":1,"209":1}}],["swiftimage",{"2":{"161":1}}],["swift中的字典可以理解为",{"2":{"190":1}}],["swift中如何使用阿里图标库",{"2":{"184":1}}],["swiftlet",{"2":{"189":1,"193":2,"194":1,"195":2,"199":1,"204":1,"205":1}}],["swiftlink",{"2":{"163":1}}],["swift学习",{"0":{"186":1},"1":{"187":1,"188":1,"189":1,"190":1,"191":1,"192":1,"193":1,"194":1,"195":1,"196":1,"197":1,"198":1,"199":1,"200":1,"201":1,"202":1,"203":1,"204":1,"205":1}}],["swift性能",{"2":{"182":1}}],["swift和flutter的区别",{"0":{"182":1},"1":{"183":1,"184":1,"185":1}}],["swift打开开发人员工具",{"2":{"181":1}}],["swiftasyncimage",{"2":{"179":1}}],["swiftgroup",{"2":{"178":1}}],["swiftgeometryreader",{"2":{"176":1}}],["swiftscrollview",{"2":{"176":1}}],["swiftstruct",{"2":{"136":1,"141":1,"166":1,"173":1,"177":1}}],["swifttabview",{"2":{"172":1}}],["swifttext",{"2":{"153":1,"157":1}}],["swiftnavigationview",{"2":{"160":1,"164":1}}],["swiftfunc",{"2":{"142":1,"180":1,"197":5,"203":1}}],["swift",{"0":{"183":1},"2":{"137":2,"138":1,"139":1,"140":3,"152":1,"154":1,"155":1,"156":1,"158":1,"159":1,"162":2,"167":2,"168":1,"169":1,"171":1,"183":1,"190":1,"191":1,"198":1,"205":3,"207":1,"210":1,"211":1}}],["swiftui的基础文章",{"2":{"185":1}}],["swiftui开发",{"0":{"150":1},"1":{"151":1,"152":1,"153":1,"154":1,"155":1,"156":1,"157":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"164":1,"165":1,"166":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1,"179":1,"180":1,"181":1}}],["swiftui",{"2":{"140":1,"159":1,"173":2,"174":1,"177":1}}],["swiftui中的组件分为",{"2":{"137":1}}],["swiftui进阶",{"0":{"134":1},"1":{"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1}}],["swift发请求",{"0":{"136":1}}],["switch支持任意类型的数据以及各种比较操作",{"2":{"195":1}}],["switch语句",{"0":{"195":1}}],["switch",{"2":{"39":1,"136":1,"167":1,"168":1,"179":1,"195":1,"200":1}}],["snackbar",{"2":{"119":1,"123":1}}],["snackbars",{"2":{"119":1}}],["snapshot",{"2":{"110":5}}],["sn=e7f385e9f9cb1b6b9245398d49896b78",{"2":{"102":1}}],["skyobject",{"2":{"248":2}}],["sksl引入的卡顿问题",{"2":{"99":1}}],["skia是blink渲染引擎的一部分",{"2":{"101":1,"308":1}}],["skia在第一次使用某个着色器时",{"2":{"99":1}}],["skia",{"0":{"101":1},"2":{"99":1}}],["sdk如何发包",{"2":{"98":1}}],["sdk的这个事情",{"2":{"98":1}}],["sdk即可创建和运行项目",{"2":{"94":1}}],["sdk解压缩",{"2":{"94":1}}],["sdk由服务器驱动程序",{"2":{"53":1}}],["sdk",{"0":{"53":1},"1":{"54":1,"55":1},"2":{"94":1,"97":1}}],["sdk学习了解",{"0":{"52":1},"1":{"53":1,"54":1,"55":1}}],["single",{"2":{"287":4}}],["sink",{"2":{"51":4}}],["six",{"2":{"200":1}}],["sidelength",{"2":{"199":22}}],["sides",{"2":{"199":5}}],["sign",{"2":{"178":1}}],["simpledescription",{"2":{"199":7,"200":2,"201":1}}],["simpledialogoption",{"2":{"124":3}}],["simpledialog",{"2":{"124":3}}],["simulators打开设备管理器",{"2":{"106":1}}],["silicon版本下载",{"2":{"94":1}}],["sizedbox",{"2":{"86":1,"125":2}}],["sizebox",{"0":{"79":1}}],["size",{"2":{"28":1,"136":1,"137":2,"138":1,"161":2,"164":1,"165":3,"166":5,"168":1}}],["save",{"2":{"218":2}}],["savings",{"2":{"129":1}}],["sabartda",{"2":{"183":1}}],["safeareainsets",{"2":{"176":1}}],["sandwich",{"2":{"195":1}}],["sandboxing选项设置为no",{"2":{"136":1}}],["sankey",{"2":{"10":1}}],["sampleitem",{"2":{"89":11}}],["say",{"2":{"50":2,"234":11,"235":6}}],["survey",{"2":{"302":1}}],["sure",{"2":{"293":1}}],["suffixexternal",{"2":{"281":1}}],["suffix",{"0":{"276":1},"2":{"273":1,"276":1}}],["supports",{"2":{"286":1}}],["supported",{"2":{"278":1}}],["suppress",{"2":{"270":1}}],["super调用父级的构造函数",{"2":{"199":1}}],["super",{"2":{"44":3,"45":3,"58":1,"59":1,"89":2,"110":2,"113":1,"114":1,"115":3,"117":2,"118":2,"119":3,"121":1,"123":4,"129":1,"199":2,"209":1}}],["sum",{"2":{"197":5}}],["suggestion",{"2":{"177":3}}],["suggestions",{"2":{"177":1}}],["success",{"2":{"136":1,"179":1,"202":1}}],["sub",{"2":{"275":1}}],["submitbutton",{"2":{"210":2}}],["submitbutton的y轴中心和view",{"2":{"210":1}}],["submit",{"2":{"123":1,"250":1}}],["subtitle",{"2":{"85":1,"173":2}}],["subdemos",{"2":{"54":1}}],["substring",{"2":{"34":3}}],["svg的提取尝试",{"0":{"27":1}}],["see",{"2":{"278":1,"286":1,"291":1,"294":1}}],["sends",{"2":{"270":2,"275":2}}],["segmentfault",{"2":{"245":1}}],["sed",{"2":{"222":1}}],["seven",{"2":{"200":1}}],["service",{"2":{"178":1}}],["server",{"2":{"55":1}}],["se没有圆角",{"2":{"176":1}}],["semibold",{"2":{"164":1,"173":2}}],["separator",{"2":{"160":1}}],["section",{"2":{"160":1,"162":1,"302":1}}],["secondary",{"2":{"136":1,"162":2,"163":1,"164":1,"167":1,"168":1,"177":1,"178":2}}],["second",{"2":{"117":1,"123":1}}],["secondroute",{"2":{"117":3}}],["seconds",{"2":{"88":2}}],["self被用来区别实例变量和构造器的参数",{"2":{"199":1}}],["self",{"2":{"138":1,"140":1,"141":1,"168":2,"180":2,"199":4,"200":2,"209":1,"211":1,"218":1}}],["selector",{"2":{"209":2,"285":6}}],["selection",{"2":{"119":2,"202":1}}],["selectionscreen",{"2":{"119":4}}],["selectionbuttonstate",{"2":{"119":2}}],["selectionbutton",{"2":{"119":5}}],["selectedtab",{"2":{"167":17,"168":17,"169":2}}],["selected",{"2":{"89":1}}],["selectedmenu",{"2":{"89":3}}],["searchcompletion",{"2":{"177":1}}],["searchable",{"2":{"177":1}}],["searchview",{"2":{"177":1}}],["search",{"2":{"86":1,"175":1,"177":1,"236":1,"270":2}}],["searchid=202310241527044f1da052b7258fb7a7f1",{"2":{"130":1}}],["searchid=202310180953376667b7db9cbfc16c956b",{"2":{"100":1}}],["searchid=20231016171400c70564938d162c20bc4f",{"2":{"55":1,"149":1}}],["searchid=20231101165324a5f32542d249556280ac",{"2":{"98":1}}],["searchid=2023082817240424c3c2d3ff19b302c296",{"2":{"264":1}}],["searchid=20230828182808dc2e896f0bf7b80cc6ae",{"2":{"264":1}}],["searchid=20230822133528fb96f3be853e5d5ddcd1",{"2":{"251":1}}],["searchid=202308011333480f886c2a2ae1c06daa0b",{"2":{"217":1}}],["searchid=20230805001356abcfde5794fdc33c280b",{"2":{"92":1}}],["searchid=20230923172459859aefd2f817f56a1c17",{"2":{"146":1}}],["searchid=20230726141301208a558690115e13cc04",{"2":{"20":1}}],["setattribute",{"2":{"262":2}}],["set解构来优化",{"2":{"247":1}}],["settimeout",{"2":{"234":1,"308":2}}],["setting",{"2":{"218":1,"242":2}}],["settings",{"2":{"136":1,"160":2,"161":1,"162":1,"218":1}}],["setdata",{"2":{"121":2}}],["setstring",{"2":{"121":1}}],["setstate",{"2":{"89":1}}],["sets",{"2":{"89":1}}],["set类型可以盛放若干个同类型的对象",{"2":{"48":1}}],["set",{"2":{"35":1,"48":2,"131":1,"188":1,"199":1,"218":1,"252":1,"284":1,"291":1}}],["setfrompoints",{"2":{"32":1}}],["setup",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"55":1,"307":1}}],["s",{"2":{"19":1,"55":1,"102":1,"183":1,"204":1,"222":1,"285":1,"286":1,"287":1,"293":1}}],["shiki",{"2":{"286":3}}],["shift",{"2":{"95":1,"151":2}}],["sh$",{"2":{"269":3,"285":1}}],["sh",{"2":{"222":2}}],["sheet",{"2":{"139":1}}],["showmodalbottomsheet",{"2":{"125":1}}],["showdetail",{"2":{"174":1}}],["showdialog",{"2":{"124":2}}],["showduration",{"2":{"88":1}}],["showsnackbar",{"2":{"119":1,"123":1}}],["show",{"2":{"110":1,"119":1,"173":3}}],["shooter",{"2":{"5":1,"6":1}}],["shaking掉那些并没有用到的方法",{"2":{"262":1}}],["share",{"2":{"217":1}}],["sharedpreferences",{"2":{"121":3}}],["shared",{"0":{"121":1},"2":{"120":1,"121":3,"140":1,"142":1,"174":1,"180":1}}],["shadow",{"2":{"152":1,"154":1,"155":1}}],["shading",{"2":{"99":2}}],["shaderlib",{"2":{"247":7}}],["shader的离线编译",{"2":{"99":1}}],["shader",{"2":{"30":1,"247":1,"265":1,"311":2}}],["shapedescription",{"2":{"199":2}}],["shape",{"2":{"24":1,"138":8,"199":8}}],["shpnpm",{"2":{"14":1,"16":1,"17":1,"19":1}}],["shnpm",{"2":{"12":1}}],["stdout拥有",{"2":{"313":1}}],["stop",{"2":{"284":2}}],["stock",{"2":{"202":1}}],["storyboard",{"2":{"205":1}}],["storename",{"2":{"121":2}}],["store",{"2":{"121":6,"229":2}}],["storage",{"2":{"97":2,"121":5}}],["steamvr作为预构建包提供",{"2":{"53":1}}],["stuff",{"2":{"293":2}}],["studio中用flutter",{"2":{"106":1}}],["studio中build",{"2":{"55":1}}],["studio打开却不会报错",{"2":{"96":1}}],["studio打开cloudxr",{"2":{"55":1}}],["studio新建一个flutter项目",{"2":{"94":1}}],["studio后",{"2":{"94":1}}],["studio",{"2":{"94":2}}],["student",{"2":{"44":4,"45":4}}],["stu",{"2":{"44":2,"45":2}}],["stage",{"2":{"311":5}}],["statistics",{"2":{"197":3}}],["static修饰的变量和方法用类调用",{"2":{"252":1}}],["static修饰的属性和方法只能在类的内部进行访问",{"2":{"252":1}}],["static修饰的属性和方法可以在类内部和类外部访问",{"2":{"252":1}}],["static修饰的属性和方法也叫静态属性和静态方法",{"2":{"252":1}}],["static这中共同修饰下的属性和方法",{"2":{"252":1}}],["static和private修饰的区别是什么",{"2":{"252":1}}],["static和private",{"2":{"252":1}}],["static等关键词来修饰属性和方法",{"2":{"252":1}}],["static",{"2":{"168":2,"247":2,"252":13}}],["statusmessage",{"2":{"191":1}}],["status",{"2":{"136":1}}],["statuscode",{"2":{"109":1,"110":1,"113":1,"114":1,"115":1,"191":3}}],["stateobject",{"2":{"174":1}}],["state数据",{"2":{"140":1}}],["state",{"0":{"135":1},"2":{"89":2,"110":2,"119":2,"123":1,"140":2,"166":1,"167":2,"168":3,"171":1,"173":1,"177":1,"229":3}}],["statefulwidget",{"2":{"89":1,"110":1,"119":2,"123":1}}],["statefulwidget的生命周期",{"2":{"67":1}}],["statefulwidget是一种可变的部件",{"2":{"67":1}}],["statefulwidget是可变状态的widget",{"2":{"67":1}}],["statefulwidget就可以",{"2":{"67":1}}],["statelesswidget的生命周期",{"2":{"67":1}}],["statelesswidget的构建是纯粹的",{"2":{"67":1}}],["statelesswidget是一种表示不可变部件的基类",{"2":{"67":1}}],["statelesswidget是一个不需要状态更改的widget",{"2":{"67":1}}],["statelesswidget和statefulwidget的区别",{"0":{"67":1}}],["statelesswidget",{"2":{"58":1,"59":1,"89":1,"113":1,"114":1,"115":1,"117":2,"118":2,"119":2,"121":1,"123":1,"129":2}}],["startrenderviews方法中调用",{"2":{"250":1}}],["startrenderview",{"2":{"250":1}}],["startindex",{"2":{"205":3}}],["startpoint",{"2":{"157":2,"159":1,"165":1,"166":1}}],["started",{"2":{"94":1,"293":2}}],["start",{"2":{"77":1,"123":1}}],["start即可运行项目",{"2":{"21":1}}],["star",{"2":{"63":5,"76":1}}],["stackoverflow",{"2":{"302":1}}],["stack的内容是无法滚动的",{"2":{"66":1}}],["stack",{"0":{"66":1,"83":1},"2":{"28":1,"65":1,"66":1,"167":1,"168":1,"302":1}}],["stacky",{"2":{"6":1}}],["stripes",{"2":{"271":1,"279":2}}],["strict",{"2":{"233":1}}],["string",{"2":{"16":2,"35":1,"36":4,"37":1,"40":1,"41":1,"42":1,"43":2,"44":2,"45":2,"49":1,"50":1,"103":2,"110":2,"113":1,"118":2,"121":4,"136":8,"138":2,"140":5,"141":1,"142":3,"162":2,"163":1,"167":3,"168":3,"174":1,"179":1,"180":2,"188":1,"189":1,"190":2,"191":1,"193":8,"194":3,"197":6,"199":11,"200":2,"201":1,"202":1,"205":2,"223":2,"247":4,"252":1,"305":1}}],["str4",{"2":{"205":2}}],["str3",{"2":{"205":2}}],["str2",{"2":{"205":2}}],["str1",{"2":{"205":2}}],["stroke",{"2":{"159":1}}],["strokestyle",{"2":{"159":6,"167":1,"168":1}}],["str",{"2":{"139":3}}],["structure",{"0":{"164":1},"2":{"275":1}}],["struct",{"2":{"136":2,"138":1,"140":1,"159":1,"167":2,"168":3,"174":1,"202":1}}],["street",{"2":{"85":1,"136":1}}],["strategy",{"2":{"5":1,"6":1}}],["styles",{"2":{"170":1}}],["style属性有两个值",{"2":{"167":1,"168":1}}],["style封装",{"0":{"73":1}}],["style",{"0":{"279":1},"2":{"10":1,"59":1,"66":1,"72":1,"73":1,"81":1,"85":1,"125":1,"129":1,"133":1,"159":1,"167":1,"168":1,"176":1,"236":1,"281":1,"285":2,"308":3}}],["split",{"2":{"285":1}}],["spline",{"2":{"26":1}}],["spawn",{"2":{"313":5}}],["spa",{"2":{"275":1}}],["spacing",{"2":{"138":1,"152":1,"167":1,"168":1,"173":2,"177":2}}],["space",{"2":{"288":1,"289":1,"290":1}}],["spacer",{"2":{"137":1,"162":2,"163":1,"167":16,"168":16,"173":1}}],["spaceevenly",{"2":{"61":2,"62":1,"77":1}}],["spaceflex",{"2":{"6":1}}],["special",{"2":{"274":1,"285":1}}],["specify",{"2":{"131":2,"273":1,"287":1}}],["specific",{"2":{"86":1}}],["spelling",{"2":{"217":1}}],["spicy",{"2":{"195":1}}],["spinner",{"2":{"110":1}}],["spm与cocoapods相互兼容",{"2":{"183":1}}],["spring",{"2":{"167":1,"168":1,"173":1}}],["spritekit",{"2":{"54":1}}],["sptlight",{"2":{"143":1}}],["sports",{"2":{"5":1,"6":1}}],["son",{"2":{"313":2}}],["software",{"2":{"257":1}}],["solutions",{"2":{"257":1}}],["sold",{"2":{"5":6,"6":7}}],["sort",{"2":{"252":1}}],["sorted",{"2":{"198":1}}],["sortednumbers",{"2":{"198":2}}],["social",{"2":{"236":1}}],["soup",{"2":{"195":1}}],["sources",{"2":{"175":3}}],["source",{"2":{"1":1,"10":1,"97":1,"218":1,"293":1}}],["so",{"2":{"131":1}}],["somestring",{"2":{"205":1}}],["sometime",{"2":{"131":1}}],["some",{"2":{"123":1,"138":1,"140":1,"159":2,"164":1,"166":1,"167":1,"168":1,"173":1,"174":1,"177":1,"194":1,"195":1,"205":1,"293":1}}],["scores",{"2":{"197":5}}],["score",{"2":{"194":3,"197":6}}],["screen",{"2":{"119":4}}],["scripting",{"2":{"302":1}}],["scripts",{"2":{"16":1,"18":1,"223":1}}],["script",{"2":{"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"136":1,"217":1}}],["scaffoldmessenger",{"2":{"119":1,"123":1}}],["scaffold",{"0":{"71":1},"2":{"58":1,"89":1,"110":1,"113":1,"114":1,"115":1,"117":2,"118":2,"119":2,"121":1,"123":1,"129":2}}],["scaley",{"2":{"24":3}}],["scalex",{"2":{"24":5}}],["scale",{"2":{"3":1,"24":12,"179":2}}],["school",{"2":{"44":2,"45":3}}],["scenes",{"2":{"260":1}}],["scene3d",{"0":{"248":1},"2":{"243":4,"248":3}}],["scenedelegate",{"2":{"208":1}}],["scene=27",{"2":{"102":1}}],["scenekit",{"2":{"54":1}}],["scene",{"0":{"260":1},"2":{"32":1,"174":1,"243":1,"246":1,"252":2,"260":1}}],["派生数据",{"2":{"3":1}}],["转换",{"2":{"3":1}}],["可行性还待研究",{"2":{"257":1}}],["可能就是像我遇到的这种",{"2":{"214":1}}],["可能可以直接满足需求",{"2":{"60":1}}],["可选值会被解包",{"2":{"199":1}}],["可选值的强制解析",{"2":{"194":1}}],["可选可以通过if语句来判断是否有值",{"2":{"193":1}}],["可选类型暗示了常量或者变量可以没有值",{"2":{"193":1}}],["可选类型表示两种可能",{"2":{"193":1}}],["可选类型",{"0":{"193":1}}],["可选的导语以及后面的图标组织在一行中",{"2":{"65":1}}],["可以利用gpu加速",{"2":{"308":1}}],["可以动态添加class",{"2":{"308":1}}],["可以改变this的指向",{"2":{"235":1}}],["可以跨平台",{"2":{"222":1}}],["可以参考orillusion的实现",{"2":{"245":1}}],["可以参考",{"2":{"217":1}}],["可以全局安装使用",{"2":{"217":1}}],["可以排查提交了错误代码打包导致的项目崩溃",{"2":{"214":1}}],["可以一起使用if和let一起来处理值缺失的情况",{"2":{"194":1}}],["可以确定一个可选类型总会有值",{"2":{"193":1}}],["可以给可选变量赋值nil来表示它没有值",{"2":{"193":1}}],["可以在命令行中输入要执行的包名加上其参数",{"2":{"225":1}}],["可以在其中包含常量",{"2":{"205":1}}],["可以在特性上提供互补",{"2":{"183":1}}],["可以在框架内对齐的",{"2":{"167":1,"168":1}}],["可以在flutter项目中的test文件夹中编辑代码做测试",{"2":{"33":1}}],["可以减小资源文件的大小",{"2":{"165":1}}],["可以让text和image各占一行显示",{"2":{"152":1}}],["可以正常真机调试",{"2":{"96":1}}],["可以使用嵌套函数来重构一个太长或者太复杂的函数",{"2":{"197":1}}],["可以使用默认值来代替",{"2":{"194":1}}],["可以使用",{"2":{"194":1,"227":1}}],["可以使用stack在基础widget上排列widget",{"2":{"66":1}}],["可以使用expanded",{"2":{"62":2}}],["可以使用mainaxisalignment和crossaxisalignment属性控制行或列如何对齐其子项",{"2":{"61":1}}],["可以指定子widgets如何占用row或column的可用空间",{"2":{"60":1}}],["可以指定row或column如何垂直和水平方向上对齐其子项",{"2":{"60":1}}],["可以拉伸或限制特定的子widgets",{"2":{"60":1}}],["可以方便的对接其他渲染",{"2":{"54":1}}],["可以进行简化书写",{"2":{"43":1}}],["可以省略若干个参数",{"2":{"42":1}}],["可以用=提供参数的默认值",{"2":{"41":1}}],["可以用来绘制平滑曲线",{"2":{"32":1}}],["可以通过动态样式的方法",{"2":{"308":1}}],["可以通过如下链接访问到资源",{"2":{"299":1}}],["可以通过https",{"2":{"299":1}}],["可以通过setstate函数来刷新当前widget来达到有状态",{"2":{"67":1}}],["可以通过索引获取列表中的数据",{"2":{"47":1}}],["可以通过参数的名称来传参",{"2":{"41":1}}],["可以通过下标访问具体字符串",{"2":{"35":1}}],["可以绕过编译检查",{"2":{"34":1}}],["可以直接在项目根目录下启动vue项目",{"2":{"18":1}}],["可参考下面的使用复合mark进行代码优化",{"2":{"6":1}}],["可视化叙事等多样式的需求",{"2":{"3":1}}],["可即使是这么优秀",{"2":{"2":1}}],["t1",{"2":{"240":2}}],["tbd其实是一个yaml文本文件",{"2":{"213":1}}],["tbd",{"2":{"213":1}}],["two",{"2":{"200":1,"275":1,"288":1,"289":1,"290":1}}],["tuesday",{"2":{"197":2}}],["tip",{"2":{"283":4,"293":1}}],["times",{"2":{"205":1}}],["timeintervalsincereferencedate",{"2":{"166":1}}],["timeline",{"2":{"166":2}}],["timelineview",{"2":{"166":1}}],["tint",{"2":{"160":1,"163":4}}],["titles",{"2":{"282":1}}],["titlerawsyntax",{"2":{"281":1}}],["titlecustom",{"2":{"281":1}}],["title",{"0":{"283":1,"284":1},"2":{"8":1,"58":2,"60":1,"71":2,"85":1,"89":1,"110":7,"113":2,"114":2,"115":2,"117":3,"118":8,"119":3,"121":2,"123":2,"124":2,"125":3,"129":2,"164":1,"171":2,"173":2,"177":2,"270":1,"278":1,"284":1}}],["typicode",{"2":{"108":1,"109":1,"110":1,"112":1,"113":1,"114":1,"115":1}}],["types",{"2":{"218":1,"236":1,"282":1}}],["typescript配置",{"2":{"20":1}}],["typescript在demo1中的依赖配置",{"2":{"15":1}}],["typescript",{"2":{"14":1,"218":2}}],["typecheck",{"2":{"19":11}}],["type",{"2":{"6":5,"7":2,"8":3,"9":3,"10":3,"34":1,"236":1,"252":1,"284":1,"292":4}}],["tailwindcss已经有72",{"2":{"301":1}}],["tada",{"2":{"280":1}}],["tag",{"2":{"205":2,"273":1}}],["tastes",{"2":{"195":1}}],["task",{"2":{"92":1,"140":1,"142":1,"180":1}}],["table",{"0":{"281":1}}],["tablesemoji",{"2":{"281":1}}],["tables",{"0":{"279":1},"2":{"271":1,"279":2}}],["tabpreferencekey",{"2":{"168":3}}],["tab",{"2":{"167":11,"168":11,"169":1}}],["tabitemwidth",{"2":{"168":4}}],["tabitems",{"2":{"167":2,"168":2}}],["tabitem",{"2":{"167":7,"168":5}}],["tabviewstyle",{"2":{"172":1}}],["tabview",{"2":{"167":1}}],["tabbar",{"0":{"167":1},"2":{"167":1,"168":1}}],["tapgesturerecognizer",{"2":{"209":2}}],["tapgesture",{"2":{"209":2}}],["tap",{"2":{"98":2}}],["target=",{"2":{"277":1}}],["target",{"2":{"10":1,"209":1}}],["txt文件拷贝到pico硬盘根目录中",{"2":{"55":1}}],["txt文件",{"2":{"55":1}}],["txt",{"2":{"51":2}}],["t",{"2":{"32":1,"34":1,"205":2,"287":2}}],["technologies",{"2":{"302":1}}],["ten",{"2":{"200":1}}],["tea",{"2":{"195":1}}],["teamscore",{"2":{"194":3}}],["teal",{"2":{"167":2,"168":2}}],["terminator",{"2":{"205":1}}],["terms",{"2":{"178":1}}],["term",{"2":{"86":1,"217":1}}],["tessellation",{"2":{"26":1}}],["testtiasdfasfsfafafsafaf",{"2":{"115":1}}],["test3",{"2":{"17":2}}],["test2",{"2":{"17":2}}],["test",{"2":{"16":6,"113":1,"114":1,"115":1,"121":1,"133":1,"194":2,"199":4,"208":3}}],["text的multilinetextalignment属性只是多行文字的一个对齐效果",{"2":{"137":1}}],["textbutton",{"2":{"124":2}}],["textformfield",{"2":{"123":1}}],["textfield",{"2":{"86":3,"245":1}}],["textfield和textformfield",{"2":{"86":1}}],["texteditingcontroller",{"2":{"123":1}}],["textdecoration",{"2":{"72":1}}],["textdirection",{"2":{"59":2}}],["textalignment",{"2":{"209":1}}],["textalign",{"2":{"72":2,"88":2}}],["textstyle",{"2":{"59":1,"66":1,"72":1,"73":1,"85":1,"124":1,"125":1,"129":1}}],["text",{"0":{"72":1},"2":{"25":1,"58":2,"59":1,"60":1,"66":1,"71":1,"85":2,"87":1,"88":1,"89":5,"110":3,"113":3,"114":3,"115":3,"117":4,"118":4,"119":6,"121":5,"123":7,"124":9,"125":4,"129":4,"136":1,"137":10,"139":7,"140":1,"152":2,"160":4,"162":1,"164":2,"165":1,"166":1,"167":9,"168":7,"173":8,"174":1,"176":1,"177":12,"178":5,"180":1,"209":1,"284":1,"286":3}}],["template",{"2":{"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"218":2}}],["too",{"2":{"285":1}}],["toolkit",{"2":{"231":1}}],["tool",{"2":{"181":1}}],["tooltip",{"0":{"88":1},"2":{"88":1}}],["toc",{"2":{"281":3,"294":3}}],["tolowercase",{"2":{"247":5}}],["today",{"2":{"197":2}}],["todos",{"2":{"118":7,"286":2}}],["todosscreen",{"2":{"118":3}}],["todo",{"2":{"29":1,"110":1,"118":12,"132":1,"247":1,"250":2,"286":6}}],["total",{"2":{"196":4}}],["topology",{"2":{"244":1}}],["topanchor",{"2":{"209":2,"210":3}}],["topleading",{"2":{"157":2,"165":1}}],["top",{"2":{"152":1,"155":1,"159":1,"167":3,"168":3,"177":1}}],["toggler",{"2":{"236":1}}],["toggle",{"2":{"138":4,"173":1,"236":1}}],["togglestyle",{"2":{"138":3}}],["token=aac06d17",{"2":{"217":1}}],["token",{"2":{"115":1}}],["tokeninterceptor",{"2":{"115":2}}],["tostringasfixed",{"2":{"36":1}}],["tostring",{"2":{"36":1,"37":1}}],["to",{"2":{"4":1,"109":1,"110":1,"113":1,"114":1,"115":1,"118":1,"131":6,"166":5,"178":1,"218":4,"252":2,"270":5,"273":4,"275":5,"278":1,"284":2,"285":2,"286":3,"287":2,"288":2,"289":1,"290":1,"291":1}}],["than",{"2":{"204":2}}],["that",{"2":{"86":1,"89":1,"119":2,"195":1,"217":1,"285":1,"288":1,"289":2,"290":1,"293":2}}],["throws",{"2":{"202":1}}],["throw",{"2":{"109":1,"110":1,"113":1,"114":1,"115":1,"202":3,"293":1}}],["threejs",{"2":{"296":1}}],["three通过属性实现显示和隐藏的原理是什么",{"2":{"245":1}}],["three缓冲区拾取步骤",{"2":{"245":1}}],["three中的mini",{"2":{"296":1}}],["three中使用的是射线法拾取",{"2":{"264":1}}],["three中案例",{"2":{"264":1}}],["three中还有",{"2":{"32":1}}],["three中有现成的贝塞尔曲线的方法封装",{"2":{"32":1}}],["three中是如何绘制出line2的",{"0":{"30":1}}],["three",{"2":{"24":4,"25":1,"32":28,"49":2,"189":1,"200":1,"244":1,"246":1,"248":1,"252":2,"256":1,"270":4,"275":5}}],["this",{"0":{"232":1},"1":{"233":1,"234":1,"235":1},"2":{"4":1,"16":2,"43":4,"44":3,"45":3,"110":3,"118":4,"223":2,"229":2,"233":2,"234":5,"235":3,"247":2,"248":3,"252":14,"262":2,"270":2,"273":1,"278":1,"283":10,"285":3,"287":4,"291":8,"292":1,"293":3}}],["their",{"2":{"282":1}}],["then",{"2":{"222":1,"229":2}}],["thenumber被推断为类型",{"2":{"193":1}}],["thenumber",{"2":{"193":1}}],["there",{"2":{"205":3}}],["theming",{"2":{"278":1}}],["them",{"2":{"131":1}}],["themedata",{"2":{"89":1,"110":1}}],["theme",{"2":{"89":1,"110":1,"236":5,"286":1}}],["theta",{"2":{"6":1}}],["the",{"2":{"4":1,"34":2,"86":1,"89":1,"119":10,"131":3,"217":4,"218":2,"270":5,"272":1,"273":4,"275":5,"276":1,"278":3,"281":2,"284":5,"286":2,"287":4,"288":3,"289":3,"290":1,"291":1,"293":4,"294":4}}],["tsfor",{"2":{"252":1}}],["tsget",{"2":{"252":1}}],["tsgit",{"2":{"131":1}}],["ts的着色器注册",{"2":{"247":1}}],["ts的配置如下所示",{"2":{"236":1}}],["tsawait",{"2":{"243":1,"247":1}}],["tsnpx",{"2":{"225":1}}],["tsnpm",{"2":{"4":1}}],["ts生成index",{"2":{"223":1}}],["tsexport",{"2":{"223":1}}],["ts代码",{"2":{"223":1}}],["tsstruct",{"2":{"240":1}}],["tsserver",{"2":{"220":1}}],["tssudo",{"2":{"175":1}}],["tsoutput",{"2":{"218":1}}],["tswakk",{"2":{"217":1}}],["tsmaven",{"2":{"92":1}}],["tslet",{"2":{"28":1,"243":3,"245":1,"266":1}}],["tsbuildinfo",{"2":{"19":1}}],["tsclass",{"2":{"252":4}}],["tsctrl",{"2":{"151":1}}],["tscollectpositionbylayer",{"2":{"31":2}}],["tsconst",{"2":{"24":1}}],["tsconfig",{"2":{"19":6}}],["tsc是基于volar的vue3类型检查工具",{"2":{"19":1}}],["tsc",{"2":{"19":7,"218":1}}],["tsimport",{"2":{"17":1,"236":1,"292":1}}],["ts运行测试",{"2":{"16":1}}],["ts文件提供一个demo2的类",{"2":{"16":1}}],["ts",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"16":7,"19":1,"24":1,"29":1,"32":2,"96":1,"97":1,"131":1,"146":1,"175":1,"218":7,"229":6,"240":4,"242":2,"245":1,"247":6,"248":3,"249":1,"250":1,"252":2,"265":1,"291":2,"292":2}}],["tstodo",{"2":{"2":1}}],["trending",{"2":{"302":1}}],["treatments",{"2":{"274":1}}],["tree的计算通常只需要遍历一次就可以完成",{"2":{"308":1}}],["tree和节点的几何信息",{"2":{"308":1}}],["tree和cssom",{"2":{"308":1}}],["tree得到节点的几何信息",{"2":{"308":1}}],["tree合成render",{"2":{"308":1}}],["tree",{"2":{"54":1,"294":1,"308":3}}],["trianglenum",{"2":{"245":3}}],["triangle",{"2":{"199":7}}],["try",{"2":{"140":1,"141":1,"142":1,"180":2,"202":1,"217":1}}],["trash",{"2":{"163":2}}],["trailinganchor",{"2":{"209":2,"210":1}}],["trailing",{"2":{"60":1,"137":2,"163":1,"177":1}}],["translation",{"2":{"236":1}}],["translatesautoresizingmaskintoconstraints",{"2":{"209":1}}],["translate",{"2":{"24":2}}],["transition",{"2":{"179":1}}],["transaction",{"2":{"179":2}}],["transform",{"2":{"3":1,"6":1,"8":1,"10":1,"285":1}}],["troika",{"2":{"25":1}}],["true",{"2":{"1":2,"88":1,"89":1,"124":1,"131":1,"139":2,"140":1,"142":1,"163":3,"166":2,"197":1,"209":1,"211":1,"218":2,"242":1,"252":1,"291":1}}],["技术人员的出路到底是什么",{"2":{"2":1}}],["怀揣",{"2":{"2":1}}],["迎四海饕客",{"2":{"2":1}}],["助力共筹东方巨龙崛起之盛宴",{"2":{"2":1}}],["皆微小而美好",{"2":{"2":1}}],["林峰",{"2":{"2":1}}],["aqua",{"2":{"300":1}}],["above",{"2":{"294":1}}],["awesome",{"2":{"287":2}}],["await处理",{"2":{"247":1}}],["await发请求",{"0":{"142":1}}],["awaits",{"2":{"119":1}}],["await",{"2":{"51":3,"109":2,"110":1,"112":1,"113":1,"114":1,"115":1,"119":1,"121":7,"124":2,"125":1,"140":2,"142":2,"180":2,"229":4,"242":1,"247":1}}],["await使用方法和js中基本一致",{"2":{"51":1}}],["available",{"2":{"278":1,"280":1,"286":1}}],["avator",{"2":{"152":1,"155":1,"165":1,"172":1}}],["a的文件不能直接用",{"2":{"213":1}}],["a的值是",{"2":{"38":2}}],["a是一个纯二进制文件",{"2":{"213":1}}],["at",{"2":{"165":1,"205":6}}],["attributes",{"2":{"24":1}}],["api版本可能也会有一些差异",{"2":{"311":1}}],["api无法解决和避免的",{"2":{"230":1}}],["api本来就是为解决大项目中逻辑处理太过分散的问题",{"2":{"230":1}}],["api的利弊一样",{"2":{"230":1}}],["api的写法没有了getters和actions的模块要求",{"2":{"230":1}}],["api的写法",{"2":{"229":1}}],["api和options",{"2":{"230":1}}],["api和compositon",{"0":{"229":1}}],["api写法",{"2":{"229":1}}],["api写法对比",{"0":{"229":1}}],["api",{"2":{"136":2,"140":2,"142":2,"180":2,"229":2,"230":1,"255":1,"266":1}}],["app的react应用程序",{"2":{"225":1}}],["app的开发",{"2":{"55":1}}],["app包中的可执行文件",{"2":{"225":1}}],["appdelegate",{"2":{"208":1}}],["app首次打开的viewcontroller页面的背景颜色就被修改成了红色",{"2":{"207":1}}],["appendchild",{"2":{"308":3}}],["appending",{"2":{"284":1}}],["append",{"2":{"190":1,"194":1,"203":1,"270":2,"275":2,"286":1}}],["appear",{"2":{"166":3}}],["app中",{"2":{"174":1}}],["app中使用",{"2":{"65":1}}],["app中使用这些功能",{"2":{"59":1}}],["apptitle",{"2":{"123":3}}],["applied",{"2":{"272":1}}],["application",{"2":{"113":1}}],["apply是用数组传参",{"2":{"235":1}}],["apply的使用",{"2":{"235":1}}],["apply",{"0":{"232":1},"1":{"233":1,"234":1,"235":1},"2":{"235":3,"239":1}}],["apple为游戏开发者推出了新的平台技术",{"2":{"255":1}}],["appleseed",{"2":{"194":2}}],["apple",{"2":{"54":1,"55":1,"94":1,"149":1}}],["app即可安装到设备上",{"2":{"106":1}}],["app不包含appbar",{"2":{"59":1}}],["appstorage",{"2":{"169":3}}],["appstorage缓存",{"0":{"169":1}}],["apps",{"0":{"59":1}}],["appbar",{"2":{"58":2,"71":2,"89":2,"110":2,"113":2,"114":2,"115":2,"117":4,"118":4,"119":4,"121":2,"123":2,"129":4}}],["app",{"2":{"58":1,"59":2,"173":2,"174":1,"213":1,"225":2,"236":3,"286":1,"294":1}}],["app本身就是一个widget",{"2":{"57":1}}],["afdadfs",{"2":{"205":1}}],["afdataresponse",{"2":{"136":1}}],["afddsadfdsf",{"2":{"153":1,"157":1}}],["af",{"2":{"136":1}}],["after",{"2":{"119":3,"205":2,"284":1,"288":1,"289":1,"290":1}}],["afx",{"2":{"2":1}}],["are",{"2":{"271":2,"275":2,"279":4,"287":2,"288":1,"289":1,"290":1,"293":1,"294":1}}],["area",{"2":{"199":4}}],["argument",{"2":{"239":1}}],["arguments",{"2":{"234":1}}],["arguments类数组",{"2":{"234":1}}],["ar的webview打开视频流是否改变了ipad的ua信息",{"2":{"213":1}}],["ar的画面是视频流还是像webgl一样",{"2":{"98":1}}],["ar的渲染需要依赖其他第三方渲染框架",{"2":{"54":1}}],["arcore",{"2":{"67":1}}],["arcore插件",{"2":{"67":1}}],["arcore文档",{"2":{"54":1}}],["arkit插件",{"2":{"67":1}}],["arkitdemo",{"2":{"54":1}}],["arkit官方文档",{"2":{"54":1}}],["arkit提供的功能总体可以分为三个部分",{"2":{"54":1}}],["arkit",{"0":{"54":1},"2":{"54":2,"67":1,"103":4}}],["ar",{"0":{"52":1},"1":{"53":1,"54":1,"55":1},"2":{"54":1,"102":1}}],["array",{"2":{"188":1,"235":3}}],["arr",{"2":{"28":2,"308":6}}],["asddsf",{"2":{"268":1}}],["asdfadfsf",{"2":{"268":1}}],["asfd",{"2":{"268":1}}],["aspect",{"2":{"243":1}}],["aspectratio",{"2":{"156":1,"177":1}}],["assign",{"2":{"218":1}}],["assumedstring",{"2":{"193":2}}],["assembly反汇编为spir",{"2":{"99":1}}],["assembly",{"2":{"99":1,"311":1}}],["assembledebug",{"2":{"92":1}}],["assetim",{"2":{"70":1}}],["assetimage",{"2":{"66":1,"84":1}}],["asset",{"2":{"61":3,"62":4,"66":2,"75":1}}],["assets",{"2":{"8":1,"10":1,"62":4,"66":3,"70":1,"75":1,"84":1,"208":1,"231":1,"247":1}}],["assert",{"2":{"36":4,"204":1}}],["as",{"2":{"108":1,"109":1,"110":1,"119":2,"180":1,"217":1,"273":1,"293":2,"294":1}}],["as插件",{"2":{"100":1}}],["asyncimage异步加载图片",{"0":{"179":1}}],["asynchronous",{"2":{"119":1}}],["async",{"2":{"51":1,"87":1,"109":3,"110":2,"112":1,"113":1,"114":1,"115":1,"119":1,"121":6,"124":3,"125":1,"140":1,"142":1,"180":1,"229":4}}],["agolia",{"2":{"236":1}}],["again",{"2":{"217":1}}],["agree",{"2":{"178":1}}],["agricultural",{"2":{"10":1}}],["age",{"2":{"41":2,"42":1,"43":5,"44":4,"45":5,"114":1,"115":1,"141":4,"190":1,"204":4}}],["a",{"2":{"34":4,"36":9,"37":3,"38":3,"48":5,"86":2,"96":2,"110":1,"118":1,"119":5,"124":2,"125":2,"131":1,"175":1,"195":3,"199":5,"204":1,"205":2,"213":1,"217":3,"245":1,"252":4,"270":3,"273":3,"275":1,"278":1,"280":1,"283":8,"285":3,"286":3,"287":1,"288":2,"289":2,"290":1,"293":2,"294":1}}],["advanced",{"0":{"294":1}}],["admin",{"2":{"220":1}}],["adjust",{"2":{"201":1}}],["adaptive",{"2":{"176":1}}],["added",{"2":{"289":2}}],["addeventlistener",{"2":{"248":1,"260":1}}],["adding",{"2":{"288":1,"289":1,"290":1}}],["addition",{"2":{"287":1}}],["additionally",{"2":{"288":1}}],["additional",{"2":{"202":1}}],["addchild",{"2":{"248":1}}],["addcomponent方法会将camera3d实例化",{"2":{"243":1}}],["addcomponent",{"2":{"242":1,"243":1}}],["addcurve",{"2":{"166":4}}],["addsubview",{"2":{"209":1}}],["addgesturerecognizer",{"2":{"209":1}}],["addone",{"2":{"197":2}}],["address",{"2":{"136":3,"140":2,"142":2,"180":7}}],["addlistener",{"2":{"123":1}}],["add",{"2":{"32":1,"47":1,"48":1,"108":1,"111":1,"115":1,"121":1,"127":1,"129":1,"195":1,"197":2,"218":1,"240":1,"269":2,"270":1,"273":1,"285":1,"291":1}}],["adfsasf",{"2":{"28":1}}],["aa",{"2":{"28":2,"50":2,"189":3,"190":3,"191":2,"194":2,"197":6,"202":2,"252":5,"305":6}}],["amp",{"2":{"24":4,"102":5,"132":1}}],["along",{"2":{"278":1}}],["algolia",{"2":{"270":1}}],["alphardex",{"2":{"265":1,"300":1}}],["already",{"2":{"178":1}}],["always",{"2":{"177":1}}],["alwaysstoppedanimation",{"2":{"90":2}}],["alamofire",{"2":{"175":1}}],["alt=",{"2":{"298":1}}],["alternatively",{"2":{"287":1}}],["alt",{"2":{"151":3}}],["also",{"2":{"131":1,"275":1,"285":1,"286":1,"287":1,"293":1}}],["alertdialog",{"2":{"124":3}}],["album",{"2":{"110":9,"113":1,"114":1,"115":1}}],["albums",{"2":{"108":1,"109":1,"110":1,"112":1,"113":1,"114":1,"115":1}}],["alive缓存的组件停用时调用",{"2":{"307":1}}],["alive缓存的组件激活时调用",{"2":{"307":1}}],["alias",{"2":{"286":1}}],["aliases",{"2":{"218":1}}],["aligned",{"2":{"271":1,"279":2}}],["alignment",{"2":{"66":2,"83":2,"137":4,"152":1,"167":4,"168":4,"173":4,"177":2}}],["alice",{"2":{"141":1}}],["aliyun",{"2":{"92":4}}],["alipayobjects",{"2":{"7":1}}],["allows",{"2":{"273":1}}],["allowsfullswipe",{"2":{"163":2}}],["allow",{"2":{"131":1}}],["all带参数的简写",{"2":{"19":1}}],["all提供三个命令",{"2":{"19":1}}],["all",{"2":{"19":2,"20":1,"66":1,"70":3,"82":1,"88":2,"118":1,"119":2,"131":1,"152":1,"278":1,"280":1,"286":1}}],["all来串行",{"0":{"19":1}}],["axis",{"2":{"8":1}}],["authorization",{"2":{"115":1}}],["autodesk",{"2":{"257":1}}],["autoupdate",{"2":{"252":4}}],["autoreverses",{"2":{"166":1}}],["automatically",{"2":{"272":1,"275":1,"277":1}}],["automatic",{"2":{"160":1}}],["auto",{"2":{"6":2,"273":1}}],["audit",{"2":{"4":1}}],["act",{"2":{"293":1}}],["active=",{"2":{"236":1}}],["activate",{"2":{"209":1,"210":1}}],["actions",{"0":{"163":1},"2":{"124":1,"229":1}}],["action",{"2":{"5":1,"6":1,"139":1,"163":3,"209":1}}],["acorn",{"2":{"222":10}}],["acedesc",{"2":{"200":2}}],["acerawvalue",{"2":{"200":2}}],["ace123",{"2":{"200":1}}],["ace",{"2":{"200":7}}],["accordingly",{"2":{"290":1}}],["accountview",{"2":{"167":4,"168":3}}],["account",{"2":{"160":1,"164":1,"178":2}}],["accessibility",{"2":{"181":1}}],["accessed",{"2":{"51":1}}],["accentcolor",{"2":{"178":1}}],["acceptheader",{"2":{"113":1,"114":1,"115":1}}],["accept",{"2":{"4":1,"113":1}}],["another",{"2":{"293":1}}],["animated",{"2":{"211":1}}],["animations",{"2":{"173":2}}],["animation",{"2":{"3":1,"166":1,"179":1}}],["anchorslinksinternal",{"2":{"281":1}}],["anchorscustom",{"2":{"281":1}}],["anchors",{"0":{"272":1,"273":1},"1":{"273":1},"2":{"270":1,"272":1,"273":2,"275":1}}],["anchor",{"2":{"179":1,"272":2,"273":3,"294":6}}],["ancestor",{"2":{"86":1}}],["angle2",{"2":{"166":2}}],["angle",{"2":{"166":5}}],["any",{"2":{"8":1,"9":1,"10":1,"119":2,"229":2}}],["android等平台上",{"2":{"254":1}}],["android",{"2":{"94":1}}],["android工程",{"2":{"55":2}}],["and",{"0":{"290":1},"2":{"4":1,"106":1,"119":4,"131":1,"173":2,"178":1,"195":1,"217":1,"274":1,"275":1,"276":1,"278":1,"281":1,"282":1,"285":2,"287":3,"288":1,"302":1}}],["an",{"2":{"4":1,"119":3,"152":1,"173":2,"178":2,"193":2,"194":1,"199":1,"202":1,"283":2}}],["ants",{"2":{"195":1}}],["antgroup",{"2":{"2":1,"8":1,"10":1}}],["antv",{"2":{"2":1,"4":1,"5":1,"6":1,"7":1,"8":2,"9":1,"10":2}}],["antfu",{"2":{"1":4,"218":3,"231":2}}],["wgsl语句结尾分号不能省略",{"2":{"240":1}}],["wgsl结构体有点类似javascript中的类",{"2":{"240":1}}],["wgsl中的函数写法",{"2":{"240":1}}],["wgsl是在gpu上执行",{"2":{"240":1}}],["would",{"2":{"195":1}}],["working",{"2":{"270":1}}],["workspace",{"2":{"13":1,"17":2,"236":3}}],["word",{"2":{"50":1}}],["world级别的demo都没有写过",{"2":{"253":1}}],["world不行",{"2":{"193":1}}],["world",{"0":{"187":1},"2":{"16":1,"58":1,"59":1,"89":1,"103":1,"139":3,"140":1,"187":1,"209":1}}],["wraps",{"2":{"285":1}}],["wrappedvalue",{"2":{"139":1}}],["write",{"2":{"51":1}}],["wd",{"2":{"113":1}}],["w500",{"2":{"85":1}}],["w800",{"2":{"72":1,"73":1}}],["welcome",{"2":{"205":17}}],["weixin",{"2":{"102":1,"183":1}}],["weight",{"2":{"7":1,"137":1,"164":1,"173":4}}],["wejua",{"2":{"54":1}}],["webxrmanager",{"2":{"262":2}}],["webgpu坐标系在canvas画布上的坐标原点是canvas画布的中间位置",{"2":{"259":1}}],["webgpu坐标系",{"0":{"259":1}}],["webgpu真的顶",{"2":{"258":1}}],["webgpu性能测试",{"0":{"258":1}}],["webgpu已经出来了",{"2":{"256":1}}],["webgpu它把graphic的技术",{"2":{"255":1}}],["webgpu可以运行在windows",{"2":{"254":1}}],["webgpu",{"0":{"255":1},"2":{"247":1}}],["webgpucontext",{"2":{"247":4,"250":2}}],["webgpu下一步",{"2":{"245":1}}],["webgl的渲染管线它的流程是怎样的",{"0":{"311":1}}],["webglbufferrenderer和webglindexedbufferrenderer",{"2":{"263":1}}],["webgl和three",{"2":{"259":1}}],["webgl重写底层渲染",{"2":{"257":1}}],["webglrenderer的render方法",{"0":{"263":1}}],["webglrenderer",{"0":{"262":1},"2":{"246":1,"262":1,"263":3}}],["webgl",{"2":{"26":6,"264":1,"265":2}}],["website",{"2":{"162":2,"163":1}}],["webpack注功绘制二维码中间logo",{"2":{"231":1}}],["webpack",{"2":{"133":1}}],["web",{"2":{"19":3,"93":1}}],["wanna",{"2":{"285":1}}],["warning",{"2":{"270":2,"283":6,"290":4,"293":1}}],["warnings",{"0":{"290":1},"2":{"270":1,"281":1}}],["warn",{"2":{"252":2}}],["watercress",{"2":{"195":1}}],["waitduration",{"2":{"88":1}}],["was",{"2":{"86":1,"217":1,"252":2}}],["waste",{"2":{"10":1}}],["wakk则可以正常执行",{"2":{"217":1}}],["wakk",{"2":{"17":1,"152":1,"173":2,"197":2,"216":1,"217":1,"218":1,"223":2,"252":2}}],["w",{"2":{"14":1,"19":1,"222":1}}],["w表示将依赖安装到公共模块中",{"2":{"14":1}}],["wish",{"2":{"270":1}}],["will",{"2":{"270":1,"275":1,"278":1,"288":1,"289":1,"290":1,"293":1}}],["willset",{"2":{"199":1}}],["window3",{"2":{"235":5}}],["window2",{"2":{"234":1}}],["window",{"2":{"233":1,"235":3,"298":1}}],["windows",{"2":{"222":2,"235":1}}],["windows执行的是cmd文件",{"2":{"222":1}}],["windows和linux操作系统",{"2":{"92":1}}],["windowgroup",{"2":{"174":1}}],["wide",{"2":{"286":1}}],["widget中",{"2":{"86":1}}],["widget需要被包裹在scaffold",{"2":{"86":1}}],["widget可以完全或者部分覆盖基础widget",{"2":{"66":1}}],["widget分为两类",{"2":{"65":1}}],["widget的flex属性",{"2":{"62":1}}],["widget调整widgets的大小以适合行或列",{"2":{"62":1}}],["widget垂直排列widgets",{"2":{"60":1}}],["widget水平排列widgets",{"2":{"60":1}}],["widget添加到app的build方法里",{"2":{"59":1}}],["widget直接添加到主页body的属性中",{"2":{"58":1}}],["widget",{"2":{"58":2,"59":1,"66":1,"86":1,"89":2,"110":1,"113":1,"114":1,"115":1,"117":2,"118":2,"119":4,"121":1,"123":2,"124":2,"129":2}}],["widgets",{"2":{"65":1}}],["widgets库中的标准widgets和material库中的widgets",{"2":{"65":1}}],["widgets可以用于布局和展示ui元素",{"2":{"57":1}}],["widgets是用于构建ui的类",{"2":{"57":1}}],["width",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"70":1,"79":1,"86":1,"90":1,"137":2,"138":1,"152":1,"155":1,"158":1,"165":6,"166":18,"167":4,"168":5,"172":1,"176":1,"177":1,"179":1}}],["withanimation",{"2":{"166":1,"167":1,"168":1,"173":1}}],["with",{"2":{"4":1,"94":1,"96":1,"131":1,"165":1,"166":1,"173":2,"199":5,"271":1,"275":1,"276":1,"278":1,"285":2,"293":1}}],["www",{"2":{"2":1,"53":1,"76":1,"162":2,"163":1,"245":1,"257":2}}],["where",{"2":{"195":1,"285":1}}],["when",{"2":{"119":1,"285":1,"293":1}}],["white",{"2":{"66":1,"159":1,"173":1}}],["while一样",{"2":{"196":1}}],["while和do",{"2":{"196":1}}],["while和repeat",{"0":{"196":1},"2":{"192":1}}],["while来进行循环",{"2":{"192":1}}],["while等流程控制语句的使用方法和js中基本一致",{"2":{"39":1}}],["while",{"0":{"196":1},"2":{"39":1,"196":2,"289":1}}],["what",{"2":{"2":1,"118":1}}],["whyframe",{"2":{"285":1}}],["why",{"2":{"1":1}}],["致远这篇文章的时候真的是羡慕这样的团队",{"2":{"2":1}}],["致远",{"2":{"2":1}}],["语雀知源",{"2":{"2":1}}],["msg",{"2":{"287":6,"288":2,"289":4,"290":4}}],["msys",{"2":{"222":1}}],["mdit",{"2":{"294":3}}],["mdsome",{"2":{"293":1}}],["md```ts",{"2":{"291":1}}],["md",{"2":{"270":4,"275":13,"283":1,"284":1,"285":1,"292":1,"293":4,"294":2,"299":1}}],["m",{"2":{"131":1,"196":4}}],["mudules",{"2":{"218":1}}],["multilang",{"2":{"236":1}}],["multilinetextalignment",{"2":{"152":2}}],["multiplier",{"2":{"205":3}}],["multiple",{"2":{"26":2,"287":2,"292":1}}],["mutating",{"2":{"140":1,"201":1}}],["must",{"2":{"119":1,"204":1}}],["mp",{"2":{"102":1,"183":1}}],["mymethod",{"2":{"252":4}}],["myvariable",{"2":{"252":6}}],["mylabel的左侧和view",{"2":{"210":1}}],["mylabel的顶部和view",{"2":{"210":1}}],["mylabel",{"2":{"209":12,"210":2}}],["mywidget",{"2":{"129":3}}],["mycomponent",{"2":{"286":2}}],["mycontroller",{"2":{"123":6,"129":3}}],["myclass",{"2":{"252":7}}],["mycustomformstate",{"2":{"123":3}}],["mycustomform",{"2":{"123":4}}],["my",{"2":{"85":1,"199":1,"225":1,"234":4,"273":2}}],["myappstate",{"2":{"110":2}}],["myapp",{"2":{"58":2,"59":2,"110":5,"113":3,"114":3,"115":3,"121":3,"123":3}}],["might",{"2":{"285":1}}],["missing",{"2":{"270":2}}],["mid=2649127118",{"2":{"102":1}}],["mia",{"2":{"66":1}}],["mingw",{"2":{"222":1}}],["minimum",{"2":{"176":1}}],["mini",{"0":{"97":1}}],["mini环境配置",{"0":{"94":1}}],["min`",{"2":{"77":1}}],["min",{"2":{"63":2,"77":1,"197":5}}],["mirror",{"2":{"26":1}}],["most",{"2":{"302":1}}],["motd",{"2":{"287":2}}],["more",{"2":{"278":1,"286":1,"291":1,"294":1}}],["move",{"2":{"166":1}}],["mounted",{"2":{"119":2,"307":1}}],["mousedown",{"2":{"29":2}}],["mousemove",{"2":{"29":1}}],["mode",{"2":{"242":1}}],["modelposition",{"2":{"265":2}}],["modelmatrix",{"2":{"265":2}}],["model",{"2":{"136":3,"170":1,"174":8}}],["modelbottomsheet",{"2":{"125":1}}],["models",{"2":{"24":1}}],["modules目录中",{"2":{"226":1}}],["modules下生成软链接吗",{"2":{"223":1}}],["modules下acorn",{"2":{"222":1}}],["modules",{"2":{"222":1,"223":2}}],["moduleresolution",{"2":{"218":2}}],["module",{"2":{"218":2,"294":1}}],["module配置",{"2":{"218":1}}],["modalpresentationstyle",{"2":{"211":1}}],["modifier",{"2":{"26":1,"159":1}}],["monorepo",{"2":{"236":1}}],["monorepo+pnpm",{"2":{"215":1,"223":1}}],["monorepo的demo项目完成",{"2":{"17":1}}],["monorepo学习",{"0":{"11":1},"1":{"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1},"2":{"20":1}}],["may",{"2":{"284":1,"286":1}}],["makearray",{"2":{"203":2}}],["makeincrementer",{"2":{"197":2}}],["make",{"2":{"195":2,"293":1}}],["makebody",{"2":{"138":1}}],["manager",{"2":{"285":1}}],["manager是apple为了弥补当前ios开发中缺少官方组件库管理工具的产物",{"2":{"183":1}}],["manager使用",{"0":{"183":1}}],["managedobjectcontext",{"2":{"174":1}}],["manual",{"2":{"2":1}}],["magnifyingglass",{"2":{"167":2,"168":1}}],["mask",{"2":{"158":1,"177":1}}],["master",{"2":{"103":1,"131":1}}],["mail",{"2":{"137":1}}],["mainimage",{"2":{"66":1}}],["mainaxisspacing",{"2":{"66":1}}],["mainaxissize",{"2":{"63":2,"77":2}}],["mainaxisalignment",{"2":{"61":2,"62":2,"77":2,"119":2,"121":2}}],["main",{"2":{"51":1,"54":1,"85":1,"89":1,"109":1,"110":1,"112":1,"113":1,"114":1,"115":1,"117":1,"118":1,"119":1,"121":1,"123":1,"129":2,"131":2,"174":1,"208":1,"240":1,"294":1}}],["machedview",{"2":{"173":1}}],["mac自带git",{"2":{"147":1}}],["mac环境安装",{"0":{"143":1},"1":{"144":1,"145":1,"146":1,"147":1,"148":1}}],["macos",{"2":{"94":1,"254":1}}],["mac",{"0":{"94":1,"97":1}}],["maven",{"2":{"92":7,"93":1}}],["maxbuffer",{"2":{"313":1}}],["max",{"2":{"197":5}}],["maxheight",{"2":{"137":3,"167":3,"168":3}}],["maxwidth",{"2":{"137":2,"164":1,"167":2,"168":2,"173":2,"176":1}}],["maxcrossaxisextent",{"2":{"66":1}}],["maximum",{"2":{"28":1}}],["margins",{"2":{"65":1}}],["margin",{"2":{"57":1,"70":1,"88":1}}],["markup",{"2":{"302":1}}],["markdown",{"0":{"267":1,"293":1},"1":{"268":1,"269":1,"270":1,"271":1,"272":1,"273":1,"274":1,"275":1,"276":1,"277":1,"278":1,"279":1,"280":1,"281":1,"282":1,"283":1,"284":1,"285":1,"286":1,"287":1,"288":1,"289":1,"290":1,"291":1,"292":1,"293":1,"294":1},"2":{"271":1,"272":1,"281":1,"286":2,"291":2,"293":4,"294":10}}],["mark",{"0":{"9":1},"2":{"3":1,"9":2,"291":1}}],["map数据的迭代方法",{"2":{"252":1}}],["map中再套map",{"2":{"247":1}}],["mappednumbers",{"2":{"198":3}}],["map方法必须有一个return返回值",{"2":{"198":1}}],["map不会改变原数组的值",{"2":{"198":1}}],["map是维护若干个键值对的数据类型",{"2":{"49":1}}],["map",{"2":{"35":1,"110":1,"113":1,"198":2,"235":3,"247":1}}],["matrixworldautoupdate",{"2":{"252":4}}],["mat4x4",{"2":{"240":2}}],["mat3x3",{"2":{"240":1}}],["mat2x2",{"2":{"240":1}}],["matchedgeometryeffect",{"2":{"173":8}}],["matched",{"0":{"173":1}}],["materialpageroute",{"2":{"117":1,"118":1,"119":1}}],["materialapp",{"2":{"58":1,"89":1,"110":1,"113":1,"114":1,"115":1,"117":1,"118":1,"119":1,"121":1,"123":1,"129":2}}],["material",{"2":{"32":2,"65":1,"86":1,"89":1,"110":1,"113":1,"114":1,"115":1,"117":1,"118":1,"119":1,"121":1,"123":1,"129":2}}],["math",{"2":{"24":2,"103":1,"306":1}}],["merging",{"2":{"311":1}}],["merge",{"0":{"81":1},"2":{"81":1,"131":1}}],["mergegeometry",{"2":{"24":5}}],["mean",{"2":{"218":1}}],["message",{"2":{"88":1,"136":1,"205":3,"229":5}}],["menu",{"2":{"85":1,"89":1,"236":1}}],["metal学习",{"0":{"149":1}}],["metal",{"0":{"55":1},"2":{"55":1,"99":1,"149":1,"255":2}}],["metal等",{"2":{"54":1}}],["method",{"2":{"34":1,"114":1,"115":1,"119":1,"136":1,"252":4,"298":1}}],["me",{"2":{"1":1,"284":2}}],["f",{"2":{"250":2,"252":2}}],["fbo",{"2":{"245":1}}],["f32",{"2":{"240":22}}],["fn1",{"2":{"233":2}}],["fn",{"2":{"233":2,"234":6,"240":2}}],["fragment",{"2":{"311":2}}],["framework的东西",{"2":{"213":1}}],["frame",{"2":{"137":6,"138":1,"152":2,"155":2,"156":1,"158":1,"164":1,"165":1,"166":1,"167":9,"168":9,"172":2,"173":2,"176":3,"177":1,"179":1}}],["frame属性给view提供特定空间",{"2":{"137":1}}],["frontmatter",{"0":{"278":1},"2":{"278":2}}],["fromjson",{"2":{"110":2}}],["fromltrb",{"2":{"70":1,"121":2}}],["fromrgbo",{"2":{"70":1}}],["from",{"2":{"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"16":1,"17":2,"119":2,"140":1,"141":1,"142":1,"180":2,"218":1,"229":7,"236":4,"270":1,"292":2}}],["ff",{"2":{"131":2}}],["further",{"2":{"294":1}}],["full",{"2":{"294":1}}],["fullname",{"2":{"234":6}}],["fullscreen",{"2":{"211":1,"236":1}}],["fullscreencover",{"2":{"139":1}}],["fun",{"2":{"235":2}}],["funds",{"2":{"202":1}}],["func",{"2":{"136":1,"138":1,"140":4,"159":2,"166":1,"168":1,"197":4,"199":6,"200":1,"201":1,"202":1,"209":2}}],["function",{"2":{"9":1,"217":1,"231":1,"233":1,"234":3,"252":1,"266":2,"298":1,"305":2}}],["futurebuilder",{"2":{"110":1}}],["futurealbum",{"2":{"110":3}}],["future",{"2":{"109":1,"110":3,"113":1,"114":1,"115":1,"119":2}}],["future是dart用来处理异步操作的一个核心类",{"2":{"108":1}}],["fvm文件夹",{"2":{"98":1}}],["fvm",{"2":{"98":7}}],["fvm切换flutter版本",{"0":{"98":1}}],["father",{"2":{"308":1}}],["fatal",{"2":{"131":1}}],["failure",{"2":{"136":1,"179":1}}],["failed",{"2":{"96":1,"109":1,"110":1,"113":1,"114":1,"115":1}}],["fast",{"2":{"131":1}}],["factory",{"2":{"110":1}}],["false不进行增量编译",{"2":{"19":1}}],["false",{"2":{"6":1,"19":4,"88":2,"105":2,"124":1,"131":2,"140":2,"142":1,"163":1,"166":1,"171":2,"173":1,"174":1,"197":1,"209":1}}],["float32array",{"2":{"245":1}}],["float",{"2":{"188":1,"190":1}}],["floatingactionbutton",{"2":{"129":4}}],["flex",{"2":{"62":1,"74":1}}],["flutter打包问题",{"0":{"106":1}}],["flutter项目学习",{"0":{"104":1},"1":{"105":1,"106":1}}],["flutter中使用metal",{"0":{"102":1},"1":{"103":1}}],["flutter中如何使用arkit和arcore来实现一个ar",{"2":{"55":1}}],["flutter是否可以实现",{"2":{"98":1}}],["flutter如何打包成各种版本的app",{"2":{"98":1}}],["flutter的包管理工具pub",{"0":{"93":1}}],["flutter入门学习",{"0":{"91":1},"1":{"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1}}],["flutter内置进度条有三种类型",{"2":{"90":1}}],["flutter提供了两个开箱即用的文本框组件",{"2":{"86":1}}],["fluttericon",{"2":{"76":1}}],["flutter常用组件",{"0":{"69":1},"1":{"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1}}],["flutter会调用build方法来生成新的部件树",{"2":{"67":1}}],["flutter还提供专门的",{"2":{"60":1}}],["flutter",{"2":{"58":2,"67":1,"89":1,"93":1,"94":1,"97":10,"102":1,"103":1,"108":1,"110":1,"111":1,"113":1,"114":1,"115":1,"117":1,"118":1,"119":1,"121":1,"123":2,"127":2,"129":2}}],["flutter学习",{"0":{"56":1},"1":{"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1}}],["flush",{"2":{"51":1}}],["fenced",{"2":{"291":1}}],["feishu",{"2":{"183":1}}],["feature",{"2":{"293":1}}],["featureditem",{"2":{"172":1}}],["featured",{"2":{"171":2}}],["feat",{"2":{"133":1}}],["feedback",{"2":{"60":1}}],["fetching",{"2":{"180":1}}],["fetchaddress",{"2":{"180":2}}],["fetchalbum",{"2":{"108":1,"110":2}}],["fetchdata",{"2":{"109":2,"140":2,"142":2}}],["fetch",{"2":{"7":1,"8":1,"10":1,"109":1,"110":2,"140":1,"142":1}}],["focused",{"2":{"288":2}}],["focus",{"0":{"288":1},"2":{"288":5}}],["foorc",{"2":{"293":2}}],["foo",{"2":{"270":5,"275":7}}],["footnote",{"2":{"173":4,"177":1,"178":1}}],["four",{"2":{"200":1,"270":2,"275":3}}],["found",{"2":{"191":2,"266":1}}],["following",{"2":{"131":1,"270":1,"275":1}}],["font",{"2":{"137":2,"138":1,"152":1,"161":2,"164":2,"167":2,"168":2,"173":6,"177":1,"178":1,"209":1,"245":1}}],["fonts",{"2":{"76":1}}],["fontsize",{"2":{"59":1,"66":1,"72":1,"73":1,"125":1,"129":1}}],["fontfamily",{"2":{"72":1,"73":1}}],["fontweight",{"2":{"66":2,"72":2,"73":2,"85":2,"152":1}}],["fontloader",{"2":{"25":1}}],["fork会在父进程与子进程之间",{"2":{"313":1}}],["fork",{"2":{"313":3}}],["for=",{"2":{"286":2}}],["foregroundstyle",{"2":{"157":2,"161":1,"165":1,"167":1,"168":1,"173":2}}],["foregroundcolor",{"2":{"138":1,"139":3,"161":1,"162":2,"163":1,"164":1,"177":1,"178":2}}],["foreach",{"2":{"49":1,"167":1,"168":1,"172":1,"176":1,"177":1,"236":1,"308":2}}],["foreach遍历",{"2":{"49":1}}],["forward",{"2":{"131":1}}],["formkey",{"2":{"123":3}}],["form",{"2":{"123":2}}],["formstate",{"2":{"123":1}}],["forms",{"2":{"123":1}}],["format",{"2":{"1":1,"218":4}}],["for循环遍历",{"2":{"47":1}}],["for",{"2":{"28":1,"34":1,"39":1,"47":3,"48":1,"118":1,"131":1,"173":2,"194":1,"195":2,"196":1,"197":2,"203":1,"205":2,"245":2,"250":2,"252":1,"270":1,"273":1,"275":2,"278":1,"285":1,"286":2,"287":3,"291":2,"293":1,"294":2}}],["forcedstring",{"2":{"193":1}}],["force",{"2":{"4":3}}],["fi",{"2":{"222":1}}],["five",{"2":{"200":1}}],["fibonacci",{"2":{"195":1}}],["field11",{"2":{"123":1}}],["finish",{"2":{"250":1}}],["find",{"2":{"86":1,"218":1}}],["final不仅有const的编译时常量的特性",{"2":{"34":1}}],["final关键字声明的常量只能赋值一次且声明时可以不用赋值",{"2":{"34":1}}],["final",{"2":{"34":1,"44":1,"45":1,"47":2,"66":1,"109":3,"110":4,"112":1,"113":1,"114":1,"115":1,"118":4,"119":1,"121":3,"123":2,"129":1}}],["filters实现",{"2":{"308":1}}],["filter",{"2":{"177":1}}],["fill",{"2":{"66":1,"75":2,"138":1,"161":4,"164":1,"165":3,"166":1,"167":3,"168":3,"177":1}}],["files",{"2":{"220":1}}],["file",{"0":{"293":1},"2":{"51":5,"205":1,"217":1,"218":1,"270":1,"275":1,"281":1,"285":1,"293":5}}],["fit",{"2":{"66":1,"75":1,"156":1}}],["firstroute",{"2":{"117":3}}],["first",{"2":{"8":1,"117":1}}],["fixedsize",{"2":{"137":1}}],["fix",{"2":{"4":2,"133":1}}],["fixall",{"2":{"1":1,"218":1}}],["fpgdp5",{"2":{"2":1}}],["固执己见",{"2":{"1":1}}],["固执己见的",{"2":{"1":1}}],["也会触发重排",{"2":{"308":1}}],["也会走img",{"2":{"266":1}}],["也会带来试错成本",{"2":{"256":1}}],["也没有纹理",{"2":{"263":1}}],["也是three内置好的变量",{"2":{"265":1}}],["也是必然会涉及到的",{"2":{"257":1}}],["也是通过cpu和gpu共同处理显示出来的",{"2":{"101":1}}],["也还是做不到bimface那样的流畅操作",{"2":{"256":1}}],["也访问不了父类的private属性和方法",{"2":{"252":1}}],["也因为没有模块化要求",{"2":{"230":1}}],["也可以单个项目安装",{"2":{"217":1}}],["也可以通过bin配置别名",{"2":{"216":1}}],["也可以通过下标来访问元组中的单个元素",{"2":{"191":1}}],["也可以在set之后的圆括号中显示地设置一个名字",{"2":{"199":1}}],["也就明白了为什么",{"2":{"250":1}}],["也就是所谓的片元",{"2":{"311":1}}],["也就是说",{"2":{"50":1}}],["也就是文中所说的prettier的",{"2":{"1":1}}],["也就相当于修改了未释放的offsetpositiondata的值",{"2":{"31":1}}],["也不需要学习它的底层代码",{"2":{"2":1}}],["也最终会走向没落",{"2":{"2":1}}],["也对eslint不够了解",{"2":{"1":1}}],["pseudo",{"2":{"285":2}}],["ps1",{"2":{"222":1}}],["pc",{"2":{"213":1}}],["phase",{"2":{"179":2}}],["phasescriptexecution",{"2":{"96":1}}],["photos",{"2":{"179":1}}],["phone",{"2":{"137":1}}],["pepper",{"2":{"195":1}}],["pencil",{"2":{"139":1}}],["permalink",{"2":{"294":2}}],["perimeter",{"2":{"199":3}}],["perspectivecamera",{"2":{"261":4}}],["perspective",{"2":{"243":1}}],["persistencecontroller",{"2":{"174":3}}],["person2",{"2":{"252":2}}],["person1",{"2":{"252":2}}],["person",{"2":{"141":5,"161":1,"164":1,"197":5,"204":1,"234":9,"235":6,"252":5}}],["perf",{"2":{"133":1}}],["per",{"2":{"131":1}}],["peerdependencyrules",{"2":{"270":1}}],["peer",{"2":{"4":2,"270":2}}],["p调出输命令框",{"2":{"95":1}}],["png",{"2":{"62":4,"66":3,"70":1,"75":1,"84":1}}],["pnpm来执行对应的命令",{"2":{"223":1}}],["pnpm",{"2":{"12":1,"18":1,"269":1,"270":2}}],["pull",{"2":{"131":7,"132":2}}],["put",{"2":{"129":1}}],["published",{"2":{"174":2}}],["public",{"2":{"92":1,"247":2,"252":9}}],["pub",{"2":{"67":2,"93":1,"97":2,"102":1,"103":1,"108":1,"111":1,"121":1,"127":1}}],["purple",{"2":{"59":1,"70":1}}],["push",{"2":{"28":1,"117":1,"118":1,"119":2,"245":1}}],["p3是",{"2":{"32":1}}],["p3来定义",{"2":{"32":1}}],["p2需要添加在p3左侧",{"2":{"32":1}}],["p2",{"2":{"32":1}}],["p1和p2是需要添加的控制点",{"2":{"32":1}}],["p1",{"2":{"32":1}}],["p0是",{"2":{"32":1}}],["p0和p3是曲线的起点和终点",{"2":{"32":1}}],["p0",{"2":{"32":1}}],["pixel",{"2":{"242":1}}],["pinia中的options",{"0":{"229":1}}],["pinia",{"0":{"228":1},"1":{"229":1,"230":1},"2":{"229":2}}],["pin",{"2":{"163":4}}],["pink",{"2":{"90":1,"165":2,"166":1,"167":1,"168":1}}],["picsum",{"2":{"179":1}}],["pick",{"2":{"119":2,"242":2}}],["pickcolors",{"2":{"31":2}}],["pic3",{"2":{"61":1}}],["pic2",{"2":{"61":1}}],["pic1",{"2":{"61":1}}],["pico自动进入steamvr界面",{"2":{"55":1}}],["pico客户端",{"2":{"55":1}}],["pi",{"2":{"24":2,"189":2}}],["placement",{"2":{"177":1}}],["play",{"2":{"19":3}}],["please",{"2":{"123":1,"202":1,"286":1,"291":1}}],["plist中添加下面权限",{"2":{"103":1}}],["plugin插件的示例代码",{"2":{"103":1}}],["plugin",{"0":{"103":1},"2":{"67":2,"92":1,"100":1,"102":1,"103":3,"218":1,"294":2}}],["plugins",{"2":{"55":1,"285":1,"294":2}}],["plus的theme文件夹下index",{"2":{"236":1}}],["plus的vitepress配置",{"0":{"236":1},"1":{"237":1}}],["plus的配置命令",{"2":{"19":1}}],["plus的命令配置",{"2":{"19":1}}],["plus的源码",{"2":{"11":1}}],["plus",{"2":{"14":1,"236":7,"237":1}}],["plus和typescript依赖",{"0":{"14":1},"2":{"11":1}}],["p",{"2":{"19":8,"251":1}}],["painting",{"2":{"308":1}}],["paths",{"2":{"218":1}}],["path",{"2":{"165":1,"166":12,"217":2,"293":1}}],["path=",{"2":{"97":2}}],["palette",{"2":{"161":1}}],["pages",{"2":{"276":1}}],["pagesize",{"2":{"229":2}}],["pageno",{"2":{"229":2}}],["page",{"0":{"276":1},"2":{"136":1,"172":1,"278":1}}],["pass",{"2":{"131":1}}],["passing",{"2":{"118":1}}],["part",{"2":{"293":1}}],["parts",{"2":{"288":1,"293":2}}],["params",{"2":{"229":4}}],["paras",{"2":{"113":2}}],["parse层拿到原始数据后",{"2":{"24":1}}],["parse层",{"2":{"24":1}}],["parse",{"2":{"24":1,"36":2,"108":1,"109":1,"110":1}}],["parse解析获取cad图纸中的第一手原始数据",{"2":{"23":1}}],["package",{"0":{"183":1,"216":1},"2":{"89":1,"108":1,"109":1,"110":2,"111":1,"112":1,"113":2,"114":2,"115":2,"117":1,"118":1,"119":1,"121":2,"123":1,"129":4,"183":1,"218":1,"270":1,"285":1}}],["packages",{"2":{"13":1,"18":1,"67":2,"97":1,"102":1,"103":1,"127":1,"294":1}}],["padding属性是必写的",{"2":{"82":1}}],["padding",{"0":{"82":1},"2":{"6":2,"66":1,"70":1,"82":1,"88":1,"118":2,"119":4,"121":4,"123":2,"140":2,"152":2,"155":1,"161":1,"167":4,"168":4,"173":3,"308":1}}],["prevent",{"2":{"270":1,"285":1,"288":1,"289":1,"290":1}}],["previous",{"2":{"119":1}}],["preview",{"2":{"171":1}}],["preview运行",{"2":{"55":1}}],["preview功能已开启",{"2":{"55":1}}],["present",{"2":{"211":1,"293":1}}],["presentationmode",{"2":{"139":1}}],["precondition",{"2":{"204":1}}],["pretzels",{"2":{"202":1}}],["prettier",{"2":{"0":1,"1":1,"218":1}}],["prefix",{"2":{"285":5,"293":1}}],["prefs",{"2":{"121":6}}],["preferred",{"2":{"285":1}}],["prefer",{"2":{"218":1}}],["preferencekey",{"2":{"168":1}}],["preference",{"2":{"131":1,"168":1}}],["preferences",{"0":{"121":1},"2":{"120":1,"121":3}}],["preferbelow",{"2":{"88":1}}],["priority",{"2":{"252":2}}],["primitive",{"2":{"311":1}}],["prime",{"2":{"195":1}}],["primary",{"2":{"157":1,"167":1,"168":1,"178":1}}],["primaryswatch",{"2":{"110":1}}],["privacy",{"2":{"178":1}}],["private修饰的属性和方法只能够在类的内部直接进行访问",{"2":{"252":1}}],["private",{"2":{"140":2,"252":6}}],["printresult",{"2":{"140":2}}],["printlatestvalue",{"2":{"123":2}}],["printdata",{"2":{"41":2,"42":2}}],["print",{"2":{"38":2,"40":1,"41":1,"42":1,"44":1,"45":2,"47":4,"48":5,"49":1,"50":1,"51":3,"87":1,"109":2,"112":2,"113":2,"114":2,"115":4,"121":2,"123":1,"124":4,"125":1,"136":2,"140":3,"141":1,"142":1,"163":1,"177":1,"180":1,"189":2,"190":2,"191":4,"194":6,"195":5,"196":4,"197":5,"198":3,"199":5,"200":3,"202":6,"203":1,"205":13,"209":1}}],["price",{"2":{"8":1,"202":7}}],["pro做了一个打包优化",{"2":{"296":1}}],["properties",{"2":{"294":1}}],["property",{"2":{"119":1}}],["process",{"2":{"313":4}}],["processing",{"2":{"123":1,"288":1,"289":1,"290":1}}],["proceed",{"2":{"284":2}}],["providing",{"2":{"275":1}}],["protected修饰的属性和方法只能够在父类或者子类内部访问",{"2":{"252":1}}],["prototype",{"2":{"235":3}}],["programming",{"2":{"286":1,"302":1}}],["program",{"2":{"217":1}}],["progressview",{"2":{"179":1}}],["prompt",{"2":{"177":1}}],["promise",{"2":{"28":1}}],["proxy",{"2":{"168":2,"176":2}}],["profile",{"2":{"97":2}}],["projectedposition",{"2":{"265":1}}],["projectionmatrix",{"2":{"265":2}}],["projectcontroller",{"2":{"211":1}}],["project",{"2":{"19":1,"293":1}}],["product",{"2":{"103":1}}],["prod",{"2":{"7":1}}],["powershell中可执行文件",{"2":{"222":1}}],["policy",{"2":{"178":1}}],["popular",{"2":{"302":1}}],["popup",{"2":{"89":1}}],["popupmenuitem",{"2":{"89":3}}],["popupmenuentry",{"2":{"89":1}}],["popupmenuexamplestate",{"2":{"89":2}}],["popupmenuexample",{"2":{"89":5}}],["popupmenubutton",{"2":{"89":2}}],["popupmenubutton弹出菜单",{"0":{"89":1}}],["popupmenuapp",{"2":{"89":3}}],["pop",{"2":{"117":1,"119":4,"124":5,"125":3}}],["pod",{"2":{"175":4}}],["podfile",{"2":{"103":1}}],["pods文件夹",{"2":{"103":1}}],["possible",{"2":{"287":1}}],["possiblestring",{"2":{"193":2}}],["pos转齐次坐标",{"2":{"240":1}}],["pos2",{"2":{"240":2}}],["pos",{"2":{"240":2}}],["position2",{"2":{"240":1}}],["positions中",{"2":{"31":1}}],["positions",{"2":{"31":3}}],["position",{"2":{"24":5,"28":3,"240":8}}],["postcssrc",{"2":{"285":1}}],["postcss",{"2":{"285":3}}],["post",{"2":{"20":1,"55":1,"92":1,"98":1,"100":1,"128":1,"130":1,"146":1,"149":1,"184":1,"185":1,"217":2,"251":1,"264":2,"298":1}}],["posts",{"2":{"1":1,"185":2}}],["pointarr",{"2":{"245":3}}],["pointlight",{"2":{"240":2}}],["pointline",{"2":{"9":2}}],["points",{"2":{"32":2}}],["pointermove",{"2":{"29":1}}],["point",{"2":{"7":1,"9":1}}],["potentially",{"2":{"4":1}}],["配套的as插件帮助建立开发规范和进一步提高开发效率",{"2":{"100":1}}],["配置如下",{"2":{"223":1}}],["配置了bin字段的所有包都会在node",{"2":{"223":1}}],["配置了bin就一定会生成软链接吗",{"0":{"223":1}}],["配置是用来说明哪些文件需要编译",{"2":{"218":1}}],["配置文件",{"2":{"218":1}}],["配置友好的脚手架命令提示等内容",{"2":{"217":1}}],["配置等",{"2":{"133":1}}],["配置环境变量",{"0":{"97":1}}],["配置下面五个类型检查命令分别进行对应模块的类型检查",{"2":{"19":1}}],["配置",{"0":{"216":1,"219":1},"1":{"220":1},"2":{"1":1,"218":1}}],["配合ide扩展",{"2":{"1":1}}],["哦不",{"2":{"248":1}}],["哦",{"2":{"1":1}}],["并针对每个对象进行必要的计算和渲染操作",{"2":{"263":1}}],["并根据所选图元来调用ourbim现有的功能去做三维模型的构件选中和高亮",{"2":{"256":1}}],["并根据spir",{"2":{"99":1}}],["并支持大家熟悉的游戏引擎及公司",{"2":{"255":1}}],["并返回实例化对象",{"2":{"243":1}}],["并进行整合形成框架的能力",{"2":{"238":1}}],["并进行相应的操作",{"2":{"67":1}}],["并执行命令",{"2":{"225":1}}],["并不会继续向下运行",{"2":{"195":1}}],["并不是所有的字符串都可以转换成一个整数",{"2":{"193":1}}],["并不要求是相同类型",{"2":{"191":1}}],["并生成编译目标产物所需要的相关配置",{"2":{"183":1}}],["并将子进程的输出以回调函数参数的形式一次性返回",{"2":{"313":1}}],["并将其应用于视图或形状",{"2":{"159":1}}],["并将帧和声音发送给客户端进行解码和显示",{"2":{"53":1}}],["并提高应用程序的性能和内存使用效率",{"2":{"128":1}}],["并提供了许多lint的最佳实践",{"2":{"1":1}}],["并触发它们的重建",{"2":{"128":1}}],["并在执行完毕后删除该目录",{"2":{"227":1}}],["并在程序运行之后",{"2":{"213":1}}],["并在变化时触发更新",{"2":{"128":1}}],["并在变化时通知所有依赖它们的widget",{"2":{"128":1}}],["并在各级目录下执行npm",{"2":{"13":1}}],["并通过离线编译的方式打到引擎之中的",{"2":{"99":1}}],["并带有自己的安装程序",{"2":{"53":1}}],["并集",{"2":{"48":1}}],["并最终将结果渲染到屏幕上",{"2":{"30":1}}],["并附加一些额外的属性",{"2":{"30":1}}],["并且tsconfig",{"2":{"218":1}}],["并且整个表达式返回nil",{"2":{"199":1}}],["并且允许重复",{"2":{"47":1}}],["并且final是惰性初始化",{"2":{"34":1}}],["并且与p0的y相同",{"2":{"32":1}}],["并且还能保证图片不失真",{"2":{"27":1}}],["并且更加可配置",{"2":{"0":1}}],["并可以通过",{"2":{"25":1}}],["并行执行脚本",{"2":{"20":1}}],["并行执行命令",{"0":{"19":1}}],["并行对所有模块类型进行检查",{"2":{"19":1}}],["但table及其内部元素除外",{"2":{"308":1}}],["但回流一定会导致重绘",{"2":{"308":1}}],["但sdk的封装请求不可能使用代理的字段去封装",{"2":{"266":1}}],["但这个过程就和我一开始接触做cad一样",{"2":{"256":1}}],["但只能通过类来访问",{"2":{"252":1}}],["但还没有设计到webgpu关键的渲染管线部分",{"2":{"247":1}}],["但我们没有运维",{"2":{"214":1}}],["但我确实在工作中感受到了prettier的一些局限性",{"2":{"1":1}}],["但不包含构造器中发生值改变地情况",{"2":{"199":1}}],["但可以通过父容器设置高度来间接设置",{"2":{"90":1}}],["但如果要将子项紧密结合在一起",{"2":{"63":1,"77":1}}],["但如果内容太长导致可用空间不够容纳时会自动滚动",{"2":{"60":1}}],["但也实在不好意思吹牛说我能保证结果",{"2":{"256":1}}],["但也可能仅仅是过多的堆栈层级",{"2":{"28":1}}],["但也不真实",{"2":{"23":1}}],["但是你不应该这样做",{"2":{"313":1}}],["但是你又不想在你的多行字符串字面量中出现换行符的话",{"2":{"205":1}}],["但是打包发布到线上就会找不到对应的文档",{"2":{"296":1}}],["但是前段时间突然发现语雀竟然不允许我新建知识库了",{"2":{"295":1}}],["但是还是会在控制台报错",{"2":{"266":1}}],["但是选择批注的辉光效果目前不是很好实现",{"2":{"245":1}}],["但是顶点颜色是按照id位计算成rgb值",{"2":{"241":1,"245":2}}],["但是因为",{"2":{"236":1}}],["但是composition",{"2":{"230":1}}],["但是我没有公司的阿里云管理账户",{"2":{"214":1}}],["但是仍然需要在设置一个新值之前或者之后运行代码",{"2":{"199":1}}],["但是字符串hello",{"2":{"193":1}}],["但是语句体的大括号是必须的",{"2":{"192":1}}],["但是它做不了跨平台",{"2":{"182":1}}],["但是它作为一个这么好用的图表库",{"2":{"2":1}}],["但是使用xcode再次打包时却会有很多报错",{"2":{"103":1}}],["但是运行却一直报错",{"2":{"96":1}}],["但是material库中的组件只能在material",{"2":{"65":1}}],["但是却能够实现很多文字的拾取效果",{"2":{"29":1}}],["但是颜色等信息会丢失",{"2":{"27":1}}],["但或许它可以成为一份很好的参考",{"2":{"1":1}}],["但当你要换行的时候尊重你的选择",{"2":{"1":1}}],["但在prettier中却无法做到",{"2":{"0":1}}],["还不如自己主动去适应更强大的tailwindcss",{"2":{"301":1}}],["还发了几篇csdn",{"2":{"295":1}}],["还是需要多做多学",{"2":{"258":1}}],["还是会以初始位置开始进行平移",{"2":{"245":1}}],["还是接口崩溃500",{"2":{"214":1}}],["还需要创造一个进行平移和缩放的2d场景",{"2":{"244":1}}],["还要配备",{"2":{"213":1}}],["还会增加可执行文件的大小",{"2":{"213":1}}],["还和界面切换相关",{"2":{"212":1}}],["还具有路由管理",{"2":{"68":1}}],["还有用于添加抽屉",{"2":{"58":1}}],["还有更自由的选择",{"2":{"0":1}}],["还可以在定义元组的时候给单个元素命名",{"2":{"191":1}}],["还可以在保存时触发自动修复",{"2":{"1":1}}],["还可以对当前widget做更改",{"2":{"67":1}}],["还可以使用wasm方案",{"2":{"26":1}}],["还使用eslint",{"2":{"21":1}}],["这也是为什么要避免使用table布局的原因",{"2":{"308":1}}],["这才是真正能提高我开发效率的工具",{"2":{"301":1}}],["这才是主界面",{"2":{"139":3}}],["这会比webgl性能更好",{"2":{"256":1}}],["这又是做什么的",{"2":{"248":1}}],["这又是一个必须要学的东西",{"2":{"11":1}}],["这一块一直是薄弱点",{"2":{"239":1}}],["这一点是options",{"2":{"230":1}}],["这行代码被当作注释删除",{"2":{"218":1}}],["这意味着函数可以作为另一个函数的返回值",{"2":{"197":1}}],["这意味着它们可以被观察",{"2":{"128":1}}],["这被称为",{"2":{"194":1}}],["这表示",{"2":{"194":1}}],["这种方法的优点是",{"2":{"236":1}}],["这种变体",{"2":{"202":1}}],["这种类型的可选状态被定义为隐式解析可选类型",{"2":{"193":1}}],["这种数据格式应该是固定的",{"2":{"10":1}}],["这位老哥用swift刷了很多的算法题",{"2":{"185":1}}],["这可以避免重复实例化controller",{"2":{"128":1}}],["这得益于arkit提供连续的摄像头图像流",{"2":{"54":1}}],["这就导致了很多方法根据不会被使用",{"2":{"262":1}}],["这就意味着",{"2":{"259":1}}],["这就是cloudxr的精髓所在",{"2":{"53":1}}],["这就必须有所有文字可供批注添加",{"2":{"25":1}}],["这点list是无法做到的",{"2":{"48":1}}],["这些逻辑对于cad来说其实是完全多余的",{"2":{"262":1}}],["这些属性会根据光栅化的结果进行计算",{"2":{"311":1}}],["这些属性可以用来创建约束",{"2":{"210":1}}],["这些属性将用于之后的绘制和着色过程",{"2":{"30":1}}],["这些方案在项目在chrome运行时会失效",{"2":{"120":1}}],["这些基础widgets允许最大程度的自定义",{"2":{"60":1}}],["这些应该是需要结合着色器的语法才能实现",{"2":{"29":1}}],["这次来做一个脚手架开发",{"2":{"218":1}}],["这次我们还是在",{"2":{"215":1}}],["这次事件就是jenkins多个项目同时打包造成的",{"2":{"214":1}}],["这次堆栈溢出的原因是",{"2":{"28":1}}],["这次的升级思路",{"2":{"23":1}}],["这是开销最大的一次重排",{"2":{"308":1}}],["这是因为npx会在执行命令之前",{"2":{"227":1}}],["这是必须实现的方法",{"2":{"67":1}}],["这是进行一次性初始化操作的好地方",{"2":{"67":1}}],["这是statefulwidget的构造方法",{"2":{"67":1}}],["这是statelesswidget的主要生命周期",{"2":{"67":1}}],["这是一种类似于列的布局",{"2":{"60":1}}],["这是一个全局数据",{"2":{"174":1}}],["这是一个用来确定widget的弹性系数的整数",{"2":{"62":1}}],["这是一个易于使用的widget",{"2":{"60":1}}],["这是一个很恐怖的内容问题",{"2":{"28":1}}],["这是基于我自己的需求的另一种",{"2":{"1":1}}],["这个buffer的大小应该是200k",{"2":{"313":1}}],["这个阶段会将顶点着色器输出的顶点连接起来",{"2":{"311":1}}],["这个阶段的输出会被送到下一个阶段进行处理",{"2":{"311":3}}],["这个类的构造函数又是八百多行",{"2":{"262":1}}],["这个类封装的是事件的监听处理",{"2":{"248":1}}],["这个方法会根据透视相机构造参数进行矩阵更新",{"2":{"261":1}}],["这个方法创建了group的uuid",{"2":{"247":1}}],["这个webgpu会不会不太成熟",{"2":{"257":1}}],["这个时间大概是700毫秒左右",{"2":{"245":1}}],["这个时候使用import",{"2":{"218":1}}],["这个时候去demo1打开终端",{"2":{"217":1}}],["这个时候已经知道是服务器出问题了",{"2":{"214":1}}],["这个目录可以直接访问",{"2":{"216":1}}],["这个错误会与catch子句做匹配",{"2":{"202":1}}],["这个空协议表明该类型可以用于错误处理",{"2":{"202":1}}],["这个修饰符代表使用sf符号的某个变体",{"2":{"161":1}}],["这个http",{"2":{"108":1}}],["这个报错如何解决",{"2":{"103":1}}],["这个过程可能会非常耗时",{"2":{"99":1}}],["这个路径是以项目根路径计算的",{"2":{"51":1}}],["这个点就是贝塞尔曲线上的一个点",{"2":{"32":1}}],["这个后续需要进一步学习",{"2":{"29":1}}],["这个网站可以将图片转为svg",{"2":{"27":1}}],["这个思路其实不仅仅适用于cad",{"2":{"23":1}}],["这能够真正放大成为数字化智慧城市",{"2":{"23":1}}],["这样只在隐藏和显示时触发两次重排",{"2":{"308":1}}],["这样我就可以用中文来命令md文件",{"2":{"296":1}}],["这样我就不需要每次启动项目都跑到demo1下面启动我的vue项目了",{"2":{"18":1}}],["这样打包的时候会就可以tree",{"2":{"262":1}}],["这样点击的时候获取到点击位置的rgb值",{"2":{"245":1}}],["这样点击的时候获取点击位置的rgb值",{"2":{"241":1,"245":1}}],["这样更方便学习",{"2":{"236":1}}],["这样可以避免在开发过程中在全局安装大量的包",{"2":{"226":1}}],["这样",{"2":{"207":1}}],["这样的代码会报错",{"2":{"194":1}}],["这样的数据称为",{"2":{"46":1}}],["这样里面的文字可以根据alignment属性来实现左右对齐效果",{"2":{"137":1}}],["这样后续相同图层的数据会push到collectpositionbylayer",{"2":{"31":1}}],["这样就保证了每一个物体的颜色值都不一样",{"2":{"245":2}}],["这样就保证了每一个物体的色值都不一样",{"2":{"241":1}}],["这样就能在p0和p3之间得到一条平滑的曲线",{"2":{"32":1}}],["这样就能得到一条平滑的曲线",{"2":{"32":1}}],["这样就影响到了其他收集到offsetpositiondata变量的数据",{"2":{"31":1}}],["这样就必须要进行内存上的一个优化处理了",{"2":{"28":1}}],["这样就造成了大量的线条数据",{"2":{"28":1}}],["这样就可以避免在本地留下不必要的依赖包",{"2":{"227":1}}],["这样就可以通过图片来实现一些thre场景中的数据加载",{"2":{"27":1}}],["这样就可以了",{"2":{"1":1}}],["这样其实能够让用户自己设计自己的房子",{"2":{"23":1}}],["这里看的是透视相机",{"2":{"261":1}}],["这里上一步还在创建命令编码器",{"2":{"250":1}}],["这里就是整个渲染的核心",{"2":{"250":1}}],["这里为canvas注册和绑定各种交互事件",{"2":{"247":1}}],["这里是不是可以像vue那样使用weakmap",{"2":{"247":1}}],["这里面很多的池数据解构都是用的map解构",{"2":{"247":1}}],["这里对webgpu还不是太熟悉",{"2":{"247":1}}],["这里进行了各种顶点着色器",{"2":{"247":1}}],["这里解释了lookat的封装思路",{"2":{"245":1}}],["这里要用到正交投影",{"2":{"244":1}}],["这里用pinyin",{"2":{"296":1}}],["这里用思维向量来表示颜色",{"2":{"240":1}}],["这里用一个空白的color将宽度撑满",{"2":{"137":1}}],["这里以acorn为例",{"2":{"222":1}}],["这里以三阶贝塞尔曲线为例",{"2":{"32":1}}],["这里纠结了ts的配置纠结了很久",{"2":{"218":1}}],["这里记录一个模块引入的报错",{"2":{"218":1}}],["这里不执行npm",{"2":{"216":1}}],["这里不再赘述",{"2":{"16":1}}],["这里有",{"2":{"209":1}}],["这里通过参数位置来引用参数",{"2":{"198":1}}],["这里的graphic就是字面意思",{"2":{"255":1}}],["这里的格式化不是按照eslint的规则来格式化的",{"2":{"218":1}}],["这里的y形成了闭包",{"2":{"197":1}}],["这里的搜索建议只能给一条",{"2":{"177":1}}],["这里的demo2",{"2":{"17":1}}],["这里",{"2":{"124":1,"247":1}}],["这里设置的style会影响child中所有的text的样式",{"2":{"81":1}}],["这里将1移除了",{"2":{"47":1}}],["这里element",{"2":{"19":1}}],["这里一起来看一下element",{"2":{"19":1}}],["这里我直接在demo2下新建index",{"2":{"16":1}}],["这里我用的是官方脚手架创建vue项目",{"2":{"15":1}}],["这时demo1中的依赖就安装好了",{"2":{"15":1}}],["这么纯粹的一个研发团队",{"2":{"2":1}}],["这两者混合在一起感觉很奇怪",{"2":{"0":1}}],["each",{"2":{"275":1,"291":1}}],["easeout",{"2":{"179":1}}],["ecs也存在一些弊端",{"2":{"251":1}}],["ecs相比于传统的面向对象的编程模式来说显然是有性能上的巨大优势",{"2":{"251":1}}],["ecs",{"0":{"251":1}}],["ecs组件式系统",{"2":{"250":2}}],["echo",{"2":{"222":1}}],["echarts",{"2":{"2":1}}],["echarts的作者",{"2":{"2":1}}],["even",{"2":{"293":1}}],["eventdispatcher类封装了事件的监听处理",{"2":{"260":1}}],["eventdispatcher",{"2":{"248":1,"260":2}}],["every",{"2":{"275":1}}],["everything",{"2":{"195":1}}],["especially",{"2":{"285":1}}],["esac",{"2":{"222":1}}],["esm",{"2":{"218":1,"299":1}}],["esnext",{"2":{"218":1}}],["eslint配置并且保存代码时自动格式化代码已经完成了",{"2":{"218":1}}],["eslint在vscode的setting中配置保存时自动格式化",{"2":{"1":1}}],["eslint用的其实很少",{"2":{"1":1}}],["eslintrc",{"2":{"1":1}}],["eslint",{"2":{"1":4,"218":9}}],["eslint对确保代码质量来说不可或缺",{"2":{"1":1}}],["eslint的自动修复也可以像prettier一样进行格式化",{"2":{"0":1}}],["eslint仍然需要大量的配置",{"2":{"0":1}}],["eslint和prettier的比较",{"0":{"0":1},"1":{"1":1}}],["equivalent",{"2":{"293":1}}],["equilateral",{"2":{"199":1}}],["equilateraltriangle",{"2":{"199":2}}],["equalto",{"2":{"209":2,"210":4}}],["e",{"2":{"205":1,"222":1}}],["eight",{"2":{"200":1}}],["emojis",{"2":{"280":1}}],["emoji",{"0":{"280":1}}],["emptydictionary",{"2":{"190":1}}],["emptyarray",{"2":{"190":1}}],["emptyview",{"2":{"179":1}}],["empty",{"2":{"179":1}}],["email",{"2":{"137":1}}],["effect",{"0":{"173":1}}],["edge",{"2":{"163":2}}],["edgeinsets",{"2":{"66":1,"70":2,"82":1,"88":2,"118":1,"119":2,"121":2,"123":1}}],["editor",{"2":{"1":1,"26":1,"218":2}}],["el",{"2":{"235":6}}],["ellipsein",{"2":{"165":1}}],["elevatedbutton",{"2":{"113":1,"114":1,"115":1,"117":2,"119":3,"121":3,"123":1,"124":1}}],["elementplus",{"2":{"236":2}}],["elements",{"2":{"26":1,"285":1}}],["element",{"0":{"14":1},"2":{"11":1,"14":1,"236":8,"237":1,"308":4}}],["else问题",{"2":{"247":1}}],["else",{"2":{"24":1,"39":1,"109":1,"110":2,"113":1,"114":1,"115":1,"173":1,"197":1,"202":3,"222":1}}],["external",{"0":{"277":1},"2":{"274":1}}],["extensions",{"0":{"267":1},"1":{"268":1,"269":1,"270":1,"271":1,"272":1,"273":1,"274":1,"275":1,"276":1,"277":1,"278":1,"279":1,"280":1,"281":1,"282":1,"283":1,"284":1,"285":1,"286":1,"287":1,"288":1,"289":1,"290":1,"291":1,"292":1,"293":1,"294":1},"2":{"271":1,"294":1}}],["extension",{"2":{"159":1,"270":1,"275":1}}],["extent",{"2":{"66":1}}],["extends",{"2":{"1":1,"44":1,"45":1,"58":1,"59":1,"89":3,"110":2,"113":1,"114":1,"115":2,"117":2,"118":2,"119":4,"121":1,"123":3,"129":3,"218":1,"252":1}}],["examples",{"2":{"296":1}}],["exampleprotocol",{"2":{"201":1}}],["example",{"2":{"103":1,"110":2,"275":1,"287":3,"293":1}}],["exit",{"2":{"96":1}}],["exclude",{"2":{"218":2}}],["excludefromsemantics",{"2":{"88":1}}],["exception",{"2":{"109":1,"110":1,"113":1,"114":1,"115":1}}],["exceeded",{"2":{"28":1,"313":1}}],["expected",{"2":{"293":1}}],["explore",{"2":{"167":9,"168":8}}],["expanded",{"0":{"74":1},"2":{"62":3,"66":1}}],["exports",{"2":{"285":1,"294":1}}],["export",{"2":{"16":1,"97":4,"229":2,"236":1,"252":1,"286":1,"287":3,"288":1,"289":1,"290":1,"292":4}}],["exec方法会从子进程中返回一个完整的buffer",{"2":{"313":1}}],["exec",{"2":{"222":2,"313":2}}],["executable",{"2":{"217":1}}],["exe",{"2":{"55":1}}],["en",{"2":{"270":1,"278":1}}],["engine",{"2":{"262":1}}],["engine属性",{"2":{"262":1}}],["engine3d",{"0":{"247":1},"2":{"242":3,"243":2,"247":5,"250":1}}],["entities",{"2":{"248":1}}],["entity",{"2":{"248":2}}],["enter",{"2":{"86":1,"123":1}}],["enhanceapp",{"2":{"236":1}}],["env",{"2":{"218":2}}],["environmentobject",{"2":{"174":2}}],["environment",{"2":{"159":1,"174":1}}],["end",{"2":{"313":1}}],["endindex",{"2":{"205":6}}],["endpoint",{"2":{"157":2,"159":1,"165":1,"166":1}}],["encoding",{"2":{"140":1,"142":1}}],["encode",{"2":{"5":2,"6":2,"7":1,"8":1,"9":4,"109":2}}],["enum",{"2":{"89":1,"138":1,"167":1,"168":1}}],["energy",{"2":{"10":1}}],["enabled",{"2":{"291":2}}],["enable",{"2":{"1":1,"218":1,"242":1,"250":1,"252":1,"291":1}}],["errors",{"0":{"290":1},"2":{"293":1}}],["error",{"2":{"110":1,"136":2,"180":1,"202":3,"218":2,"290":4,"313":1}}],["err",{"2":{"4":2}}],["d3d12",{"2":{"255":1}}],["d3d11",{"2":{"255":1}}],["dylib",{"2":{"213":1}}],["dylib就是动态库的文件的后缀名",{"2":{"213":1}}],["dylib这里我们可以知道",{"2":{"213":1}}],["dynamic",{"2":{"34":1,"109":1,"110":1,"113":2,"114":1,"115":1}}],["dynamic就是一个动态类",{"2":{"34":1}}],["duration",{"2":{"88":2,"166":1}}],["does",{"2":{"270":1,"293":1}}],["dog",{"2":{"205":1}}],["doxcnjubfgneyrslvrjg7iw913e",{"2":{"183":1}}],["dosomething",{"2":{"140":3}}],["done",{"2":{"118":1,"177":1}}],["doc",{"2":{"285":1}}],["docx",{"2":{"183":1}}],["document",{"2":{"308":6}}],["documenting",{"2":{"285":1}}],["documents",{"2":{"97":3}}],["documentation",{"2":{"54":1}}],["docsearch",{"2":{"270":1}}],["docs",{"2":{"94":1,"123":1,"133":1,"285":1,"293":2}}],["do",{"2":{"39":1,"131":1,"180":1,"202":1,"284":2,"286":1}}],["doubleplusone",{"2":{"229":1}}],["doublecount",{"2":{"229":5}}],["double",{"2":{"35":1,"36":3,"166":2,"188":1,"189":1,"199":6,"205":1}}],["dangerous",{"2":{"283":2}}],["danger",{"2":{"283":2,"284":3}}],["day",{"2":{"197":5}}],["dampingfraction",{"2":{"167":1,"168":1,"173":1}}],["dark",{"2":{"159":1}}],["dartflutter",{"2":{"121":1}}],["dartfuture",{"2":{"108":1}}],["dartfinal",{"2":{"86":1}}],["dart提供了包管理工具pub",{"2":{"93":1}}],["dartlinearprogressindicator",{"2":{"90":1}}],["dartlisttile",{"2":{"60":1,"85":1}}],["darttooltip",{"2":{"88":1}}],["darttext",{"2":{"72":1}}],["dartelevatedbutton",{"2":{"87":1}}],["dartexpanded",{"2":{"62":1,"74":1}}],["dartpadding",{"2":{"82":1}}],["dartdefaulttextstyle",{"2":{"81":1}}],["dartcircleavatar",{"2":{"84":1}}],["dartcard",{"2":{"80":1}}],["dartcenter",{"2":{"78":1}}],["dartconst",{"2":{"73":1}}],["dartcontainer",{"2":{"70":1}}],["dartclass",{"2":{"43":1,"44":1,"45":1,"58":1,"59":1}}],["dartwidget",{"2":{"66":1}}],["dartrow",{"2":{"62":1,"63":1,"77":1}}],["darticon",{"2":{"76":1}}],["dartimage",{"2":{"75":1}}],["dartimport",{"2":{"51":1,"89":1,"109":1,"112":1,"113":1,"114":1,"115":1,"117":1,"118":1,"119":1,"121":1,"123":1,"129":2}}],["dartint",{"2":{"37":1}}],["dartstack",{"2":{"83":1}}],["dartstring",{"2":{"50":1}}],["dartsizedbox",{"2":{"79":1,"90":1}}],["dartscaffold",{"2":{"71":1,"105":1}}],["dartset",{"2":{"48":1}}],["dart是一个空安全的语言",{"2":{"50":1}}],["dartmap",{"2":{"49":1}}],["dartvoid",{"2":{"41":1,"42":1,"125":1}}],["dart中的async",{"2":{"51":1}}],["dart中的string类型和js中差不多",{"2":{"35":1}}],["dart中支持命名参数",{"2":{"41":1}}],["dart",{"2":{"36":1,"38":2,"40":1,"47":3,"51":1,"61":1,"66":1,"89":1,"97":1,"98":1,"103":3,"108":2,"109":3,"110":5,"111":2,"112":1,"113":3,"114":3,"115":3,"117":1,"118":1,"119":1,"121":2,"123":1,"124":1,"127":1,"129":4}}],["dartobject",{"2":{"34":1}}],["dart语句后面必须带",{"2":{"33":1}}],["dart学习",{"0":{"33":1},"1":{"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1}}],["datetime",{"2":{"51":1}}],["date",{"2":{"8":2,"166":1,"245":2}}],["data",{"2":{"5":3,"6":5,"7":1,"8":1,"9":5,"10":3,"47":2,"109":5,"110":3,"118":1,"119":2,"123":1,"136":2,"140":9,"141":3,"142":7,"167":1,"168":1,"180":5,"229":2,"235":2,"262":1,"278":1,"287":6,"288":2,"289":2,"290":2,"298":2,"313":1}}],["drawelements这两个绘制方法",{"2":{"263":1}}],["drawarrays和gl",{"2":{"263":1}}],["drawimage",{"2":{"231":1}}],["draw",{"2":{"24":2,"165":4}}],["directly",{"2":{"285":1,"287":1}}],["directory",{"2":{"270":1,"275":3}}],["dirname",{"2":{"222":1}}],["diff",{"2":{"289":1}}],["diffs",{"0":{"289":1},"2":{"281":1}}],["diff算法",{"2":{"238":1}}],["difference",{"2":{"48":1}}],["dictionary",{"2":{"188":1}}],["distence",{"2":{"245":7}}],["disable",{"2":{"218":1}}],["disabled",{"2":{"140":1,"291":2}}],["display",{"2":{"308":1}}],["displaymode",{"2":{"177":1}}],["dispatchevent",{"2":{"248":1,"260":1}}],["dispensing",{"2":{"202":1}}],["dispose",{"2":{"67":1,"123":3}}],["dismiss",{"2":{"139":1}}],["dio",{"2":{"111":3,"112":6,"113":6,"114":4,"115":4}}],["did",{"2":{"218":1}}],["didupdatewidget",{"2":{"67":1}}],["didchangedependencies",{"2":{"67":1}}],["dimension数据",{"2":{"24":1}}],["dividingby",{"2":{"166":4}}],["divider",{"2":{"124":2,"125":4,"178":1}}],["divergent",{"2":{"131":2}}],["div",{"2":{"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"236":2,"285":1}}],["dxf",{"2":{"24":1}}],["details",{"0":{"270":1},"2":{"278":1,"283":4,"284":1,"285":1,"286":1,"291":1}}],["detailscreen",{"2":{"118":3}}],["degrees",{"2":{"166":4}}],["delete",{"2":{"163":2}}],["destroy阶段改名为unmount",{"2":{"307":1}}],["destroyed",{"2":{"307":1}}],["destination",{"2":{"162":3,"163":1}}],["designcode",{"2":{"165":1,"178":1}}],["descriptor",{"2":{"247":1}}],["description",{"2":{"118":4,"136":1,"191":1}}],["desc",{"2":{"199":2}}],["desctextstyle",{"2":{"73":2,"81":1}}],["decoding",{"2":{"180":1}}],["decode",{"2":{"109":3,"141":1,"180":1}}],["decorationimage",{"2":{"70":1}}],["decoration中还可以设置border和borderradius",{"2":{"70":1}}],["decoration",{"2":{"59":1,"66":1,"70":3,"72":1,"86":1}}],["defineproperty来实现的",{"2":{"239":1}}],["define",{"2":{"236":2,"288":1}}],["definestore",{"2":{"229":4}}],["defined",{"2":{"34":1,"282":1}}],["defaultvalue",{"2":{"168":1}}],["defaulttextstyle",{"0":{"81":1}}],["default",{"0":{"283":1},"2":{"16":1,"110":1,"131":2,"179":1,"195":1,"200":1,"223":1,"236":1,"273":1,"276":1,"286":2,"287":6,"288":2,"289":2,"290":2,"291":3,"292":4,"293":1}}],["device",{"2":{"250":2}}],["devices",{"2":{"106":1}}],["dev后发生了什么",{"0":{"221":1,"222":1},"1":{"222":1,"223":1}}],["develop",{"2":{"54":1}}],["developers",{"2":{"54":1}}],["developer",{"2":{"54":1,"55":1,"94":1,"149":1,"181":1}}],["dev",{"2":{"18":2,"67":2,"94":1,"102":1,"103":1,"218":1,"223":2}}],["demoapp",{"2":{"174":1}}],["demos",{"2":{"54":2}}],["demo3",{"2":{"17":6,"223":2}}],["demo3是根据具体package",{"2":{"17":1}}],["demo3作为依赖",{"0":{"17":1}}],["demo3的代码和demo2大体一致",{"2":{"16":1}}],["demo3中提供一些封装好的逻辑",{"0":{"16":1}}],["demo3三个文件夹",{"2":{"13":1}}],["demo2中安装自己的独立依赖ts",{"2":{"16":1}}],["demo2",{"0":{"16":1},"2":{"13":1,"16":4,"17":5}}],["demo下新建packages文件夹",{"2":{"13":1}}],["demo",{"2":{"13":1,"55":2,"58":2,"119":1,"123":1,"129":1,"208":3,"308":2}}],["demo1中创建vue3项目",{"0":{"15":1}}],["demo1",{"2":{"11":1,"18":1}}],["deprecated",{"2":{"252":2}}],["deployments版本为ios",{"2":{"150":1}}],["dependencies",{"2":{"17":1,"127":1}}],["dependency",{"2":{"4":2}}],["deps",{"2":{"4":2,"270":1,"285":1}}],["d",{"2":{"1":1,"8":2,"19":2,"151":1,"218":1,"220":1,"269":3,"285":1}}],["ipsum",{"2":{"287":2}}],["iphone",{"2":{"176":1}}],["iphoneos",{"2":{"106":1}}],["ignoremissing",{"2":{"270":1}}],["ignoressafearea",{"2":{"167":1,"168":1}}],["icomponent",{"2":{"252":1}}],["iconcolor",{"2":{"124":1}}],["icon组件的预览地址",{"2":{"76":1}}],["icons",{"2":{"60":1,"63":5,"76":3,"85":1,"124":1,"129":2}}],["icon",{"0":{"76":1},"2":{"60":1,"63":5,"76":1,"85":1,"124":2,"129":2,"167":6,"168":6}}],["iterator2",{"2":{"250":3,"252":3}}],["iterator",{"2":{"250":3,"252":3}}],["itemnamed",{"2":{"202":2}}],["itemcount",{"2":{"118":1}}],["itemcolors",{"2":{"31":2}}],["itembuilder",{"2":{"89":1,"118":1}}],["itemthree",{"2":{"89":2}}],["itemtwo",{"2":{"89":2}}],["itemone",{"2":{"89":2}}],["itempickcolors",{"2":{"31":2}}],["item",{"2":{"31":4,"89":6,"136":2,"160":1,"164":1,"167":7,"168":7,"172":2,"176":1,"177":4,"197":2,"202":10,"203":6}}],["it",{"2":{"195":1,"285":1,"287":1,"288":1,"290":1,"293":2,"294":7}}],["identifiable",{"2":{"167":1,"168":1}}],["id",{"2":{"110":4,"136":2,"167":1,"168":1,"173":8,"180":1,"286":2}}],["idx=1",{"2":{"102":1}}],["id=",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"298":1}}],["ir中的数据",{"2":{"99":1}}],["ir生成相应的msl源码",{"2":{"99":1}}],["ir",{"2":{"99":1}}],["img",{"2":{"231":4,"266":4,"298":1}}],["img1",{"2":{"156":1}}],["implemented",{"2":{"294":1}}],["implements",{"2":{"252":2}}],["implicitstring",{"2":{"193":1}}],["implicitly",{"2":{"193":1}}],["impellerc中的refector根据spir",{"2":{"99":1}}],["impellerc会借助shaderc",{"2":{"99":1}}],["impeller中的shader是使用glsl",{"2":{"99":1}}],["impeller中的shader并不需要在运行时动态生成",{"2":{"99":1}}],["impeller的出现是flutter团队用以彻底解决sksl",{"2":{"99":1}}],["impeller是flutter团队自研的渲染引擎",{"2":{"99":1}}],["impeller",{"0":{"99":1},"2":{"99":1}}],["import",{"2":{"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"16":1,"17":1,"108":1,"109":2,"110":4,"111":1,"113":2,"114":2,"115":2,"121":1,"129":2,"140":1,"159":1,"229":7,"236":5,"292":3}}],["imagescale",{"2":{"164":1}}],["images",{"2":{"61":3,"62":4,"66":3,"70":1,"75":1,"84":1}}],["image",{"0":{"75":1},"2":{"61":3,"62":4,"66":2,"70":2,"138":1,"139":1,"152":1,"155":1,"156":1,"161":1,"162":2,"163":1,"164":2,"165":3,"167":3,"168":1,"172":1,"177":2,"179":2,"231":1,"266":1}}],["ios中的view",{"2":{"212":1}}],["ios中的cocoapods",{"2":{"93":1}}],["ios团队外部技术分享汇总",{"2":{"183":1}}],["ios打包",{"2":{"106":1}}],["ios打包可以成功",{"2":{"103":1}}],["ios",{"2":{"96":1,"152":1,"173":2}}],["io",{"2":{"51":1,"93":1,"97":2,"113":1,"114":1,"115":1,"178":1}}],["i++",{"2":{"28":1,"47":1,"245":1}}],["if和let一起用的时候不能加括号",{"2":{"194":1}}],["if语句以及强制解析",{"0":{"194":1}}],["if",{"2":{"24":8,"39":1,"109":1,"110":3,"113":1,"114":1,"115":1,"119":1,"123":2,"141":2,"167":12,"168":12,"173":1,"194":4,"195":1,"197":3,"217":1,"222":1,"247":2,"250":1,"252":2,"270":2,"293":1}}],["innertext",{"2":{"308":2}}],["invalid",{"2":{"202":1}}],["invalidselection",{"2":{"202":3}}],["inventory",{"2":{"202":3}}],["invocation",{"2":{"131":1}}],["inline",{"2":{"177":1}}],["inout",{"2":{"168":1}}],["infinity",{"2":{"137":5,"164":1,"167":5,"168":5,"173":2,"176":1}}],["information",{"2":{"229":5}}],["info",{"2":{"44":2,"45":4,"103":1,"208":1,"229":12,"283":4}}],["inclusion",{"0":{"293":1}}],["inclusionadvanced",{"2":{"281":1}}],["includefiles",{"2":{"285":1}}],["include",{"2":{"218":4,"293":3}}],["included",{"2":{"217":1}}],["increment",{"2":{"129":2,"197":2}}],["incorrect",{"2":{"4":1}}],["input",{"2":{"279":1,"280":1,"281":1,"283":1,"284":1,"286":1,"287":3,"288":1,"289":1,"290":1,"291":1,"292":1,"293":1}}],["inputsystem",{"2":{"247":3}}],["inputdecoration",{"2":{"86":1}}],["inputcom",{"2":{"86":1}}],["in遍历字符串",{"2":{"205":1}}],["in遍历",{"2":{"47":1,"48":1}}],["in的贝塞尔曲线",{"2":{"32":1}}],["instead",{"2":{"273":2}}],["instance",{"2":{"252":3,"294":1}}],["install一样",{"2":{"223":1}}],["install执行的时候",{"2":{"223":1}}],["install的时候会根据库源代码的package",{"2":{"222":1}}],["install安装依赖",{"2":{"15":1}}],["install",{"2":{"4":1,"12":1,"14":1,"16":1,"17":1,"19":1,"94":1,"98":2,"103":1,"146":1,"175":3,"217":1,"218":1,"223":1,"269":1,"285":2}}],["insights",{"2":{"270":1}}],["insufficient",{"2":{"202":1}}],["insufficientfunds",{"2":{"202":3}}],["inspector",{"2":{"181":1}}],["insetgrouped",{"2":{"160":1,"164":1}}],["insert",{"2":{"24":1,"47":1,"202":1,"205":3}}],["insrt",{"2":{"24":1}}],["indent",{"2":{"218":2}}],["indexdisplaymode",{"2":{"172":1}}],["index",{"2":{"16":2,"24":1,"28":2,"47":14,"118":3,"204":2,"205":14,"216":1,"218":2,"220":1,"223":1,"229":4,"270":3,"275":8,"299":1}}],["individualscores",{"2":{"194":2}}],["indices",{"2":{"8":1,"205":1}}],["initglcontext",{"2":{"263":1}}],["initcanvas",{"2":{"247":1}}],["init方法可以传递一些配置属性",{"2":{"247":1}}],["init方法中",{"2":{"243":1}}],["initfunction",{"2":{"229":4}}],["initialvalue",{"2":{"89":1}}],["initstate",{"2":{"67":1,"110":2,"123":2}}],["init",{"2":{"13":1,"138":1,"175":1,"199":6,"218":3,"242":1,"243":1,"247":4}}],["in",{"0":{"286":1,"287":1,"288":1,"289":1,"290":1},"2":{"8":1,"28":1,"32":1,"47":1,"48":1,"136":1,"140":1,"160":1,"164":1,"165":4,"166":4,"167":2,"168":4,"172":1,"173":8,"176":2,"177":2,"178":1,"179":1,"192":1,"194":1,"195":4,"196":1,"197":2,"198":2,"203":1,"205":2,"222":1,"252":2,"262":1,"270":1,"271":1,"275":3,"281":5,"285":2,"286":4,"287":2,"291":2,"293":1,"294":2}}],["intensity",{"2":{"240":2}}],["integer",{"2":{"194":2}}],["integerpi",{"2":{"189":1}}],["internal",{"0":{"275":1},"2":{"274":1,"275":1,"276":1}}],["interactive",{"2":{"264":1}}],["interaction",{"2":{"3":1}}],["interface",{"2":{"210":1}}],["interface选择storyboard即uikit",{"2":{"207":1}}],["interestingnumbers",{"2":{"195":2}}],["interceptors",{"2":{"115":1}}],["interceptor",{"2":{"115":1}}],["intersection",{"2":{"48":1}}],["interval",{"2":{"5":2,"6":2}}],["int",{"2":{"35":1,"36":3,"38":2,"41":1,"42":1,"43":2,"44":1,"45":1,"47":5,"48":4,"49":1,"110":2,"136":5,"140":1,"141":1,"188":1,"189":1,"191":1,"193":4,"194":1,"197":12,"198":2,"199":2,"200":1,"202":3,"203":1}}],["introduction",{"2":{"2":1}}],["isolation",{"2":{"285":2}}],["ison",{"2":{"138":5}}],["isuserinteractionenabled",{"2":{"209":1}}],["isdeleted",{"2":{"163":2}}],["isloading",{"2":{"140":4,"142":2}}],["ispresented",{"2":{"139":2}}],["isactive",{"2":{"139":1}}],["isempty",{"2":{"123":1}}],["isn",{"2":{"34":1,"287":2}}],["is",{"2":{"2":1,"119":1,"195":1,"197":2,"205":1,"217":2,"234":7,"252":4,"271":2,"278":1,"279":4,"280":1,"283":10,"285":3,"286":2,"287":2,"288":1,"289":1,"290":1,"291":12,"293":2}}],["i",{"2":{"1":1,"21":1,"28":2,"47":3,"66":1,"118":1,"151":1,"196":2,"218":1,"245":5}}],["我是1号",{"2":{"308":1}}],["我是动态获取的",{"2":{"308":2}}],["我是5号",{"2":{"308":2}}],["我是4号",{"2":{"308":2}}],["我是3号",{"2":{"308":2}}],["我是2号",{"2":{"308":2}}],["我是0号",{"2":{"308":2}}],["我后面还有1号",{"2":{"308":2}}],["我没有拒绝的理由",{"2":{"301":1}}],["我会先用node将文档里的所有文件名替换成对应的拼音名",{"2":{"296":1}}],["我问chatgpt",{"2":{"263":1}}],["我用原生的三角形创建方法",{"2":{"258":1}}],["我用了多次数组结构出现了堆栈溢出",{"2":{"28":1}}],["我无法回答他webgl重写底层渲染和基于threejs修改本质的区别是什么",{"2":{"257":1}}],["我无法得到线段什么时候需要闭合",{"2":{"24":1}}],["我了解云端autodcad几年前就有了",{"2":{"257":1}}],["我只能保证我一定尽全力来做好",{"2":{"256":1}}],["我也看了bimface的cad渲染",{"2":{"256":1}}],["我还连第一个hello",{"2":{"253":1}}],["我还是第一次遇到这种情况",{"2":{"214":1}}],["我想简单了",{"2":{"248":1}}],["我这边已经开始在进行webgpu的相关学习",{"2":{"256":1}}],["我这样实现的话",{"2":{"245":1}}],["我这里选择使用pnpm作为包管理工具",{"2":{"21":1}}],["我这里是demo2",{"2":{"17":1}}],["我当然选择全力拥抱composition",{"2":{"230":1}}],["我在上午刚用",{"2":{"223":1}}],["我package",{"2":{"218":1}}],["我之前一直理解的脚手架就是拉取一份模板项目代码下来",{"2":{"217":1}}],["我前脚刚在上面操作了cad",{"2":{"214":1}}],["我知道这个可选有值",{"2":{"194":1}}],["我安装的fvm并没有像博客中的那样有",{"2":{"98":1}}],["我叫路飞",{"2":{"88":5}}],["我们来看一下three中这个令人惊叹的案例",{"2":{"265":1}}],["我们目前cad和bim是两套独立的架构",{"2":{"257":1}}],["我们还可以根据用户上传的图纸",{"2":{"256":1}}],["我们还能根据具体材质的隔音效果来进行隔音测试",{"2":{"23":1}}],["我们需要自己用底层来写一套渲染逻辑",{"2":{"256":1}}],["我们也要走和他们一样的路",{"2":{"256":1}}],["我们的cad也没有彻底解决图纸的卡顿问题",{"2":{"256":1}}],["我们现在的技术方案它做不了一个高性能的一个渲染",{"2":{"256":1}}],["我们可以用webgpu来做底层渲染",{"2":{"256":1}}],["我们可以拿它来做很多unify的事情",{"2":{"255":1}}],["我们可以将controller实例化并注册到getx中",{"2":{"128":1}}],["我们可以制作自己的font字体文件",{"2":{"25":1}}],["我们是蚂蚁集团数据可视化团队",{"2":{"2":1}}],["我悟了",{"2":{"11":1}}],["我一直在使用prettier",{"2":{"1":1}}],["我花了一些时间配置我的eslint并将其设置为预设配置",{"2":{"1":1}}],["我不认为parse两次代码会更快",{"2":{"0":1}}],["替代方案",{"0":{"1":1}}],["它说",{"2":{"263":1}}],["它继承自object3d类",{"2":{"260":1}}],["它打通了native的api",{"2":{"255":1}}],["它需要哪些功能模块",{"2":{"238":1}}],["它会在执行命令时",{"2":{"226":1}}],["它会用node去执行node",{"2":{"222":1}}],["它会创建一个与部件关联的state对象",{"2":{"67":1}}],["它负责用户界面的展示",{"2":{"212":1}}],["它对应着字符串中的每一个character的位置",{"2":{"205":1}}],["它将不等于nil",{"2":{"194":1}}],["它表示描边的圆角半径",{"2":{"159":1}}],["它们的宽高不是铺满屏幕的",{"2":{"137":1}}],["它可以帮助我们在不全局安装某些包的情况下",{"2":{"225":1}}],["它可以帮助我们轻松地管理controller的生命周期",{"2":{"128":1}}],["它可以将widget与observable对象绑定在一起",{"2":{"129":1}}],["它可以监听observable对象的变化",{"2":{"128":1}}],["它通常继承自getxcontroller",{"2":{"128":1}}],["它通常代表一个可能的值或者将来或许会用到的错误",{"2":{"108":1}}],["它有一些特定的生命周期方法",{"2":{"67":1}}],["它接受一组参数并返回一个在给定参数下可视化的部件",{"2":{"67":1}}],["它没有像statefulwidget那样的生命周期方法",{"2":{"67":1}}],["它没有要管理的内部状态",{"2":{"67":1}}],["它提供了一套基于getx极致简洁高效的flutter业务开发范式",{"2":{"100":1}}],["它提供了一套函数风格式",{"2":{"3":1}}],["它提供默认的banner背景颜色",{"2":{"58":1}}],["它最大的区别是",{"2":{"48":1}}],["它和普通函数列表的区别在于",{"2":{"42":1}}],["它的访问权限是怎样的",{"2":{"252":1}}],["它的响应式是用object",{"2":{"239":1}}],["它的文档项目中引用了自己项目内部的一些依赖",{"2":{"236":1}}],["它的数据是不会缓存的",{"2":{"174":1}}],["它的最终目标是在flutter中取代当前的渲染引擎skia",{"2":{"99":1}}],["它的状态在创建后不能改变",{"2":{"67":1}}],["它的实现原理是",{"2":{"32":1}}],["它的宽度是固定的",{"2":{"30":1}}],["它的底层原理是什么",{"0":{"30":1}}],["它的工作方式与prettier类似",{"2":{"1":1}}],["它是一个中间层数据处理",{"2":{"24":1}}],["它更多的适用于需要做设计的地方",{"2":{"23":1}}],["它并没有让你的生活变得更简单",{"2":{"0":1}}],["它也可以像prettier一样格式化代码",{"2":{"0":1}}],["++",{"2":{"289":2}}],["+=",{"2":{"196":1,"197":2}}],["+空格键来打开spotlight搜索框",{"2":{"143":1}}],["+",{"2":{"0":1,"38":1,"95":2,"100":1,"129":1,"151":13,"178":2,"189":2,"197":1,"229":3,"235":3,"240":1,"245":2,"285":2}}]],"serializationVersion":2}';export{t as default};
    diff --git a/assets/chunks/@localSearchIndexroot.f4b49530.js b/assets/chunks/@localSearchIndexroot.f4b49530.js
    new file mode 100644
    index 0000000..0c784b0
    --- /dev/null
    +++ b/assets/chunks/@localSearchIndexroot.f4b49530.js
    @@ -0,0 +1 @@
    +const t='{"documentCount":315,"nextId":315,"documentIds":{"0":"/myblog/2023/ESli0n0the2Pre0tti0e0rde0bi3jiao4.html#eslint和prettier的比较","1":"/myblog/2023/ESli0n0the2Pre0tti0e0rde0bi3jiao4.html#替代方案","2":"/myblog/2023/G2xue2xi2.html#g2","3":"/myblog/2023/G2xue2xi2.html#g2学习","4":"/myblog/2023/G2xue2xi2.html#安装","5":"/myblog/2023/G2xue2xi2.html#绘制第一张图表","6":"/myblog/2023/G2xue2xi2.html#使用复合节点在一个容器中绘制两张图表","7":"/myblog/2023/G2xue2xi2.html#请求json文件作为数据源","8":"/myblog/2023/G2xue2xi2.html#图表数据叠加","9":"/myblog/2023/G2xue2xi2.html#使用复合-mark","10":"/myblog/2023/G2xue2xi2.html#桑基图绘制","11":"/myblog/2023/Mo0n0o0re0po0xue2xi2.html#monorepo学习","12":"/myblog/2023/Mo0n0o0re0po0xue2xi2.html#安装pnpm","13":"/myblog/2023/Mo0n0o0re0po0xue2xi2.html#项目结构搭建","14":"/myblog/2023/Mo0n0o0re0po0xue2xi2.html#安装公共的vue、element-plus和typescript依赖","15":"/myblog/2023/Mo0n0o0re0po0xue2xi2.html#demo1中创建vue3项目","16":"/myblog/2023/Mo0n0o0re0po0xue2xi2.html#demo2、demo3中提供一些封装好的逻辑","17":"/myblog/2023/Mo0n0o0re0po0xue2xi2.html#在vue3项目中安装demo2、demo3作为依赖","18":"/myblog/2023/Mo0n0o0re0po0xue2xi2.html#在外层的package-json中配置命令启动packages文件夹下面的项目","19":"/myblog/2023/Mo0n0o0re0po0xue2xi2.html#npm-run-all来串行-并行执行命令","20":"/myblog/2023/Mo0n0o0re0po0xue2xi2.html#学习参考链接","21":"/myblog/2023/Nest学习/1-huan2jing4an1zhuang1he2xiang4mu4da1jian4.html#环境安装和项目搭建","22":"/myblog/2023/Nest学习/qian2yan2.html#前言","23":"/myblog/2023/ca0dsi1lu4he2liu2cheng2.html#cad思路和流程","24":"/myblog/2023/ca0dyou1hua4.html#cad优化","25":"/myblog/2023/ca0dyou1hua4.html#文字优化","26":"/myblog/2023/ca0dyou1hua4.html#后面的优化方向","27":"/myblog/2023/ca0dyou1hua4.html#svg的提取尝试","28":"/myblog/2023/ca0dyou1hua4.html#cad的内存泄漏问题","29":"/myblog/2023/ca0dyou1hua4.html#事件执行顺序优化","30":"/myblog/2023/ca0dyou1hua4.html#three中是如何绘制出line2的-它的底层原理是什么","31":"/myblog/2023/ca0dyou1hua4.html#图层数据收集过程中的数据数据污染问题","32":"/myblog/2023/ca0dyou1hua4.html#用贝塞尔曲线来优化cad的手绘线批注","33":"/myblog/2023/flutter/da0rtxue2xi2.html#dart学习","34":"/myblog/2023/flutter/da0rtxue2xi2.html#定义变量的关键字","35":"/myblog/2023/flutter/da0rtxue2xi2.html#基础数据类型","36":"/myblog/2023/flutter/da0rtxue2xi2.html#数据类型判断","37":"/myblog/2023/flutter/da0rtxue2xi2.html#数据类型转换","38":"/myblog/2023/flutter/da0rtxue2xi2.html#变量名-在字符串中插入变量值","39":"/myblog/2023/flutter/da0rtxue2xi2.html#运算符","40":"/myblog/2023/flutter/da0rtxue2xi2.html#函数","41":"/myblog/2023/flutter/da0rtxue2xi2.html#命名参数","42":"/myblog/2023/flutter/da0rtxue2xi2.html#位置参数","43":"/myblog/2023/flutter/da0rtxue2xi2.html#class类","44":"/myblog/2023/flutter/da0rtxue2xi2.html#继承","45":"/myblog/2023/flutter/da0rtxue2xi2.html#子类覆写父类方法","46":"/myblog/2023/flutter/da0rtxue2xi2.html#聚合类型","47":"/myblog/2023/flutter/da0rtxue2xi2.html#列表list","48":"/myblog/2023/flutter/da0rtxue2xi2.html#集合set","49":"/myblog/2023/flutter/da0rtxue2xi2.html#映射map","50":"/myblog/2023/flutter/da0rtxue2xi2.html#空安全","51":"/myblog/2023/flutter/da0rtxue2xi2.html#异步任务","52":"/myblog/2023/flutter/da0rtxue2xi2.html#ar-sdk学习了解","53":"/myblog/2023/flutter/da0rtxue2xi2.html#nvidia-cloudxr-sdk","54":"/myblog/2023/flutter/da0rtxue2xi2.html#arkit","55":"/myblog/2023/flutter/da0rtxue2xi2.html#metal","56":"/myblog/2023/flutter/flu0tte0rbu4ju2.html#flutter学习","57":"/myblog/2023/flutter/flu0tte0rbu4ju2.html#布局","58":"/myblog/2023/flutter/flu0tte0rbu4ju2.html#基于material的应用","59":"/myblog/2023/flutter/flu0tte0rbu4ju2.html#非material-apps","60":"/myblog/2023/flutter/flu0tte0rbu4ju2.html#横向或纵向布局多个widgets","61":"/myblog/2023/flutter/flu0tte0rbu4ju2.html#对齐widgets","62":"/myblog/2023/flutter/flu0tte0rbu4ju2.html#调整widgets大小","63":"/myblog/2023/flutter/flu0tte0rbu4ju2.html#组合widgets","64":"/myblog/2023/flutter/flu0tte0rbu4ju2.html#嵌套行和列","65":"/myblog/2023/flutter/flu0tte0rbu4ju2.html#通用布局widgets","66":"/myblog/2023/flutter/flu0tte0rbu4ju2.html#stack","67":"/myblog/2023/flutter/flu0tte0rbu4ju2.html#statelesswidget和statefulwidget的区别","68":"/myblog/2023/flutter/flu0tte0rbu4ju2.html#getx","69":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#flutter常用组件","70":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#container","71":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#scaffold","72":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#text","73":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#style封装","74":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#expanded","75":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#image","76":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#icon","77":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#row、column","78":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#center","79":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#sizebox","80":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#card","81":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#defaulttextstyle-merge","82":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#padding","83":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#stack","84":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#circleavatar","85":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#listtile","86":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#输入框","87":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#按钮","88":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#tooltip","89":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#popupmenubutton弹出菜单","90":"/myblog/2023/flutter/flu0tte0rchang2yong4zu3jian4.html#进度条","91":"/myblog/2023/flutter/flu0tte0rhuan2jing4da1jian4.html#flutter入门学习","92":"/myblog/2023/flutter/flu0tte0rhuan2jing4da1jian4.html#环境安装","93":"/myblog/2023/flutter/flu0tte0rhuan2jing4da1jian4.html#flutter的包管理工具pub","94":"/myblog/2023/flutter/flu0tte0rhuan2jing4da1jian4.html#mac-mini环境配置","95":"/myblog/2023/flutter/flu0tte0rhuan2jing4da1jian4.html#vscode如何配置环境","96":"/myblog/2023/flutter/flu0tte0rhuan2jing4da1jian4.html#如何用xcode运行flutter项目","97":"/myblog/2023/flutter/flu0tte0rhuan2jing4da1jian4.html#mac-mini-配置环境变量","98":"/myblog/2023/flutter/flu0tte0rhuan2jing4da1jian4.html#fvm切换flutter版本","99":"/myblog/2023/flutter/flu0tte0rhuan2jing4da1jian4.html#impeller","100":"/myblog/2023/flutter/flu0tte0rhuan2jing4da1jian4.html#happinessx","101":"/myblog/2023/flutter/flu0tte0rhuan2jing4da1jian4.html#skia","102":"/myblog/2023/flutter/flu0tte0rshi3yong4Me0ta0l.html#flutter中使用metal","103":"/myblog/2023/flutter/flu0tte0rshi3yong4Me0ta0l.html#安装arkit-plugin","104":"/myblog/2023/flutter/flu0tte0rxiang4mu4xue2xi2.html#flutter项目学习","105":"/myblog/2023/flutter/flu0tte0rxiang4mu4xue2xi2.html#键盘弹起页面布局上移问题","106":"/myblog/2023/flutter/flu0tte0rxiang4mu4xue2xi2.html#flutter打包问题","107":"/myblog/2023/flutter/flu0tte0rxiang4mu4xue2xi2.html#正式发包","108":"/myblog/2023/flutter/jie1kou3qing3qiu2.html#接口请求","109":"/myblog/2023/flutter/jie1kou3qing3qiu2.html#安装http库","110":"/myblog/2023/flutter/jie1kou3qing3qiu2.html#使用http库进行接口请求","111":"/myblog/2023/flutter/jie1kou3qing3qiu2.html#使用http封装数据模型进行接口请求","112":"/myblog/2023/flutter/jie1kou3qing3qiu2.html#安装dio库","113":"/myblog/2023/flutter/jie1kou3qing3qiu2.html#使用dio进行接口请求","114":"/myblog/2023/flutter/jie1kou3qing3qiu2.html#自定义请求头和参数传递","115":"/myblog/2023/flutter/jie1kou3qing3qiu2.html#使用baseoptions","116":"/myblog/2023/flutter/jie1kou3qing3qiu2.html#请求拦截和响应拦截","117":"/myblog/2023/flutter/lu4you2.html#路由","118":"/myblog/2023/flutter/lu4you2.html#页面之间跳转","119":"/myblog/2023/flutter/lu4you2.html#路由传参","120":"/myblog/2023/flutter/lu4you2.html#从新页面返回数据","121":"/myblog/2023/flutter/shu4ju4chi2jiu3hua4.html#数据持久化","122":"/myblog/2023/flutter/shu4ju4chi2jiu3hua4.html#shared-preferences","123":"/myblog/2023/flutter/yi1xie1chang2yong4chang3jing3.html#一些常用场景","124":"/myblog/2023/flutter/yi1xie1chang2yong4chang3jing3.html#有校验功能的表单","125":"/myblog/2023/flutter/yi1xie1chang2yong4chang3jing3.html#事件响应函数中弹出dialog弹窗","126":"/myblog/2023/flutter/yi1xie1chang2yong4chang3jing3.html#底部弹窗","127":"/myblog/2023/flutter/zhuang4tai4guan3li3.html#状态管理","128":"/myblog/2023/flutter/zhuang4tai4guan3li3.html#getx安装","129":"/myblog/2023/flutter/zhuang4tai4guan3li3.html#getx状态管理","130":"/myblog/2023/flutter/zhuang4tai4guan3li3.html#obx","131":"/myblog/2023/flutter/zhuang4tai4guan3li3.html#路由管理","132":"/myblog/2023/gi0tchang2yong4ming4ling4.html#git常用命令","133":"/myblog/2023/gi0thu0bti2jiao1pu0llre0qu0e0st.html#提交pull-request","134":"/myblog/2023/gi0thu0bti2jiao1pu0llre0qu0e0st.html#commit-规范","135":"/myblog/2023/ios学习/Swi0ftUIshi2zhan4.html#swiftui进阶","136":"/myblog/2023/ios学习/Swi0ftUIshi2zhan4.html#state","137":"/myblog/2023/ios学习/Swi0ftUIshi2zhan4.html#swift发请求","138":"/myblog/2023/ios学习/Swi0ftUIshi2zhan4.html#如何实现一个文字一行左对齐的效果","139":"/myblog/2023/ios学习/Swi0ftUIshi2zhan4.html#复选框控件的封装和使用","140":"/myblog/2023/ios学习/Swi0ftUIshi2zhan4.html#页面之间的跳转","141":"/myblog/2023/ios学习/Swi0ftUIshi2zhan4.html#闭包","142":"/myblog/2023/ios学习/Swi0ftUIshi2zhan4.html#将字符串转为对象","143":"/myblog/2023/ios学习/Swi0ftUIshi2zhan4.html#使用async-await发请求","144":"/myblog/2023/ios学习/ma0chuan2jing4an1zhuang1.html#mac环境安装","145":"/myblog/2023/ios学习/ma0chuan2jing4an1zhuang1.html#chrome浏览器","146":"/myblog/2023/ios学习/ma0chuan2jing4an1zhuang1.html#homebrew","147":"/myblog/2023/ios学习/ma0chuan2jing4an1zhuang1.html#nvm","148":"/myblog/2023/ios学习/ma0chuan2jing4an1zhuang1.html#git","149":"/myblog/2023/ios学习/ma0chuan2jing4an1zhuang1.html#vscode和xcode","150":"/myblog/2023/ios学习/me0ta0lxue2xi2.html#metal学习","151":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#swiftui开发","152":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#xcode中的快捷键","153":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#简单布局","154":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#将text中的文字改为大写","155":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#设置阴影","156":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#设置背景图片","157":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#设置覆盖","158":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#文字的颜色渐变","159":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#遮罩","160":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#自定义修饰符以及获取系统中的白天黑夜模式","161":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#navigationview、list的使用","162":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#sf-symbols-图标库","163":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#导航-navigationlink","164":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#swipe-actions-左滑右滑响应","165":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#structure-将代码封装成component","166":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#canvas画布","167":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#canvas动画","168":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#tabbar-组件","169":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#使用geometryreader来做tabbar的自适应处理","170":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#appstorage缓存","171":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#项目结构","172":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#数据绑定","173":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#横向tabview-走马灯效果","174":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#matched-geometry-effect","175":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#combine-环境变量的使用","176":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#安装和使用-cocoapods","177":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#lazy-grid","178":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#搜索列表和搜索建议","179":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#文本使用markdown语法","180":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#asyncimage异步加载图片","181":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#接口请求","182":"/myblog/2023/ios学习/swi0ftUIxue2xi2.html#打开开发人员工具","183":"/myblog/2023/ios学习/swi0fthe2flu0tte0rnei3ge4geng4hao3.html#swift和flutter的区别","184":"/myblog/2023/ios学习/swi0fthe2flu0tte0rnei3ge4geng4hao3.html#swift-package-manager使用","185":"/myblog/2023/ios学习/swi0fthe2flu0tte0rnei3ge4geng4hao3.html#使用阿里图标库","186":"/myblog/2023/ios学习/swi0fthe2flu0tte0rnei3ge4geng4hao3.html#cocoapods如何发布公有库","187":"/myblog/2023/ios学习/swi0ftxue2xi2.html#swift学习","188":"/myblog/2023/ios学习/swi0ftxue2xi2.html#hello-world","189":"/myblog/2023/ios学习/swi0ftxue2xi2.html#基本数据类型","190":"/myblog/2023/ios学习/swi0ftxue2xi2.html#常量和普通变量","191":"/myblog/2023/ios学习/swi0ftxue2xi2.html#数组和字典","192":"/myblog/2023/ios学习/swi0ftxue2xi2.html#元组","193":"/myblog/2023/ios学习/swi0ftxue2xi2.html#控制流","194":"/myblog/2023/ios学习/swi0ftxue2xi2.html#可选类型、隐式解析可选类型","195":"/myblog/2023/ios学习/swi0ftxue2xi2.html#if语句以及强制解析","196":"/myblog/2023/ios学习/swi0ftxue2xi2.html#switch语句","197":"/myblog/2023/ios学习/swi0ftxue2xi2.html#while和repeat-while","198":"/myblog/2023/ios学习/swi0ftxue2xi2.html#函数和闭包","199":"/myblog/2023/ios学习/swi0ftxue2xi2.html#数组的map方法和sorted方法","200":"/myblog/2023/ios学习/swi0ftxue2xi2.html#对象和类","201":"/myblog/2023/ios学习/swi0ftxue2xi2.html#枚举和结构体","202":"/myblog/2023/ios学习/swi0ftxue2xi2.html#协议和扩展","203":"/myblog/2023/ios学习/swi0ftxue2xi2.html#错误处理","204":"/myblog/2023/ios学习/swi0ftxue2xi2.html#泛型","205":"/myblog/2023/ios学习/swi0ftxue2xi2.html#断言和先决条件","206":"/myblog/2023/ios学习/swi0ftxue2xi2.html#字符和字符串","207":"/myblog/2023/ios学习/u0i0ki0tkai1fa1.html#uikit开发","208":"/myblog/2023/ios学习/u0i0ki0tkai1fa1.html#创建项目","209":"/myblog/2023/ios学习/u0i0ki0tkai1fa1.html#项目结构","210":"/myblog/2023/ios学习/u0i0ki0tkai1fa1.html#基础组件的使用","211":"/myblog/2023/ios学习/u0i0ki0tkai1fa1.html#页面的布局","212":"/myblog/2023/ios学习/u0i0ki0tkai1fa1.html#多个页面之间的跳转","213":"/myblog/2023/ios学习/u0i0ki0tkai1fa1.html#view-controller","214":"/myblog/2023/ios学习/u0i0ki0tkai1fa1.html#动态库和静态库","215":"/myblog/2023/ji4lu4yi1ci4je0n0ki0n0sda3bao1dao3zhi4fu2wu4qi4ka3si3.html#jenkins同时打包多个项目导致服务器卡死","216":"/myblog/2023/jiao3shou3jia4kai1fa1.html#脚手架开发","217":"/myblog/2023/jiao3shou3jia4kai1fa1.html#package-json-配置-bin","218":"/myblog/2023/jiao3shou3jia4kai1fa1.html#删除依赖、执行命令","219":"/myblog/2023/jiao3shou3jia4kai1fa1.html#脚手架开发-1","220":"/myblog/2023/n0gi0n0xpei4zhi4.html#nginx-配置","221":"/myblog/2023/n0gi0n0xpei4zhi4.html#vue中history路由问题","222":"/myblog/2023/n0pmru0n0de0vhou4fa1sheng1le0shen2me0.html#npm-run-dev后发生了什么","223":"/myblog/2023/n0pmru0n0de0vhou4fa1sheng1le0shen2me0.html#npm-run-dev后发生了什么-1","224":"/myblog/2023/n0pmru0n0de0vhou4fa1sheng1le0shen2me0.html#配置了bin就一定会生成软链接吗","225":"/myblog/2023/n0px.html#npx","226":"/myblog/2023/n0px.html#介绍","227":"/myblog/2023/n0px.html#npx会把远端的包下载到本地吗","228":"/myblog/2023/n0px.html#npx执行完成之后-下载的包是否会被删除","229":"/myblog/2023/pi0n0i0a0zhong1de0o0pti0o0n0sa0pi0he2co0mpo0si0to0n0a0pi0dui4bi3.html#pinia","230":"/myblog/2023/pi0n0i0a0zhong1de0o0pti0o0n0sa0pi0he2co0mpo0si0to0n0a0pi0dui4bi3.html#pinia中的options-api和compositon-api写法对比","231":"/myblog/2023/pi0n0i0a0zhong1de0o0pti0o0n0sa0pi0he2co0mpo0si0to0n0a0pi0dui4bi3.html#一些思考","232":"/myblog/2023/ru2he2di0yer4wei2ma3.html#如何diy二维码","233":"/myblog/2023/thi0s、ca0ll、a0pply、bi0n0d.html#this、call、apply、bind","234":"/myblog/2023/thi0s、ca0ll、a0pply、bi0n0d.html#默认执行时","235":"/myblog/2023/thi0s、ca0ll、a0pply、bi0n0d.html#隐式执行时","236":"/myblog/2023/thi0s、ca0ll、a0pply、bi0n0d.html#显式执行时","237":"/myblog/2023/vitePress/xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.html#学习element-plus的vitepress配置","238":"/myblog/2023/vitePress/xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4.html#consola","239":"/myblog/2023/vue3源码学习/qian2yan2.html#前言","240":"/myblog/2023/vue3源码学习/xiang3ying4shi4xi4tong3.html#响应式系统","241":"/myblog/2023/webGPU学习/WGSL.html#着色器语言wgsl","242":"/myblog/2023/webGPU学习/huan3chong1qu1shi2qu3.html#缓冲区拾取","243":"/myblog/2023/webGPU学习/huan3chong1qu1shi2qu3.html#orillusion的帧缓冲拾取","244":"/myblog/2023/webGPU学习/huan3chong1qu1shi2qu3.html#走一遍orillusion最简单的流程来看源码","245":"/myblog/2023/webGPU学习/hui4zhi4xian4duan4de0neng2li4.html#绘制线段的能力","246":"/myblog/2023/webGPU学习/hui4zhi4xian4duan4de0neng2li4.html#平移场景","247":"/myblog/2023/webGPU学习/o0ri0llu0si0o0n0yuan2ma3xue2xi2.html#orillusion源码","248":"/myblog/2023/webGPU学习/o0ri0llu0si0o0n0yuan2ma3xue2xi2.html#engine3d","249":"/myblog/2023/webGPU学习/o0ri0llu0si0o0n0yuan2ma3xue2xi2.html#scene3d","250":"/myblog/2023/webGPU学习/o0ri0llu0si0o0n0yuan2ma3xue2xi2.html#camera3d","251":"/myblog/2023/webGPU学习/o0ri0llu0si0o0n0yuan2ma3xue2xi2.html#渲染流程","252":"/myblog/2023/webGPU学习/o0ri0llu0si0o0n0yuan2ma3xue2xi2.html#ecs","253":"/myblog/2023/webGPU学习/o0ri0llu0si0o0n0yuan2ma3xue2xi2.html#一些思考","254":"/myblog/2023/webGPU学习/qian2yan2.html#前言","255":"/myblog/2023/webGPU学习/qian2yan2.html#跨平台性","256":"/myblog/2023/webGPU学习/qian2yan2.html#webgpu","257":"/myblog/2023/webGPU学习/yi1xie1gu4shi4.html#今天给勇哥发了下面的一段话","258":"/myblog/2023/webGPU学习/yi1xie1gu4shi4.html#他回复我说","259":"/myblog/2023/webGPU学习/yi1xie1gu4shi4.html#webgpu性能测试","260":"/myblog/2023/webGPU学习/zuo4biao1xi4.html#webgpu坐标系","261":"/myblog/2023/webgl学习/thre0e0.jsde0yuan2ma3.html#scene","262":"/myblog/2023/webgl学习/thre0e0.jsde0yuan2ma3.html#camera","263":"/myblog/2023/webgl学习/thre0e0.jsde0yuan2ma3.html#webglrenderer","264":"/myblog/2023/webgl学习/thre0e0.jsde0yuan2ma3.html#webglrenderer的render方法","265":"/myblog/2023/webgl学习/thre0e0.jsde0yuan2ma3.html#raycaster","266":"/myblog/2023/webgl学习/zhuo2se4qi4xue2xi2.html#着色器学习","267":"/myblog/2023/yong4i0ma0ge0.lo0a0dti2qian2pan4duan4zi1yuan2shi4fou3cun2zai4.html#用image-load提前判断资源是否存在","268":"/myblog/demo/xiao4guo3can1kao3.html#markdown-extensions","269":"/myblog/demo/xiao4guo3can1kao3.html#加粗效果","270":"/myblog/demo/xiao4guo3can1kao3.html#code-group","271":"/myblog/demo/xiao4guo3can1kao3.html#details","272":"/myblog/demo/xiao4guo3can1kao3.html#表格","273":"/myblog/demo/xiao4guo3can1kao3.html#header-anchors","274":"/myblog/demo/xiao4guo3can1kao3.html#custom-anchors","275":"/myblog/demo/xiao4guo3can1kao3.html#links","276":"/myblog/demo/xiao4guo3can1kao3.html#internal-links","277":"/myblog/demo/xiao4guo3can1kao3.html#page-suffix","278":"/myblog/demo/xiao4guo3can1kao3.html#external-links","279":"/myblog/demo/xiao4guo3can1kao3.html#frontmatter","280":"/myblog/demo/xiao4guo3can1kao3.html#github-style-tables","281":"/myblog/demo/xiao4guo3can1kao3.html#emoji","282":"/myblog/demo/xiao4guo3can1kao3.html#table-of-contents","283":"/myblog/demo/xiao4guo3can1kao3.html#custom-containers","284":"/myblog/demo/xiao4guo3can1kao3.html#default-title","285":"/myblog/demo/xiao4guo3can1kao3.html#custom-title","286":"/myblog/demo/xiao4guo3can1kao3.html#raw","287":"/myblog/demo/xiao4guo3can1kao3.html#syntax-highlighting-in-code-blocks","288":"/myblog/demo/xiao4guo3can1kao3.html#line-highlighting-in-code-blocks","289":"/myblog/demo/xiao4guo3can1kao3.html#focus-in-code-blocks","290":"/myblog/demo/xiao4guo3can1kao3.html#colored-diffs-in-code-blocks","291":"/myblog/demo/xiao4guo3can1kao3.html#errors-and-warnings-in-code-blocks","292":"/myblog/demo/xiao4guo3can1kao3.html#line-numbers","293":"/myblog/demo/xiao4guo3can1kao3.html#code-groups","294":"/myblog/demo/xiao4guo3can1kao3.html#markdown-file-inclusion","295":"/myblog/demo/xiao4guo3can1kao3.html#advanced-configuration","296":"/myblog/#缘起","297":"/myblog/#中文命名md文件","298":"/myblog/杂记/ji4yi1xie1nei4rong2duan3bu4zu2yi3xie3yi1pian1bo2ke4de0dong1xi1.html#杂记","299":"/myblog/杂记/ji4yi1xie1nei4rong2duan3bu4zu2yi3xie3yi1pian1bo2ke4de0dong1xi1.html#后端支付直接返回png处理","300":"/myblog/杂记/ji4yi1xie1nei4rong2duan3bu4zu2yi3xie3yi1pian1bo2ke4de0dong1xi1.html#npm发布的sdk通过链接形式访问","301":"/myblog/杂记/ji4yi1xie1nei4rong2duan3bu4zu2yi3xie3yi1pian1bo2ke4de0dong1xi1.html#使用scss打包成css的纯css项目","302":"/myblog/杂记/ji4yi1xie1nei4rong2duan3bu4zu2yi3xie3yi1pian1bo2ke4de0dong1xi1.html#原子化css框架tailwind","303":"/myblog/杂记/ji4yi1xie1nei4rong2duan3bu4zu2yi3xie3yi1pian1bo2ke4de0dong1xi1.html#查看github热门趋势和star排行榜","304":"/myblog/杂记/ji4yi1xie1nei4rong2duan3bu4zu2yi3xie3yi1pian1bo2ke4de0dong1xi1.html#服务的部署和资源访问这些链接","305":"/myblog/杂记/ji4yi1xie1nei4rong2duan3bu4zu2yi3xie3yi1pian1bo2ke4de0dong1xi1.html#图形学相关地书","306":"/myblog/速记/01.html#js的数据类型","307":"/myblog/速记/01.html#_0-1-0-2不等于0-3","308":"/myblog/速记/01.html#vue生命周期","309":"/myblog/速记/01.html#回流和重绘","310":"/myblog/速记/we0bgl.html#嘉立创","311":"/myblog/速记/we0bgl.html#顶点着色器是不是只有顶点信息-法线这些如何获取","312":"/myblog/速记/we0bgl.html#webgl的渲染管线它的流程是怎样的","313":"/myblog/速记/we0bgl.html#gltf格式的数据格式是怎样的-如何优化","314":"/myblog/速记/we0bgl.html#node的子进程有哪些方法"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[1,1,16],"1":[1,2,56],"2":[1,1,47],"3":[1,1,30],"4":[1,1,38],"5":[1,1,59],"6":[1,1,69],"7":[1,1,59],"8":[1,1,66],"9":[2,1,67],"10":[1,1,86],"11":[1,1,16],"12":[1,1,5],"13":[1,1,22],"14":[3,1,9],"15":[1,1,13],"16":[2,1,48],"17":[2,1,39],"18":[2,1,11],"19":[4,1,52],"20":[1,1,16],"21":[1,1,21],"22":[1,1,3],"23":[1,1,55],"24":[1,1,79],"25":[1,2,27],"26":[1,2,26],"27":[1,2,20],"28":[1,2,59],"29":[1,2,22],"30":[2,2,48],"31":[1,2,20],"32":[1,2,112],"33":[1,1,3],"34":[1,1,37],"35":[1,1,12],"36":[1,1,21],"37":[1,1,7],"38":[2,1,16],"39":[1,1,9],"40":[1,1,13],"41":[1,2,29],"42":[1,2,26],"43":[1,1,16],"44":[1,2,27],"45":[1,2,36],"46":[1,1,9],"47":[1,1,65],"48":[1,1,45],"49":[1,1,31],"50":[1,1,18],"51":[1,1,38],"52":[2,1,1],"53":[3,2,22],"54":[1,5,45],"55":[1,5,65],"56":[1,1,1],"57":[1,1,23],"58":[1,1,40],"59":[2,1,47],"60":[1,1,35],"61":[1,1,19],"62":[1,1,27],"63":[1,1,19],"64":[1,1,2],"65":[1,1,26],"66":[1,1,81],"67":[1,1,78],"68":[1,1,13],"69":[1,1,1],"70":[1,1,46],"71":[1,1,8],"72":[1,1,26],"73":[1,1,23],"74":[1,1,7],"75":[1,1,13],"76":[1,1,23],"77":[2,1,21],"78":[1,1,4],"79":[1,1,6],"80":[1,1,4],"81":[2,1,8],"82":[1,1,9],"83":[1,1,10],"84":[1,1,11],"85":[1,1,28],"86":[1,1,35],"87":[1,1,12],"88":[1,1,44],"89":[1,1,76],"90":[1,1,33],"91":[1,1,1],"92":[1,1,30],"93":[1,1,15],"94":[2,1,37],"95":[1,1,10],"96":[1,1,21],"97":[3,1,38],"98":[1,1,41],"99":[1,1,49],"100":[1,1,16],"101":[1,1,11],"102":[1,1,20],"103":[2,1,68],"104":[1,1,7],"105":[1,1,7],"106":[1,1,18],"107":[1,1,12],"108":[1,1,1],"109":[1,1,34],"110":[1,1,54],"111":[1,1,112],"112":[1,1,11],"113":[1,1,23],"114":[1,1,89],"115":[1,1,86],"116":[1,1,106],"117":[1,1,1],"118":[1,1,52],"119":[1,1,76],"120":[1,1,118],"121":[1,1,10],"122":[2,1,86],"123":[1,1,1],"124":[1,1,101],"125":[1,1,70],"126":[1,1,42],"127":[1,1,1],"128":[1,1,18],"129":[1,1,29],"130":[1,2,76],"131":[1,1,8],"132":[1,1,80],"133":[2,1,26],"134":[2,2,43],"135":[1,1,1],"136":[2,1,7],"137":[1,1,72],"138":[2,1,59],"139":[1,1,54],"140":[1,1,47],"141":[1,1,81],"142":[1,1,25],"143":[2,1,35],"144":[1,1,7],"145":[1,1,1],"146":[1,1,2],"147":[1,1,12],"148":[1,1,3],"149":[1,1,1],"150":[1,1,13],"151":[1,1,5],"152":[1,1,22],"153":[1,1,60],"154":[1,1,5],"155":[1,1,14],"156":[1,1,32],"157":[1,1,18],"158":[1,1,18],"159":[1,1,14],"160":[1,1,54],"161":[2,1,28],"162":[3,1,50],"163":[2,1,38],"164":[3,1,45],"165":[2,1,50],"166":[1,1,52],"167":[1,1,106],"168":[2,1,129],"169":[1,1,147],"170":[1,1,13],"171":[1,1,13],"172":[1,1,25],"173":[2,1,27],"174":[3,1,70],"175":[2,1,47],"176":[2,1,34],"177":[2,1,45],"178":[1,1,75],"179":[1,1,41],"180":[1,1,41],"181":[1,1,41],"182":[1,1,9],"183":[1,1,17],"184":[3,1,27],"185":[1,1,8],"186":[1,1,12],"187":[1,1,1],"188":[2,1,5],"189":[1,1,9],"190":[1,1,28],"191":[1,1,26],"192":[1,1,36],"193":[1,1,8],"194":[2,1,57],"195":[1,1,76],"196":[1,1,73],"197":[2,1,27],"198":[1,1,84],"199":[1,2,31],"200":[1,1,99],"201":[1,1,39],"202":[1,1,14],"203":[1,1,97],"204":[1,1,25],"205":[1,1,39],"206":[1,1,111],"207":[1,1,1],"208":[1,1,15],"209":[1,1,10],"210":[1,1,66],"211":[1,1,48],"212":[1,1,13],"213":[2,1,18],"214":[1,1,50],"215":[1,1,46],"216":[1,1,4],"217":[4,1,26],"218":[2,1,73],"219":[1,1,178],"220":[2,1,1],"221":[1,2,17],"222":[3,1,1],"223":[3,3,54],"224":[1,3,84],"225":[1,1,1],"226":[1,1,25],"227":[2,1,9],"228":[3,1,9],"229":[1,1,1],"230":[3,1,64],"231":[1,1,17],"232":[1,1,38],"233":[4,1,1],"234":[1,4,13],"235":[1,4,42],"236":[1,4,48],"237":[2,1,88],"238":[1,3,6],"239":[1,1,29],"240":[1,1,22],"241":[1,1,60],"242":[1,1,15],"243":[1,2,29],"244":[1,2,37],"245":[1,1,20],"246":[1,2,140],"247":[1,1,14],"248":[1,2,86],"249":[1,2,48],"250":[1,2,9],"251":[1,2,56],"252":[1,2,20],"253":[1,2,122],"254":[1,1,10],"255":[1,1,7],"256":[1,1,25],"257":[1,1,69],"258":[1,1,42],"259":[1,2,18],"260":[1,1,31],"261":[2,1,27],"262":[1,1,17],"263":[1,1,43],"264":[1,1,61],"265":[1,1,24],"266":[1,1,38],"267":[2,1,57],"268":[2,1,1],"269":[1,2,4],"270":[2,2,10],"271":[1,2,74],"272":[1,2,25],"273":[2,2,17],"274":[2,4,28],"275":[1,2,9],"276":[2,3,61],"277":[2,3,13],"278":[2,3,15],"279":[1,2,38],"280":[3,2,21],"281":[2,2,14],"282":[3,2,43],"283":[2,2,12],"284":[2,4,21],"285":[2,4,40],"286":[1,4,97],"287":[5,2,77],"288":[5,2,78],"289":[4,2,51],"290":[5,2,45],"291":[6,2,42],"292":[2,2,53],"293":[2,2,30],"294":[3,2,81],"295":[2,2,69],"296":[1,1,8],"297":[1,1,22],"298":[1,1,1],"299":[1,2,35],"300":[1,2,30],"301":[1,2,4],"302":[1,2,18],"303":[1,2,20],"304":[1,2,3],"305":[1,2,5],"306":[1,1,38],"307":[4,1,12],"308":[1,1,28],"309":[1,1,170],"310":[1,1,1],"311":[3,1,7],"312":[2,1,47],"313":[3,1,1],"314":[2,1,49]},"averageFieldLength":[1.3682539682539687,1.3047619047619043,35.139682539682504],"storedFields":{"0":{"title":"ESlint和Prettier的比较","titles":[]},"1":{"title":"替代方案","titles":["ESlint和Prettier的比较",null]},"2":{"title":"G2","titles":[]},"3":{"title":"G2学习","titles":["G2"]},"4":{"title":"安装","titles":["G2"]},"5":{"title":"绘制第一张图表","titles":["G2"]},"6":{"title":"使用复合节点在一个容器中绘制两张图表","titles":["G2"]},"7":{"title":"请求json文件作为数据源","titles":["G2"]},"8":{"title":"图表数据叠加","titles":["G2"]},"9":{"title":"使用复合 Mark","titles":["G2"]},"10":{"title":"桑基图绘制","titles":["G2"]},"11":{"title":"Monorepo学习","titles":[]},"12":{"title":"安装pnpm","titles":["Monorepo学习"]},"13":{"title":"项目结构搭建","titles":["Monorepo学习"]},"14":{"title":"安装公共的Vue、Element-plus和typescript依赖","titles":["Monorepo学习"]},"15":{"title":"demo1中创建vue3项目","titles":["Monorepo学习"]},"16":{"title":"demo2、demo3中提供一些封装好的逻辑","titles":["Monorepo学习"]},"17":{"title":"在vue3项目中安装demo2、demo3作为依赖","titles":["Monorepo学习"]},"18":{"title":"在外层的package.json中配置命令启动packages文件夹下面的项目","titles":["Monorepo学习"]},"19":{"title":"npm-run-all来串行/并行执行命令","titles":["Monorepo学习"]},"20":{"title":"学习参考链接","titles":["Monorepo学习"]},"21":{"title":"环境安装和项目搭建","titles":[]},"22":{"title":"前言","titles":[]},"23":{"title":"cad思路和流程","titles":[]},"24":{"title":"cad优化","titles":[]},"25":{"title":"文字优化","titles":["cad优化",null]},"26":{"title":"后面的优化方向","titles":["cad优化",null]},"27":{"title":"svg的提取尝试","titles":["cad优化",null]},"28":{"title":"cad的内存泄漏问题","titles":["cad优化",null]},"29":{"title":"事件执行顺序优化","titles":["cad优化",null]},"30":{"title":"three中是如何绘制出line2的,它的底层原理是什么","titles":["cad优化",null]},"31":{"title":"图层数据收集过程中的数据数据污染问题","titles":["cad优化",null]},"32":{"title":"用贝塞尔曲线来优化cad的手绘线批注","titles":["cad优化",null]},"33":{"title":"dart学习","titles":[]},"34":{"title":"定义变量的关键字","titles":["dart学习"]},"35":{"title":"基础数据类型","titles":["dart学习"]},"36":{"title":"数据类型判断","titles":["dart学习"]},"37":{"title":"数据类型转换","titles":["dart学习"]},"38":{"title":"$变量名 在字符串中插入变量值","titles":["dart学习"]},"39":{"title":"运算符","titles":["dart学习"]},"40":{"title":"函数","titles":["dart学习"]},"41":{"title":"命名参数","titles":["dart学习","函数"]},"42":{"title":"位置参数","titles":["dart学习","函数"]},"43":{"title":"class类","titles":["dart学习"]},"44":{"title":"继承","titles":["dart学习","class类"]},"45":{"title":"子类覆写父类方法","titles":["dart学习","class类"]},"46":{"title":"聚合类型","titles":["dart学习"]},"47":{"title":"列表List","titles":["dart学习"]},"48":{"title":"集合Set","titles":["dart学习"]},"49":{"title":"映射Map","titles":["dart学习"]},"50":{"title":"空安全","titles":["dart学习"]},"51":{"title":"异步任务","titles":["dart学习"]},"52":{"title":"AR sdk学习了解","titles":[]},"53":{"title":"NVIDIA CloudXR SDK","titles":["AR sdk学习了解"]},"54":{"title":"ARKit","titles":["AR sdk学习了解","NVIDIA CloudXR SDK"]},"55":{"title":"Metal","titles":["AR sdk学习了解","NVIDIA CloudXR SDK"]},"56":{"title":"flutter学习","titles":[]},"57":{"title":"布局","titles":["flutter学习"]},"58":{"title":"基于Material的应用","titles":["flutter学习"]},"59":{"title":"非Material apps","titles":["flutter学习"]},"60":{"title":"横向或纵向布局多个widgets","titles":["flutter学习"]},"61":{"title":"对齐widgets","titles":["flutter学习"]},"62":{"title":"调整widgets大小","titles":["flutter学习"]},"63":{"title":"组合widgets","titles":["flutter学习"]},"64":{"title":"嵌套行和列","titles":["flutter学习"]},"65":{"title":"通用布局widgets","titles":["flutter学习"]},"66":{"title":"Stack","titles":["flutter学习"]},"67":{"title":"StatelessWidget和StatefulWidget的区别","titles":["flutter学习"]},"68":{"title":"GetX","titles":["flutter学习"]},"69":{"title":"flutter常用组件","titles":[]},"70":{"title":"Container","titles":["flutter常用组件"]},"71":{"title":"Scaffold","titles":["flutter常用组件"]},"72":{"title":"Text","titles":["flutter常用组件"]},"73":{"title":"style封装","titles":["flutter常用组件"]},"74":{"title":"Expanded","titles":["flutter常用组件"]},"75":{"title":"Image","titles":["flutter常用组件"]},"76":{"title":"Icon","titles":["flutter常用组件"]},"77":{"title":"Row、Column","titles":["flutter常用组件"]},"78":{"title":"Center","titles":["flutter常用组件"]},"79":{"title":"SizeBox","titles":["flutter常用组件"]},"80":{"title":"Card","titles":["flutter常用组件"]},"81":{"title":"DefaultTextStyle.merge","titles":["flutter常用组件"]},"82":{"title":"Padding","titles":["flutter常用组件"]},"83":{"title":"Stack","titles":["flutter常用组件"]},"84":{"title":"CircleAvatar","titles":["flutter常用组件"]},"85":{"title":"ListTile","titles":["flutter常用组件"]},"86":{"title":"输入框","titles":["flutter常用组件"]},"87":{"title":"按钮","titles":["flutter常用组件"]},"88":{"title":"tooltip","titles":["flutter常用组件"]},"89":{"title":"PopupMenuButton弹出菜单","titles":["flutter常用组件"]},"90":{"title":"进度条","titles":["flutter常用组件"]},"91":{"title":"flutter入门学习","titles":[]},"92":{"title":"环境安装","titles":["flutter入门学习"]},"93":{"title":"flutter的包管理工具pub","titles":["flutter入门学习"]},"94":{"title":"mac mini环境配置","titles":["flutter入门学习"]},"95":{"title":"vscode如何配置环境","titles":["flutter入门学习"]},"96":{"title":"如何用xcode运行flutter项目","titles":["flutter入门学习"]},"97":{"title":"mac mini 配置环境变量","titles":["flutter入门学习"]},"98":{"title":"fvm切换flutter版本","titles":["flutter入门学习"]},"99":{"title":"Impeller","titles":["flutter入门学习"]},"100":{"title":"HappinessX","titles":["flutter入门学习"]},"101":{"title":"Skia","titles":["flutter入门学习"]},"102":{"title":"Flutter中使用Metal","titles":[]},"103":{"title":"安装ARkit_plugin","titles":["Flutter中使用Metal"]},"104":{"title":"flutter项目学习","titles":[]},"105":{"title":"键盘弹起页面布局上移问题","titles":["flutter项目学习"]},"106":{"title":"Flutter打包问题","titles":["flutter项目学习"]},"107":{"title":"正式发包","titles":["flutter项目学习"]},"108":{"title":"接口请求","titles":[]},"109":{"title":"安装http库","titles":["接口请求"]},"110":{"title":"使用http库进行接口请求","titles":["接口请求"]},"111":{"title":"使用http封装数据模型进行接口请求","titles":["接口请求"]},"112":{"title":"安装dio库","titles":["接口请求"]},"113":{"title":"使用dio进行接口请求","titles":["接口请求"]},"114":{"title":"自定义请求头和参数传递","titles":["接口请求"]},"115":{"title":"使用Baseoptions","titles":["接口请求"]},"116":{"title":"请求拦截和响应拦截","titles":["接口请求"]},"117":{"title":"路由","titles":[]},"118":{"title":"页面之间跳转","titles":["路由"]},"119":{"title":"路由传参","titles":["路由"]},"120":{"title":"从新页面返回数据","titles":["路由"]},"121":{"title":"数据持久化","titles":[]},"122":{"title":"shared_preferences","titles":["数据持久化"]},"123":{"title":"一些常用场景","titles":[]},"124":{"title":"有校验功能的表单","titles":["一些常用场景"]},"125":{"title":"事件响应函数中弹出dialog弹窗","titles":["一些常用场景"]},"126":{"title":"底部弹窗","titles":["一些常用场景"]},"127":{"title":"状态管理","titles":[]},"128":{"title":"GetX安装","titles":["状态管理"]},"129":{"title":"GetX状态管理","titles":["状态管理"]},"130":{"title":"Obx","titles":["状态管理","GetX状态管理"]},"131":{"title":"路由管理","titles":["状态管理"]},"132":{"title":"git常用命令","titles":[]},"133":{"title":"提交Pull Request","titles":[]},"134":{"title":"commit 规范","titles":["提交Pull Request"]},"135":{"title":"SwiftUI进阶","titles":[]},"136":{"title":"@State","titles":["SwiftUI进阶"]},"137":{"title":"Swift发请求","titles":["SwiftUI进阶"]},"138":{"title":"如何实现一个文字一行左对齐的效果?","titles":["SwiftUI进阶"]},"139":{"title":"复选框控件的封装和使用","titles":["SwiftUI进阶"]},"140":{"title":"页面之间的跳转","titles":["SwiftUI进阶"]},"141":{"title":"闭包","titles":["SwiftUI进阶"]},"142":{"title":"将字符串转为对象","titles":["SwiftUI进阶"]},"143":{"title":"使用async/await发请求","titles":["SwiftUI进阶"]},"144":{"title":"mac环境安装","titles":[]},"145":{"title":"chrome浏览器","titles":["mac环境安装"]},"146":{"title":"homebrew","titles":["mac环境安装"]},"147":{"title":"nvm","titles":["mac环境安装"]},"148":{"title":"git","titles":["mac环境安装"]},"149":{"title":"vscode和xcode","titles":["mac环境安装"]},"150":{"title":"Metal学习","titles":[]},"151":{"title":"swiftUI开发","titles":[]},"152":{"title":"Xcode中的快捷键","titles":["swiftUI开发"]},"153":{"title":"简单布局","titles":["swiftUI开发"]},"154":{"title":"将Text中的文字改为大写","titles":["swiftUI开发"]},"155":{"title":"设置阴影","titles":["swiftUI开发"]},"156":{"title":"设置背景图片","titles":["swiftUI开发"]},"157":{"title":"设置覆盖","titles":["swiftUI开发"]},"158":{"title":"文字的颜色渐变","titles":["swiftUI开发"]},"159":{"title":"遮罩","titles":["swiftUI开发"]},"160":{"title":"自定义修饰符以及获取系统中的白天黑夜模式","titles":["swiftUI开发"]},"161":{"title":"NavigationView、List的使用","titles":["swiftUI开发"]},"162":{"title":"sf symbols 图标库","titles":["swiftUI开发"]},"163":{"title":"导航 NavigationLink","titles":["swiftUI开发"]},"164":{"title":"Swipe Actions 左滑右滑响应","titles":["swiftUI开发"]},"165":{"title":"structure 将代码封装成component","titles":["swiftUI开发"]},"166":{"title":"canvas画布","titles":["swiftUI开发"]},"167":{"title":"canvas动画","titles":["swiftUI开发"]},"168":{"title":"tabbar 组件","titles":["swiftUI开发"]},"169":{"title":"使用GeometryReader来做tabbar的自适应处理","titles":["swiftUI开发"]},"170":{"title":"AppStorage缓存","titles":["swiftUI开发"]},"171":{"title":"项目结构","titles":["swiftUI开发"]},"172":{"title":"数据绑定","titles":["swiftUI开发"]},"173":{"title":"横向TabView, 走马灯效果","titles":["swiftUI开发"]},"174":{"title":"Matched Geometry Effect","titles":["swiftUI开发"]},"175":{"title":"Combine 环境变量的使用","titles":["swiftUI开发"]},"176":{"title":"安装和使用 CocoaPods","titles":["swiftUI开发"]},"177":{"title":"lazy grid","titles":["swiftUI开发"]},"178":{"title":"搜索列表和搜索建议","titles":["swiftUI开发"]},"179":{"title":"文本使用markdown语法","titles":["swiftUI开发"]},"180":{"title":"AsyncImage异步加载图片","titles":["swiftUI开发"]},"181":{"title":"接口请求","titles":["swiftUI开发"]},"182":{"title":"打开开发人员工具","titles":["swiftUI开发"]},"183":{"title":"swift和flutter的区别","titles":[]},"184":{"title":"Swift Package Manager使用","titles":["swift和flutter的区别"]},"185":{"title":"使用阿里图标库","titles":["swift和flutter的区别"]},"186":{"title":"Cocoapods如何发布公有库","titles":["swift和flutter的区别"]},"187":{"title":"swift学习","titles":[]},"188":{"title":"Hello World","titles":["swift学习"]},"189":{"title":"基本数据类型","titles":["swift学习"]},"190":{"title":"常量和普通变量","titles":["swift学习"]},"191":{"title":"数组和字典","titles":["swift学习"]},"192":{"title":"元组","titles":["swift学习"]},"193":{"title":"控制流","titles":["swift学习"]},"194":{"title":"可选类型、隐式解析可选类型","titles":["swift学习"]},"195":{"title":"if语句以及强制解析","titles":["swift学习"]},"196":{"title":"switch语句","titles":["swift学习"]},"197":{"title":"while和repeat while","titles":["swift学习"]},"198":{"title":"函数和闭包","titles":["swift学习"]},"199":{"title":"数组的map方法和sorted方法","titles":["swift学习","函数和闭包"]},"200":{"title":"对象和类","titles":["swift学习"]},"201":{"title":"枚举和结构体","titles":["swift学习"]},"202":{"title":"协议和扩展","titles":["swift学习"]},"203":{"title":"错误处理","titles":["swift学习"]},"204":{"title":"泛型","titles":["swift学习"]},"205":{"title":"断言和先决条件","titles":["swift学习"]},"206":{"title":"字符和字符串","titles":["swift学习"]},"207":{"title":"UIKit开发","titles":[]},"208":{"title":"创建项目","titles":["UIKit开发"]},"209":{"title":"项目结构","titles":["UIKit开发"]},"210":{"title":"基础组件的使用","titles":["UIKit开发"]},"211":{"title":"页面的布局","titles":["UIKit开发"]},"212":{"title":"多个页面之间的跳转","titles":["UIKit开发"]},"213":{"title":"View Controller","titles":["UIKit开发"]},"214":{"title":"动态库和静态库","titles":["UIKit开发"]},"215":{"title":"jenkins同时打包多个项目导致服务器卡死","titles":[]},"216":{"title":"脚手架开发","titles":[]},"217":{"title":"package.json 配置 bin","titles":["脚手架开发"]},"218":{"title":"删除依赖、执行命令","titles":["脚手架开发"]},"219":{"title":"脚手架开发","titles":["脚手架开发"]},"220":{"title":"nginx 配置","titles":[]},"221":{"title":"vue中history路由问题","titles":["nginx 配置"]},"222":{"title":"npm run dev后发生了什么","titles":[]},"223":{"title":"npm run dev后发生了什么","titles":["npm run dev后发生了什么"]},"224":{"title":"配置了bin就一定会生成软链接吗","titles":["npm run dev后发生了什么"]},"225":{"title":"npx","titles":[]},"226":{"title":"介绍","titles":["npx"]},"227":{"title":"npx会把远端的包下载到本地吗?","titles":["npx"]},"228":{"title":"npx执行完成之后,下载的包是否会被删除?","titles":["npx"]},"229":{"title":"pinia","titles":[]},"230":{"title":"pinia中的options api和compositon api写法对比","titles":["pinia"]},"231":{"title":"一些思考","titles":["pinia"]},"232":{"title":"如何diy二维码","titles":[]},"233":{"title":"this、call、apply、bind","titles":[]},"234":{"title":"默认执行时","titles":["this、call、apply、bind"]},"235":{"title":"隐式执行时","titles":["this、call、apply、bind"]},"236":{"title":"显式执行时","titles":["this、call、apply、bind"]},"237":{"title":"学习element-plus的vitePress配置","titles":[]},"238":{"title":"consola","titles":["学习element-plus的vitePress配置",null,null]},"239":{"title":"前言","titles":[]},"240":{"title":"响应式系统","titles":[]},"241":{"title":"着色器语言WGSL","titles":[]},"242":{"title":"缓冲区拾取","titles":[]},"243":{"title":"orillusion的帧缓冲拾取","titles":["缓冲区拾取",null]},"244":{"title":"走一遍orillusion最简单的流程来看源码","titles":["缓冲区拾取",null]},"245":{"title":"绘制线段的能力","titles":[]},"246":{"title":"平移场景","titles":["绘制线段的能力",null]},"247":{"title":"orillusion源码","titles":[]},"248":{"title":"Engine3D","titles":["orillusion源码",null]},"249":{"title":"Scene3D","titles":["orillusion源码",null]},"250":{"title":"Camera3D","titles":["orillusion源码",null]},"251":{"title":"渲染流程","titles":["orillusion源码",null]},"252":{"title":"ECS","titles":["orillusion源码",null]},"253":{"title":"一些思考","titles":["orillusion源码",null]},"254":{"title":"前言","titles":[]},"255":{"title":"跨平台性","titles":["前言"]},"256":{"title":"webgpu","titles":["前言"]},"257":{"title":"今天给勇哥发了下面的一段话","titles":[null]},"258":{"title":"他回复我说","titles":[null]},"259":{"title":"webgpu性能测试","titles":[null,"他回复我说"]},"260":{"title":"webgpu坐标系","titles":[]},"261":{"title":"scene:","titles":[null,null]},"262":{"title":"camera","titles":[null,null]},"263":{"title":"WebGLRenderer","titles":[null,null]},"264":{"title":"WebGLRenderer的render方法","titles":[null,null]},"265":{"title":"Raycaster","titles":[null,null]},"266":{"title":"着色器学习","titles":[null,null]},"267":{"title":"用image.load提前判断资源是否存在","titles":[]},"268":{"title":"Markdown Extensions","titles":[]},"269":{"title":"加粗效果","titles":["Markdown Extensions"]},"270":{"title":"code-group","titles":["Markdown Extensions"]},"271":{"title":"details","titles":["Markdown Extensions"]},"272":{"title":"表格","titles":["Markdown Extensions"]},"273":{"title":"Header Anchors","titles":["Markdown Extensions"]},"274":{"title":"Custom anchors","titles":["Markdown Extensions","Header Anchors"]},"275":{"title":"Links","titles":["Markdown Extensions"]},"276":{"title":"Internal Links","titles":["Markdown Extensions","Links"]},"277":{"title":"Page Suffix","titles":["Markdown Extensions","Links"]},"278":{"title":"External Links","titles":["Markdown Extensions","Links"]},"279":{"title":"Frontmatter","titles":["Markdown Extensions"]},"280":{"title":"GitHub-Style Tables","titles":["Markdown Extensions"]},"281":{"title":"Emoji 🎉","titles":["Markdown Extensions"]},"282":{"title":"Table of Contents","titles":["Markdown Extensions"]},"283":{"title":"Custom Containers","titles":["Markdown Extensions"]},"284":{"title":"Default Title","titles":["Markdown Extensions","Custom Containers"]},"285":{"title":"Custom Title","titles":["Markdown Extensions","Custom Containers"]},"286":{"title":"raw","titles":["Markdown Extensions","Custom Containers"]},"287":{"title":"Syntax Highlighting in Code Blocks","titles":["Markdown Extensions"]},"288":{"title":"Line Highlighting in Code Blocks","titles":["Markdown Extensions"]},"289":{"title":"Focus in Code Blocks","titles":["Markdown Extensions"]},"290":{"title":"Colored Diffs in Code Blocks","titles":["Markdown Extensions"]},"291":{"title":"Errors and Warnings in Code Blocks","titles":["Markdown Extensions"]},"292":{"title":"Line Numbers","titles":["Markdown Extensions"]},"293":{"title":"Code Groups","titles":["Markdown Extensions"]},"294":{"title":"Markdown File Inclusion","titles":["Markdown Extensions"]},"295":{"title":"Advanced Configuration","titles":["Markdown Extensions"]},"296":{"title":"缘起","titles":[null,null]},"297":{"title":"中文命名md文件","titles":[null,null]},"298":{"title":"杂记","titles":[]},"299":{"title":"后端支付直接返回png处理","titles":["杂记",null]},"300":{"title":"npm发布的sdk通过链接形式访问","titles":["杂记",null]},"301":{"title":"使用scss打包成css的纯css项目","titles":["杂记",null]},"302":{"title":"原子化css框架tailwind","titles":["杂记",null]},"303":{"title":"查看github热门趋势和star排行榜","titles":["杂记",null]},"304":{"title":"服务的部署和资源访问这些链接","titles":["杂记",null]},"305":{"title":"图形学相关地书","titles":["杂记",null]},"306":{"title":"js的数据类型","titles":[null]},"307":{"title":"0.1+0.2不等于0.3","titles":[null]},"308":{"title":"Vue生命周期","titles":[null]},"309":{"title":"回流和重绘","titles":[null]},"310":{"title":"嘉立创","titles":[]},"311":{"title":"顶点着色器是不是只有顶点信息?法线这些如何获取?","titles":["嘉立创"]},"312":{"title":"webgl的渲染管线它的流程是怎样的?","titles":["嘉立创"]},"313":{"title":"gltf格式的数据格式是怎样的?如何优化?","titles":["嘉立创"]},"314":{"title":"Node的子进程有哪些方法?","titles":["嘉立创"]}},"dirtCount":0,"index":[["建立一个通信管道",{"2":{"314":1}}],["读取二进制数据等等",{"2":{"314":1}}],["读取时也是相同的操作即可",{"2":{"170":1}}],["缓存子进程的输出",{"2":{"314":1}}],["缓冲区拾取就是利用fbo",{"2":{"246":1}}],["缓冲区拾取是用空间",{"2":{"242":1,"246":2}}],["缓冲区拾取的原理是",{"2":{"242":1,"246":1}}],["缓冲区拾取",{"0":{"242":1},"1":{"243":1,"244":1},"2":{"265":1}}],["混合多个纹理",{"2":{"312":1}}],["片元的属性会被处理",{"2":{"312":1}}],["片元着色器会执行一系列运算",{"2":{"312":1}}],["片元着色器阶段",{"2":{"312":1}}],["片元着色器的代码注册",{"2":{"248":1}}],["深度值等",{"2":{"312":1}}],["嘉立创",{"0":{"310":1},"1":{"311":1,"312":1,"313":1,"314":1}}],["展示在页面上",{"2":{"309":1}}],["展示时长",{"2":{"88":1}}],["性能更好",{"2":{"309":1}}],["减少回流和重绘的开销",{"2":{"309":1}}],["减少页面性能消耗",{"2":{"309":1}}],["位置",{"2":{"309":1}}],["位置参数可以给默认值",{"2":{"42":1}}],["位置参数",{"0":{"42":1}}],["位移",{"2":{"309":1}}],["善用内存",{"2":{"309":1}}],["样式集中改变",{"2":{"309":1}}],["优化建议",{"2":{"309":1}}],["局部范围",{"2":{"309":1}}],["全局范围",{"2":{"309":1}}],["全屏跳转",{"2":{"140":1}}],["准确性",{"2":{"309":1}}],["准备渲染前的工作",{"2":{"264":1}}],["准备好两份数据",{"2":{"246":1}}],["准备数据",{"2":{"5":1,"6":1}}],["批量修改样式",{"2":{"309":1}}],["批注的颜色和线宽需要去实现",{"2":{"246":1}}],["激活css伪类",{"2":{"309":1}}],["宽度和高度等",{"2":{"309":1}}],["边框",{"2":{"309":1}}],["边框或背景颜色",{"2":{"57":1}}],["填充",{"2":{"309":1}}],["填充token",{"2":{"116":1}}],["浏览器使用流式布局模型",{"2":{"309":1}}],["浏览器会将新样式赋予元素重新绘制它",{"2":{"309":1}}],["浏览器就会报错",{"2":{"28":1}}],["被keep",{"2":{"308":2}}],["被嵌套的函数可以访问外侧函数的变量",{"2":{"198":1}}],["订单编号之类的数据",{"2":{"307":1}}],["扩展自己的想象力",{"2":{"305":1}}],["原理是一样的",{"2":{"309":1}}],["原研哉相关的书",{"2":{"305":1}}],["原子化css框架tailwind",{"0":{"302":1}}],["按照tailwindcss官网所说的",{"2":{"302":1}}],["按钮操作",{"2":{"178":1}}],["按钮点击跳转",{"2":{"140":1}}],["按钮的单击事件",{"2":{"114":1,"115":1,"116":1,"122":1}}],["按钮",{"0":{"87":1},"2":{"125":1}}],["发布的版本号",{"2":{"300":1}}],["发现camera类也是继承自object3d",{"2":{"262":1}}],["发现",{"2":{"261":1}}],["发现scene类其实比较简单",{"2":{"261":1}}],["发现他们在类的使用上更注重public",{"2":{"253":1}}],["发现xshell连接不上了",{"2":{"215":1}}],["发现依赖正常引入",{"2":{"17":1}}],["杂记",{"0":{"298":1},"1":{"299":1,"300":1,"301":1,"302":1,"303":1,"304":1,"305":1}}],["果断弃之",{"2":{"296":1}}],["缘起",{"0":{"296":1}}],["🎉table",{"2":{"282":1}}],["🎉",{"0":{"281":1},"2":{"281":1}}],["🎨",{"2":{"134":1}}],["└─",{"2":{"276":3}}],["│",{"2":{"276":3}}],["├─",{"2":{"276":6}}],["表格",{"0":{"272":1}}],["表示值是唯一的",{"2":{"306":1}}],["表示高亮",{"2":{"246":1}}],["表示不使用参数标签",{"2":{"198":2}}],["表示点击灰色背景的时候是否消失弹出框",{"2":{"125":2}}],["表示可空",{"2":{"50":1}}],["表示最终时间或位置以及最终状态",{"2":{"32":1}}],["表示起始时间或位置以及初始状态",{"2":{"32":1}}],["资源不存在",{"2":{"267":1}}],["资源存在",{"2":{"267":1}}],["资源文件一起使用",{"2":{"214":1}}],["避免使用table布局",{"2":{"309":1}}],["避免控制台报错",{"2":{"267":1}}],["避免大图纸加载时间过长",{"2":{"26":1}}],["粒子效果的实现使用的是three中的point",{"2":{"266":1}}],["投影矩阵",{"2":{"266":1}}],["射线法拾取",{"2":{"265":1}}],["射线如果穿过",{"2":{"246":1}}],["阴影",{"2":{"264":1}}],["阴影等属性",{"2":{"264":1}}],["恢复渲染状态和缓冲区",{"2":{"264":1}}],["光栅化阶段",{"2":{"312":1}}],["光照",{"2":{"264":1}}],["光源强度",{"2":{"241":1}}],["光源颜色",{"2":{"241":1}}],["纹理",{"2":{"264":1}}],["纹理坐标等等",{"2":{"312":1}}],["纹理坐标等",{"2":{"30":1,"264":1,"311":1}}],["根本看不懂",{"2":{"264":1}}],["根据render",{"2":{"309":2}}],["根据需要",{"2":{"264":1}}],["根据对象的材质",{"2":{"264":1}}],["根据图元来合模肯定会让cad的卡顿问题回到从前",{"2":{"257":1}}],["根据事件的优先级进行排序",{"2":{"253":2}}],["根据用户的配置初始化各种数据",{"2":{"244":1}}],["根据数据的变化",{"2":{"239":1}}],["根据白天黑夜模式设置不同的效果",{"2":{"160":1}}],["根据不同的后端",{"2":{"99":1}}],["根据线条宽度",{"2":{"30":1}}],["影响图纸加载卡顿的关系就是render方法的执行时间",{"2":{"264":1}}],["却需要花费内存来创建",{"2":{"263":1}}],["妈的",{"2":{"263":1}}],["旋转矩阵",{"2":{"260":1}}],["简称ndc",{"2":{"260":1}}],["简单布局",{"0":{"153":1}}],["简单理解",{"2":{"67":1}}],["归一化设备坐标系",{"2":{"260":1}}],["朝向屏幕内",{"2":{"260":1}}],["今天打开github一看",{"2":{"302":1}}],["今天",{"2":{"266":1}}],["今天自己推矩阵实现了顶点缩放",{"2":{"259":1}}],["今天给勇哥发了下面的一段话",{"0":{"257":1}}],["非常的丝滑流畅",{"2":{"259":1}}],["非material",{"0":{"59":1},"2":{"59":1}}],["缩放和旋转操作",{"2":{"309":1}}],["缩放矩阵",{"2":{"260":1}}],["缩放这些操作也稳定在60帧",{"2":{"259":1}}],["缩放等处理",{"2":{"24":1}}],["百万级别数量的三角形绘制丝毫没有压力",{"2":{"259":1}}],["希望我以后可以回答出来这个问题的答案",{"2":{"258":1}}],["希望能帮助用户能快速完成报表搭建",{"2":{"3":1}}],["本质是二进制模拟十进制进行计算时的精度问题",{"2":{"307":1}}],["本质的区别是什么",{"2":{"258":1}}],["本地不会有什么影响",{"2":{"297":1}}],["本来想单独把",{"2":{"237":1}}],["造成有很多坑",{"2":{"258":1}}],["造成了数据污染",{"2":{"31":1}}],["事先准备好二维图纸和三维模型",{"2":{"257":1}}],["事件监听调度",{"2":{"249":1,"261":1}}],["事件响应函数中弹出dialog弹窗",{"0":{"125":1}}],["事件",{"2":{"29":1}}],["事件是可以注册多个的",{"2":{"29":1}}],["事件先执行",{"2":{"29":1}}],["事件会比",{"2":{"29":1}}],["事件执行顺序优化",{"0":{"29":1}}],["畅想一下",{"2":{"257":1}}],["了解到photoshop开始在基于webgpu来做网页版的开发了",{"2":{"257":1}}],["好家伙",{"2":{"302":1}}],["好",{"2":{"266":1}}],["好消息是",{"2":{"257":1}}],["好了",{"2":{"247":1}}],["难点是",{"2":{"257":1}}],["难道每次接口请求都需要先封装一个数据模型",{"2":{"111":1}}],["尤其是后面的二三维图模融合",{"2":{"257":1}}],["老的graphic就是opengl",{"2":{"256":1}}],["跨平台性",{"0":{"255":1}}],["跨平台性肯定是flutter更好",{"2":{"183":1}}],["终于要开始了",{"2":{"254":1}}],["高二三班",{"2":{"253":2}}],["高度设置为0来撑起这个盒子",{"2":{"138":1}}],["得把矩阵用的越来越熟练才行",{"2":{"259":1}}],["得抓紧去学了",{"2":{"251":1}}],["得到节点的像素信息",{"2":{"309":1}}],["得到后面的一个索引",{"2":{"206":1}}],["得到前面的一个索引",{"2":{"206":1}}],["得到的是一个区间在",{"2":{"167":1}}],["得到两个控制点",{"2":{"32":1}}],["得到三个控制点",{"2":{"32":1}}],["推送gpu指令到设备对象的命令队列queue中去执行绘制",{"2":{"251":1}}],["各种矩阵初始化",{"2":{"250":1}}],["各有所好",{"2":{"231":1}}],["跳过跳过",{"2":{"249":1,"250":1}}],["跳转项目列表",{"2":{"212":1}}],["跳转到外链",{"2":{"163":1}}],["太臃肿了",{"2":{"249":1}}],["毕竟three的源码一个文件动不动就上千行",{"2":{"249":1}}],["毕竟不管是flutter还是rn",{"2":{"183":1}}],["没错",{"2":{"249":1}}],["没有用three",{"2":{"257":1}}],["没有记录下来模型第一次平移后的坐标",{"2":{"246":1}}],["没有索引信息",{"2":{"47":1}}],["没有上诉依赖冲突的报错问题",{"2":{"4":1}}],["继续",{"2":{"248":1}}],["继承自",{"2":{"249":4,"262":1}}],["继承",{"0":{"44":1}}],["熟悉的策略模式解决if",{"2":{"248":1}}],["具体的实现可能会有所不同",{"2":{"312":1}}],["具体原因可能是",{"2":{"257":1}}],["具体矩阵和缓冲区的作用看不清楚",{"2":{"248":1}}],["具体",{"2":{"248":1}}],["具体内容可以查看脚手架开发",{"2":{"224":1}}],["刚发版的时候天天盯着chrome刷新看看更新了没有",{"2":{"254":1}}],["刚看到源码就感觉到了熟悉的味道",{"2":{"249":1}}],["刚去看完three",{"2":{"247":1}}],["刚用完",{"2":{"215":1}}],["抽象出来图元对象来做数据处理",{"2":{"246":1}}],["同理数据坐标y",{"2":{"246":1}}],["同时显示错误信息",{"2":{"314":1}}],["同时把每个物体的信息存起来",{"2":{"246":1}}],["同时也可以确保使用的是最新版本的包",{"2":{"227":1}}],["同时",{"2":{"30":1,"99":1,"184":1}}],["同时会将所有的线性类型数据全部转为线段数据",{"2":{"24":1}}],["同时demo2有自己独立的依赖ts",{"2":{"11":1}}],["移动相机的位置矩阵到模型的中心",{"2":{"246":1}}],["移除事件监听",{"2":{"249":1,"261":1}}],["移除最后元素",{"2":{"47":1}}],["移除指定索引处的元素",{"2":{"47":1}}],["移除某个元素值",{"2":{"47":1}}],["屏幕",{"2":{"246":1}}],["判断事件监听是否已经存在",{"2":{"249":1,"261":1}}],["判断是否支持webgpu",{"2":{"248":1}}],["判断点击了哪个物体",{"2":{"246":1}}],["判断设备是否支持webgpu并获取webgpu的设备对象和上下文",{"2":{"244":1}}],["彻底弄懂鼠标拾取的原理",{"2":{"246":1}}],["回流比重绘的成本大得多",{"2":{"309":1}}],["回流",{"2":{"309":2}}],["回流和重绘",{"0":{"309":1}}],["回去了学习顶点数据和片元数据共用缓冲区",{"2":{"246":1}}],["回到根目录下执行pnpm",{"2":{"224":1}}],["视锥体中的距离近裁剪平面最近的模型",{"2":{"246":1}}],["视图",{"2":{"171":1}}],["视图是由数据驱动的",{"2":{"136":1}}],["视图复合",{"2":{"3":1}}],["形成几何图形",{"2":{"312":1}}],["形成一个用户个性化的图元库",{"2":{"257":1}}],["形成一条射线",{"2":{"246":1}}],["形成三条线段",{"2":{"32":1}}],["鼠标拾取的原理",{"2":{"246":1}}],["源码路径src",{"2":{"248":1}}],["源码路径",{"2":{"246":1,"249":1,"250":1,"261":2,"262":1,"263":1}}],["应该尽量减少回流操作",{"2":{"309":1}}],["应该还会存在",{"2":{"246":1}}],["应该程序中止",{"2":{"205":1}}],["精度问题导致的原因是js",{"2":{"246":1}}],["精度问题是否依然存在",{"2":{"246":1}}],["精度只能全图纸统一进行处理了",{"2":{"24":1}}],["做选中效果",{"2":{"246":1}}],["世界空间变换到观察空间",{"2":{"246":1}}],["现在距离webgpu正式发版已经三个半月了",{"2":{"254":1}}],["现在我们绘制线段的能力已经有了",{"2":{"245":1}}],["现在看g2的源码好像没有那么恐怖了",{"2":{"2":1}}],["底层使用的是webgl中的gl",{"2":{"245":1}}],["底部弹窗",{"0":{"126":1}}],["线段",{"2":{"312":1}}],["线段绘制使用new",{"2":{"245":1}}],["线条的起点和终点会在gpu上复制多次",{"2":{"30":1}}],["线条的原始定义可能只包含线条的起点和终点",{"2":{"30":1}}],["已完成",{"2":{"246":1}}],["已经粗略的看过了three",{"2":{"245":1}}],["已连接未待机的状态",{"2":{"55":1}}],["碰撞组件",{"2":{"243":1}}],["碰撞案例",{"2":{"26":1}}],["拾取检测依赖",{"2":{"243":1}}],["拾取快",{"2":{"242":1,"246":2}}],["帧缓冲拾取",{"2":{"243":1}}],["帧缓冲区",{"2":{"242":1,"246":2}}],["引用数据类型",{"2":{"306":1}}],["引擎启动前需要配置开启拾取和拾取类型",{"2":{"243":1}}],["引入竟然会报错",{"2":{"219":1}}],["引入环境变量",{"2":{"175":1}}],["引入",{"2":{"109":1,"112":1}}],["引入的jank问题所做的重要尝试",{"2":{"99":1}}],["引入同样独立的demo2和demo3模块",{"2":{"11":1}}],["利用fbo",{"2":{"242":1,"246":1}}],["利弊就和vue3使用compositon",{"2":{"231":1}}],["块级注释",{"2":{"241":1}}],["单行注释",{"2":{"241":1}}],["单个语句会把它语句的值当做结果返回",{"2":{"199":1}}],["注",{"2":{"256":1}}],["注释",{"2":{"241":1}}],["注意看src",{"2":{"248":1}}],["注意",{"2":{"194":1}}],["结构体",{"2":{"241":1}}],["结构体都可以遵循协议",{"2":{"202":1}}],["矩阵的执行顺序",{"2":{"260":1}}],["矩阵",{"2":{"241":1}}],["向量",{"2":{"241":1}}],["向widget增加padding",{"2":{"65":1}}],["要复杂得多",{"2":{"258":1}}],["要做到好的一个效果",{"2":{"257":1}}],["要补",{"2":{"240":1}}],["要创建一个类的实例",{"2":{"200":1}}],["见到了一些对象底层的东西",{"2":{"240":1}}],["虚拟dom",{"2":{"239":1}}],["仔细想一想",{"2":{"239":1}}],["里面加载各种组件展开整个项目",{"2":{"237":1}}],["里面新建一个分支",{"2":{"219":1}}],["暂不采用",{"2":{"237":1}}],["暂时放弃使用fvm工具",{"2":{"98":1}}],["缺点是不太适合我这种懒人",{"2":{"237":1}}],["缺货",{"2":{"203":1}}],["效果也很好",{"2":{"237":1}}],["效果却一点都不好",{"2":{"98":1}}],["传参的方式和call不一样",{"2":{"236":1}}],["传递给绑定的着色器程序",{"2":{"264":1}}],["传递时值前要加",{"2":{"172":1}}],["传递参数",{"2":{"114":1}}],["永久改变this指向",{"2":{"236":1}}],["临时改变this指向",{"2":{"236":1}}],["显示执行时",{"2":{"236":1}}],["显示隐藏的文件夹",{"2":{"152":1}}],["显式执行时",{"0":{"236":1}}],["改成createelement创建ul元素",{"2":{"309":1}}],["改成感叹号",{"2":{"194":1}}],["改变浏览器窗口尺寸",{"2":{"309":1}}],["改变元素字体大小",{"2":{"309":1}}],["改变元素尺寸",{"2":{"309":1}}],["改变元素位置",{"2":{"309":1}}],["改变函数的执行上下文",{"2":{"235":1}}],["虽然是各有利弊",{"2":{"231":1}}],["虽然还是比较慢",{"2":{"92":1}}],["写文档的做法是在",{"2":{"237":1}}],["写法更自由",{"2":{"231":1}}],["写入地代码会在属性值发生改变时调用",{"2":{"200":1}}],["检查渲染器的参数",{"2":{"264":1}}],["检查本地项目中是否安装了对应的依赖",{"2":{"226":1}}],["检查安装版本",{"2":{"176":1}}],["直接扔进img中",{"2":{"299":1}}],["直接看最后的渲染流程",{"2":{"251":1}}],["直接在函数中进行接口请求",{"2":{"230":1}}],["直接读取store中的数据修改",{"2":{"230":2}}],["直接运行该包提供的命令行工具",{"2":{"226":1}}],["直接报错",{"2":{"28":1}}],["介绍",{"0":{"226":1}}],["答",{"2":{"224":2}}],["问题",{"2":{"267":1}}],["问",{"2":{"224":2}}],["思路是",{"2":{"297":1}}],["思考",{"2":{"224":1}}],["思想和前端的组件封装一样",{"2":{"165":1}}],["成功",{"2":{"224":1}}],["成就智能时代全球领先的数据可视化解决方案",{"2":{"2":1}}],["控制台就会报一大片请求失败的错误",{"2":{"267":1}}],["控制台输出了",{"2":{"224":1}}],["控制流",{"0":{"193":1}}],["脚手架搭建测试",{"2":{"224":2}}],["脚手架开发",{"0":{"216":1,"219":1},"1":{"217":1,"218":1,"219":1}}],["搭建的项目里做了如下测试",{"2":{"224":1}}],["`highlighted",{"2":{"288":2}}],["```ts",{"2":{"292":1,"293":1}}],["```html",{"2":{"287":1}}],["```",{"2":{"285":1,"287":2,"288":3,"289":1,"290":1,"291":1,"292":2,"293":2}}],["```js",{"2":{"285":1,"287":1,"288":3,"289":1,"290":1,"291":1,"293":1}}],["`three",{"2":{"263":1}}],["`bound`",{"2":{"243":1}}],["`my",{"2":{"235":3}}],["`",{"2":{"223":1,"235":3,"263":1,"288":2,"294":2,"299":2}}],["`uname`",{"2":{"223":1}}],["`view",{"2":{"211":1}}],["|",{"2":{"223":3,"280":20}}],["||",{"2":{"124":1,"178":1}}],["软链接有三个文件",{"2":{"223":1}}],["软链接是一个脚本",{"2":{"223":1}}],["\\tthis",{"2":{"253":1}}],["\\treturn",{"2":{"253":1}}],["\\tconsole",{"2":{"253":2}}],["\\t\\ttry",{"2":{"221":1}}],["\\t\\talias",{"2":{"221":1}}],["\\tlocation",{"2":{"221":1}}],["\\tlisten",{"2":{"221":1}}],["\\t",{"2":{"221":2}}],["于是我改用了下面的命令来执行脚手架",{"2":{"219":1}}],["又继承自",{"2":{"261":1}}],["又叫标准化设备坐标系",{"2":{"260":1}}],["又可以使用esm的包",{"2":{"219":1}}],["又或者说",{"2":{"23":1}}],["到这里",{"2":{"219":1,"248":1}}],["到这里我就弄懂了如何配置一个可以不使用npm",{"2":{"218":1}}],["保存代码时缩进4个空格",{"2":{"219":1}}],["保持能量的平衡",{"2":{"10":1}}],["关闭定义变量转为const",{"2":{"219":1}}],["关于cad方向上的一些想法",{"2":{"257":1}}],["关于手绘线的优化方案",{"2":{"246":1}}],["关于运行项目一直卡在running",{"2":{"92":1}}],["关于批注的移动可以参考three中的",{"2":{"26":1}}],["勾选",{"2":{"219":1}}],["外的",{"2":{"219":1}}],["外部依赖变更",{"2":{"134":1}}],["哪些文件不需要被编译的",{"2":{"219":1}}],["弃用",{"2":{"219":1}}],["适配不同的框架和项目",{"2":{"219":1}}],["适合存储的键值集合相对较少的情况",{"2":{"121":1}}],["仓库里面的固定代码",{"2":{"219":1}}],["书接上回",{"2":{"219":1}}],["至于这种二三维联动",{"2":{"258":1}}],["至于后续的如何拉去git远程模板",{"2":{"218":1}}],["至此",{"2":{"17":1}}],["正交投影和透视投影为什么用的是同一个lookat方法",{"2":{"246":1}}],["正常脚手架全局安装无需执行此步骤",{"2":{"217":1}}],["正式发包",{"0":{"107":1}}],["速度要快",{"2":{"215":1}}],["排查过程一定要思路清晰",{"2":{"215":1}}],["妥妥的生产事故",{"2":{"215":1}}],["登录上去以后看到刚才服务器的cpu占用一直是百分百",{"2":{"215":1}}],["登录上去又花了一段时间",{"2":{"215":1}}],["勇哥",{"2":{"257":1}}],["勇哥又再和客户打电话沟通",{"2":{"215":1}}],["勇哥在群里说",{"2":{"215":1}}],["服务的访问链接和一些静态资源的访问最好都新建一个统一配置的文件来管理",{"2":{"304":1}}],["服务的部署和资源访问这些链接",{"0":{"304":1}}],["服务器崩了",{"2":{"215":1}}],["服务器驱动程序还通过使用steamvr接收来自客户端设备的运动和控制数据",{"2":{"53":1}}],["服务器驱动程序通过与steamvr集成",{"2":{"53":1}}],["服务端会用秋全的app",{"2":{"214":1}}],["苹果推出了一个叫做",{"2":{"214":1}}],["启动时间还有内存占比上都是很有优势的",{"2":{"214":1}}],["取而代之的是",{"2":{"214":1}}],["取消eslint的报错提示",{"2":{"219":1}}],["取消",{"2":{"125":1}}],["取消订阅等清理操作",{"2":{"67":1}}],["细心的朋友发现了",{"2":{"214":1}}],["区别于静态库",{"2":{"214":1}}],["区间内",{"2":{"32":1}}],["静态库与app可执行文件一起被加载到同一块代码区中",{"2":{"214":1}}],["动态库在包体积",{"2":{"214":1}}],["动态库是在程序运行的时候被添加另外一块内存区域",{"2":{"214":1}}],["动态库和静态库",{"0":{"214":1}}],["动画使用transform",{"2":{"309":1}}],["动画",{"2":{"3":1,"168":1,"169":1}}],["管理和这些view相关的交互",{"2":{"213":1}}],["管理和增强视图",{"2":{"3":1}}],["代表最后返回的页面",{"2":{"213":1}}],["代码解构显得不是那么清晰",{"2":{"231":1}}],["代码展开",{"2":{"152":1}}],["代码折叠",{"2":{"152":1}}],["代码生成等",{"2":{"134":1}}],["代码如下",{"2":{"16":1}}],["上面的矩阵是three中内置好的矩阵变量",{"2":{"266":1}}],["上传以后",{"2":{"257":1}}],["上午十点零六",{"2":{"215":1}}],["上下左右居中",{"2":{"211":1}}],["上方",{"2":{"88":1}}],["属性来设置",{"2":{"211":1}}],["属性和子脚本",{"2":{"200":1}}],["内边距区域的大小可以通过视图的",{"2":{"211":1}}],["内边距区域的底部边缘",{"2":{"211":1}}],["内边距区域的顶部边缘",{"2":{"211":1}}],["内边距区域的右侧边缘",{"2":{"211":1}}],["内边距区域的左侧边缘",{"2":{"211":1}}],["内边距区域是视图内容与视图边缘之间的空白区域",{"2":{"211":1}}],["便于oc的代码调用能找到swift的方法",{"2":{"210":1}}],["变成ast树",{"2":{"239":1}}],["变量",{"2":{"206":1}}],["变体",{"2":{"162":1}}],["作为一个图形学的开发工程师",{"2":{"266":1}}],["作为续行符",{"2":{"206":1}}],["作为image之后的第一个修饰符",{"2":{"153":1}}],["断言仅在调试环境运行",{"2":{"205":1}}],["断言和先决条件的不同点是",{"2":{"205":1}}],["断言和先决条件是在运行时所做的检查",{"2":{"205":1}}],["断言和先决条件",{"0":{"205":1}}],["他回复我说",{"0":{"258":1},"1":{"259":1}}],["他们可能需要多次计算",{"2":{"309":1}}],["他们是自己基于webgl写了一套自己的渲染",{"2":{"257":1}}],["他们是在观察矩阵之后的投影操作",{"2":{"246":1}}],["他们什么时候进行状态检测",{"2":{"205":1}}],["他的定义文件更加轻松易懂",{"2":{"184":1}}],["程序将会崩溃",{"2":{"314":1}}],["程序的当前状态是无效的",{"2":{"205":1}}],["程序会退出switch语句",{"2":{"196":1}}],["泛型",{"0":{"204":1}}],["金额不足",{"2":{"203":1}}],["错误用遵循error协议的类型的值来表示",{"2":{"203":1}}],["错误处理",{"0":{"203":1}}],["协议和扩展",{"0":{"202":1}}],["枚举的关联值还可以提供错误状态的额外信息",{"2":{"203":1}}],["枚举",{"2":{"202":1}}],["枚举和结构体",{"0":{"201":1}}],["枚举或结构体的方法如果会修改self",{"2":{"141":1}}],["整个表达式地值也是一个可选值",{"2":{"200":1}}],["描述了需要链接的动态库的信息",{"2":{"214":1}}],["描述",{"2":{"200":1}}],["面积",{"2":{"200":1}}],["该方法通常包含以下步骤",{"2":{"264":1}}],["该方法中会",{"2":{"264":1}}],["该技术能够为3d图像提高10倍的渲染性能",{"2":{"256":1}}],["该元组的元素可以用名称或数字来获取",{"2":{"198":1}}],["该参数的值等于线段上某一个点距离起点的长度除以线段长度",{"2":{"32":1}}],["输出合并阶段",{"2":{"312":1}}],["输出到颜色缓冲区",{"2":{"246":1}}],["输出",{"2":{"196":1,"253":3}}],["输入的顶点数据会被处理",{"2":{"312":1}}],["输入flutter",{"2":{"95":1}}],["输入框",{"0":{"86":1}}],["找管理员账户",{"2":{"215":1}}],["找出字典中的最大值",{"2":{"196":1}}],["找到项目的build",{"2":{"137":1}}],["两层for",{"2":{"196":1}}],["两个事件的函数都会执行",{"2":{"29":1}}],["操作符来提供一个默认值",{"2":{"195":1}}],["操作视图并且展现详细信息",{"2":{"3":1}}],["条件必须是一个布尔表达式",{"2":{"195":1}}],["把所有相同图层的图元的点线面数据进行合模处理成一个大图元来渲染",{"2":{"257":1}}],["把",{"2":{"239":1}}],["把想要用作可选的类型的后面的问号",{"2":{"194":1}}],["把合并后的代码提交到自己新建的分支当中",{"2":{"133":1}}],["隐藏的dom元素操作不会引发其他元素的重排",{"2":{"309":1}}],["隐藏系统的导航返回按钮",{"2":{"140":1}}],["隐式执行时",{"0":{"235":1}}],["隐式解析可选类型确定有值后不需要强制解析",{"2":{"194":1}}],["隐式解析可选类型",{"0":{"194":1}}],["依然可以对元组进行分解和下标访问",{"2":{"192":1}}],["依赖安装不上",{"2":{"176":1}}],["依赖安装好以后如果是ios真机测试还需要用xcode打开项目下的ios项目",{"2":{"97":1}}],["值是",{"2":{"192":1}}],["值永远不会被隐式转换为其他类型",{"2":{"190":1}}],["总结",{"2":{"308":1}}],["总结一下分析的过程",{"2":{"215":1}}],["总结一下就是",{"2":{"183":1}}],["总体呈现的流畅效果都会相差很大",{"2":{"257":1}}],["总之",{"2":{"211":1}}],["总的来说init方法进行了各种各样的数据初始化和一些webgpu的使用准备工作",{"2":{"248":1}}],["总的来说",{"2":{"30":1}}],["电池信息等都只能通过系统级的sdk",{"2":{"183":1}}],["想要调用手机系统的其他功能如",{"2":{"183":1}}],["想不到吧",{"2":{"140":3}}],["都为求一个",{"2":{"309":1}}],["都使用图元对象最终操作一个float32array的数组来实现",{"2":{"246":1}}],["都和观察矩阵没有关系",{"2":{"246":1}}],["都只能提供绘制ui的功能",{"2":{"183":1}}],["都会为该视图和该视图中使用的状态数据之间创建一个依赖关系",{"2":{"136":1}}],["搜索",{"2":{"219":1}}],["搜索列表和搜索建议",{"0":{"178":1}}],["搜索sandbox",{"2":{"137":1}}],["页面初始渲染",{"2":{"309":1}}],["页面自由度极高",{"2":{"237":1}}],["页面内容全部自己开发",{"2":{"237":1}}],["页面加载不出来了",{"2":{"215":1}}],["页面的布局",{"0":{"211":1}}],["页面显示需要做特殊处理",{"2":{"177":1}}],["页面之间的跳转",{"0":{"140":1}}],["页面之间跳转",{"0":{"118":1}}],["删掉之前的源",{"2":{"176":1}}],["删除可见的dom元素",{"2":{"309":1}}],["删除所有项目的依赖",{"2":{"224":1}}],["删除项目中已经安装好的目录",{"2":{"218":1}}],["删除依赖",{"0":{"218":1}}],["删除缓存",{"2":{"122":1}}],["删除缓存数据",{"2":{"122":1}}],["删除ios",{"2":{"103":3}}],["查询某些属性或调用某些计算方法",{"2":{"309":1}}],["查找包",{"2":{"176":1}}],["查看github热门趋势和star排行榜",{"0":{"303":1}}],["查看浏览器是否支持webgpu",{"2":{"248":1}}],["查看nginx的访问日志",{"2":{"215":1}}],["查看文件的权限",{"2":{"103":1}}],["查看安装列表",{"2":{"98":1}}],["查看fvm的版本",{"2":{"98":1}}],["环境变量的使用比数据绑定更方便",{"2":{"175":1}}],["环境变量的使用",{"0":{"175":1}}],["环境安装",{"0":{"92":1}}],["环境安装和项目搭建",{"0":{"21":1}}],["走一遍orillusion最简单的流程来看源码",{"0":{"244":1}}],["走马灯效果",{"0":{"173":1}}],["走的远一些",{"2":{"23":1}}],["横向tabview",{"0":{"173":1}}],["横向或纵向布局多个widgets",{"0":{"60":1}}],["连接上服务器查看情况",{"2":{"215":1}}],["连接线段以及自定义着色器等技术",{"2":{"30":1}}],["连接线段",{"2":{"30":1}}],["连续曲率圆角",{"2":{"168":1,"169":1}}],["四维向量表示齐次坐标",{"2":{"241":1}}],["四分之一圆的圆角",{"2":{"168":1,"169":1}}],["四个控制点通过先后顺序进行连接",{"2":{"32":1}}],["组件",{"0":{"168":1},"2":{"165":1,"171":1}}],["组合widgets",{"0":{"63":1}}],["垫片",{"2":{"163":1,"164":1}}],["符号",{"2":{"162":1,"172":1}}],["去执行",{"2":{"251":1}}],["去官网下载sf",{"2":{"162":1}}],["去掉vue",{"2":{"15":1}}],["色彩",{"2":{"161":1}}],["遮罩",{"0":{"159":1}}],["渐变颜色设置透明度",{"2":{"158":1}}],["其实类似的产品",{"2":{"258":1}}],["其他的模块都知之甚少",{"2":{"240":1}}],["其他修饰符才能生效",{"2":{"153":1}}],["其中盛放的对象类型放在",{"2":{"47":1}}],["其中required关键字表示该入参必须传入",{"2":{"41":1}}],["其中x1和x2的范围必须在",{"2":{"32":1}}],["其中",{"2":{"32":1}}],["限制行数为1",{"2":{"153":1}}],["垂直的",{"2":{"153":1}}],["垂直排列布局",{"2":{"153":1}}],["水平的",{"2":{"153":1}}],["水平的linearprogressindicator",{"2":{"90":1}}],["水平排列布局",{"2":{"153":1}}],["下面情况会发生重排",{"2":{"309":1}}],["下面的文件",{"2":{"219":1}}],["下一步就直接执行命令编码器的finish方法",{"2":{"251":1}}],["下标从零开始",{"2":{"192":1}}],["下箭头",{"2":{"152":1}}],["下载了它的字体文件",{"2":{"246":1}}],["下载的包是否会被删除",{"0":{"228":1}}],["下载的时候要关闭代理",{"2":{"94":1}}],["下载flutter",{"2":{"94":1}}],["下载android",{"2":{"94":1}}],["右箭头",{"2":{"152":1}}],["左下角的",{"2":{"219":1}}],["左滑右滑响应",{"0":{"164":1}}],["左箭头",{"2":{"152":1}}],["左边文字和右边蚊子对齐的布局效果",{"2":{"138":1}}],["掘金上有很多比较新的教程可以用",{"2":{"146":1}}],["异步调用请求",{"2":{"141":1}}],["异步任务",{"0":{"51":1}}],["则进行的是值传递",{"2":{"306":1}}],["则进行的是引用传递",{"2":{"306":1}}],["则是用渲染管线的",{"2":{"245":1}}],["则直接执行命令",{"2":{"226":1}}],["则所有的",{"2":{"219":1}}],["则代码执行结束",{"2":{"205":1}}],["则代码像往常一样继续执行",{"2":{"205":1}}],["则该函数为一个闭包",{"2":{"198":1}}],["则逃逸闭包能铺货self",{"2":{"141":1}}],["则必须以mutaing声明修饰符标记",{"2":{"141":1}}],["则必须自己构建它们",{"2":{"59":1}}],["逃逸闭包不能捕获self",{"2":{"141":1}}],["逃逸闭包不可修改self这个参数",{"2":{"141":1}}],["闭包学习",{"2":{"141":1}}],["闭包",{"0":{"141":1}}],["模块来创建子进程",{"2":{"314":1}}],["模块化机制",{"2":{"68":1}}],["模型矩阵",{"2":{"266":1}}],["模型平移结束后",{"2":{"246":1}}],["模板解析",{"2":{"239":1}}],["模态跳转",{"2":{"140":1}}],["开始期待后面它在cad上面的一个性能表现",{"2":{"259":1}}],["开始",{"2":{"232":1}}],["开发者可以自定义这些内边距",{"2":{"211":1}}],["开关2",{"2":{"139":1}}],["开关1",{"2":{"139":2}}],["开箱即用是个很棒的功能",{"2":{"0":1}}],["封装",{"2":{"139":1}}],["封装数据模型的好处是什么",{"2":{"111":1}}],["复制当前行",{"2":{"152":1}}],["复选框控件的封装和使用",{"0":{"139":1}}],["复合节点",{"2":{"6":1}}],["始终都是居中效果",{"2":{"138":1}}],["始末端的分支宽度总和相等",{"2":{"10":1}}],["紧凑型组件和贪婪型组件",{"2":{"138":1}}],["返回上级页面",{"2":{"140":1}}],["返回",{"2":{"137":1}}],["失败了",{"2":{"137":1}}],["解析css生成cssom",{"2":{"309":1}}],["解析下来的数据量有1",{"2":{"28":1}}],["解决方法",{"2":{"307":1}}],["解决方案",{"2":{"137":1}}],["解决history路由访问问题",{"2":{"221":1}}],["增加修改测试用例",{"2":{"134":1}}],["增量编译指的是生成",{"2":{"19":1}}],["✅",{"2":{"134":1}}],["⚡️",{"2":{"134":1}}],["重排会引起重绘",{"2":{"309":3}}],["重排影响的范围",{"2":{"309":1}}],["重绘不一定导致回流",{"2":{"309":1}}],["重绘",{"2":{"309":1}}],["重构代码",{"2":{"134":1}}],["重新计算各节点和css具体的大小和位置",{"2":{"309":1}}],["重新排列元素",{"2":{"309":1}}],["重新生成布局",{"2":{"309":1}}],["重新pnpm",{"2":{"218":1}}],["重新安装依赖即可",{"2":{"128":1}}],["重新打包",{"2":{"103":1}}],["♻️",{"2":{"134":1}}],["修饰符的先后顺序很重要",{"2":{"153":1}}],["修改参数不会影响到数据本身",{"2":{"306":1}}],["修改参数会影响到对象本身",{"2":{"306":1}}],["修改demo1的命令如下",{"2":{"224":1}}],["修改demo3中的index",{"2":{"224":1}}],["修改如下",{"2":{"224":1}}],["修改打开的第一个页面的颜色",{"2":{"208":1,"210":1}}],["修改一下",{"2":{"175":1}}],["修改",{"2":{"134":1}}],["修改工具相关",{"2":{"134":1}}],["修改代码格式",{"2":{"134":1}}],["修改文档",{"2":{"134":1}}],["修复问题",{"2":{"134":1}}],["💯",{"2":{"281":1}}],["📦️",{"2":{"134":1}}],["🔨",{"2":{"134":1}}],["📚",{"2":{"134":1}}],["🚀",{"2":{"134":1}}],["🧩",{"2":{"134":1}}],["新的graphic技术就是vulkan",{"2":{"256":1}}],["新的脚手架项目我决定要用",{"2":{"219":1}}],["新增下面一行",{"2":{"224":1}}],["新增如下代码",{"2":{"208":1}}],["新增源",{"2":{"176":1}}],["新值的名字是newvalue",{"2":{"200":1}}],["新功能",{"2":{"134":1}}],["新建styles来配置自定义修饰符的内容",{"2":{"160":1}}],["新建文件",{"2":{"152":1}}],["新建test",{"2":{"16":1}}],["新建pnpm",{"2":{"13":1}}],["新建一个文件夹",{"2":{"13":1}}],["规范",{"0":{"134":1}}],["合并修改",{"2":{"133":1}}],["报错就消失了",{"2":{"219":1}}],["报错",{"2":{"132":1}}],["允许使用console",{"2":{"219":1}}],["允许不同git历史拉代码",{"2":{"132":1}}],["允许你自定义其子widget",{"2":{"57":1}}],["撤销最近的一次提交",{"2":{"132":1}}],["参考资料",{"2":{"129":1}}],["提供了",{"2":{"314":1}}],["提取出来图元数据并配合ai来做一些事情",{"2":{"257":1}}],["提升性能",{"2":{"134":1}}],["提交",{"2":{"134":1}}],["提交pull",{"0":{"133":1},"1":{"134":1},"2":{"133":2}}],["提高应用程序的性能和内存使用效率",{"2":{"129":1}}],["提示信息",{"2":{"125":1}}],["提示条和底部列表弹窗的api",{"2":{"58":1}}],["状态和场景数据的完整性以及各个变量的有效性",{"2":{"264":1}}],["状态管理",{"0":{"127":1},"1":{"128":1,"129":1,"130":1,"131":1}}],["状态就不允许再变动",{"2":{"67":1}}],["分解的时候可以把要忽略的部分用下划线",{"2":{"192":1}}],["分割线",{"2":{"177":1}}],["分隔符",{"2":{"161":1}}],["分享",{"2":{"126":1}}],["分别是",{"2":{"90":1}}],["分别是npm",{"2":{"19":1}}],["分别表示key的类型和value的类型",{"2":{"49":1}}],["分别对应串行和并行",{"2":{"19":1}}],["带选择的dialog弹窗",{"2":{"125":1}}],["弹窗函数使用",{"2":{"125":1}}],["弹窗函数封装",{"2":{"125":1}}],["确实",{"2":{"302":1}}],["确定",{"2":{"125":1}}],["确认pico还在刚才steamvr的界面",{"2":{"55":1}}],["您确定要删除吗",{"2":{"125":1}}],["您的电脑的ip地址",{"2":{"55":1}}],["路由管理",{"0":{"131":1}}],["路由传参",{"0":{"119":1}}],["路由",{"0":{"117":1},"1":{"118":1,"119":1,"120":1}}],["路飞",{"2":{"88":1}}],["响应系统",{"2":{"240":1}}],["响应式系统应该是我对vue最熟悉的一个模块",{"2":{"240":1}}],["响应式系统",{"0":{"240":1},"2":{"239":1}}],["响应拦截",{"2":{"116":1}}],["响应数据",{"2":{"110":1}}],["帅气的阿斌",{"2":{"114":1}}],["接收以后处理成url",{"2":{"299":1}}],["接着看",{"2":{"261":1}}],["接着往下看",{"2":{"248":2}}],["接下来继续去看看object3d",{"2":{"261":1}}],["接下来持续学习开始吧",{"2":{"254":1}}],["接下来对每一条线段做同样的操作",{"2":{"32":1}}],["接下面要对cad需要的线段绘制能力进行性能测试",{"2":{"245":1}}],["接口调用",{"2":{"181":1}}],["接口请求",{"0":{"108":1,"181":1},"1":{"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1}}],["打包结束以后",{"2":{"297":1}}],["打包前",{"2":{"297":1}}],["打包后的js中如果以这行代码开头",{"2":{"219":1}}],["打包后会生成build文件夹",{"2":{"106":1}}],["打包过程cpu的占用会很高",{"2":{"215":1}}],["打开官网查看页面的访问",{"2":{"215":1}}],["打开viewcontroller编辑viewdidload函数",{"2":{"208":1}}],["打开开发人员工具",{"0":{"182":1}}],["打开终端",{"2":{"144":1}}],["打开xcode",{"2":{"106":1}}],["打开环境变量配置文件",{"2":{"97":1}}],["打开",{"2":{"94":1,"137":1}}],["打开ue5",{"2":{"55":1}}],["禁止布局随着键盘上移动",{"2":{"105":1}}],["键盘弹起页面布局上移问题",{"0":{"105":1}}],["给uilabel设置点击事件",{"2":{"210":1}}],["给元组单个元素命名后",{"2":{"192":1}}],["给文件重新赋予权限",{"2":{"103":1}}],["给项目分配一个开发team",{"2":{"97":1}}],["给项目选择一个team",{"2":{"96":1}}],["编译器",{"2":{"239":1}}],["编译器会自动推断其类型",{"2":{"190":1}}],["编译",{"2":{"103":1}}],["编码",{"2":{"5":2,"6":4}}],["qrcode",{"2":{"232":1}}],["qrbtf",{"2":{"232":1}}],["qr",{"2":{"232":1}}],["queue",{"2":{"251":1}}],["queen",{"2":{"201":3}}],["questionmark",{"2":{"162":1,"163":1}}],["queryparameters",{"2":{"114":1,"115":1,"116":1}}],["quotation",{"2":{"206":2}}],["quot",{"2":{"1":18,"5":4,"6":4,"7":4,"8":4,"9":4,"10":14,"16":6,"17":10,"18":6,"19":24,"47":4,"48":2,"49":2,"51":6,"87":2,"88":4,"114":10,"115":4,"116":8,"120":4,"122":8,"125":24,"126":14,"130":4,"132":4,"137":6,"138":20,"139":8,"140":16,"141":12,"142":10,"143":6,"153":6,"154":2,"156":2,"157":2,"158":2,"161":10,"162":16,"163":30,"164":26,"165":10,"166":8,"167":2,"168":24,"169":16,"170":2,"172":4,"173":2,"174":28,"175":6,"177":2,"178":16,"179":10,"180":2,"181":6,"188":2,"190":4,"191":8,"192":6,"194":6,"195":22,"196":26,"198":12,"200":20,"201":8,"203":20,"204":2,"205":4,"206":26,"210":4,"217":6,"219":48,"223":24,"224":12,"234":2,"237":32,"271":10,"278":4,"285":2,"286":2,"287":8,"299":8,"309":30}}],["qq",{"2":{"102":1,"184":1}}],["核心组成是flutter",{"2":{"100":1}}],["背景",{"2":{"99":1}}],["背景颜色",{"2":{"90":2}}],["切换flutter版本",{"2":{"98":1}}],["添加",{"2":{"309":1}}],["添加了对vulkan的支持",{"2":{"256":1}}],["添加事件监听",{"2":{"249":1,"261":1}}],["添加改行代码到打包文件的开头",{"2":{"219":1}}],["添加到view中",{"2":{"210":1}}],["添加相关注释后提交",{"2":{"133":2}}],["添加homebrew",{"2":{"98":1}}],["添加flutter的安装路径到环境变量",{"2":{"97":1}}],["获取设备对象",{"2":{"248":1}}],["获取canvas中webgpu的上下文并进行了一些配置",{"2":{"248":1}}],["获取webgpu设备对象",{"2":{"248":1}}],["获取对应偏移量的索引",{"2":{"206":1}}],["获取app的白天黑夜模型状态",{"2":{"160":1}}],["获取项目最新代码",{"2":{"133":1}}],["获取依赖",{"2":{"97":1}}],["获取缓存数据",{"2":{"122":1}}],["获取缓存",{"2":{"87":1,"122":1}}],["~",{"2":{"97":2}}],["导航栏",{"2":{"171":1}}],["导航",{"0":{"163":1}}],["导航返回按钮图标",{"2":{"140":1}}],["导入刚才下载好的flutter",{"2":{"94":1}}],["导致重排",{"2":{"309":1}}],["导致重绘",{"2":{"309":2}}],["导致本次循环的offsetpositiondata临时变量不会被释放",{"2":{"31":1}}],["导致使用的调用堆栈大小超过事先规划的大小",{"2":{"28":1}}],["导致图纸根据渲染不出来",{"2":{"28":1}}],["官网说自己是",{"2":{"251":1}}],["官网全程崩溃了将近二十分钟",{"2":{"215":1}}],["官网崩了",{"2":{"215":1}}],["官网文档",{"2":{"124":1}}],["官网下载",{"2":{"94":1}}],["官网的开发文档",{"2":{"55":1,"150":1}}],["前端根据链接用qrcode去生成二维码展示",{"2":{"299":1}}],["前端中的npm库类似",{"2":{"93":1}}],["前几天看到一个视频",{"2":{"257":1}}],["前段时间我们的cad就是从图纸卡顿一步步优化过来的",{"2":{"257":1}}],["前言",{"0":{"22":1,"239":1,"254":1},"1":{"255":1,"256":1}}],["与spawn方法不同的是",{"2":{"314":1}}],["与skia不同的是",{"2":{"99":1}}],["与其每个项目都维护一个自己习惯的commom",{"2":{"302":1}}],["与android中的jcenter",{"2":{"93":1}}],["与p3的y相同",{"2":{"32":1}}],["第三方库",{"2":{"307":1}}],["第5行被执行",{"2":{"253":2}}],["第20节",{"2":{"246":1}}],["第283行被执行",{"2":{"24":2}}],["第五章看不下去了",{"2":{"240":1}}],["第一次被赋值之后",{"2":{"194":1}}],["第二次挂了梯子然后就没有卡住",{"2":{"92":1}}],["刷新时refreshprogressindicator",{"2":{"90":1}}],["圆形的circularprogressindicator",{"2":{"90":1}}],["之后地所有代码都会按照解包后地值运行",{"2":{"200":1}}],["之后消失",{"2":{"88":1}}],["之前处理的支付都是后端生成支付链接",{"2":{"299":1}}],["之前地值是nil",{"2":{"200":1}}],["之前加",{"2":{"200":1}}],["之前和之后均匀地划分",{"2":{"61":1}}],["之间的数",{"2":{"167":1}}],["指针悬停多久后展示",{"2":{"88":1}}],["指定配置文件进行类型检查",{"2":{"19":1}}],["时",{"2":{"88":1}}],["时刻提醒自己这个东西要去学",{"2":{"22":1}}],["距离",{"2":{"88":1}}],["是一个比较复杂的类",{"2":{"263":1}}],["是时候该学些shader的高级应用了",{"2":{"259":1}}],["是非常好的",{"2":{"258":1}}],["是否已经找到了性能问题的本质了",{"2":{"258":1}}],["是否还可以使用这些指令",{"2":{"224":1}}],["是否使用语义标签",{"2":{"88":1}}],["是的",{"2":{"224":1}}],["是",{"2":{"219":1,"314":1}}],["是某个资源加载404",{"2":{"215":1}}],["是离用户最近的第一层代码",{"2":{"213":1}}],["是要成为海贼王的男人",{"2":{"88":5}}],["是面条",{"2":{"2":1}}],["是面粉",{"2":{"2":1}}],["点击open",{"2":{"219":1}}],["点击左下角的setting打开设置后",{"2":{"219":1}}],["点击了",{"2":{"164":1}}],["点击项目根路径",{"2":{"137":1}}],["点击右上角的fork按钮",{"2":{"133":1}}],["点击事件",{"2":{"125":1}}],["点击事件响应",{"2":{"87":1}}],["点击vr",{"2":{"55":1}}],["否则",{"2":{"200":1}}],["否则会报错",{"2":{"86":1}}],["否则这个曲线就是无效的",{"2":{"32":1}}],["副轴排列方式",{"2":{"77":1}}],["keeping",{"2":{"290":1}}],["key=",{"2":{"287":2}}],["keyname",{"2":{"248":7}}],["key",{"2":{"49":3,"58":1,"59":1,"89":2,"103":2,"111":1,"114":1,"115":1,"116":1,"118":2,"119":2,"120":3,"122":7,"124":3,"130":1,"169":1}}],["kk",{"2":{"253":2}}],["k",{"2":{"251":2,"253":2}}],["knock",{"2":{"204":1}}],["king",{"2":{"201":3}}],["kitchen",{"2":{"76":1}}],["国内预览网站",{"2":{"76":1}}],["国际化多语言管理",{"2":{"68":1}}],["功能强大并且高性能",{"2":{"68":1}}],["网络请求",{"2":{"68":1}}],["主要目的是为了减少app的下载大小",{"2":{"214":1}}],["主要用于制作基于网页的可视化",{"2":{"3":1}}],["主轴排列方式",{"2":{"77":1}}],["主题管理",{"2":{"68":1}}],["执行后期处理操作",{"2":{"264":1}}],["执行webgl绘制调用",{"2":{"264":1}}],["执行npx",{"2":{"218":1}}],["执行npm",{"2":{"217":1,"224":1}}],["执行命令",{"0":{"218":1}}],["执行",{"2":{"128":1,"132":1}}],["执行flutter",{"2":{"103":1}}],["执行一些相应的操作",{"2":{"67":1}}],["执行vue",{"2":{"19":1}}],["需要注意的是",{"2":{"312":1}}],["需要有个连接和转换层",{"2":{"258":1}}],["需要提取cad图纸中的图元数据",{"2":{"257":1}}],["需要重写实现接口中的所有属性和方法",{"2":{"253":1}}],["需要重建或者父部件更新时都会调用这个方法",{"2":{"67":1}}],["需要使用npx",{"2":{"224":1}}],["需要按照自己的需求做些修改",{"2":{"219":1}}],["需要配合头文件",{"2":{"214":1}}],["需要用override标记",{"2":{"200":1}}],["需要显示进行类型转换",{"2":{"190":1}}],["需要动态生成对应的着色器代码并对其进行编译",{"2":{"99":1}}],["需要在类型后加上",{"2":{"50":1}}],["初始化了一些矩阵",{"2":{"248":1}}],["初始化透视投影",{"2":{"244":1}}],["初始化包",{"2":{"219":1}}],["初始化以后会生成一个podfile文件",{"2":{"176":1}}],["初始化",{"2":{"176":1}}],["初始化变量等",{"2":{"67":1}}],["初始化图表实例",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1}}],["此外",{"2":{"312":1}}],["此方法只会调用一次",{"2":{"67":1}}],["此软件可在nvidia",{"2":{"55":1}}],["每个片元都有自己的属性",{"2":{"312":1}}],["每个顶点需要计算一些属性",{"2":{"30":1}}],["每一次都会引起重排",{"2":{"309":1}}],["每一次设置都会触发一次reflow",{"2":{"309":1}}],["每一个viewcontroller都有一个single",{"2":{"213":1}}],["每一个string值都有一个关联的索引类型",{"2":{"206":1}}],["每次都去拉取不同的分支代码就可以了",{"2":{"219":1}}],["每次都要判断和解析可选值是非常低效的",{"2":{"194":1}}],["每当状态的信息发生变化",{"2":{"136":1}}],["每当视图在创建或解析时",{"2":{"136":1}}],["每当需要重新构建部件时",{"2":{"67":1}}],["除了顶点信息",{"2":{"311":1}}],["除了贝塞尔曲线",{"2":{"32":1}}],["除此之外",{"2":{"309":1}}],["除非由父部件重新创建",{"2":{"67":1}}],["无状态widget",{"2":{"67":1}}],["无线串流成功",{"2":{"55":1}}],["为canvas注册各种交互事件",{"2":{"244":1}}],["为什么下面的icon使用需要加上const",{"2":{"76":1}}],["为什么有的widget是当做变量定义",{"2":{"66":1}}],["为了解决",{"2":{"214":1}}],["为了表示一个函数",{"2":{"203":1}}],["为了标识出这些地方",{"2":{"203":1}}],["为了达到这个效果",{"2":{"62":1}}],["为了让文字可以很好的进行各种旋转",{"2":{"25":1}}],["子控件",{"2":{"88":1}}],["子wiget",{"2":{"79":1}}],["子widgets",{"2":{"77":1}}],["子widget",{"2":{"70":1,"71":1,"74":1,"78":1,"80":1,"81":1,"82":1}}],["子列表中的第一个widget是基础widget",{"2":{"66":1,"83":1}}],["子类如果要重写父类的方法的话",{"2":{"200":1}}],["子类的定义方法是在它们的类名后面加上父类的名字",{"2":{"200":1}}],["子类没有该方法时",{"2":{"45":1}}],["子类中的方法就会覆写父类中的方法",{"2":{"45":1}}],["子类覆写父类方法",{"0":{"45":1}}],["任何app都可以使用widget库",{"2":{"65":1}}],["嵌套行和列",{"0":{"64":1}}],["请使用它",{"2":{"195":1}}],["请说出你的疑问",{"2":{"163":1}}],["请选择内容",{"2":{"125":1}}],["请选择macos",{"2":{"92":1}}],["请求webgpu适配器",{"2":{"248":2}}],["请求拦截",{"2":{"116":2}}],["请求拦截和响应拦截",{"0":{"116":1}}],["请求json文件作为数据源",{"0":{"7":1}}],["请将其`mainaxissize`设置为`mainaxissize",{"2":{"77":1}}],["请将其mainaxissize设置为mainaxissize",{"2":{"63":1}}],["行或列沿其主轴会占用尽可能多的空间",{"2":{"63":1,"77":1}}],["默认就添加了一个skyobject到场景中",{"2":{"249":1}}],["默认执行时",{"0":{"234":1}}],["默认package",{"2":{"217":1}}],["默认是",{"2":{"176":1}}],["默认为",{"2":{"88":1}}],["默认为1",{"2":{"74":1}}],["默认的弹性系数为1",{"2":{"62":1}}],["默认情况下",{"2":{"59":1,"63":1,"77":1,"198":1,"201":1,"314":1}}],["默认情况下线条宽度是1个像素",{"2":{"30":1}}],["受影响的边缘会出现黄色和黑色条纹图案",{"2":{"62":1}}],["设计完以后可以一键生成对应的3d模型并自动构建好二三维的联动逻辑",{"2":{"257":1}}],["设计好以后平台会告诉他",{"2":{"23":1}}],["设备选择chrome",{"2":{"95":1}}],["设置style属性的值",{"2":{"309":1}}],["设置相应的webgl着色器程序以实现物体的渲染",{"2":{"264":1}}],["设置渲染器的渲染状态等",{"2":{"264":1}}],["设置渲染目标",{"2":{"264":1}}],["设置视口",{"2":{"264":1}}],["设置了scene的children和添加的object3d的parent属性",{"2":{"261":1}}],["设置约束",{"2":{"210":1,"211":1}}],["设置capsule胶囊和透明度",{"2":{"159":1}}],["设置覆盖",{"0":{"157":1}}],["设置阴影",{"0":{"155":1}}],["设置不同的修饰符顺序会得到不同的效果",{"2":{"153":1}}],["设置缓存",{"2":{"122":1}}],["设置缓存数据",{"2":{"122":1}}],["设置为",{"2":{"88":1}}],["设置背景图片并设置图片偏移",{"2":{"156":1,"173":1}}],["设置背景图片",{"0":{"156":1},"2":{"70":1}}],["设置背景颜色",{"2":{"70":1}}],["设置主轴对齐方式为",{"2":{"61":1}}],["更新相机的投影矩阵和视图矩阵",{"2":{"264":1}}],["更新配置文件",{"2":{"97":1}}],["更好的方式可能是实现按需导入",{"2":{"263":1}}],["更多的使用getter和setter来改变属性的读取和赋值行为",{"2":{"253":1}}],["更漂亮的控制台日志输出控件",{"2":{"238":1}}],["更高级别的widgets",{"2":{"60":1}}],["更优方案提醒等等",{"2":{"23":1}}],["标准widgets",{"2":{"65":1}}],["标题和背景颜色",{"2":{"59":1}}],["标记",{"2":{"3":1,"5":1,"192":1}}],["大小",{"2":{"309":1}}],["大多数widgets都有一个build方法",{"2":{"57":1}}],["大概一个数组的长度如果超过4千万",{"2":{"28":1}}],["例如计算最终的颜色",{"2":{"312":1}}],["例如计算变换后的顶点位置",{"2":{"312":1}}],["例如颜色",{"2":{"312":1}}],["例如点",{"2":{"312":1}}],["例如ourcad",{"2":{"300":1}}],["例如物理模拟子系统",{"2":{"252":1}}],["例如没有面向对象的编程模式只管",{"2":{"252":1}}],["例如",{"2":{"60":1,"194":1,"226":1,"309":1}}],["例如row",{"2":{"57":1}}],["例如center和container",{"2":{"57":1}}],["例如顶点的位置",{"2":{"30":1}}],["所讲的这些未来可以拓展的功能",{"2":{"258":1}}],["所有的片元会被送入帧缓冲区",{"2":{"312":1}}],["所有不能直接把项目的文档部分单独拿出来运行",{"2":{"237":1}}],["所有布局widgets都具有以下任一项",{"2":{"57":1}}],["所以要避免频繁获取布局信息",{"2":{"309":1}}],["所以要知道character的确定位置",{"2":{"206":1}}],["所以像",{"2":{"307":1}}],["所以用three",{"2":{"263":1}}],["所以后面的图模融合",{"2":{"257":1}}],["所以init方法用了async",{"2":{"248":1}}],["所以方法是用类直接调用",{"2":{"248":1}}],["所以这个时候需要引入相机投影",{"2":{"246":1}}],["所以模型是可以做合模处理的",{"2":{"242":1,"246":2}}],["所以不会在node",{"2":{"224":1}}],["所以不需要在每个子句结尾写break",{"2":{"196":1}}],["所以打包以后的js执行npm",{"2":{"219":1}}],["所以有些eslint的配置我并不喜欢",{"2":{"219":1}}],["所以脚手架发布以后",{"2":{"218":1}}],["所以断言会触发",{"2":{"205":1}}],["所以在调用它的时候在它前面加了try关键字",{"2":{"203":1}}],["所以重要的是你能迅速识别代码中会抛出错误的地方",{"2":{"203":1}}],["所以map类型有两个泛型",{"2":{"49":1}}],["所以无法通过索引来访问和修改元素",{"2":{"48":1}}],["布局容器",{"2":{"153":1}}],["布局框架允许你根据需要在行和列内嵌套行和列",{"2":{"64":1}}],["布局",{"0":{"57":1}}],["工程打开后启用steamvr和openxr",{"2":{"55":1}}],["生成了名为chaochao的软链接",{"2":{"224":1}}],["生成",{"2":{"219":1}}],["生成对应的c++文件",{"2":{"99":1}}],["生成对应的package",{"2":{"13":1}}],["生成apk安装包并安装到pico",{"2":{"55":1}}],["生成apk过程",{"2":{"55":1}}],["构造函数中调用了",{"2":{"264":1}}],["构造函数的函数名和类名相同",{"2":{"43":1}}],["构建流程",{"2":{"134":1}}],["构建",{"2":{"67":1}}],["构建一个ue5",{"2":{"55":1}}],["构建cloudxr",{"2":{"55":1}}],["如",{"2":{"311":1,"314":1}}],["如应用后期特效",{"2":{"264":1}}],["如屏幕或纹理",{"2":{"264":1}}],["如清除缓冲区",{"2":{"264":1}}],["如升级",{"2":{"134":1}}],["如何优化",{"0":{"313":1}}],["如何提前判断资源文件是否存在",{"2":{"267":1}}],["如何进行内容填充",{"2":{"246":1}}],["如何diy二维码",{"0":{"232":1}}],["如何做一个脚手架",{"2":{"224":1}}],["如何实现一个文字一行左对齐的效果",{"0":{"138":1}}],["如何上架",{"2":{"98":1}}],["如何维护",{"2":{"98":1}}],["如何用xcode运行flutter项目",{"0":{"96":1}}],["如3d",{"2":{"54":1}}],["如果子进程返回的数据大小超过了200k",{"2":{"314":1}}],["如果函数的参数是基础数据",{"2":{"306":1}}],["如果函数的参数是对象",{"2":{"306":1}}],["如果对应的请求地址调整为https",{"2":{"267":1}}],["如果确定存在才发起资源请求",{"2":{"267":1}}],["如果做不出来一些能够帅到自己的酷炫效果",{"2":{"266":1}}],["如果处理的好",{"2":{"257":1}}],["如果所有内容都是一次性的绘制",{"2":{"246":1}}],["如果本地已经存在该依赖",{"2":{"226":1}}],["如果没有安装则会自动下载安装",{"2":{"226":1}}],["如果没有添加override就重写父类方法的话编译器会报错",{"2":{"200":1}}],["如果不全局安装",{"2":{"224":1}}],["如果不使用",{"2":{"224":1}}],["如果后续脚手架需要扩展",{"2":{"219":1}}],["如果都不是",{"2":{"215":1}}],["如果布尔条件评估结果为false",{"2":{"205":1}}],["如果断言或者先决条件中的布尔条件评估的结果为true",{"2":{"205":1}}],["如果在do子句中的代码抛出了一个错误",{"2":{"203":1}}],["如果",{"2":{"200":1}}],["如果想包含的话需要使用",{"2":{"197":1}}],["如果可选值缺少的话",{"2":{"195":1}}],["如果可选类型有值",{"2":{"195":1}}],["如果可以将正常图片转化为svg格式图片",{"2":{"27":1}}],["如果有值的话可以通过可选绑定来解析值",{"2":{"194":1}}],["如果只需要一部分元组值",{"2":{"192":1}}],["如果只是普通闭包则能铺货所有类型的self",{"2":{"141":1}}],["如果一款app不需要一些系统底层的能力",{"2":{"183":1}}],["如果一个项目中同时存在各种事件同时需要触发执行",{"2":{"29":1}}],["如果项目只在android生态或ios生态内运行",{"2":{"183":1}}],["如果self是一个类的实例",{"2":{"141":1}}],["如果提示没有安装成功可以尝试重启ide",{"2":{"128":1}}],["如果ar的画面是调用gpu实现的",{"2":{"98":1}}],["如果能够做",{"2":{"98":1}}],["如果需要同时搭建android和ios开发环境",{"2":{"92":1}}],["如果进度是确定的",{"2":{"90":2}}],["如果我们的widget是statelesswidget",{"2":{"67":1}}],["如果我能联系到瓷板店铺",{"2":{"23":1}}],["如果你想换行",{"2":{"206":1}}],["如果你想要一个widget占用的空间是兄弟项的两倍",{"2":{"62":1}}],["如果你不需要计算属性",{"2":{"200":1}}],["如果你需要在对象释放之前进行一些清理工作",{"2":{"200":1}}],["如果你需要使用eslint",{"2":{"0":1}}],["如果你希望在非material",{"2":{"59":1}}],["如果它们包含多个子项",{"2":{"57":1}}],["如果它们只包含一个子项",{"2":{"57":1}}],["如果要添加padding",{"2":{"57":1}}],["如果您已获得编译好的apk或pico设备已安装过了可略过",{"2":{"55":1}}],["如果希望对象可以赋值为null",{"2":{"50":1}}],["如果再细节一点",{"2":{"23":1}}],["如果cad图纸中的一个个的图元能被我剔除出来",{"2":{"23":1}}],["如果eslint已经能够进行代码格式化",{"2":{"1":1}}],["严格来讲arkit并没有渲染的能力",{"2":{"54":1}}],["物体",{"2":{"54":1}}],["人脸",{"2":{"54":1}}],["平移矩阵",{"2":{"260":1}}],["平移场景",{"0":{"246":1}}],["平面",{"2":{"54":1}}],["平台能够根据他的设计来进行智能提示",{"2":{"23":1}}],["空间",{"2":{"54":1}}],["空安全",{"0":{"50":1}}],["跟踪当前环境",{"2":{"54":1}}],["渲染过程",{"2":{"309":1}}],["渲染树需要重新计算所有受影响的节点",{"2":{"309":1}}],["渲染到纹理等",{"2":{"264":1}}],["渲染流程",{"0":{"251":1}}],["渲染fbo",{"2":{"246":1}}],["渲染另外一份顶点数据一样",{"2":{"242":1,"246":2}}],["渲染器",{"2":{"239":2,"247":1}}],["渲染",{"2":{"54":1}}],["渲染可视化",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1}}],["场景理解上我们无需关注细节",{"2":{"54":1}}],["场景理解",{"2":{"54":1}}],["客户端sdk和示例客户端应用程序组成",{"2":{"53":1}}],["映射中的一个元素记录着两个对象",{"2":{"49":1}}],["映射map",{"0":{"49":1}}],["映射map和集合set",{"2":{"46":1}}],["索引只能使用for",{"2":{"48":1}}],["索引$i",{"2":{"47":1}}],["遍历",{"2":{"48":1}}],["交集",{"2":{"48":1}}],["交互",{"2":{"3":1}}],["差集",{"2":{"48":1}}],["集合最重要的特征是可以进行集合间的运算",{"2":{"48":1}}],["集合本身是没有索引概念的",{"2":{"48":1}}],["集合set",{"0":{"48":1}}],["自己就需要熟悉一些简单的问题定位操作",{"2":{"215":1}}],["自动返回decode模型",{"2":{"137":1}}],["自动合并重复元素",{"2":{"48":1}}],["自定义修饰符等",{"2":{"171":1}}],["自定义修饰符以及获取系统中的白天黑夜模式",{"0":{"160":1}}],["自定义扩展样式",{"2":{"171":1}}],["自定义导航的返回按钮",{"2":{"140":1}}],["自定义请求头",{"2":{"114":1}}],["自定义请求头和参数传递",{"0":{"114":1}}],["自定义着色器",{"2":{"30":1}}],["元组的分解",{"2":{"192":1}}],["元组内的值可以是任意类型",{"2":{"192":1}}],["元组把多个值组合成一个复合值",{"2":{"192":1}}],["元组",{"0":{"192":1}}],["元素值",{"2":{"47":1,"48":1}}],["元素值$value",{"2":{"47":1}}],["元宇宙",{"2":{"23":1}}],["称之为泛型",{"2":{"47":1}}],["列表中只能盛放整数数据",{"2":{"47":1}}],["列表类型中可以盛放若干个同类型的对象",{"2":{"47":1}}],["列表list",{"0":{"47":1},"2":{"46":1}}],["聚合类型或容器类型",{"2":{"46":1}}],["聚合类型",{"0":{"46":1}}],["加粗效果code",{"2":{"282":1}}],["加粗效果",{"0":{"269":1}}],["加上try关键字",{"2":{"203":1}}],["加",{"2":{"45":1}}],["加载json字体文件则使用的是文字数据生成geometry来进行绘制",{"2":{"25":1}}],["才会触发父类方法",{"2":{"45":1}}],["湖南科技学院",{"2":{"44":1,"45":1}}],["类中的方法如果想要访问static属性",{"2":{"253":1}}],["类中使用init来创建一个构造器",{"2":{"200":1}}],["类进行实例化再进行方法调用",{"2":{"248":1}}],["类的init方法是个static修饰的方法",{"2":{"248":1}}],["类的成员函数访问自身属性可以省略this",{"2":{"44":1}}],["类",{"2":{"202":1}}],["类型转换中int",{"2":{"194":1}}],["类型转换为string",{"2":{"190":1}}],["类型的对象",{"2":{"137":1}}],["类似于vue中组件传值的父传子",{"2":{"172":1}}],["类似flex布局中",{"2":{"153":1}}],["类似代码格式化",{"2":{"152":1}}],["类似typescript的any",{"2":{"34":1}}],["省略的参数使用默认值",{"2":{"42":1}}],["方便我自己的维护",{"2":{"297":1}}],["方便你创建属于你自己的配置",{"2":{"1":1}}],["方式二",{"2":{"128":1}}],["方式一",{"2":{"128":1}}],["方法有",{"2":{"314":1}}],["方法也要用static修饰",{"2":{"253":1}}],["方法中调用",{"2":{"251":1}}],["方法",{"2":{"248":1,"251":3,"264":1}}],["方法可以在一个字符串的指定索引删除一个子字符串",{"2":{"206":1}}],["方法可以在一个字符串的指定索引删除一个字符",{"2":{"206":1}}],["方法可以在一个字符串的指定索引插入一段字符串",{"2":{"206":1}}],["方法可以在一个字符串的指定索引插入一个字符",{"2":{"206":1}}],["方法或构造器可以抛出错误",{"2":{"203":1}}],["方法或者构造器之前",{"2":{"203":1}}],["方法三",{"2":{"140":1}}],["方法二",{"2":{"140":1}}],["方法一",{"2":{"140":1}}],["方法会将string类型数据解析成map数据结构",{"2":{"110":1}}],["方法会将map类型转换为string类型",{"2":{"110":1}}],["方法会返回一个包含response的future",{"2":{"109":1}}],["方法需要引入dart",{"2":{"110":2}}],["方法从jsonplaceholder上获取到一个样本相册数据",{"2":{"109":1}}],["方括号",{"2":{"42":1}}],["年龄",{"2":{"41":1,"42":1}}],["选中内容右移一个tab",{"2":{"152":1}}],["选中内容左移一个tab",{"2":{"152":1}}],["选中图元",{"2":{"23":1,"257":1}}],["选择ios和app开发",{"2":{"208":1}}],["选择无效",{"2":{"203":1}}],["选择平台原生的开发框架就是更具可行性的选择",{"2":{"183":1}}],["选择window",{"2":{"106":1}}],["选择apple",{"2":{"94":1}}],["选择mac",{"2":{"94":1}}],["选填参数必须给默认值",{"2":{"41":1}}],["必须添加",{"2":{"153":1}}],["必须在body中修改",{"2":{"141":1}}],["必须要自己写着色器来进行代码优化",{"2":{"29":1}}],["必传参数不需要给默认值",{"2":{"41":1}}],["另一种处理可选值的方法是通过使用",{"2":{"195":1}}],["另一个地方再注册一个",{"2":{"29":1}}],["另外由于缓冲区拾取不需要遍历模型",{"2":{"242":1,"246":2}}],["另外",{"2":{"41":1}}],["包含四个函数",{"2":{"249":1,"261":1}}],["包含此viewcontroller的所有内容",{"2":{"213":1}}],["包裹条件和循环变量的括号可以省略",{"2":{"193":1}}],["包裹命名的参数",{"2":{"41":1}}],["包",{"2":{"134":1}}],["包括顶点着色器中的uv",{"2":{"266":1}}],["包括图元的显示和隐藏",{"2":{"246":1}}],["包括但不限于文档",{"2":{"134":1}}],["包括以下几种",{"2":{"134":1}}],["包围盒拾取",{"2":{"243":1}}],["包围盒自己实现不了",{"2":{"24":1}}],["包围参数列表",{"2":{"42":1}}],["命名参数",{"0":{"41":1}}],["名字",{"2":{"40":1,"41":1,"42":1}}],["测试",{"2":{"40":1}}],["函数传参",{"2":{"235":1}}],["函数也可以当做参数传入另一个函数",{"2":{"198":1}}],["函数是第一等类型",{"2":{"198":1}}],["函数可以嵌套",{"2":{"198":1}}],["函数使用它们的参数名称作为它们参数的标签",{"2":{"198":1}}],["函数和闭包",{"0":{"198":1},"1":{"199":1}}],["函数参数必须按照参数顺序传入",{"2":{"42":1}}],["函数名前是函数的返回值",{"2":{"40":1}}],["函数",{"0":{"40":1},"1":{"41":1,"42":1},"2":{"241":1}}],["函数定义了一个三次贝塞尔曲线",{"2":{"32":1}}],["运动跟踪",{"2":{"54":2}}],["运算符",{"0":{"39":1},"2":{"39":1}}],["运行wakk会报如下错误",{"2":{"218":1}}],["运行switch中匹配到的case语句之后",{"2":{"196":1}}],["运行xcode",{"2":{"103":1}}],["运行时会提示相机权限不够",{"2":{"103":1}}],["运行项目",{"2":{"17":1}}],["运行成功",{"2":{"16":1}}],["$emit",{"2":{"237":1}}],["$patch",{"2":{"230":2}}],["$path",{"2":{"97":2}}],["$basedir",{"2":{"223":5}}],["$uri",{"2":{"221":2}}],["$12",{"2":{"272":1,"280":2}}],["$1600",{"2":{"272":1,"280":2}}],["$1",{"2":{"199":1,"272":1,"280":2}}],["$text",{"2":{"178":1}}],["$token",{"2":{"116":1}}],["$0",{"2":{"178":1,"199":1,"223":1}}],["$hasscrolled",{"2":{"172":1}}],["$jumptologin",{"2":{"140":3}}],["$remberpassword",{"2":{"139":3}}],["$result",{"2":{"120":1}}],["$count",{"2":{"130":1}}],["$i",{"2":{"119":2}}],["$index",{"2":{"47":1}}],["$word",{"2":{"50":1}}],["$key",{"2":{"49":1}}],["$value",{"2":{"47":1,"48":1,"49":1}}],["$name",{"2":{"40":1,"41":1,"42":1}}],["$",{"2":{"38":2,"44":2,"45":5,"51":2,"111":1,"124":2,"130":1,"172":1,"223":3,"235":3,"286":1}}],["$age",{"2":{"41":1,"42":1}}],["$a",{"2":{"38":1}}],["$变量名",{"0":{"38":1},"2":{"38":1}}],["字号",{"2":{"210":1}}],["字面量和表达式",{"2":{"206":1}}],["字符和字符串",{"0":{"206":1}}],["字符串插入",{"2":{"206":1}}],["字符串插入和删除",{"2":{"206":1}}],["字符串插值",{"2":{"206":1}}],["字符串插值是一种构建新字符串的方式",{"2":{"206":1}}],["字符串索引",{"2":{"206":1}}],["字符串字面量和多行字符串字面量都可以使用字符串插值",{"2":{"206":1}}],["字符串字面量",{"2":{"206":2}}],["字符串123可以被转换成数字123",{"2":{"194":1}}],["字符串必须使用双引号",{"2":{"190":1}}],["字符串转数字",{"2":{"36":1}}],["字节跳动apm",{"2":{"184":1}}],["字间距",{"2":{"72":1}}],["字体文件必须引入所有文字",{"2":{"25":1}}],["基本上涵盖了大部分的现代智能手机和平板电脑设备",{"2":{"255":1}}],["基本数据类型",{"0":{"189":1},"2":{"306":1}}],["基础组件的使用",{"0":{"210":1}}],["基础数据类型",{"0":{"35":1}}],["基于material的应用",{"0":{"58":1}}],["基于给定的材质和光照模型",{"2":{"30":1}}],["基于这套设计的一个总体报价以及具体的购买方式",{"2":{"23":1}}],["基于cad的一些设计的思路",{"2":{"23":1}}],["换时间",{"2":{"246":2}}],["换间",{"2":{"242":1}}],["换成dynamic就表示这是动态类型",{"2":{"34":1}}],["换一种思路",{"2":{"24":1}}],["会返回一个带有stdout和stderr流的对象",{"2":{"314":1}}],["会把html解析成dom",{"2":{"309":1}}],["会有data",{"2":{"263":1}}],["会有很大的性能开销",{"2":{"25":1}}],["会比全部webgl实现的统一架构",{"2":{"258":1}}],["会根据init属性来进行canvas的一些公共样式配置",{"2":{"248":1}}],["会先执行一次代码再进行判断",{"2":{"197":1}}],["会打印出当前使用的gem源",{"2":{"176":1}}],["会将静态库的所有文件都添加到目标app可执行文件中",{"2":{"214":1}}],["会将按钮和背景的融合效果显得更好",{"2":{"168":1,"169":1}}],["会将空余空间在每个图像之间",{"2":{"61":1}}],["会展示在",{"2":{"88":1}}],["会调用didupdatewidget方法",{"2":{"67":1}}],["会立即调用initstate方法",{"2":{"67":1}}],["会优先使用子类方法",{"2":{"45":1}}],["会报错",{"2":{"34":1}}],["相加后再除以这个倍数",{"2":{"307":1}}],["相机矩阵",{"2":{"266":1}}],["相机有什么好看的",{"2":{"250":1}}],["相机",{"2":{"247":1}}],["相机位置y",{"2":{"246":1}}],["相机位置x",{"2":{"246":1}}],["相机的位置矩阵移动意味着对模型的数据坐标x",{"2":{"246":1}}],["相等",{"2":{"195":1}}],["相较于其他组件管理控件",{"2":{"184":1}}],["相比三维几何",{"2":{"258":1}}],["相比较与静态库和动态库",{"2":{"214":1}}],["相比于动态库的方案",{"2":{"214":1}}],["相比数据绑定和appstorage缓存",{"2":{"175":1}}],["相比其他状态管理插件getx简单",{"2":{"68":1}}],["相当于",{"2":{"314":1}}],["相当于全局可以执行wakk命令",{"2":{"217":1}}],["相当于vscode中的",{"2":{"152":1}}],["相当于一个可以兼容所有类型的超级类型",{"2":{"34":1}}],["相反",{"2":{"67":1,"227":1}}],["相信我上面的想法很多人都有过",{"2":{"23":1}}],["即时性",{"2":{"309":1}}],["即z轴是朝向屏幕外的",{"2":{"260":1}}],["即使json数据存在",{"2":{"267":1}}],["即使是这样的合模方法",{"2":{"257":1}}],["即使子类继承自父类",{"2":{"253":1}}],["即可实现vscode按照eslint规则来实现代码格式化",{"2":{"219":1}}],["即可实现保存代码自动格式化",{"2":{"219":1}}],["即",{"2":{"34":1}}],["即所有主支宽度的总和应与所有分出去的分支宽度的总和相等",{"2":{"10":1}}],["常量和普通变量",{"0":{"190":1}}],["常量",{"2":{"34":1}}],["普通按钮",{"2":{"114":1,"115":1,"116":1}}],["普通变量",{"2":{"34":1}}],["普通数据",{"2":{"24":1}}],["由于浏览器使用流式布局",{"2":{"309":1}}],["由于文字转线条绘制的数据量比较大",{"2":{"28":1}}],["由0增加至1",{"2":{"32":1}}],["∈",{"2":{"32":1}}],["三角形等",{"2":{"312":1}}],["三维向量",{"2":{"241":1}}],["三次贝塞尔曲线通过四个点",{"2":{"32":1}}],["三阶贝塞尔曲线",{"2":{"32":1}}],["三个包共用vue3",{"2":{"11":1}}],["二阶贝塞尔曲线",{"2":{"32":1}}],["贝塞尔曲线根据控制点的数量分为",{"2":{"32":1}}],["图形学相关地书",{"0":{"305":1}}],["图形学中关于鼠标拾取有两种常见方案",{"2":{"265":1}}],["图形的意思",{"2":{"256":1}}],["图纸的数据体量",{"2":{"258":1}}],["图纸加载时间太长就做文件切割",{"2":{"257":1}}],["图元会被分解成一组更小的像素",{"2":{"312":1}}],["图元装配阶段",{"2":{"312":1}}],["图元数据量太多会卡顿就根据图层来合模",{"2":{"257":1}}],["图元的显示和隐藏就不可能像three一样通过对象的一个属性来实现显示和隐藏",{"2":{"246":1}}],["图标库",{"0":{"162":1}}],["图片",{"2":{"54":1}}],["图层数据收集过程中的数据数据污染问题",{"0":{"31":1}}],["图表数据叠加",{"0":{"8":1}}],["图表宽度",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1}}],["图表高度",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1}}],["顶点着色器会对每个顶点执行一系列运算",{"2":{"312":1}}],["顶点着色器阶段",{"2":{"312":1}}],["顶点着色器还可以访问其他类型的数据",{"2":{"311":1}}],["顶点着色器是不是只有顶点信息",{"0":{"311":1}}],["顶点位置",{"2":{"264":1}}],["顶点属性计算",{"2":{"30":1}}],["顶点扩展",{"2":{"30":1}}],["着色器学习",{"0":{"266":1}}],["着色器语言wgsl",{"0":{"241":1}}],["着色器代码可以简单理解为一段跑在gpu上的代码",{"2":{"99":1}}],["着色器是一种运行在gpu上的小型程序",{"2":{"30":1}}],["着色和渲染",{"2":{"30":1}}],["法线这些如何获取",{"0":{"311":1}}],["法线",{"2":{"30":1,"264":1,"311":1,"312":1}}],["法语检查时不能设置为true",{"2":{"19":1}}],["定时器传参",{"2":{"235":1}}],["定位",{"2":{"183":1}}],["定义一个描边样式",{"2":{"160":1}}],["定义int泛型的列表",{"2":{"47":1}}],["定义变量的关键字",{"0":{"34":1}}],["定义复合",{"2":{"9":1}}],["定点属性计算",{"2":{"30":1}}],["使得线条宽度可以在像素级别进行调整",{"2":{"30":1}}],["使用指定的命令行参数创建新进程",{"2":{"314":1}}],["使用子进程执行命令",{"2":{"314":1}}],["使用absolute或fixed脱离文档流",{"2":{"309":1}}],["使用async",{"0":{"143":1}}],["使用贝塞尔曲线或柏林噪声来解决手绘线不平滑的问题",{"2":{"246":1}}],["使用$patch修改",{"2":{"230":2}}],["使用npx时",{"2":{"226":1}}],["使用npm",{"2":{"219":1}}],["使用静态库将花费更多的启动时间和内存消耗",{"2":{"214":1}}],["使用xcode创建项目",{"2":{"208":1}}],["使用img",{"2":{"267":2}}],["使用insert",{"2":{"206":1}}],["使用indices属性会创建一个包含全部索引的范围",{"2":{"206":1}}],["使用if和switch来进行条件操作",{"2":{"193":1}}],["使用scss打包成css的纯css项目",{"0":{"301":1}}],["使用static静态方法来辅助完成单例设计模式",{"2":{"253":1}}],["使用startindex属性获取一个string的第一个character的索引",{"2":{"206":1}}],["使用sorted对数组进行排序",{"2":{"199":1}}],["使用protocol来声明一个协议",{"2":{"202":1}}],["使用rawvalue属性来访问一个枚举成员的原始值",{"2":{"201":1}}],["使用willset和didset",{"2":{"200":1}}],["使用webworker开多线程进行数据处理的优化",{"2":{"26":1}}],["使用getter和setter的计算属性",{"2":{"200":1}}],["使用geometryreader来做tabbar的自适应处理",{"0":{"169":1}}],["使用点语法来访问实例的属性和方法",{"2":{"200":1}}],["使用class和类名来创建一个类",{"2":{"200":1}}],["使用computed来实现和getters",{"2":{"230":1}}],["使用count属性来获取一个字符串的长度",{"2":{"206":1}}],["使用cornerradius会将超出的内容隐藏",{"2":{"159":1}}],["使用column",{"2":{"60":1}}],["使用元组来生成复合值",{"2":{"198":1}}],["使用可选类型",{"2":{"194":1}}],["使用for",{"2":{"193":1,"206":1}}],["使用flutter",{"2":{"103":1}}],["使用var来声明变量",{"2":{"190":1}}],["使用let来声明常量",{"2":{"190":1}}],["使用阿里图标库",{"0":{"185":1}}],["使用overlay来使用geometryreader获取button的宽度",{"2":{"169":1}}],["使用three中的shadermaterial材质来使用着色器时",{"2":{"266":1}}],["使用three中的cubicbeziercurve3实现css中的动画效果的贝塞尔曲线绘制",{"2":{"32":1}}],["使用tabview组件",{"2":{"168":1}}],["使用方式二",{"2":{"163":1}}],["使用方式一",{"2":{"163":1}}],["使用自定义组件实现tabbar",{"2":{"168":1,"169":1}}],["使用自定义tabbar",{"2":{"168":1}}],["使用自定义修饰符",{"2":{"160":1}}],["使用自定义着色器对线条进行着色",{"2":{"30":1}}],["使用homebrew安装",{"2":{"176":1}}],["使用homebrew安装nvm",{"2":{"147":1}}],["使用http封装数据模型进行接口请求",{"0":{"111":1}}],["使用http库进行接口请求",{"0":{"110":1}}],["使用http",{"2":{"109":1}}],["使用依赖注入",{"2":{"129":1}}],["使用baseoptions",{"0":{"115":1}}],["使用deinit创建一个析构函数",{"2":{"200":1}}],["使用dio进行接口请求",{"0":{"113":1}}],["使用dxf",{"2":{"23":1}}],["使用者在调用时可以选填",{"2":{"41":1}}],["使用顶点扩展技术",{"2":{"30":1}}],["使用",{"2":{"19":1,"73":1,"139":1,"190":1,"197":1,"198":1,"246":1}}],["使用复合",{"0":{"9":1},"2":{"9":1}}],["使用复合节点在一个容器中绘制两张图表",{"0":{"6":1}}],["使用eslint其实也可以非常简单",{"2":{"1":1}}],["以防止后续有私有化的情况需要重新部署",{"2":{"304":1}}],["以备下一帧绘制",{"2":{"264":1}}],["以便将场景中的对象正确地显示在相机的视野中",{"2":{"264":1}}],["以便加强代码的可读性",{"2":{"206":1}}],["以后有时候再补",{"2":{"218":1}}],["以确保用户界面在不同设备和屏幕尺寸下都能正确呈现",{"2":{"211":1}}],["以确保视图的子视图与内边距之间保持一定的间距",{"2":{"211":1}}],["以满足特定的界面设计需求",{"2":{"211":1}}],["以key",{"2":{"121":1}}],["以提高网页的渲染性能",{"2":{"101":1,"309":1}}],["以及一般流所具有的事件",{"2":{"314":1}}],["以及针对混合工程的提效工具",{"2":{"100":1}}],["以及额外的技术",{"2":{"30":1}}],["以上只是一个通用的渲染管线流程",{"2":{"312":1}}],["以上操作会导致3次重绘1次重排",{"2":{"309":1}}],["以上命令会在本地下载并运行create",{"2":{"226":1}}],["以上是别人的博客里面的一些信息",{"2":{"183":1}}],["以上app将背景颜色更改为白色",{"2":{"59":1}}],["以上文字落笔",{"2":{"23":1}}],["以上prettier和eslint的观点来自",{"2":{"1":1}}],["然而",{"2":{"30":1,"194":1}}],["然后再打包",{"2":{"297":1}}],["然后再借助spir",{"2":{"99":1}}],["然后调整正交投影的参数进行投影",{"2":{"246":1}}],["然后执行该包中的命令",{"2":{"227":1}}],["然后查看demo1中node",{"2":{"224":1}}],["然后我们来看init方法的实现",{"2":{"248":1}}],["然后我就去tsconfig",{"2":{"219":1}}],["然后我打开官网",{"2":{"215":1}}],["然后配置npx使用",{"2":{"218":1}}],["然后服务器就自己好了",{"2":{"215":1}}],["然后尝试用xshell连接服务器看看情况",{"2":{"215":1}}],["然后ue用来区分显示摇杆",{"2":{"214":1}}],["然后项目就创建成功了",{"2":{"208":1}}],["然后输入terminal打开",{"2":{"144":1}}],["然后重新编译项目即可解决问题",{"2":{"137":1}}],["然后出现三个报错",{"2":{"137":1}}],["然后来合并代码",{"2":{"132":1}}],["然后点击右侧的+按钮",{"2":{"106":1}}],["然后debugging调试",{"2":{"95":1}}],["然后按要求重启本地ue5项目",{"2":{"55":1}}],["然后按提示执行npm",{"2":{"4":1}}],["然后对三个控制点重复操作",{"2":{"32":1}}],["然后转为svg",{"2":{"27":1}}],["然后将svg用three",{"2":{"27":1}}],["然后将insert中的数据进行合模绘制",{"2":{"24":1}}],["然后这个库绘制文字使用的是纹理绘制",{"2":{"25":1}}],["然后交给shape",{"2":{"24":1}}],["然后在vue项目中的app",{"2":{"17":1}}],["然后就可以看到依赖的安装情况",{"2":{"17":1}}],["然后去外层执行命令pnpm",{"2":{"15":1}}],["你最好使用spawn方法",{"2":{"314":1}}],["你插入的字符串字面量的每一项都在以反斜线为前缀的圆括号中",{"2":{"206":1}}],["你的仓库名",{"2":{"300":1}}],["你的用户名",{"2":{"300":1}}],["你的程序流程会发生改变",{"2":{"203":1}}],["你的github账号中会出现这个项目",{"2":{"133":1}}],["你可以通过stdout流来读取子进程返回给node",{"2":{"314":1}}],["你可以通过在exec的可选项中设置一个更大的buffer体积来解决这个问题",{"2":{"314":1}}],["你可以用在行尾写一个反斜杠",{"2":{"206":1}}],["你可以用他们来检查在执行后续代码之前是否一个必要的条件已经被满足了",{"2":{"205":1}}],["你可以在操作",{"2":{"200":1}}],["你可以在可选的名字后面加一个感叹号",{"2":{"195":1}}],["你可以在eslint中完全控制代码风格",{"2":{"0":1}}],["你可以解析可选类型访问这个值",{"2":{"194":1}}],["你可以剪切掉超出渲染框的子项",{"2":{"66":1}}],["你可以使用if语句和nil比较来判断一个可选值是否包含值",{"2":{"195":1}}],["你可以使用row",{"2":{"60":1}}],["你可以使用scaffold",{"2":{"58":1}}],["你可以将center",{"2":{"58":1,"59":1}}],["你就可以用上container了",{"2":{"57":1}}],["你无法将一个非空类型对象的值设为null",{"2":{"50":1}}],["你在这个地方注册一个",{"2":{"29":1}}],["首先使用cocoapods安装alamofire",{"2":{"137":1}}],["首先需要fork这个项目",{"2":{"133":1}}],["首先",{"2":{"29":1}}],["尝试复现的代码如下",{"2":{"28":1}}],["实例化",{"2":{"264":1}}],["实例化model",{"2":{"175":1}}],["实现思路是清晰的",{"2":{"257":1}}],["实现各种数据变化时的响应监听",{"2":{"239":1}}],["实现了绘制出宽线的功能",{"2":{"30":1}}],["实现一个vue3的项目",{"2":{"11":1}}],["实际场景的代码比较复杂",{"2":{"28":1}}],["覆盖其他存储器内的资料",{"2":{"28":1}}],["堆栈溢出很可能由无限递归产生",{"2":{"28":1}}],["堆栈溢出的产生是由于过多的函数调用",{"2":{"28":1}}],["堆栈溢出",{"2":{"28":1}}],["调用了",{"2":{"262":1}}],["调用区别",{"2":{"253":1}}],["调用actions中的接口请求方法",{"2":{"230":1}}],["调用getters中的方法",{"2":{"230":1}}],["调用栈溢出",{"2":{"28":1}}],["调整navigationbar中preview的传值",{"2":{"172":1}}],["调整widgets大小",{"0":{"62":1}}],["调整为如下收集即可解决",{"2":{"31":1}}],["调整定点位置以形成宽线的外观",{"2":{"30":1}}],["调整package",{"2":{"15":1}}],["ulele",{"2":{"309":4}}],["ul",{"2":{"287":4,"309":1}}],["ultrathinmaterial",{"2":{"156":1,"162":1,"168":1,"169":1}}],["utils",{"2":{"237":2}}],["utf8",{"2":{"141":1,"142":1,"143":1,"181":1}}],["uitextfield",{"2":{"246":1}}],["uitapgesturerecognizer",{"2":{"210":2}}],["uicomponents",{"2":{"246":1}}],["uifont",{"2":{"210":1}}],["uilabel",{"2":{"210":2}}],["uilabel组件的使用",{"2":{"210":1}}],["uiviewcontroller",{"2":{"210":1}}],["uikit",{"2":{"210":1}}],["uikit开发",{"0":{"207":1},"1":{"208":1,"209":1,"210":1,"211":1,"212":1,"213":1,"214":1}}],["uikit中如何查看storyboard的入口",{"2":{"206":1}}],["uid",{"2":{"137":1}}],["u",{"2":{"206":2}}],["uuid",{"2":{"168":1,"169":1}}],["updated",{"2":{"308":1}}],["updateprojectionmatrix方法",{"2":{"262":1}}],["updateframe",{"2":{"251":1}}],["uppercased",{"2":{"154":1}}],["upstream",{"2":{"4":1}}],["usage",{"2":{"295":1}}],["us",{"2":{"271":1,"279":1}}],["usr",{"2":{"219":2}}],["using",{"2":{"142":1,"271":1,"273":1,"274":3,"282":1,"287":1,"288":1,"289":1,"294":4,"295":1}}],["uses",{"2":{"287":1,"295":1}}],["useful",{"2":{"286":1}}],["useinformationstore",{"2":{"230":6}}],["used",{"2":{"120":1,"286":2}}],["userconfig",{"2":{"293":6}}],["userdidtaplabel",{"2":{"210":2}}],["user",{"2":{"186":2,"271":3,"276":3}}],["username",{"2":{"138":1}}],["userid",{"2":{"111":4}}],["users",{"2":{"97":3}}],["use",{"2":{"98":1,"234":1,"237":1,"295":2}}],["usematerial3",{"2":{"89":1}}],["uri",{"2":{"109":1,"110":1,"111":1}}],["urlsession",{"2":{"141":1,"143":1,"181":1}}],["url=https",{"2":{"97":2}}],["url",{"2":{"92":4,"110":2,"141":3,"143":3,"163":2,"164":1,"180":2,"181":3,"267":1,"276":1,"299":2}}],["unpkg",{"2":{"300":2}}],["unless",{"2":{"294":1}}],["unlink",{"2":{"217":1}}],["unlink解除链接",{"2":{"217":1}}],["uno",{"2":{"237":1}}],["undefined",{"2":{"234":1,"235":3,"306":1}}],["unexpected",{"2":{"203":1}}],["unknown",{"2":{"180":1}}],["unrelated",{"2":{"132":1}}],["unix默认的可执行文件",{"2":{"223":1}}],["unity3d对cloudxr的支持度更好",{"2":{"67":1}}],["union",{"2":{"48":1}}],["uncaught",{"2":{"28":1}}],["目前在新版的chrome和edge上都已经对webgpu进行了支持",{"2":{"255":1}}],["目前使用文心一言和通义千问都无法直接生成svg格式的图片",{"2":{"27":1}}],["目标",{"2":{"10":1}}],["鸟会根据鼠标位置进行驱散",{"2":{"26":1}}],["飞鸟案例",{"2":{"26":1}}],["案例",{"2":{"26":1}}],["手绘线的平滑优化",{"2":{"26":1}}],["对render",{"2":{"309":1}}],["对元素操作完成后",{"2":{"309":1}}],["对渲染树的某部分或某一个渲染对象进行重新布局",{"2":{"309":1}}],["对渲染的帧和系统音频进行编码",{"2":{"53":1}}],["对场景中的每个可见对象进行循环迭代",{"2":{"264":1}}],["对各种矩阵进行了初始化操作",{"2":{"262":1}}],["对属性更名后的处理",{"2":{"253":1}}],["对比composition",{"2":{"230":1}}],["对应的userdidtaplabel方法要加上",{"2":{"210":1}}],["对应的依赖管理文件是pubspace",{"2":{"93":1}}],["对象和类",{"0":{"200":1}}],["对齐widgets",{"0":{"61":1}}],["对于webgpu这种坐标系",{"2":{"260":1}}],["对于静态库的后缀名是",{"2":{"214":1}}],["对于静态库而言",{"2":{"214":1}}],["对于动态库而言",{"2":{"214":1}}],["对于非material",{"2":{"59":1}}],["对于material",{"2":{"58":1}}],["对图纸进行分层加载",{"2":{"26":1}}],["对空间通道应用点变换",{"2":{"3":1}}],["不同的webgl",{"2":{"312":1}}],["不行",{"2":{"267":1}}],["不存在就不去请求",{"2":{"267":1}}],["不想看了",{"2":{"263":1}}],["不是的",{"2":{"311":1}}],["不是统一的",{"2":{"258":1}}],["不是某个静态资源访问404",{"2":{"215":1}}],["不利于后期的修改和维护",{"2":{"252":1}}],["不直接输出到屏幕",{"2":{"246":1}}],["不管是正交还是透视投影",{"2":{"246":1}}],["不再有",{"2":{"214":1}}],["不过你可以通过显式赋值进行改变",{"2":{"201":1}}],["不仅仅是整数以及测试相等",{"2":{"196":1}}],["不仅具有状态管理的功能",{"2":{"68":1}}],["不等",{"2":{"195":1}}],["不能通过类的实例来进行访问",{"2":{"253":2}}],["不能直接执行",{"2":{"224":1}}],["不能直接拿来使用",{"2":{"214":1}}],["不能if",{"2":{"195":1}}],["不能使用单引号",{"2":{"190":1}}],["不能修改上面定义的",{"2":{"141":1}}],["不需要安装",{"2":{"148":1}}],["不需要在意入参的顺序",{"2":{"41":1}}],["不影响代码逻辑",{"2":{"134":1}}],["不然打包不了",{"2":{"97":1}}],["不然内存消耗太大会导致很多问题",{"2":{"29":1}}],["不允许重复",{"2":{"48":1}}],["不可行",{"2":{"25":1}}],["不安装ts",{"2":{"16":1}}],["突然发现字体转为json的facetype",{"2":{"25":1}}],["通常要花3倍于同等元素的时间",{"2":{"309":1}}],["通常分为两类",{"2":{"236":1}}],["通常情况下",{"2":{"211":1}}],["通常是因为父部件的状态变化",{"2":{"67":1}}],["通用布局widgets",{"0":{"65":1}}],["通过修改dom节点的display属性",{"2":{"309":1}}],["通过类来调用",{"2":{"253":1}}],["通过id值获取到点击的物体的信息",{"2":{"246":1}}],["通过is关键词来判断一个变量类型",{"2":{"36":1}}],["通过获取到的颜色位换算回id值",{"2":{"246":1}}],["通过this来访问state中的数据",{"2":{"230":2}}],["通过this对象进行赋值的操作",{"2":{"43":1}}],["通过组合简单的widgets来构建复杂的widgets",{"2":{"57":1}}],["通过remove方法移除元素",{"2":{"48":1}}],["通过add方法添加元素",{"2":{"48":1}}],["通过",{"2":{"41":1,"49":1}}],["通过控制t的值",{"2":{"32":1}}],["通过控制点是怎么绘制出贝塞尔曲线的呢",{"2":{"32":1}}],["通过一个参数t",{"2":{"32":1}}],["通过使用额外的定点属性",{"2":{"30":1}}],["通过对顶点和片元进行操作来定义对象的外观",{"2":{"30":1}}],["通过合模操作来进行性能优化",{"2":{"25":1}}],["通道",{"2":{"5":2,"6":4}}],["来看一看three中的鼠标拾取",{"2":{"265":1}}],["来看看orillusion的",{"2":{"247":1}}],["来搭建的",{"2":{"237":1}}],["来做代码格式化",{"2":{"219":1}}],["来做页面的自适应",{"2":{"169":1}}],["来表示下标范围",{"2":{"197":1}}],["来获取值",{"2":{"195":1}}],["来执行比较",{"2":{"195":1}}],["来声明一个隐式解析可选类型",{"2":{"194":1}}],["来处理值可能缺失的情况",{"2":{"194":1}}],["来修饰就可以将数据保存到",{"2":{"170":1}}],["来嵌入表达式",{"2":{"38":1}}],["来满足cad的各种文字需求",{"2":{"25":1}}],["来源",{"2":{"10":1}}],["理论上不影响现有功能",{"2":{"134":1}}],["理论上",{"2":{"25":1}}],["文档下新建",{"2":{"237":1}}],["文本使用markdown语法",{"0":{"179":1}}],["文字的绘制",{"2":{"246":1}}],["文字的颜色渐变",{"0":{"158":1}}],["文字左对齐",{"2":{"153":1}}],["文字也始终无法实现对齐效果",{"2":{"138":1}}],["文字破碎的案例",{"2":{"26":1}}],["文字优化",{"0":{"25":1}}],["文件夹",{"2":{"237":1}}],["文件夹下新建demo1",{"2":{"13":1}}],["文件都会被编译",{"2":{"219":1}}],["文件则不会被编译",{"2":{"219":1}}],["文件存储方案",{"2":{"121":1}}],["文件路径",{"2":{"103":2,"300":1}}],["文件内容为",{"2":{"55":1}}],["文件写入",{"2":{"51":1}}],["文件读取",{"2":{"51":1}}],["文件",{"2":{"19":1}}],["什么时候转弯的时候内圈的线段要比外圈要小",{"2":{"24":1}}],["中文命名md文件",{"0":{"297":1}}],["中间创建创建渲染通道对象",{"2":{"251":1}}],["中间做了些组件式操作以后",{"2":{"251":1}}],["中的",{"2":{"249":1}}],["中配置",{"2":{"219":1}}],["中进行配置",{"2":{"211":1}}],["中进行绘制",{"2":{"24":1}}],["中心点的竖直方向偏移量",{"2":{"88":1}}],["中",{"2":{"47":1,"170":1}}],["中会先对所有的普通数据合模",{"2":{"24":1}}],["计算边界的逻辑也可以放到",{"2":{"24":1}}],["zone",{"2":{"285":2}}],["zebra",{"2":{"272":1,"280":2}}],["zero",{"2":{"49":1,"205":2}}],["z轴的坐标范围是",{"2":{"260":1}}],["z轴垂直于canvas画布",{"2":{"260":1}}],["zstack",{"2":{"168":1,"169":1,"174":1}}],["zstack组件可以使用alignment来实现对齐",{"2":{"168":1,"169":1}}],["zvideo",{"2":{"53":1}}],["z",{"2":{"24":4}}],["zhuanlan",{"2":{"252":1}}],["zhihu",{"2":{"53":1,"252":1}}],["zhangsan",{"2":{"34":2,"41":1,"42":1,"44":1,"45":1,"115":1,"116":1,"191":1,"306":3}}],["zh",{"2":{"1":1,"27":1,"107":1}}],["因此通常是将ecs应用于一些性能敏感的子系统",{"2":{"252":1}}],["因此我们可以在提交前先把远程其他开发者的commit和我们的commit合并",{"2":{"133":1}}],["因此",{"2":{"67":1,"206":1}}],["因为exec本来就不是用来返回很多数据的方法",{"2":{"314":1}}],["因为通过设置style属性改变结点样式的话",{"2":{"309":1}}],["因为ourbim官网部署了https",{"2":{"267":1}}],["因为获取webgpu适配器和设备对象的操作是异步的",{"2":{"248":1}}],["因为软链接的生成是在npm",{"2":{"224":1}}],["因为我这里使用的是",{"2":{"219":1}}],["因为npm",{"2":{"217":1}}],["因为同事使用jenkins打包多个项目导致服务器cpu占用达到百分百直接卡死",{"2":{"215":1}}],["因为不同的字符可能会占用不同数量的内存空间",{"2":{"206":1}}],["因为",{"2":{"205":1}}],["因为vend方法能抛出错误",{"2":{"203":1}}],["因为可以确定它总会有值",{"2":{"194":1}}],["因为盒子没有撑开",{"2":{"138":1}}],["因为集合没有索引",{"2":{"48":1}}],["因为集合本身在数学上的概念就是无序的",{"2":{"48":1}}],["因为这里是直接将offsetpositiondata赋值给collectpositionbylayer",{"2":{"31":1}}],["因为文字使用了线条来绘制",{"2":{"28":1}}],["因为批注功能需要输入",{"2":{"25":1}}],["因为要全图纸统一进行绘制",{"2":{"24":1}}],["因小食材怀大梦想",{"2":{"2":1}}],["处理变量地可选值时",{"2":{"200":1}}],["处理成positions后",{"2":{"24":1}}],["处理解析的数据",{"2":{"23":1}}],["的特殊形式",{"2":{"314":1}}],["的构造函数中",{"2":{"249":1,"262":1}}],["的init方法就看完了",{"2":{"248":1}}],["的源码路径",{"2":{"248":1}}],["的源码中用到了这个插件",{"2":{"238":1}}],["的相关源码",{"2":{"247":1}}],["的第四章",{"2":{"240":1}}],["的项目拎出来",{"2":{"237":1}}],["的保存时自动格式化代码",{"2":{"219":1}}],["的配置",{"2":{"219":1}}],["的代码基础上进行开发",{"2":{"216":1}}],["的作用是将一个string值转换成一个int值",{"2":{"194":1}}],["的类型",{"2":{"134":1}}],["的解决方法",{"2":{"92":1}}],["的能力",{"2":{"54":1}}],["的",{"2":{"24":1}}],["的梦想前行",{"2":{"2":1}}],["先将元素脱离文档流",{"2":{"309":1}}],["先乘以一个倍数",{"2":{"307":1}}],["先经历了旋转",{"2":{"260":1}}],["先缩放",{"2":{"260":1}}],["先看第一步",{"2":{"248":1}}],["先实现拉去",{"2":{"219":1}}],["先实现通过svg来提取图片中的内容",{"2":{"27":1}}],["先决条件",{"2":{"205":1}}],["先确认flutter和dart是否能够做ar",{"2":{"98":1}}],["先在电脑上运行steamvr然后在pico上运行刚安装的cloudxr客户端软件",{"2":{"55":1}}],["先使用",{"2":{"24":1}}],["先把文件夹建好",{"2":{"22":1}}],["进行雾效处理等等",{"2":{"312":1}}],["进行绘制前",{"2":{"24":1}}],["进入项目页面",{"2":{"133":1}}],["进度动画颜色",{"2":{"90":2}}],["进度条本身不能设置高度",{"2":{"90":1}}],["进度条",{"0":{"90":1}}],["进一寸有一寸的欢喜",{"2":{"23":1}}],["从根节点html开始对整个渲染树进行重新布局",{"2":{"309":1}}],["从老的graphic技术带到了新的graphic技术",{"2":{"256":1}}],["从",{"2":{"232":1}}],["从xcode7我们再导入系统提供的动态库的时候",{"2":{"214":1}}],["从libsqlite3",{"2":{"214":1}}],["从而减少重绘次数",{"2":{"309":1}}],["从而避免内容紧贴到视图的边缘",{"2":{"211":1}}],["从而决定哪条子句能处理它",{"2":{"203":1}}],["从而导致我们提交pull",{"2":{"133":1}}],["从而将openvr应用程序中的音频和视频内容提供给客户端",{"2":{"53":1}}],["从新页面返回数据",{"0":{"120":1}}],["从github下载并用android",{"2":{"55":1}}],["从dxf数据中解析最原始的数据出来",{"2":{"24":1}}],["从结果来看",{"2":{"1":1}}],["怕什么真理无穷",{"2":{"23":1}}],["8181",{"2":{"267":1}}],["8081",{"2":{"221":1}}],["80",{"2":{"168":1}}],["800",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"24":2}}],["88",{"2":{"168":2,"169":1}}],["87",{"2":{"32":1,"195":1}}],["8",{"2":{"23":1,"24":1,"47":2,"70":1,"120":2,"153":1,"168":3,"169":3,"174":1,"196":1,"215":1,"254":1,"259":1,"288":2}}],["再一次性添加到页面中去",{"2":{"309":1}}],["再整个添加到dom树",{"2":{"309":1}}],["再把元素放回文档流",{"2":{"309":1}}],["再将文件名进行还原",{"2":{"297":1}}],["再经历缩放",{"2":{"260":1}}],["再旋转",{"2":{"260":1}}],["再让我们手动添加二三维的联动逻辑这样麻烦",{"2":{"257":1}}],["再甚至我们可以对一些最常用的cad图元做3d的建模",{"2":{"257":1}}],["再次平移",{"2":{"246":1}}],["再次运行即可",{"2":{"103":1}}],["再位换算回id值就可以知道点击到哪个物体了",{"2":{"242":1,"246":2}}],["再进行一些处理就可以实现吗",{"2":{"27":1}}],["再统一合模",{"2":{"24":1}}],["再回头看看",{"2":{"23":1}}],["再提供给用户一个类似游戏视角的环境漫游功能",{"2":{"23":1}}],["多看orillusion的源码",{"2":{"259":1}}],["多一份数据",{"2":{"242":1,"246":2}}],["多个页面之间的跳转",{"0":{"212":1}}],["多行字符串中",{"2":{"206":1}}],["多行字符串",{"2":{"206":1}}],["多于一条会失效",{"2":{"178":1}}],["多视角渲染的案例",{"2":{"26":1}}],["多在图形学的世界里面走一走",{"2":{"23":1}}],["多年前第一次看到知源",{"2":{"2":1}}],["很美",{"2":{"23":1}}],["一直有记笔记的习惯",{"2":{"296":1}}],["一直在想究竟如何才能让ts既可以使用commonjs的包",{"2":{"219":1}}],["一直在用",{"2":{"25":1}}],["一键拖拽即可实现常用图元的绘制",{"2":{"257":1}}],["一开始看视频还以为graphic是一种技术",{"2":{"256":1}}],["一开始我的图层position数据收集是这样写的",{"2":{"31":1}}],["一份渲染到fbo",{"2":{"246":1}}],["一份渲染输出到屏幕",{"2":{"246":1}}],["一些思考",{"0":{"231":1,"253":1}}],["一些底层的功能支持会更好一些",{"2":{"183":1}}],["一些常用场景",{"0":{"123":1},"1":{"124":1,"125":1,"126":1}}],["一种自适应的布局方式",{"2":{"177":1}}],["一端是算力无穷的云",{"2":{"53":1}}],["一端是越来越轻便的终端设备",{"2":{"53":1}}],["一般来说要小1",{"2":{"258":1}}],["一般出现服务器崩溃的问题也是运维排查问题",{"2":{"215":1}}],["一般可以将项目中的文件分别放入",{"2":{"171":1}}],["一般都创建一个新的分支来修改代码",{"2":{"133":1}}],["一般子类覆写方法时",{"2":{"45":1}}],["一般在递归中产生",{"2":{"28":1}}],["一阶贝塞尔曲线",{"2":{"32":1}}],["一张文字比较多的图纸",{"2":{"28":1}}],["一个构造函数两千多行",{"2":{"263":1}}],["一个三维向量转化为四维向量",{"2":{"241":1}}],["一个vue框架想要能够工作下去",{"2":{"239":1}}],["一个由node",{"2":{"226":1}}],["一个app中可以有一个或多个viewcontroller",{"2":{"213":1}}],["一个标有throws关键字的函数被称做throwing函数",{"2":{"203":1}}],["一个可选的值是一个具体的值或者是nil以表示值缺失",{"2":{"195":1}}],["一个常见的问题是远程的项目upstream有了新的更新",{"2":{"133":1}}],["一个子widget本身可以是row",{"2":{"60":1}}],["一个flutter",{"2":{"57":1}}],["一个children属性",{"2":{"57":1}}],["一个child属性",{"2":{"57":1}}],["一个页面中渲染多个three内容",{"2":{"26":1}}],["一个数字化的构想",{"2":{"23":1}}],["一群有爱有梦的人",{"2":{"2":1}}],["而https发不出http请求",{"2":{"267":1}}],["而如果没有批注数据",{"2":{"267":1}}],["而如果我不添加",{"2":{"219":1}}],["而在一个稍微大一点的cad图纸中",{"2":{"257":1}}],["而非整个引擎",{"2":{"252":1}}],["而我还不知道",{"2":{"251":1}}],["而我们知道metal后端需要的shader语言是msl",{"2":{"99":1}}],["而不需要像",{"2":{"257":1}}],["而不需要对",{"2":{"248":1}}],["而不是通过类的实例调用",{"2":{"253":1}}],["而不是npm",{"2":{"224":1}}],["而且还提供了vscode插件的支持",{"2":{"302":1}}],["而且还支持动态库",{"2":{"214":1}}],["而且平移",{"2":{"259":1}}],["而且线宽的调整也不是很好实现",{"2":{"246":1}}],["而vue3中采用的proxy",{"2":{"240":1}}],["而使用const定义的变量不会挂载到windows上",{"2":{"236":1}}],["而使用rollup打包以后",{"2":{"219":1}}],["而有难度的脚手架应该是支持扩展的",{"2":{"218":1}}],["而有的widget确实当做函数实现",{"2":{"66":1}}],["而",{"2":{"214":1,"249":2,"263":1}}],["而先决条件则在调试环境和生产环境中运行",{"2":{"205":1}}],["而webgl这样的技术让开发者可以直接自己操作gpu进行绘制",{"2":{"101":1}}],["而是对象需要递归去劫持实现响应式",{"2":{"240":1}}],["而是根据内部元素来定",{"2":{"138":1}}],["而是提前写好",{"2":{"99":1}}],["而是需要有人去做",{"2":{"23":1}}],["而直接使用android",{"2":{"96":1}}],["而宽线需要顶点的多个副本以形成线条的宽度",{"2":{"30":1}}],["而three",{"2":{"25":1}}],["而每一个用户设计的小房子",{"2":{"23":1}}],["有很多的未知和挑战",{"2":{"257":1}}],["有好几万图元数据的情况下",{"2":{"257":1}}],["有three",{"2":{"249":1}}],["有一些生命周期的回调函数",{"2":{"213":1}}],["有一类数据总是批量呈现的",{"2":{"46":1}}],["有圆角的矩形形状",{"2":{"168":1,"169":1}}],["有依赖关系的视图会马上翻译出这些变化并重绘",{"2":{"136":1}}],["有校验功能的表单",{"0":{"124":1}}],["有时候在程序架构中",{"2":{"194":1}}],["有时候会有几十甚至上百毫秒的一个耗时",{"2":{"99":1}}],["有时间都可以读一读",{"2":{"305":1}}],["有时间还是需要好好研究研究",{"2":{"2":1}}],["有时间可以参考一下他的实现来配置自己的eslint最佳实践",{"2":{"1":1}}],["有状态widget",{"2":{"67":1}}],["有属性可以设置头尾图标",{"2":{"60":1}}],["有三个最常用的聚合类型",{"2":{"46":1}}],["有有没有一个事件处理机制来统一规范的对触发事件进行控制",{"2":{"29":1}}],["有没有一些很好的方法能够将普通图片转化为svg",{"2":{"27":1}}],["有的时候缺的其实并不是那么多奇思妙想的思路",{"2":{"23":1}}],["让用户可以很便捷的在cad里面做到二三维联动",{"2":{"257":1}}],["让用户能够真实的进到自己设计的房子内部进行各种参观",{"2":{"23":1}}],["让安装的人直接执行你的命令",{"2":{"224":1}}],["让demo1项目下生成wakk的软链接",{"2":{"218":1}}],["让人们在数据世界里获得视觉化思考能力",{"2":{"2":1}}],["安全提醒",{"2":{"23":1}}],["安装和使用",{"0":{"176":1}}],["安装完以后关闭项目",{"2":{"137":1}}],["安装dio库",{"0":{"112":1}}],["安装依赖",{"2":{"109":1,"122":1,"176":1}}],["安装依赖时报错",{"2":{"4":1}}],["安装http库",{"0":{"109":1}}],["安装下面两个库",{"2":{"103":1}}],["安装arkit",{"0":{"103":1}}],["安装过程等待了很久",{"2":{"98":1}}],["安装flutter版本",{"2":{"98":1}}],["安装flutter插件",{"2":{"95":1}}],["安装好android",{"2":{"94":1}}],["安装cloudxr",{"2":{"55":1}}],["安装公共的vue",{"0":{"14":1}}],["安装pnpm",{"0":{"12":1}}],["安装",{"0":{"4":1},"2":{"98":1,"112":1,"219":1}}],["比如说图像处理",{"2":{"314":1}}],["比如resize事件发生时",{"2":{"309":1}}],["比如边距",{"2":{"309":1}}],["比如",{"2":{"248":1,"260":1,"309":1}}],["比如pnpm",{"2":{"224":1}}],["比如p0和p3的需要连接的起始点和终点",{"2":{"32":1}}],["比如我这里配置的",{"2":{"219":1}}],["比如我想在three中绘制一个雾山五行的角色",{"2":{"27":1}}],["比如方法",{"2":{"200":1}}],["比如让一个函数返回多个值",{"2":{"198":1}}],["比如获取来自inheritedwidget的数据",{"2":{"67":1}}],["比如订阅事件",{"2":{"67":1}}],["比如这里在索引1处插入一个9",{"2":{"47":1}}],["比如在一个房间里面放上一个音响",{"2":{"23":1}}],["比如防火提醒",{"2":{"23":1}}],["比例尺",{"2":{"3":1}}],["甚至连旋转矩阵都用不上",{"2":{"264":1}}],["甚至我们可以把一些用户常用的图元数据保存下来",{"2":{"257":1}}],["甚至我们可以提供3d场景让用户自己根据2d图纸来构件自己的3d场景并自己绑定好对应的二三维联动关系",{"2":{"23":1}}],["甚至vitepress自带的组件都需要自己写一遍",{"2":{"237":1}}],["甚至更强大一点",{"2":{"23":1}}],["甚至他能够决定每一个细节应该怎样落地",{"2":{"23":1}}],["木材店铺",{"2":{"23":1}}],["灯光店铺",{"2":{"23":1}}],["幻想一下",{"2":{"23":1}}],["用webgpu是不是有些大材小用",{"2":{"258":1}}],["用webgpu实现出来",{"2":{"246":1}}],["用它来做二维可能会带来一些额外的性能开销",{"2":{"257":1}}],["用var定义的变量会挂载到windows上",{"2":{"236":1}}],["用tsc编译index",{"2":{"224":1}}],["用top命令查看cpu占用",{"2":{"215":1}}],["用",{"2":{"219":1}}],["用来表示大于2^53",{"2":{"306":1}}],["用来在一个字符串中访问单个字符",{"2":{"206":1}}],["用来管理代码和资源",{"2":{"93":1}}],["用冒号分隔",{"2":{"200":1}}],["用image",{"0":{"267":1}}],["用if和let一起来处理值缺少的情况",{"2":{"195":1}}],["用ios的调用gpu的方法实现",{"2":{"98":1}}],["用垫片实现左右对齐",{"2":{"138":1}}],["用xcode打开项目",{"2":{"96":2}}],["用android",{"2":{"94":1}}],["用于进程之间的通信",{"2":{"314":1}}],["用于在子进程中运行的模块",{"2":{"314":1}}],["用于处理html",{"2":{"101":1,"309":1}}],["用于处理依赖关系的变化",{"2":{"67":1}}],["用于绑定数据等",{"2":{"99":1}}],["用于释放资源",{"2":{"67":1}}],["用于构建部件的ui",{"2":{"67":1}}],["用于管理部件的状态和响应不同阶段的变化",{"2":{"67":1}}],["用于覆盖另一个widget",{"2":{"66":1}}],["用函数这里可以传参",{"2":{"66":1}}],["用metal绘制一个三角形",{"2":{"55":1,"150":1}}],["用贝塞尔曲线再次将随机点连起来",{"2":{"32":1}}],["用贝塞尔曲线来优化cad的手绘线批注",{"0":{"32":1}}],["用粗线的线宽来实现这种包围盒效果",{"2":{"24":1}}],["用户如果是在我们的平台通过拖拽图元库中的图元来从零设计图纸",{"2":{"257":1}}],["用户可以很方便的在我们的网页上打开图纸并进行二次开发",{"2":{"257":1}}],["用户可以在我们的平台上上传图纸",{"2":{"257":1}}],["用户可以创建自己的图元库在我们的网页上进行一个更轻量化的图纸开发",{"2":{"23":1}}],["用户反馈",{"2":{"60":1}}],["用户在模型中漫游的时候会根据距离这个房间的远近和房间的材质会有一个音效放大缩小的一个效果",{"2":{"23":1}}],["用编辑器打开文件夹",{"2":{"13":1}}],["那后面的每次修改都要进行修改",{"2":{"267":1}}],["那还做什么图形学开发工程师啊",{"2":{"266":1}}],["那public",{"2":{"253":1}}],["那flutter良好的跨平台支持是更好的选择",{"2":{"183":1}}],["那我做个推断",{"2":{"249":1}}],["那我",{"2":{"219":1}}],["那我只需要一张图片",{"2":{"27":1}}],["那我这边其实可以根据图元来生成图元库",{"2":{"23":1}}],["那岂不是还可以更进一步",{"2":{"25":1}}],["那么代表鼠标选中了该模型",{"2":{"246":1}}],["那么全局指令",{"2":{"224":1}}],["那么npm",{"2":{"219":1}}],["那么impeller是如何做到将glsl4",{"2":{"99":1}}],["那么可以设置进度百分比",{"2":{"90":2}}],["那么当他的内容被创建出来之后",{"2":{"67":1}}],["那么p1需要添加在p0右侧",{"2":{"32":1}}],["那么整个属性的声明都会被无视",{"2":{"32":1}}],["那么",{"2":{"11":1}}],["那么对我来说最好的解决方案就是一次性都有它处理",{"2":{"1":1}}],["拿到按外层entries解析的图元数据",{"2":{"23":1}}],["将像素发送给gpu",{"2":{"309":1}}],["将dom",{"2":{"309":1}}],["将dom脱离文档流",{"2":{"309":1}}],["将元素脱离文档流",{"2":{"309":1}}],["将几何数据发送到gpu进行渲染",{"2":{"264":1}}],["将物体的几何数据",{"2":{"264":1}}],["将3d对象渲染到屏幕上",{"2":{"264":1}}],["将图纸正常加载出来并居中显示",{"2":{"246":1}}],["将摄像机原点与近裁剪平面的一点连起来",{"2":{"246":1}}],["将各个部分的内容实现出来",{"2":{"239":1}}],["将需要执行的包下载到一个临时目录中",{"2":{"228":1}}],["将需要安装的依赖装到podfile中执行install命令即可安装好依赖",{"2":{"176":1}}],["将可选类型赋值给非可选类型需要强制解析获取值",{"2":{"194":1}}],["将视图扩展到安全区域之外",{"2":{"168":1,"169":1}}],["将数值转换为string类型",{"2":{"190":1}}],["将数值转化为度数",{"2":{"167":1}}],["将数据区分为",{"2":{"24":1}}],["将svg转换为canvas绘制",{"2":{"166":1}}],["将代码封装成component",{"0":{"165":1}}],["将text中的文字改为大写",{"0":{"154":1}}],["将所有代码进行缩进",{"2":{"152":1}}],["将字符串转为对象",{"0":{"142":1}}],["将函数作为参数传递使用",{"2":{"141":1}}],["将build",{"2":{"137":1}}],["将glsl转换为spir",{"2":{"99":1}}],["将下载好的flutter",{"2":{"94":1}}],["将最多三行的文本",{"2":{"65":1}}],["将相关信息整理到一个🈶圆角和阴影的盒子中",{"2":{"65":1}}],["将相邻的定点连接起来形成线段",{"2":{"30":1}}],["将widget覆盖在另一个的上面",{"2":{"65":1}}],["将widget展示为一个可滚动的列表",{"2":{"65":1}}],["将widget展示为一个可滚动的网格",{"2":{"65":1}}],["将文本更改为深灰色来模拟一个material",{"2":{"59":1}}],["将cloudxrlanchoptions",{"2":{"55":1}}],["将他们能够提供的材料和材质入库",{"2":{"23":1}}],["将除了文字以外的所有物体打碎成线段",{"2":{"23":1}}],["将抽象的数据映射为视觉数据",{"2":{"3":1}}],["看来下一个项目又要开始用新东西了",{"2":{"302":1}}],["看矩阵要从右往左看",{"2":{"260":1}}],["看别人的框架代码",{"2":{"253":1}}],["看下面的源码",{"2":{"251":1}}],["看不了太细",{"2":{"248":1}}],["看看会不会易懂一些",{"2":{"247":1}}],["看看是不是异常访问",{"2":{"215":1}}],["看了一下源码",{"2":{"240":1}}],["看完了",{"2":{"240":1}}],["看完",{"2":{"239":1}}],["看新建的项目目录可以看到",{"2":{"21":1}}],["看到他们都已经用了pnpm+monorepo",{"2":{"11":1}}],["轻松简单",{"2":{"21":1}}],["项目是用",{"2":{"237":1}}],["项目的info中查看main",{"2":{"206":1}}],["项目结构",{"0":{"171":1,"209":1}}],["项目结构搭建",{"0":{"13":1}}],["项目重启后可以看到vr",{"2":{"55":1}}],["项目中不仅使用prettier",{"2":{"21":1}}],["项目新建结束运行pnpm",{"2":{"21":1}}],["javascript所能表示的最大的数字",{"2":{"306":1}}],["jack",{"2":{"138":2,"201":3}}],["j++",{"2":{"246":1}}],["j",{"2":{"246":5}}],["jenkins一定不要部署在生产环境的服务器上面",{"2":{"215":1}}],["jenkins同时打包多个项目导致服务器卡死",{"0":{"215":1}}],["john",{"2":{"195":2}}],["justthestatuscode",{"2":{"192":1}}],["jumptologin",{"2":{"140":1}}],["juejin",{"2":{"20":1,"55":1,"92":1,"98":1,"100":1,"104":1,"129":1,"131":1,"147":1,"150":1,"185":1,"186":3,"218":2,"252":1,"265":2}}],["jpg",{"2":{"61":3,"232":1}}],["jsdelivr",{"2":{"300":3}}],["jsconfig",{"2":{"293":1}}],["jsconsole",{"2":{"285":1}}],["jsconst",{"2":{"236":3,"263":1,"295":1,"309":3}}],["jsexport",{"2":{"287":1,"288":3,"289":1,"290":1,"291":1,"292":1,"299":1}}],["jsmodule",{"2":{"286":1}}],["js的数据",{"2":{"314":1}}],["js的数据类型",{"0":{"306":1}}],["js的",{"2":{"264":1}}],["js的源码味道了",{"2":{"249":1}}],["jsif",{"2":{"263":1}}],["js构建的canvas上",{"2":{"263":1}}],["js都是右手坐标系",{"2":{"260":1}}],["js它本身是一个三维的技术框架",{"2":{"257":1}}],["js渲染器中的源码根本看不懂",{"2":{"247":1}}],["js中的",{"2":{"249":1}}],["js中的svgloader来加载出来并进行一些数据优化处理",{"2":{"27":1}}],["js中场景",{"2":{"247":1}}],["js中",{"2":{"245":1,"264":1}}],["js和orillusion的渲染源码",{"2":{"245":1}}],["js设计与实现",{"2":{"239":1}}],["jsvar",{"2":{"235":5}}],["jsfunction",{"2":{"234":1}}],["js官方提供的用于快速执行npm包中的可执行文件的工具",{"2":{"226":1}}],["js官方使用的",{"2":{"25":1}}],["js文件",{"2":{"223":1}}],["js是否是根据设备ua来进行判断",{"2":{"214":1}}],["js判断视频流的请求对象是移动端",{"2":{"214":1}}],["js竟然是一个开源的js库",{"2":{"25":1}}],["json`",{"2":{"294":2}}],["json数据",{"2":{"267":1}}],["json的name为基准",{"2":{"217":1}}],["json格式的对象",{"2":{"191":1}}],["jsonstring",{"2":{"142":2}}],["jsondecoder",{"2":{"142":1,"181":1}}],["jsondecode",{"2":{"111":1}}],["jsonplaceholder",{"2":{"109":1,"110":1,"111":1,"113":1,"114":1,"115":1,"116":1}}],["jsonpackages",{"2":{"13":1}}],["json2dart",{"2":{"100":1}}],["json下的包名来定",{"2":{"17":1}}],["json中的bin配置来生成node",{"2":{"223":1}}],["json中的配置",{"2":{"15":1}}],["json中有type",{"2":{"219":1}}],["json中配置bin字段数据",{"2":{"224":1}}],["json中配置了bin字段",{"2":{"224":1}}],["json中配置了",{"2":{"219":1}}],["json中配置的",{"2":{"219":1}}],["json中配置命令启动packages文件夹下面的项目",{"0":{"18":1}}],["json中配置测试命令",{"2":{"16":1}}],["json文件",{"2":{"13":1}}],["json文件的数据格式",{"2":{"10":1}}],["json",{"0":{"217":1},"2":{"1":1,"7":1,"8":1,"10":2,"16":1,"17":1,"18":1,"19":6,"110":5,"111":4,"114":1,"217":1,"219":5,"223":1,"224":2,"237":1,"267":2,"271":2}}],["js",{"2":{"1":1,"217":1,"219":2,"224":2,"232":1,"257":1,"261":3,"262":2,"263":2,"271":1,"293":2,"295":1,"300":1,"306":1,"307":2,"314":2}}],["jsnpm",{"2":{"1":1,"21":1}}],["串行",{"2":{"20":1}}],["学习如何将模型数据转化为webgpu可以使用的数据实现图纸的加载",{"2":{"246":1}}],["学习鼠标拾取的底层原理",{"2":{"246":1}}],["学习element",{"0":{"237":1},"1":{"238":1}}],["学习参考链接",{"0":{"20":1}}],["学了`webgl`的渲染以后",{"2":{"2":1}}],["最终生成显示在屏幕上的图像",{"2":{"312":1}}],["最终将msl编译链接得到metal",{"2":{"99":1}}],["最好让后端以字符串的形式返回",{"2":{"307":1}}],["最开始还在学校的时候还比较勤快",{"2":{"296":1}}],["最薄的材料",{"2":{"156":1}}],["最多可以显示3行文本",{"2":{"60":1}}],["最常见的布局模式之一是垂直或水平widgets",{"2":{"60":1}}],["最重要的它是运行时常量",{"2":{"34":1}}],["最后平移",{"2":{"260":2}}],["最后正常渲染场景",{"2":{"246":1}}],["最后一个问题",{"2":{"219":1}}],["最后还是决定使用rollup来对ts进行打包",{"2":{"219":1}}],["最后",{"2":{"215":1}}],["最后再用同样的方法可以得到最终的一个点",{"2":{"32":1}}],["最后配置一个typecheck命令",{"2":{"19":1}}],["最近看了一点vue3和element",{"2":{"11":1}}],["和基于threejs修改",{"2":{"258":1}}],["和我们现在ourbim的资源库一样方便",{"2":{"257":1}}],["和你聊一聊我们cad目前的一个现状",{"2":{"257":1}}],["和获取",{"2":{"248":1}}],["和javascript中的this一样",{"2":{"200":1}}],["和js中的map方法一样",{"2":{"199":1}}],["和上面直接请求接口相比",{"2":{"111":1}}],["和column相比你也可能更喜欢listview",{"2":{"60":1}}],["和row相比你可能更喜欢listtile",{"2":{"60":1}}],["和",{"2":{"19":1,"153":1,"219":1,"309":1}}],["随后即可在navigationbar中使用绑定的hasscrolled数据",{"2":{"172":1}}],["随后选择新建项目运行即可",{"2":{"95":1}}],["随后我又测试了一下修改demo2中的打印日志",{"2":{"17":1}}],["随后在demo2中打开终端执行npm",{"2":{"16":1}}],["能不能根据讲解",{"2":{"239":1}}],["能够将虚拟dom渲染成功真实的dom",{"2":{"239":1}}],["能够将组件中的内容解析出来",{"2":{"239":1}}],["能够细微的知道哪些节点需要更新",{"2":{"239":1}}],["能够根据用户的选择来构建不同的项目模板",{"2":{"218":1}}],["能够成功运行",{"2":{"15":1}}],["能根据用户图片中的具体文字内容来生成最简洁的font字体文件",{"2":{"25":1}}],["能正常打印出需要的日志信息",{"2":{"17":1}}],["^2",{"2":{"103":1}}],["^1",{"2":{"103":1}}],["^",{"2":{"17":2}}],["只要每个图元的渲染都多上一点点性能开销",{"2":{"257":1}}],["只能通过nginx代理去请求过去",{"2":{"267":1}}],["只能通过类来进行访问",{"2":{"253":1}}],["只能去新增批注是否存在的判断接口了",{"2":{"267":1}}],["只能先采用这种方法让报错提示尽可能温和一点了",{"2":{"267":1}}],["只能搭建android开发环境",{"2":{"92":1}}],["只知道初始化了矩阵和缓冲区",{"2":{"248":1}}],["只有批注数据存在时才能请求回来comment",{"2":{"267":1}}],["只有一百多行",{"2":{"264":1}}],["只有400k大小",{"2":{"246":1}}],["只有本地开发需要执行这一步",{"2":{"217":1}}],["只会引起一次重排",{"2":{"309":1}}],["只会导致1次重排",{"2":{"309":1}}],["只会将动态库被引用的头文件添加到目标app可执行文件",{"2":{"214":1}}],["只会打包正在使用的相关功能",{"2":{"68":1}}],["只需将源码放入相应的文件夹内",{"2":{"184":1}}],["只需要声明变量前使用",{"2":{"170":1}}],["只是简单的ui功能",{"2":{"183":1}}],["只修改了打印信息",{"2":{"16":1}}],["只单纯使用prettier十分合理",{"2":{"0":1}}],["证明demo2中能共用typescript依赖且自己独立安装的ts",{"2":{"16":1}}],["证明外层的公共模块依赖正常生效了",{"2":{"15":1}}],["创建渲染管线的逻辑被隐藏在组件式操作中",{"2":{"251":1}}],["创建gpu缓冲区等",{"2":{"248":1}}],["创建实例",{"2":{"210":1}}],["创建项目",{"0":{"208":1}}],["创建项目后修改项目general中的minimum",{"2":{"151":1}}],["创建的范围不包含上界",{"2":{"197":1}}],["创建空数组和空字典时必须指定类型",{"2":{"191":1}}],["创建strokestyle实例时指定了一个参数",{"2":{"160":1}}],["创建分支",{"2":{"133":1}}],["创建cloudxrlanchoptions",{"2":{"55":1}}],["创建完以后将项目文件移动到demo1文件夹下",{"2":{"15":1}}],["创建一个webglrendertarget",{"2":{"246":1}}],["创建一个名为my",{"2":{"226":1}}],["创建一个collab",{"2":{"55":1}}],["创建一个",{"2":{"5":1}}],["就像",{"2":{"224":1}}],["就只需要在",{"2":{"219":1}}],["就必须从string开头遍历每一个unicode标量直到结尾",{"2":{"206":1}}],["就是说当前widget创建完成之后",{"2":{"67":1}}],["就是说一旦这个widget创建完成",{"2":{"67":1}}],["就不能再改变了",{"2":{"67":1}}],["就绘制出了一条由起点至终点的贝塞尔曲线",{"2":{"32":1}}],["就叫monorepo",{"2":{"13":1}}],["就来浅浅的尝试一下",{"2":{"11":1}}],["2号",{"2":{"309":2}}],["2不等于0",{"0":{"307":1}}],["2^53",{"2":{"306":1}}],["2个数量级",{"2":{"258":1}}],["2个控制点",{"2":{"32":1}}],["22",{"2":{"253":4}}],["2x2矩阵",{"2":{"241":1}}],["27",{"2":{"288":1}}],["2792",{"2":{"219":1}}],["275",{"2":{"5":1,"6":1}}],["28",{"2":{"168":1,"169":1}}],["29",{"2":{"168":1,"169":1}}],["2661268541946365",{"2":{"186":1}}],["2695",{"2":{"167":1}}],["26",{"2":{"153":2}}],["24",{"2":{"130":1,"210":1,"259":1}}],["20px",{"2":{"309":1}}],["2022",{"2":{"303":1}}],["20230818102838961",{"2":{"267":1}}],["2023",{"2":{"23":1,"215":1,"254":1,"259":1,"302":1}}],["2014上",{"2":{"256":1}}],["2016年8月22日发布的android",{"2":{"256":1}}],["207",{"2":{"167":1}}],["200",{"2":{"90":1,"110":1,"111":1,"114":1,"115":1,"116":1,"153":1,"156":1,"157":1,"162":1,"166":6,"167":3,"177":1,"180":3,"192":1}}],["203",{"2":{"70":1}}],["20",{"2":{"66":1,"70":1,"72":1,"82":1,"88":2,"119":1,"122":2,"139":1,"142":1,"153":1,"155":2,"156":4,"166":1,"173":2,"174":3,"177":1,"180":1,"198":1,"199":3,"203":1,"302":1}}],["2d",{"2":{"54":1}}],["234",{"2":{"190":1}}],["23012",{"2":{"167":1}}],["23",{"2":{"36":3,"215":1,"288":1}}],["255",{"2":{"70":1}}],["25",{"2":{"32":4,"138":1,"196":2}}],["2g",{"2":{"28":1}}],["2",{"2":{"10":1,"28":1,"30":1,"36":1,"47":7,"48":4,"62":1,"72":1,"73":1,"74":1,"89":1,"141":1,"191":1,"196":2,"197":4,"198":1,"200":2,"206":2,"224":1,"230":3,"235":2,"236":6,"239":1,"241":4,"246":2,"258":1,"272":1,"280":2,"288":2,"292":4,"295":1}}],["07436",{"2":{"167":1}}],["05906",{"2":{"167":1}}],["00248",{"2":{"167":1}}],["0896",{"2":{"167":1}}],["08995",{"2":{"167":1}}],["06324",{"2":{"167":1}}],["0xff6750a4",{"2":{"89":1}}],["0xff0000",{"2":{"32":1}}],["03",{"2":{"10":1}}],["0",{"0":{"307":1},"2":{"10":2,"24":4,"28":1,"32":58,"41":1,"42":1,"43":1,"44":1,"45":1,"47":4,"49":2,"66":2,"70":2,"73":1,"83":2,"88":2,"90":4,"98":2,"103":1,"122":6,"130":2,"137":1,"138":1,"141":1,"151":1,"153":3,"155":1,"156":2,"158":1,"159":1,"160":4,"161":1,"162":1,"165":1,"166":2,"167":27,"168":3,"169":5,"174":2,"177":2,"179":1,"180":1,"192":2,"196":1,"197":2,"198":3,"200":7,"203":1,"204":1,"205":3,"210":1,"230":2,"235":1,"241":51,"244":1,"246":10,"251":2,"253":2,"256":1,"260":1,"266":1,"300":2}}],["数组还需要重写原型方法来实现响应式",{"2":{"240":1}}],["数组的map方法和sorted方法",{"0":{"199":1}}],["数组在添加元素时会自动变大",{"2":{"191":1}}],["数组和字典",{"0":{"191":1}}],["数字转字符串",{"2":{"36":1}}],["数值",{"2":{"10":1}}],["数据可视化创意手记",{"2":{"305":1}}],["数据绑定",{"0":{"172":1}}],["数据模型",{"2":{"171":1}}],["数据库实现方案",{"2":{"121":1}}],["数据持久化",{"0":{"121":1},"1":{"122":1}}],["数据验证等功能",{"2":{"68":1}}],["数据类型转换",{"0":{"37":1}}],["数据类型判断",{"0":{"36":1}}],["数据驱动的动画和连续的形变动画",{"2":{"3":1}}],["数据探索",{"2":{"3":1}}],["在内存中多次操作dom",{"2":{"309":1}}],["在有了vscode插件的加持下",{"2":{"302":1}}],["在npm上发布的js代码",{"2":{"300":1}}],["在不想新增接口来判断图纸是否有批注的情况下",{"2":{"267":1}}],["在图形学中",{"2":{"260":1}}],["在wwdc",{"2":{"256":1}}],["在webglrenderer的源码src",{"2":{"264":1}}],["在webglrenderer的源码中很多方法都是直接挂载到this上面",{"2":{"263":1}}],["在webglrenderer的源码中还会做xr的相关处理",{"2":{"263":1}}],["在webglrenderer的源码中看到了这一行",{"2":{"263":1}}],["在webgl中",{"2":{"30":1}}],["在webgpu中",{"2":{"245":1}}],["在",{"2":{"249":1,"262":1}}],["在gpu上创建了一个缓冲区",{"2":{"248":1}}],["在getx中",{"2":{"129":1}}],["在生成一个正方体套在点击物体外面",{"2":{"246":1}}],["在three",{"2":{"245":1}}],["在engine3d",{"2":{"244":1}}],["在vue2中",{"2":{"240":1}}],["在vue3项目中安装demo2",{"0":{"17":1}}],["在本地缓存中寻找并下载包",{"2":{"227":1}}],["在本地拉取github的代码并添加远程地址",{"2":{"133":1}}],["在rollup的打包配置中加上banner配置即可解决这个问题",{"2":{"219":1}}],["在配置文件中添加下面的配置",{"2":{"219":1}}],["在编译链接的时候",{"2":{"214":2}}],["在页面上的所有view都会被加入到以这个root",{"2":{"213":1}}],["在页面的init方法中",{"2":{"141":1}}],["在尖括号里写一个名字来创建一个泛型函数或者类型",{"2":{"204":1}}],["在函数声明的参数之后加上throws关键字",{"2":{"203":1}}],["在调用一个能抛出错误的函数",{"2":{"203":1}}],["在调用时",{"2":{"42":1}}],["在类名后面加上括号",{"2":{"200":1}}],["在类型后面加一个问号来标记这个变量的值是可选的",{"2":{"195":1}}],["在javascript中",{"2":{"198":1}}],["在js中",{"2":{"198":1}}],["在参数名称前可以自定义参数标签",{"2":{"198":2}}],["在循环中使用",{"2":{"197":1}}],["在if语句中",{"2":{"195":1}}],["在ios中是作为静态库的文件名后缀",{"2":{"214":1}}],["在ios文件夹下执行pod",{"2":{"103":1}}],["在ios",{"2":{"103":1}}],["在homeview中声明变量",{"2":{"172":1}}],["在hstack",{"2":{"138":1}}],["在闭包中修改和使用外部的变量和值",{"2":{"141":2}}],["在布局中还可以使用垫片来灵活布局",{"2":{"138":1}}],["在弹出的窗口中选择刚才打包生成的build文件夹下的ios",{"2":{"106":1}}],["在设备管理器选择设备",{"2":{"106":1}}],["在src",{"2":{"264":1}}],["在scene的add方法中",{"2":{"261":1}}],["在scaffold中加上resizetoavoidbottominset",{"2":{"105":1}}],["在swift中",{"2":{"203":1}}],["在swiftui中",{"2":{"136":1}}],["在setter中",{"2":{"200":1}}],["在state对象即将被销毁时调用",{"2":{"67":1}}],["在state对象被创建后",{"2":{"67":1}}],["在引擎编译阶段",{"2":{"99":1}}],["在pubspec",{"2":{"128":1}}],["在plugins中安装flutter插件",{"2":{"94":1}}],["在package",{"2":{"16":1}}],["在这个阶段",{"2":{"312":4}}],["在这个案例中",{"2":{"10":1}}],["在这两个类中分别封装了gl",{"2":{"264":1}}],["在这两种情况下",{"2":{"200":1}}],["在这种情况下",{"2":{"194":1}}],["在这里可以比较新旧部件的属性",{"2":{"67":1}}],["在build方法之后立即调用",{"2":{"67":1}}],["在部件第一次创建",{"2":{"67":1}}],["在flutter中",{"2":{"67":2}}],["在app的build方法中实例化和返回一个widget会让它显示出来",{"2":{"57":1}}],["在api层面arkit中的arsession给我们提供了打开摄像头去检测",{"2":{"54":1}}],["在android",{"2":{"55":1,"106":1}}],["在指定索引处插入一个元素",{"2":{"47":1}}],["在末尾添加一个元素",{"2":{"47":1}}],["在声明列表对象时",{"2":{"47":1}}],["在demo3项目的package",{"2":{"224":1}}],["在demo1中打开终端运行代码",{"2":{"15":1}}],["在dart中",{"2":{"46":1}}],["在日常生活中",{"2":{"46":1}}],["在子类中可以通过super调用父类中的方法",{"2":{"45":1}}],["在对象调用方法时",{"2":{"45":1}}],["在入参中为父类中的成员赋值",{"2":{"44":1}}],["在构造函数中",{"2":{"43":1}}],["在字符串中插入变量值",{"0":{"38":1},"2":{"38":1}}],["在运行时第一次使用前才初始化",{"2":{"34":1}}],["在两点之间找两个控制点",{"2":{"32":1}}],["在camera的构造函数中",{"2":{"262":1}}],["在chrome浏览器中",{"2":{"101":1,"309":1}}],["在css中起点和终点都是固定的",{"2":{"32":1}}],["在cesium地图的加持下",{"2":{"23":1}}],["在顶点扩展的基础上",{"2":{"30":1}}],["在计算机科学中是指使用过多的存储器时导致调用堆栈产生的溢出",{"2":{"28":1}}],["在处理mtext类型的数据",{"2":{"25":1}}],["在合模的方法中",{"2":{"24":1}}],["在具体的合模中还需要根据layer来划分数据合模",{"2":{"24":1}}],["在外层的package",{"0":{"18":1}}],["在monorepo",{"2":{"13":1}}],["在后面加上",{"2":{"4":1}}],["桑基图最明显的特征就是",{"2":{"10":1}}],["桑基图绘制",{"0":{"10":1}}],["7174214038765699108",{"2":{"252":1}}],["7146183222425518093",{"2":{"20":1}}],["735",{"2":{"246":1}}],["7086340583697940516",{"2":{"218":1}}],["77304",{"2":{"167":1}}],["77749",{"2":{"167":1}}],["777",{"2":{"103":1}}],["7个flutter开源项目让你成为更好的flutter开发者",{"2":{"104":1}}],["7205025712170942525",{"2":{"265":1}}],["7246001188449550396",{"2":{"218":1}}],["7243357900940378170",{"2":{"92":1}}],["7257333598469439546",{"2":{"186":1}}],["7254107670012543013",{"2":{"185":1}}],["7234324615015497787",{"2":{"131":1}}],["7231184167735820346",{"2":{"129":1}}],["7219234932735934524",{"2":{"104":1}}],["7215891370890952741",{"2":{"55":1,"150":1}}],["729",{"2":{"10":1}}],["75",{"2":{"32":1,"195":1,"232":4}}],["7",{"2":{"9":1,"32":1,"47":2,"90":1,"103":1,"168":1,"169":1,"179":1,"196":1,"198":2,"199":3,"200":1,"203":2,"206":1,"256":1,"288":2}}],["618971664",{"2":{"252":1}}],["63e10991e6cb",{"2":{"218":1}}],["6355",{"2":{"167":1}}],["67924",{"2":{"167":1}}],["6988013072686252046",{"2":{"265":1}}],["6985073338334838814",{"2":{"147":1}}],["6924104248275763208",{"2":{"100":1}}],["6939712499465846798",{"2":{"98":1}}],["60171",{"2":{"167":1}}],["60",{"2":{"153":2,"156":1,"160":1,"166":1,"167":1,"244":1}}],["60转换成msl的呢",{"2":{"99":1}}],["60写的",{"2":{"99":1}}],["600",{"2":{"10":1,"70":1,"166":1}}],["66822111",{"2":{"24":1}}],["6",{"2":{"9":1,"47":7,"66":2,"83":2,"128":2,"159":1,"160":1,"167":1,"174":1,"206":1,"224":1,"241":1,"288":1}}],["6b4aa721",{"2":{"7":1}}],["91864",{"2":{"167":1}}],["92554",{"2":{"167":1}}],["9923",{"2":{"167":2}}],["99984",{"2":{"85":1}}],["99d8",{"2":{"7":1}}],["900",{"2":{"10":1}}],["9",{"2":{"9":2,"47":7,"48":4,"90":1,"196":1,"198":1,"200":2,"288":1,"302":1}}],["5号",{"2":{"309":2}}],["5000",{"2":{"244":1}}],["500",{"2":{"63":3,"76":1,"85":1,"166":1}}],["50",{"2":{"32":1,"126":1,"162":1,"195":1,"232":2}}],["58",{"2":{"32":4}}],["5",{"2":{"9":2,"30":1,"32":2,"47":9,"73":1,"155":1,"156":1,"158":1,"161":1,"165":1,"167":2,"168":1,"169":1,"177":1,"180":1,"196":2,"198":2,"200":2,"206":2,"224":1,"246":3,"258":1,"288":1,"300":1}}],["540b3f87d339",{"2":{"7":1}}],["↑",{"2":{"8":1}}],["4号",{"2":{"309":2}}],["4x4矩阵",{"2":{"241":1}}],["4ce8",{"2":{"218":1}}],["43",{"2":{"195":1}}],["430",{"2":{"173":1}}],["43038",{"2":{"167":1}}],["404",{"2":{"192":2,"194":1,"267":1}}],["40",{"2":{"159":1,"166":2,"288":1}}],["4001234656",{"2":{"138":1}}],["400",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"156":2,"166":1,"173":2}}],["44",{"2":{"168":1,"169":1,"178":2}}],["440",{"2":{"79":1}}],["444",{"2":{"51":1}}],["429d",{"2":{"218":1}}],["42593",{"2":{"167":2}}],["42",{"2":{"32":4}}],["4个控制点",{"2":{"32":1}}],["4",{"2":{"9":2,"10":1,"30":1,"47":9,"48":6,"66":3,"99":1,"103":1,"128":1,"178":1,"191":1,"196":1,"197":1,"200":1,"204":1,"219":2,"224":1,"236":3,"239":1,"246":2,"258":1,"288":4}}],["49b9",{"2":{"7":1}}],["vulkan是khronos在2016年的gdc上提出的新一代的图形和计算",{"2":{"256":1}}],["vue3",{"2":{"308":1}}],["vue2中叫deactivated",{"2":{"308":1}}],["vue2中叫activated",{"2":{"308":1}}],["vue2",{"2":{"308":1}}],["vue生命周期",{"0":{"308":1}}],["vuejs",{"2":{"278":1}}],["vue设计与实现",{"2":{"240":1}}],["vue组件",{"2":{"237":1}}],["vue现成的组件",{"2":{"232":1}}],["vue中history路由问题",{"0":{"221":1}}],["vue中测试一下依赖安装情况",{"2":{"17":1}}],["vue的项目中第一时间就更新了过去",{"2":{"17":1}}],["vue项目文件夹",{"2":{"13":1}}],["vue",{"2":{"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"14":1,"19":6,"224":2,"230":3,"232":1,"237":1,"239":1,"295":3}}],["vp",{"2":{"286":4}}],["vpnavbarhamburger",{"2":{"237":1}}],["vpnavbarsociallinks",{"2":{"237":1}}],["vpnavbarsearch",{"2":{"237":1}}],["vpnavbartranslation",{"2":{"237":1}}],["vpnavbarthemetoggler",{"2":{"237":1}}],["vpnavbarmenu",{"2":{"237":1}}],["vpapp组件类似于vue项目的app",{"2":{"237":1}}],["vpapp",{"2":{"237":2}}],["vscode默认的保存代码自动格式化",{"2":{"219":1}}],["vscode和xcode",{"0":{"149":1}}],["vscode如何配置环境",{"0":{"95":1}}],["vstack",{"2":{"138":4,"140":3,"141":1,"153":3,"165":1,"168":1,"169":1,"174":2,"178":1}}],["vstack和zstack这三种容器中",{"2":{"138":1}}],["v",{"2":{"99":6,"251":2,"253":2,"287":2}}],["vec3",{"2":{"241":7}}],["vec4",{"2":{"241":7,"266":4}}],["vector",{"2":{"103":1}}],["vector3",{"2":{"32":20}}],["vend",{"2":{"203":2}}],["vendingmachine",{"2":{"203":2}}],["vendingmachineerror",{"2":{"203":7}}],["vegetable",{"2":{"196":2}}],["vertexarray",{"2":{"246":1}}],["vertex",{"2":{"241":1,"312":1}}],["vertical",{"2":{"124":1,"153":1}}],["verticaloffset",{"2":{"88":1}}],["verify",{"2":{"218":1}}],["version",{"2":{"98":1,"176":1}}],["versions",{"2":{"67":2}}],["vr应用程序并通过cloudxr无线串流到pico",{"2":{"55":1}}],["void",{"2":{"40":1,"44":1,"45":2,"50":1,"51":1,"89":1,"110":1,"111":2,"113":1,"114":1,"115":1,"116":3,"118":1,"119":1,"120":2,"122":1,"124":4,"125":2,"130":2,"141":1,"253":2}}],["valeriangalliat",{"2":{"295":1}}],["valid",{"2":{"287":2}}],["validate",{"2":{"124":1}}],["validator",{"2":{"124":1}}],["validation",{"2":{"124":2}}],["value的方式保存到磁盘",{"2":{"121":1}}],["valuecolor",{"2":{"90":2}}],["value添加元素",{"2":{"49":1}}],["value",{"2":{"7":1,"8":1,"9":10,"10":2,"47":2,"48":1,"49":2,"89":3,"90":2,"122":2,"124":3,"167":1,"169":5,"195":2,"206":1,"230":2,"253":2,"292":1}}],["variety",{"2":{"287":1}}],["variant",{"2":{"162":1}}],["var",{"2":{"34":1,"51":4,"110":1,"116":1,"122":4,"125":2,"126":1,"130":2,"137":15,"141":4,"160":2,"165":1,"167":3,"168":9,"169":11,"170":1,"172":2,"174":3,"175":5,"178":2,"191":2,"194":1,"195":3,"196":1,"197":1,"198":6,"199":3,"200":11,"202":1,"203":5,"204":1,"206":1,"210":1,"235":1,"236":3,"241":8}}],["via",{"2":{"292":1,"295":1}}],["viewposition",{"2":{"266":2}}],["viewmatrix",{"2":{"266":2}}],["viewmodifier",{"2":{"160":1}}],["view3d",{"2":{"244":1}}],["view为根的树形结构中去",{"2":{"213":1}}],["viewdidload",{"2":{"210":2}}],["viewcontroller拥有所有的view",{"2":{"213":1}}],["viewcontroller有一个view属性",{"2":{"213":1}}],["viewcontroller",{"2":{"209":1,"210":1}}],["viewcontext",{"2":{"175":1}}],["view",{"0":{"213":1},"2":{"139":1,"141":2,"160":3,"165":1,"167":2,"168":3,"169":3,"171":1,"174":2,"178":2,"208":1,"210":4,"211":10,"213":1,"244":3,"251":1,"285":2}}],["viewer模板工程",{"2":{"55":1}}],["views",{"2":{"26":1}}],["vitepress如果用中文进行md的文件命名",{"2":{"297":1}}],["vitepress",{"2":{"237":3,"270":3,"271":1,"272":1,"278":1,"285":2,"286":1,"287":1,"288":2,"293":4,"294":1,"295":2}}],["vitest",{"2":{"19":3}}],["vite",{"2":{"19":3}}],["y轴竖直向上",{"2":{"260":1}}],["yarn",{"2":{"270":1}}],["yarn这些",{"2":{"224":1}}],["yaml",{"2":{"93":1,"271":1,"279":2}}],["yaml文件中添加get依赖",{"2":{"128":1}}],["yaml文件",{"2":{"13":1}}],["yum",{"2":{"203":1}}],["yuque",{"2":{"2":1}}],["your",{"2":{"132":1,"271":1,"286":1,"292":1,"294":1}}],["you",{"2":{"132":4,"179":1,"219":1,"271":5,"274":1,"276":4,"285":1,"286":2,"287":2,"288":1,"289":1,"292":2,"293":1,"294":3,"295":1}}],["yep",{"2":{"120":3}}],["yellow",{"2":{"90":1,"164":1}}],["year",{"2":{"9":10}}],["y2",{"2":{"32":1}}],["y1",{"2":{"32":1}}],["y创建包",{"2":{"13":1}}],["y",{"2":{"5":2,"6":4,"7":1,"8":2,"9":1,"24":3,"155":1,"156":2,"157":1,"162":1,"166":5,"167":16,"173":1,"198":3,"219":1,"241":2}}],["xxx",{"2":{"295":1}}],["xr",{"2":{"263":3}}],["x和y轴的坐标范围是",{"2":{"260":1}}],["x轴水平向右",{"2":{"260":1}}],["xiaoming",{"2":{"235":6,"236":3}}],["xiaohua",{"2":{"17":1}}],["xun082",{"2":{"218":1}}],["xcworkspace后缀的文件启动项目",{"2":{"137":1}}],["xcworkspace",{"2":{"96":1}}],["xcode就会自动生成工程文件",{"2":{"184":1}}],["xcode中的快捷键",{"0":{"152":1}}],["xcode",{"2":{"96":1,"182":1}}],["x2",{"2":{"32":1,"167":10}}],["x2和y2定义了p2点的横纵坐标",{"2":{"32":1}}],["x1",{"2":{"32":1}}],["x1和y1定义了p1点的横纵坐标",{"2":{"32":1}}],["x",{"2":{"5":2,"6":3,"7":1,"8":1,"9":1,"24":3,"141":1,"155":1,"156":2,"157":1,"162":1,"166":5,"167":25,"173":1,"196":3,"223":1,"241":2,"260":2}}],["绑定数据",{"2":{"5":1}}],["声明一个四维向量并赋值",{"2":{"241":1}}],["声明周期理解",{"2":{"67":1}}],["声明可视化",{"2":{"5":1}}],["声明形式的api和组件化的编程范式",{"2":{"3":1}}],["挂载容器的id",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1}}],["hl",{"2":{"288":2}}],["hl=zh",{"2":{"54":1,"94":1}}],["h和资源文件",{"2":{"214":1}}],["huang",{"2":{"165":1}}],["human",{"2":{"43":3,"44":3,"45":3}}],["hstack",{"2":{"138":2,"139":1,"153":1,"163":2,"164":1,"165":1,"168":3,"169":3,"178":1,"179":1}}],["highlighted",{"2":{"288":8}}],["highlight",{"2":{"287":2,"288":1}}],["highlighting",{"0":{"287":1,"288":1},"2":{"282":2}}],["hidden",{"2":{"161":1}}],["hide",{"2":{"120":1}}],["hint",{"2":{"132":12}}],["hinttext",{"2":{"86":1}}],["histories",{"2":{"132":1}}],["hacker",{"2":{"271":1,"279":1}}],["hamburger",{"2":{"237":1}}],["handlefn",{"2":{"235":2}}],["handler",{"2":{"116":4}}],["have",{"2":{"132":1,"179":1}}],["haseventlistener",{"2":{"249":1,"261":1}}],["haserror",{"2":{"111":1}}],["hasanymatches",{"2":{"198":2}}],["hassuffix",{"2":{"196":1}}],["hasscrolled",{"2":{"172":4}}],["has",{"2":{"195":1}}],["hashomeindicator",{"2":{"177":2}}],["hasdata",{"2":{"111":1}}],["happinessx",{"0":{"100":1}}],["hover",{"2":{"309":1}}],["house",{"2":{"163":2,"164":1,"168":2,"169":1}}],["horizontal",{"2":{"153":1,"168":3,"169":3}}],["how",{"2":{"132":2}}],["hosted",{"2":{"97":1}}],["homeview中使用",{"2":{"175":1}}],["homeview使用navigationbar时传递",{"2":{"172":1}}],["homebrew",{"0":{"146":1}}],["homescreen",{"2":{"120":3}}],["home",{"2":{"58":1,"89":1,"111":1,"114":1,"115":1,"116":1,"118":1,"119":1,"120":1,"122":1,"124":1,"125":1,"130":4,"168":6,"169":6,"170":1,"271":1,"276":1}}],["http200status",{"2":{"192":4}}],["http404error",{"2":{"192":4}}],["http404error的类型是",{"2":{"192":1}}],["httpheaders",{"2":{"114":1,"115":1,"116":1}}],["http",{"2":{"109":7,"110":4,"111":4,"128":1}}],["https",{"2":{"1":1,"2":2,"7":1,"8":1,"10":1,"20":1,"27":1,"53":1,"54":3,"55":2,"67":2,"76":2,"92":5,"93":1,"94":2,"98":1,"100":1,"102":2,"103":2,"104":1,"107":1,"109":1,"110":1,"111":1,"113":1,"114":1,"115":1,"116":1,"124":1,"129":1,"131":1,"137":1,"141":1,"143":1,"147":1,"150":2,"163":2,"164":1,"176":3,"179":1,"180":1,"181":1,"184":2,"185":1,"186":3,"218":3,"232":3,"246":2,"252":2,"258":2,"265":2,"266":1,"267":1,"295":2,"297":1,"300":4,"303":2}}],["html",{"2":{"107":1,"221":1,"246":1,"271":3,"276":4,"277":1,"287":1}}],["html2canvas支持将页面保存为svg图片",{"2":{"27":1}}],["hence",{"2":{"294":1}}],["here",{"2":{"289":1,"290":1,"291":1}}],["hexagon",{"2":{"162":1,"166":2}}],["headerlink",{"2":{"295":1}}],["header",{"0":{"273":1},"1":{"274":1},"2":{"165":2}}],["headers",{"2":{"114":1,"115":1,"116":2,"273":1}}],["headimg",{"2":{"137":1}}],["heading",{"2":{"20":1,"265":1,"271":3,"274":3,"276":3}}],["head~",{"2":{"132":1}}],["help",{"2":{"107":1,"161":1,"162":1,"163":1}}],["hello",{"0":{"188":1},"2":{"16":1,"58":1,"59":1,"89":1,"103":1,"140":3,"141":1,"188":1,"195":5,"198":2,"206":5,"210":1,"285":2}}],["helloworld",{"2":{"16":2,"17":1}}],["height",{"2":{"5":1,"6":1,"7":2,"8":1,"9":1,"10":1,"70":1,"73":1,"88":1,"90":1,"126":2,"138":1,"139":1,"153":2,"156":2,"157":1,"159":1,"166":6,"167":18,"168":3,"169":3,"173":2,"177":2,"178":1,"180":1}}],["3号",{"2":{"309":2}}],["3x3矩阵",{"2":{"241":1}}],["34",{"2":{"168":2,"169":2,"177":1}}],["34086",{"2":{"167":1}}],["35237",{"2":{"167":1}}],["35",{"2":{"138":1}}],["350",{"2":{"5":1,"6":1}}],["300",{"2":{"86":1,"126":1,"166":1,"177":2}}],["30",{"2":{"66":1,"88":1,"126":1,"139":2,"160":1,"166":1}}],["325111172054350",{"2":{"186":1}}],["32",{"2":{"59":1,"162":1}}],["360",{"2":{"167":1}}],["36",{"2":{"32":1,"165":1}}],["3个控制点",{"2":{"32":1}}],["336678",{"2":{"24":1}}],["3",{"0":{"307":1},"2":{"9":2,"10":1,"30":1,"38":1,"47":9,"48":7,"49":2,"89":1,"98":2,"160":1,"162":1,"167":3,"168":2,"169":2,"191":1,"195":1,"196":2,"198":2,"199":2,"200":4,"203":1,"205":1,"206":1,"224":1,"235":1,"236":3,"239":1,"241":3,"246":2,"258":1,"265":1,"272":1,"280":2,"288":1,"292":4}}],["39",{"2":{"5":24,"6":38,"7":18,"8":24,"9":32,"10":20,"13":2,"16":6,"17":8,"24":4,"28":4,"34":9,"36":8,"38":4,"40":4,"41":4,"42":6,"43":2,"44":8,"45":10,"47":2,"49":6,"50":2,"51":8,"58":6,"59":2,"60":2,"61":6,"62":8,"66":8,"70":2,"72":4,"73":2,"75":2,"84":2,"85":4,"86":2,"87":2,"89":12,"92":8,"109":4,"110":12,"111":24,"112":2,"113":4,"114":14,"115":26,"116":32,"118":12,"119":10,"120":20,"122":16,"124":12,"125":8,"130":12,"205":1,"218":2,"219":6,"223":2,"224":4,"230":18,"232":2,"235":10,"236":12,"237":14,"253":14,"263":4,"267":4,"285":4,"286":6,"287":4,"288":18,"289":4,"290":8,"291":8,"292":16,"293":8,"295":4,"299":2,"306":8,"309":14}}],["1+0",{"0":{"307":1}}],["1是es10之前",{"2":{"306":1}}],["1的整数",{"2":{"306":1}}],["1k的star数了",{"2":{"302":1}}],["17",{"2":{"288":1}}],["170",{"2":{"72":1}}],["15px",{"2":{"309":1}}],["15",{"2":{"151":1,"174":2}}],["150",{"2":{"5":1,"6":1,"66":1}}],["19",{"2":{"198":1,"199":3}}],["192",{"2":{"70":1}}],["1999",{"2":{"9":1}}],["1998",{"2":{"9":1}}],["1997",{"2":{"9":1}}],["1996",{"2":{"9":1}}],["1995",{"2":{"9":1}}],["1994",{"2":{"9":1}}],["1993",{"2":{"9":1}}],["1992",{"2":{"9":1}}],["1991",{"2":{"9":1}}],["160",{"2":{"157":1}}],["1625",{"2":{"85":1}}],["16",{"2":{"42":1,"44":1,"45":1,"119":1,"124":1,"196":1,"288":1}}],["103",{"2":{"195":1}}],["10364",{"2":{"167":1}}],["10",{"2":{"32":1,"47":2,"70":3,"88":1,"98":2,"130":1,"139":1,"141":1,"153":1,"155":1,"156":2,"167":2,"198":2,"203":1,"230":2,"253":6,"288":2}}],["1000",{"2":{"235":1,"246":1,"309":2}}],["10000",{"2":{"28":1}}],["100",{"2":{"32":15,"66":1,"84":1,"90":1,"157":1,"159":1,"162":1,"177":1,"197":2,"198":1,"281":1}}],["18",{"2":{"41":1,"73":1,"115":1,"116":1,"254":1}}],["180",{"2":{"24":2}}],["1819667714",{"2":{"24":1}}],["1190000041361406",{"2":{"246":1}}],["1109201",{"2":{"24":1}}],["11",{"2":{"23":1,"196":1,"203":1}}],["115",{"2":{"5":1,"6":1}}],["14",{"2":{"20":1,"168":1,"169":1}}],["1",{"2":{"10":1,"24":2,"28":1,"30":1,"32":10,"34":2,"36":1,"38":2,"47":9,"48":8,"49":2,"70":1,"88":1,"89":1,"90":2,"103":1,"109":1,"110":1,"111":1,"113":1,"114":1,"115":1,"116":1,"138":2,"153":2,"160":1,"167":3,"168":1,"169":1,"181":1,"191":1,"196":3,"198":1,"200":1,"201":1,"203":1,"224":1,"230":5,"235":3,"236":3,"239":1,"241":14,"244":1,"246":3,"251":2,"253":2,"258":1,"260":3,"266":1,"267":1,"288":1,"292":2,"295":1,"300":1}}],["12",{"2":{"174":2,"178":1,"195":1,"198":1,"199":3,"203":1}}],["1231313",{"2":{"206":1}}],["123123",{"2":{"28":1}}],["123peppe",{"2":{"196":1}}],["123",{"2":{"36":8,"37":1,"51":1,"113":1,"138":4,"181":1,"190":1,"194":1,"195":1,"292":1}}],["124",{"2":{"10":1}}],["120",{"2":{"5":1,"6":1,"166":1}}],["1365679354203189248",{"2":{"53":1}}],["13",{"2":{"9":1,"196":1,"288":1}}],["==",{"2":{"36":4,"110":1,"111":1,"114":1,"115":1,"116":1,"124":1,"160":1,"168":14,"169":14,"178":1,"195":1}}],["===",{"2":{"24":3,"253":1}}],["=12",{"2":{"21":1}}],["=",{"2":{"5":3,"6":3,"7":2,"8":3,"9":4,"10":3,"16":2,"17":2,"24":5,"28":5,"31":2,"32":9,"34":2,"36":8,"37":2,"38":2,"40":1,"41":1,"42":2,"43":4,"44":3,"45":3,"47":8,"48":3,"49":3,"50":1,"51":4,"66":4,"73":1,"86":1,"89":4,"110":4,"111":4,"113":2,"114":5,"115":4,"116":6,"118":1,"119":2,"120":3,"122":8,"124":4,"125":2,"126":1,"130":12,"137":1,"139":3,"140":1,"141":11,"142":3,"143":6,"160":1,"164":2,"167":10,"168":6,"169":10,"170":1,"172":1,"174":1,"175":5,"177":1,"178":1,"181":4,"190":4,"191":4,"192":5,"194":8,"195":11,"196":4,"197":5,"198":12,"199":7,"200":22,"201":4,"203":9,"204":2,"205":2,"206":13,"208":1,"210":9,"212":2,"224":1,"230":23,"232":3,"235":9,"236":17,"237":2,"239":2,"241":9,"243":3,"244":6,"246":7,"248":2,"249":1,"251":5,"253":15,"263":2,"266":3,"267":4,"286":3,"292":8,"293":4,"295":3,"299":2,"306":4,"309":18}}],["ccc",{"2":{"309":1}}],["cdn",{"2":{"300":3}}],["cjs",{"2":{"286":1}}],["cb",{"2":{"235":2}}],["ctx",{"2":{"232":1}}],["ctrl",{"2":{"144":1}}],["cygwin",{"2":{"223":1}}],["cmd中默认的可执行文件",{"2":{"223":1}}],["cmd",{"2":{"223":1}}],["cmdlet",{"2":{"218":1}}],["ceventlistener",{"2":{"253":1}}],["ceventdispatcher类封装的事件处理",{"2":{"249":1}}],["ceventdispatcher",{"2":{"249":1}}],["celery",{"2":{"196":1}}],["cesrf",{"2":{"191":1}}],["central",{"2":{"92":1}}],["centered",{"2":{"272":1,"280":2}}],["centerxanchor",{"2":{"211":2}}],["centeryanchor",{"2":{"211":2}}],["center",{"0":{"78":1},"2":{"10":1,"58":1,"59":1,"72":1,"88":1,"89":1,"111":1,"114":1,"115":1,"116":1,"118":2,"120":3,"122":2,"126":1,"130":2,"180":1}}],["cgrect",{"2":{"166":4,"167":2}}],["cgpoint",{"2":{"166":1,"167":15}}],["cgfloat",{"2":{"160":2,"169":4}}],["ciaochaos",{"2":{"232":1}}],["city案例",{"2":{"297":1}}],["city",{"2":{"85":1,"137":1}}],["circle",{"2":{"139":3,"140":1,"162":3,"165":1,"168":1,"169":1,"178":1}}],["circleavatar",{"0":{"84":1},"2":{"66":1}}],["circularprogressindicator",{"2":{"111":1}}],["circular",{"2":{"70":1,"168":1,"169":1}}],["createelement",{"2":{"309":3}}],["create阶段合并成了setup阶段",{"2":{"308":1}}],["createobjecturl",{"2":{"299":1}}],["createtopuporder",{"2":{"299":1}}],["created",{"2":{"294":2,"308":1}}],["createcommandencoder",{"2":{"251":1}}],["create",{"2":{"179":1,"226":1,"286":1,"290":1}}],["createstate",{"2":{"67":1,"89":1,"111":1,"120":1,"124":1}}],["creditcard",{"2":{"162":1,"163":1}}],["crowncad",{"2":{"258":1}}],["crop",{"2":{"162":1,"165":1}}],["cross将spir",{"2":{"99":1}}],["crossaxisalignment",{"2":{"77":2,"124":2}}],["crossaxisspacing",{"2":{"66":1}}],["css",{"2":{"237":2,"286":1,"301":1}}],["css和javascript的渲染",{"2":{"101":1,"309":1}}],["css中的ease",{"2":{"32":3}}],["css中的ease的贝塞尔曲线",{"2":{"32":1}}],["css中如果声明了无效的三次贝塞尔曲线",{"2":{"32":1}}],["css动画中使用的贝塞尔曲线其实是三次贝塞尔曲线",{"2":{"32":1}}],["cubes",{"2":{"265":1}}],["cubic",{"2":{"32":6}}],["cubicbeziercurve3",{"2":{"32":6}}],["cucumber",{"2":{"196":1}}],["currently",{"2":{"286":1}}],["currentstate",{"2":{"124":1}}],["curveobject",{"2":{"32":2}}],["curve",{"2":{"32":6}}],["customize",{"2":{"287":1,"295":1}}],["custom",{"0":{"274":1,"283":1,"285":1},"1":{"284":1,"285":1,"286":1},"2":{"10":1,"174":2,"274":3,"279":1,"283":1,"285":1,"295":1}}],["cameras",{"2":{"262":2}}],["camera3d",{"0":{"250":1},"2":{"244":1,"250":1}}],["camera",{"0":{"262":1},"2":{"244":4,"247":1,"262":2}}],["cameraobj",{"2":{"244":2}}],["cameradesciption",{"2":{"103":1}}],["calculatestatistics",{"2":{"198":2}}],["call可以调用函数",{"2":{"236":1}}],["call的使用",{"2":{"236":1}}],["calling",{"2":{"120":1}}],["call",{"0":{"233":1},"1":{"234":1,"235":1,"236":1},"2":{"28":1,"236":3,"240":1}}],["callback",{"2":{"10":1,"89":1,"141":3}}],["catch",{"2":{"181":1,"203":4}}],["catmull",{"2":{"32":1}}],["catmullromcurve3",{"2":{"32":1}}],["caption2",{"2":{"168":1,"169":1}}],["capsule",{"2":{"159":1}}],["case",{"2":{"137":2,"139":2,"168":8,"169":8,"180":3,"196":3,"201":7,"203":3,"223":1}}],["cannot",{"2":{"205":1,"219":1}}],["candy",{"2":{"203":1}}],["canvasconfig",{"2":{"248":1}}],["canvas",{"2":{"167":1,"248":1,"263":2}}],["canvasview",{"2":{"167":1}}],["canvas动画",{"0":{"167":1}}],["canvas中绘制中间logo",{"2":{"232":1}}],["canvas中绘制sf图标",{"2":{"166":1}}],["canvas中绘制图片",{"2":{"166":1}}],["canvas中绘制圆",{"2":{"166":1}}],["canvas画布",{"0":{"166":1}}],["can",{"2":{"132":3,"271":3,"273":1,"276":3,"282":1,"283":1,"286":2,"288":1,"289":1,"292":2,"293":1,"294":5,"295":1}}],["cancle",{"2":{"125":1}}],["cache",{"2":{"97":1}}],["ca",{"2":{"85":1}}],["card",{"0":{"80":1},"2":{"65":1}}],["cadfile",{"2":{"267":1}}],["cad只需要最基础的平移和缩放操作即可",{"2":{"264":1}}],["cad中没有光照",{"2":{"264":1}}],["cad",{"2":{"258":1}}],["cad目前的研发工作已经比较难在短时间内有一个阶段性的进展",{"2":{"257":1}}],["cad的批注数据不一定所有图纸都有",{"2":{"267":1}}],["cad的图纸填充这个可以后面再考虑",{"2":{"246":1}}],["cad的内存泄漏问题",{"0":{"28":1}}],["cad优化",{"0":{"24":1},"1":{"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1}}],["cad思路和流程",{"0":{"23":1}}],["cn",{"2":{"20":1,"54":2,"55":2,"76":1,"92":1,"93":1,"94":1,"97":2,"98":1,"100":1,"104":1,"107":1,"124":1,"129":1,"131":1,"147":1,"150":2,"184":1,"185":1,"186":3,"218":2,"252":1,"265":2}}],["c",{"2":{"18":1,"125":2,"126":2,"251":2,"253":2}}],["clear",{"2":{"138":1,"169":1}}],["cleanup选项来禁止删除下载的包",{"2":{"228":1}}],["clean",{"2":{"103":2}}],["cloud",{"2":{"258":1}}],["cloudxr网站申请获得",{"2":{"55":1}}],["cloudxr部署",{"2":{"55":1}}],["cloudxr平台基于腾讯云的部署和应用",{"2":{"53":1}}],["cloudxr",{"0":{"53":1},"1":{"54":1,"55":1},"2":{"53":1,"55":2}}],["closesubpath",{"2":{"167":1}}],["close",{"2":{"8":1,"51":1,"120":2}}],["click",{"2":{"285":2}}],["click=",{"2":{"237":1}}],["clicked",{"2":{"210":1}}],["clicking",{"2":{"179":1}}],["client",{"2":{"55":2,"271":1}}],["cli",{"2":{"21":2,"217":1,"218":1,"224":2,"300":1}}],["classname",{"2":{"253":2}}],["class=",{"2":{"237":7,"286":1}}],["class中的成员属性必须给个默认值",{"2":{"43":1}}],["class类",{"0":{"43":1},"1":{"44":1,"45":1}}],["class",{"2":{"16":1,"44":1,"45":1,"89":3,"111":3,"114":1,"115":1,"116":2,"118":2,"119":3,"120":4,"122":2,"124":3,"130":3,"175":1,"200":2,"203":1,"210":1,"224":1,"253":2,"286":1}}],["chrome浏览器",{"0":{"145":1}}],["chrome显示一个页面",{"2":{"101":1}}],["check",{"2":{"218":1,"286":1}}],["checkmark",{"2":{"139":1,"162":1,"165":1}}],["checkboxshape",{"2":{"139":3}}],["checkboxstyle",{"2":{"139":3}}],["checked",{"2":{"120":1}}],["chore",{"2":{"134":1}}],["chmod",{"2":{"103":1}}],["chksm=be585f63892fd6758ccbf517fba2a5a93da38afb49418c34eac8209e9c93d3e47702ef12ac1f",{"2":{"102":1}}],["chipss",{"2":{"203":1}}],["chips",{"2":{"203":1}}],["chip版本",{"2":{"94":1}}],["china",{"2":{"165":1,"176":1}}],["childlinode",{"2":{"309":3}}],["childulnode",{"2":{"309":3}}],["childnode",{"2":{"309":3}}],["child",{"2":{"58":1,"59":2,"62":4,"66":3,"70":1,"74":1,"78":1,"79":1,"80":1,"81":1,"82":1,"86":1,"87":1,"88":3,"89":5,"90":1,"111":1,"114":2,"115":2,"116":2,"118":4,"119":1,"120":7,"122":6,"124":3,"125":6,"126":3,"130":4,"314":4}}],["children",{"2":{"6":1,"61":1,"62":1,"63":1,"66":2,"77":1,"83":1,"120":1,"122":1,"124":1,"125":1,"126":1}}],["character",{"2":{"206":2}}],["chart",{"2":{"5":5,"6":5,"7":5,"8":5,"9":5,"10":5}}],["chao",{"2":{"165":1}}],["chaochao2",{"2":{"300":1}}],["chaochao",{"2":{"16":1,"17":1,"21":1,"97":3,"217":1,"224":2,"300":1}}],["change",{"2":{"8":1}}],["coins",{"2":{"203":1}}],["coinsdeposited",{"2":{"203":4}}],["coinsneeded",{"2":{"203":4}}],["cocoapods如何发布公有库",{"0":{"186":1}}],["cocoapods",{"0":{"176":1},"2":{"176":2}}],["cos",{"2":{"167":2}}],["corresponding",{"2":{"276":1}}],["correct",{"2":{"218":1}}],["core",{"2":{"249":2,"250":1,"261":2}}],["core库中list",{"2":{"47":1}}],["cornerradius",{"2":{"153":1,"156":1,"160":10,"168":3,"169":3,"177":1,"180":1}}],["codable",{"2":{"137":3,"142":1}}],["codeimage",{"2":{"299":2}}],["codeblock",{"2":{"290":1}}],["code",{"0":{"270":1,"287":1,"288":1,"289":1,"290":1,"291":1,"293":1},"2":{"96":1,"194":2,"248":2,"266":1,"282":5,"285":2,"287":2,"288":2,"289":5,"290":5,"291":5,"292":2,"293":2,"294":1}}],["codeactionsonsave",{"2":{"1":1,"219":1}}],["cool",{"2":{"272":1,"280":2}}],["cookbook",{"2":{"124":1}}],["coordinate",{"2":{"3":1,"6":1}}],["course",{"2":{"173":1}}],["courses",{"2":{"173":1,"178":1}}],["could",{"2":{"86":1}}],["country",{"2":{"181":2}}],["count++",{"2":{"130":1,"230":2}}],["counter",{"2":{"130":1,"230":1}}],["count",{"2":{"66":1,"130":6,"141":4,"203":6,"206":1,"230":10}}],["cover",{"2":{"66":1,"75":1}}],["coloured",{"2":{"287":1}}],["colored",{"0":{"290":1}}],["color或者其他的装饰",{"2":{"65":1}}],["colorscheme",{"2":{"160":3}}],["colorschemeseed",{"2":{"89":1}}],["colors",{"2":{"31":2,"59":2,"63":5,"66":2,"70":2,"72":1,"73":1,"76":2,"85":1,"90":4,"111":1,"125":3,"126":1,"158":2,"160":1,"166":1,"167":1,"290":1}}],["color",{"2":{"6":2,"7":1,"8":2,"32":1,"59":2,"63":5,"66":2,"70":3,"72":1,"73":1,"76":2,"85":1,"89":1,"125":1,"126":1,"138":1,"153":1,"155":2,"156":2,"166":1,"168":12,"169":13,"174":2,"177":2,"180":1,"241":4,"291":1,"309":1}}],["col",{"2":{"272":2,"280":4}}],["collidercomponent",{"2":{"243":2}}],["collider源码路径",{"2":{"243":1}}],["collider",{"2":{"243":1}}],["columns",{"2":{"177":1}}],["column同理",{"2":{"77":1}}],["column或其他复杂widget",{"2":{"60":1}}],["column",{"0":{"77":1},"2":{"57":1,"120":1,"124":1,"126":1}}],["co",{"2":{"27":1,"303":1}}],["condition",{"2":{"198":3}}],["control2",{"2":{"167":4}}],["control1",{"2":{"167":4}}],["controller中的变量可以是observable类型的变量",{"2":{"129":1}}],["controller是状态的管理者",{"2":{"129":1}}],["controller",{"0":{"213":1},"2":{"124":1,"130":3,"212":3,"213":1}}],["continuous",{"2":{"160":1,"168":2,"169":2,"177":1}}],["contained",{"2":{"276":1}}],["containers",{"0":{"283":1},"1":{"284":1,"285":1,"286":1},"2":{"283":1}}],["containersdefault",{"2":{"282":1}}],["container是一个widget",{"2":{"57":1}}],["container",{"0":{"70":1},"2":{"5":3,"6":3,"7":3,"8":3,"9":3,"10":3,"59":1,"65":1,"66":3,"175":1,"285":1,"286":1}}],["contains",{"2":{"178":1,"195":1}}],["contain",{"2":{"66":2,"75":1}}],["context3d",{"2":{"248":1}}],["context",{"2":{"58":1,"59":1,"89":3,"111":2,"114":1,"115":1,"116":1,"118":5,"119":5,"120":10,"122":1,"124":3,"125":14,"126":7,"130":2,"166":6,"167":2}}],["contentscustom",{"2":{"282":1}}],["contents",{"0":{"282":1},"2":{"283":1,"294":1}}],["contentsof",{"2":{"206":2}}],["contentview",{"2":{"163":2,"168":2,"169":1,"175":1}}],["contentmode",{"2":{"157":1,"178":1}}],["contenttextstyle",{"2":{"125":1}}],["content",{"2":{"51":2,"120":1,"124":1,"125":1,"140":2,"153":1,"160":3,"237":1}}],["converted",{"2":{"276":2}}],["convertednumber",{"2":{"195":5}}],["convert库",{"2":{"110":2}}],["convert",{"2":{"110":1,"111":1}}],["convertio",{"2":{"27":1}}],["conversion",{"2":{"10":1}}],["consola是一个功能更丰富",{"2":{"238":1}}],["consola",{"0":{"238":1}}],["console",{"2":{"16":1,"24":2,"28":1,"219":1,"224":2,"230":2,"234":2,"235":5,"236":6,"246":1,"253":7,"267":2,"285":1,"306":4}}],["constraint",{"2":{"210":2,"211":4}}],["constructor",{"2":{"16":1,"224":1,"253":1}}],["constants",{"2":{"237":1}}],["constant",{"2":{"172":1}}],["const",{"2":{"5":2,"6":2,"7":1,"8":1,"9":2,"10":1,"16":1,"17":2,"32":9,"34":1,"58":3,"59":3,"63":2,"66":5,"70":4,"76":1,"83":1,"85":2,"86":1,"87":1,"89":10,"111":5,"114":4,"115":4,"116":4,"118":8,"119":5,"120":13,"122":8,"124":8,"125":13,"126":8,"130":3,"219":1,"230":12,"232":1,"235":1,"236":6,"246":3,"251":2,"253":5,"286":1,"292":8,"293":4,"309":3}}],["conflicts",{"2":{"286":1}}],["conflict",{"2":{"4":1}}],["configurable",{"2":{"295":1}}],["configuration",{"0":{"295":1},"2":{"139":5,"282":1,"294":2}}],["configured",{"2":{"132":1,"273":1,"282":1,"294":1}}],["config",{"2":{"1":2,"19":3,"132":6,"219":2,"287":1,"292":2,"293":11,"295":4}}],["com访问到资源",{"2":{"300":1}}],["comes",{"2":{"272":1}}],["combine",{"0":{"175":1},"2":{"175":1}}],["commonjs插件来解决这个问题",{"2":{"219":1}}],["comments",{"2":{"290":1,"291":1}}],["comment",{"2":{"185":1,"218":2,"265":1,"267":2,"288":1,"289":1}}],["commit",{"0":{"134":1},"2":{"134":1}}],["commander",{"2":{"219":3}}],["commands",{"2":{"132":1}}],["command",{"2":{"4":1,"95":1,"96":1,"132":1,"144":1,"152":7,"219":1,"251":3,"253":1}}],["comp",{"2":{"237":2}}],["computed",{"2":{"230":2}}],["componentbase",{"2":{"253":1}}],["componentbase类实现自icomponent接口",{"2":{"253":1}}],["componentcollect",{"2":{"251":1,"253":1}}],["component",{"2":{"237":1,"286":1}}],["componentslateupdatelist",{"2":{"244":1}}],["componentsupdatelist",{"2":{"244":1}}],["componentscomputelist",{"2":{"244":1,"251":1,"253":1}}],["componentsbeforeupdatelist",{"2":{"244":1}}],["components",{"2":{"171":1,"243":1,"246":1,"279":1}}],["composite",{"2":{"19":5}}],["composition",{"2":{"3":1,"231":1}}],["completes",{"2":{"120":1}}],["com",{"2":{"2":2,"7":1,"8":1,"10":1,"53":1,"54":3,"55":1,"76":1,"92":4,"94":1,"102":1,"103":1,"107":1,"109":1,"110":1,"111":1,"113":1,"114":1,"115":1,"116":1,"137":1,"138":1,"141":1,"143":1,"150":1,"163":2,"164":1,"176":1,"181":1,"184":1,"218":1,"232":3,"246":2,"252":1,"258":2,"266":1,"267":1,"295":2,"297":1,"300":1,"303":1}}],["gh",{"2":{"300":2}}],["given",{"2":{"276":1}}],["git分支更名",{"2":{"132":1}}],["git",{"0":{"148":1},"2":{"132":9,"232":3,"266":1}}],["git常用命令",{"0":{"132":1}}],["github",{"0":{"280":1},"2":{"54":1,"103":1,"218":1,"232":3,"266":1,"278":1,"295":2,"297":1,"303":1}}],["gpu",{"2":{"265":1}}],["gpu拾取是否就是缓冲区拾取",{"2":{"265":1}}],["gpu拾取",{"2":{"265":1}}],["gpgpu",{"2":{"26":1,"266":1}}],["gltf格式的数据格式是怎样的",{"0":{"313":1}}],["gl",{"2":{"263":1}}],["globalbindgroup",{"2":{"248":1}}],["globals",{"2":{"237":2}}],["global",{"2":{"132":1}}],["globalkey",{"2":{"124":1}}],["games101的图形学也可以慢慢的学起来了",{"2":{"259":1}}],["gap",{"2":{"120":1}}],["gzip压缩",{"2":{"257":1}}],["gfx",{"2":{"248":1}}],["g来安装",{"2":{"224":1}}],["gui",{"2":{"246":2}}],["guide",{"2":{"246":1}}],["guten",{"2":{"206":2}}],["guard",{"2":{"203":3}}],["good",{"2":{"196":2}}],["google",{"2":{"54":1,"76":1,"92":1}}],["golabstring",{"2":{"175":3}}],["go",{"2":{"118":1}}],["griditem",{"2":{"177":1}}],["grid",{"0":{"177":1}}],["gridview",{"2":{"65":1,"66":1}}],["graphics",{"2":{"248":1}}],["gradient",{"2":{"167":1}}],["gradle",{"2":{"92":2}}],["gray",{"2":{"138":1,"164":1,"178":1,"180":1}}],["greater",{"2":{"205":1}}],["greet",{"2":{"198":4}}],["greeting",{"2":{"195":3,"206":15}}],["green",{"2":{"63":3,"76":1,"125":2}}],["grey",{"2":{"125":1}}],["groups",{"0":{"293":1}}],["groupsmarkdown",{"2":{"282":1}}],["groupdetails表格header",{"2":{"282":1}}],["groupdata",{"2":{"24":1}}],["group",{"0":{"270":1},"2":{"168":1,"169":1,"293":2}}],["groupby",{"2":{"8":1}}],["gems",{"2":{"176":1}}],["gem",{"2":{"176":4}}],["gear",{"2":{"162":1,"163":1}}],["getelementbyid",{"2":{"309":3}}],["gets",{"2":{"275":1}}],["getshader",{"2":{"248":2}}],["getstring",{"2":{"122":1}}],["getting",{"2":{"271":1,"294":2}}],["gettime",{"2":{"246":2}}],["getters",{"2":{"230":1}}],["getcomponenttree",{"2":{"230":4}}],["getinstance",{"2":{"122":3,"253":3}}],["getdata",{"2":{"122":2,"230":5}}],["get",{"2":{"94":1,"97":1,"109":3,"110":1,"111":1,"113":1,"114":1,"115":2,"116":2,"128":2,"130":5,"137":1,"200":1,"202":1,"267":1,"273":1,"277":1,"278":1}}],["getx路由管理",{"2":{"131":1}}],["getxcontroller",{"2":{"130":1}}],["getx会将已经实例化的controller注入到我们需要使用它的widget中",{"2":{"129":1}}],["getx会自动通知所有依赖它的widget",{"2":{"129":1}}],["getx还提供了依赖注入的功能",{"2":{"129":1}}],["getx使用rx库来实现响应式编程",{"2":{"129":1}}],["getx使用和插件",{"2":{"100":1}}],["getx的状态管理原理是基于响应式编程和依赖注入的",{"2":{"129":1}}],["getx状态管理",{"0":{"129":1},"1":{"130":1}}],["getx安装",{"0":{"128":1}}],["getx是第三方的状态管理插件",{"2":{"68":1}}],["getx",{"0":{"68":1}}],["getname",{"2":{"40":1}}],["getpoints",{"2":{"32":1}}],["geometryreader",{"2":{"169":1}}],["geometry",{"0":{"174":1},"2":{"24":4,"25":1,"26":1,"32":2}}],["generated",{"2":{"274":1,"277":1}}],["generate",{"2":{"47":2,"66":1,"119":1}}],["generate的用法",{"2":{"47":1}}],["gender",{"2":{"7":1}}],["genre",{"2":{"5":6,"6":7}}],["g",{"2":{"12":1,"21":1,"206":3,"223":1}}],["gw",{"2":{"7":1}}],["gt",{"2":{"5":7,"6":7,"7":7,"8":8,"9":7,"10":8,"21":1,"47":5,"48":3,"49":1,"55":1,"66":4,"89":11,"103":6,"106":3,"109":1,"110":1,"111":8,"114":3,"115":2,"116":2,"118":1,"119":3,"120":6,"122":1,"124":3,"125":2,"130":8,"137":1,"139":1,"141":2,"143":1,"160":2,"167":1,"169":1,"177":1,"182":2,"195":1,"196":1,"198":11,"199":1,"200":6,"201":1,"203":1,"204":2,"205":2,"230":9,"236":3,"237":11,"239":2,"241":21,"271":6,"276":6,"286":1,"287":8,"289":1,"294":1,"295":1,"299":1,"309":4}}],["g2中的核心概念",{"2":{"3":1}}],["g2是一个简洁的渐进式语法",{"2":{"3":1}}],["g2学习",{"0":{"3":1}}],["g2官网",{"2":{"2":1}}],["g2",{"0":{"2":1},"1":{"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1},"2":{"2":3,"4":1,"5":1,"6":1,"7":1,"8":2,"9":1,"10":2}}],["luosijie",{"2":{"297":1}}],["lproj",{"2":{"107":1}}],["l",{"2":{"103":1}}],["ls",{"2":{"103":1}}],["lot",{"2":{"295":1}}],["lorem",{"2":{"288":2}}],["location=global",{"2":{"217":1}}],["location",{"2":{"165":1,"241":1}}],["lock",{"2":{"103":1}}],["load提前判断资源是否存在",{"0":{"267":1}}],["loading",{"2":{"111":1}}],["load",{"2":{"111":1,"114":1,"115":1,"116":1}}],["logo",{"2":{"232":1}}],["loginview",{"2":{"140":3,"141":1}}],["logfile",{"2":{"51":2}}],["log",{"2":{"16":1,"24":2,"28":1,"51":2,"196":1,"224":2,"230":2,"234":2,"235":5,"236":6,"246":1,"253":7,"267":2,"285":2,"306":4}}],["li",{"2":{"287":4,"309":2}}],["like",{"2":{"271":1,"279":1,"293":1}}],["light1",{"2":{"241":3}}],["literal",{"2":{"206":1}}],["libraries",{"2":{"286":1}}],["library",{"2":{"168":6,"169":6}}],["library并将其打包到engine当中",{"2":{"99":1}}],["lib",{"2":{"103":1,"219":2}}],["lisi",{"2":{"42":1,"122":1,"306":3}}],["listener2",{"2":{"253":1}}],["listenerceventlistener",{"2":{"253":1}}],["listener1",{"2":{"253":2}}],["listeners",{"2":{"253":1}}],["liststyle",{"2":{"161":1,"165":1}}],["listrowseparator",{"2":{"161":2}}],["listrowseparatortint",{"2":{"161":2}}],["list的使用",{"0":{"161":1}}],["listpage",{"2":{"137":2}}],["listtile",{"0":{"85":1},"2":{"65":1,"119":1,"126":3}}],["listview",{"2":{"65":1,"119":1}}],["listview和stack",{"2":{"57":1}}],["list遍历方法",{"2":{"47":1}}],["list中的常用方法",{"2":{"47":1}}],["list",{"2":{"35":1,"47":4,"66":2,"98":1,"119":2,"137":1,"161":1,"165":2,"178":1,"198":3,"236":6,"245":1,"281":1,"287":1,"295":1}}],["linux",{"2":{"255":1}}],["link后的命令不会执行",{"2":{"219":1}}],["link后的命令才会用node命令执行",{"2":{"219":1}}],["link为什么不会让命令执行",{"2":{"219":1}}],["link创建的软连接并不会执行",{"2":{"219":1}}],["link以后",{"2":{"217":1}}],["link相当于将当前本地模块链接到npm目录下",{"2":{"217":1}}],["link命令",{"2":{"217":2}}],["link",{"2":{"163":4,"164":1,"219":1,"274":1,"276":1}}],["linkfillopacity",{"2":{"10":1}}],["linksfrontmattergithub",{"2":{"282":1}}],["linkspage",{"2":{"282":1}}],["links",{"0":{"275":1,"276":1,"278":1},"1":{"276":1,"277":1,"278":1},"2":{"10":1,"237":1,"273":1,"275":1,"276":1,"277":1,"278":1}}],["line3",{"2":{"292":4}}],["linenumbers",{"2":{"292":1}}],["lines",{"2":{"288":3,"289":2}}],["lines绘制",{"2":{"245":1}}],["linesegments",{"2":{"245":1}}],["linear",{"2":{"167":1}}],["lineargradient",{"2":{"158":2,"160":1,"166":1,"167":1}}],["linearprogressindicator",{"2":{"90":1}}],["linelimit",{"2":{"153":2,"168":1,"169":1}}],["linebasicmaterial",{"2":{"32":1}}],["line2",{"2":{"292":4}}],["line2通过使用顶点扩展",{"2":{"30":1}}],["line2通过使用自定义着色器",{"2":{"30":1}}],["line2使用自定义的着色器程序来渲染线条",{"2":{"30":1}}],["line2的底层原理包括以下重要步骤",{"2":{"30":1}}],["line",{"0":{"288":1,"292":1},"2":{"8":1,"9":1,"32":1,"132":1,"219":1,"245":1,"288":6,"289":1,"290":2,"291":1,"292":16}}],["level",{"2":{"295":1}}],["left",{"2":{"210":1}}],["less",{"2":{"205":1,"302":1}}],["lessthanten",{"2":{"198":2}}],["learn",{"2":{"168":2,"169":1}}],["leadinganchor",{"2":{"211":3}}],["leading",{"2":{"85":1,"138":2,"140":1,"153":3,"164":1,"174":4,"178":1}}],["leoafarias",{"2":{"98":1}}],["length",{"2":{"47":1,"119":1,"200":2,"235":3}}],["let将匹配等式的值赋给常量x",{"2":{"196":1}}],["letterspacing",{"2":{"72":1,"73":1}}],["let",{"2":{"24":2,"28":4,"137":2,"139":2,"141":4,"142":5,"143":3,"167":7,"175":1,"177":1,"180":1,"181":2,"190":3,"191":2,"192":5,"194":4,"195":2,"196":1,"198":4,"199":4,"200":4,"201":3,"203":3,"204":1,"206":11,"210":1,"212":1,"235":1,"236":2,"243":1,"244":1,"246":3,"251":5,"253":4,"299":2,"306":2,"309":2}}],["legend",{"2":{"6":1}}],["legacy",{"2":{"4":2}}],["launchscreen",{"2":{"209":1}}],["launches",{"2":{"120":1}}],["lazyvgrid",{"2":{"177":1}}],["lazy",{"0":{"177":1}}],["largest",{"2":{"196":4}}],["large",{"2":{"165":1}}],["largetitle",{"2":{"153":1,"174":2}}],["late",{"2":{"111":1}}],["lang",{"2":{"271":1,"279":1}}],["languages",{"2":{"287":2,"303":1}}],["language",{"2":{"99":2,"287":2}}],["lang=",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1}}],["layer",{"2":{"31":4}}],["layoutmargins",{"2":{"211":1}}],["layoutmarginsguide的y轴中心对齐",{"2":{"211":1}}],["layoutmarginsguide的左侧对齐",{"2":{"211":1}}],["layoutmarginsguide的顶部对齐",{"2":{"211":1}}],["layoutmarginsguide是一个有助于创建视图布局约束并考虑内边距的便捷工具",{"2":{"211":1}}],["layoutmarginsguide是在ios中用于指代视图的内边距区域的一个特殊属性",{"2":{"211":1}}],["layoutmarginsguide`包括以下四个属性",{"2":{"211":1}}],["layoutmarginsguide",{"2":{"210":2,"211":8}}],["layouts",{"2":{"174":2}}],["layout",{"2":{"10":1,"58":2,"237":1,"309":1}}],["label",{"2":{"139":2,"140":3,"162":3,"163":7,"164":6,"168":1,"169":1,"178":1,"179":1,"210":1}}],["labelfontweight",{"2":{"10":1}}],["labelspacing",{"2":{"10":1}}],["ltr",{"2":{"59":1}}],["lt",{"2":{"5":6,"6":6,"7":6,"8":6,"9":6,"10":6,"28":1,"47":4,"48":3,"49":1,"55":1,"66":1,"89":8,"103":4,"109":1,"110":1,"111":6,"114":2,"115":1,"116":1,"119":1,"120":4,"124":2,"125":2,"137":1,"161":1,"165":1,"177":1,"197":5,"198":2,"199":1,"203":1,"204":2,"205":1,"206":1,"237":9,"241":18,"246":2,"271":6,"276":6,"286":1,"287":8,"289":1,"294":1,"299":1}}],["绘制线段",{"2":{"245":1}}],["绘制线段的能力",{"0":{"245":1},"1":{"246":1}}],["绘制线条时",{"2":{"30":1}}],["绘制宽度和高度为50的logo",{"2":{"232":1}}],["绘制过程中使用canvas本身的尺寸信息做不同屏幕的自适应",{"2":{"166":1}}],["绘制桑基图来说",{"2":{"10":1}}],["绘制第一张图表",{"0":{"5":1}}],["绘制数据驱动的图形",{"2":{"3":1}}],["后端支付直接返回png处理",{"0":{"299":1}}],["后来就一直用语雀",{"2":{"296":1}}],["后期特效这些",{"2":{"264":1}}],["后面我也会慢慢用webgpu来重写cad的一个渲染层",{"2":{"257":1}}],["后面是函数返回值类型",{"2":{"241":1}}],["后面地东西都会被忽略",{"2":{"200":1}}],["后面的子项覆盖在基础widget的顶部",{"2":{"66":1,"83":1}}],["后面的优化方向",{"0":{"26":1}}],["后面有时间还是要学习学习",{"2":{"2":1}}],["后续的方向也会基于webgpu做更多的案例学习和尝试",{"2":{"259":1}}],["后续可以尝试在自己的博客里面引入codepen",{"2":{"251":1}}],["后续补充了脚手架相关内容的学习",{"2":{"224":1}}],["后续即使给盒子增加了宽度",{"2":{"138":1}}],["后续尝试简单复现却并没有将问题复现出来",{"2":{"28":1}}],["后续学习一下如何使用eslint的配置安装",{"2":{"21":1}}],["后续又换了一个干净的vue3项目",{"2":{"4":1}}],["后两个是npm",{"2":{"19":1}}],["或许我们也可以尝试把cad做成一个网页版的autocad",{"2":{"257":1}}],["或try",{"2":{"203":1}}],["或者ie里的currentstyle时",{"2":{"309":1}}],["或者在",{"2":{"211":1}}],["或者try",{"2":{"203":1}}],["或者使用",{"2":{"198":1}}],["或者类型",{"2":{"194":1}}],["或者根本没有值",{"2":{"194":1}}],["或者有值",{"2":{"194":1}}],["或",{"2":{"4":1,"19":1,"195":1}}],["当对dom节点有较大改动时",{"2":{"309":1}}],["当元素的位置发生变化时",{"2":{"309":1}}],["当元素样式的改变不影响它在文档流中的位置时",{"2":{"309":1}}],["当天下午就用vitepress搭建了一个自己的文档站点",{"2":{"296":1}}],["当我们调用getcomputedstyle方法",{"2":{"309":1}}],["当我们需要使用controller时",{"2":{"129":1}}],["当我安装了以后",{"2":{"219":1}}],["当一个函数抛出一个错误时",{"2":{"203":1}}],["当一个observable对象的值改变时",{"2":{"129":1}}],["当函数主动维护了在函数内使用的外部的变量",{"2":{"198":1}}],["当你想要子进程返回大量数据给node时",{"2":{"314":1}}],["当你确定可选类型确定包含值之后",{"2":{"195":1}}],["当你通过一个值来声明变量和常量时",{"2":{"190":1}}],["当self是结构体或枚举实例时",{"2":{"141":1}}],["当observabel对象的值改变时",{"2":{"130":1}}],["当父部件重建时",{"2":{"67":1}}],["当某个布局太大而超出屏幕时",{"2":{"62":1}}],["当子类中存在和父类同名的方法时",{"2":{"45":1}}],["当前的依赖项和之前安装的某些包需求的依赖项有冲突",{"2":{"4":1}}],["当然",{"2":{"1":1,"252":1}}],["b237",{"2":{"218":1}}],["being",{"2":{"294":1}}],["beginning",{"2":{"287":1}}],["better",{"2":{"286":1}}],["bell",{"2":{"168":1,"169":1}}],["beforedestroy",{"2":{"308":1}}],["beforeupdate",{"2":{"308":1}}],["beforemount",{"2":{"308":1}}],["beforecreate",{"2":{"308":1}}],["before",{"2":{"132":1,"206":4}}],["be",{"2":{"119":1,"120":1,"205":2,"273":1,"276":1,"279":1,"282":1,"283":1,"286":2,"294":2}}],["bezier",{"2":{"32":6}}],["bytedance",{"2":{"184":1}}],["by",{"2":{"111":1,"132":1,"179":1,"277":1,"283":1,"285":1,"288":1,"292":2,"294":1}}],["branches",{"2":{"132":2}}],["branch",{"2":{"132":1}}],["brew",{"2":{"98":2,"147":1,"176":1}}],["broken",{"2":{"4":1}}],["banner",{"2":{"219":1}}],["bar",{"2":{"203":1,"271":6,"276":7}}],["barrierdismissible",{"2":{"125":2}}],["baidu",{"2":{"163":2,"164":1}}],["badge",{"2":{"162":1,"165":1}}],["backticks",{"2":{"287":1}}],["back",{"2":{"118":1}}],["background=",{"2":{"309":1}}],["backgroundcolor",{"2":{"90":2,"125":1,"208":1,"210":1}}],["backgroundimage",{"2":{"66":1,"84":1}}],["background",{"2":{"65":1,"138":1,"153":1,"156":2,"162":2,"168":2,"169":2,"173":1,"174":4,"177":1,"178":1}}],["basics",{"2":{"118":1,"294":4}}],["basic",{"2":{"116":1}}],["basis",{"2":{"8":1}}],["based",{"2":{"258":1}}],["basedir=`cygpath",{"2":{"223":1}}],["basedir=$",{"2":{"223":1}}],["baseurl",{"2":{"115":1,"116":1}}],["baseoptions",{"2":{"115":2,"116":2}}],["base",{"2":{"97":1,"206":1}}],["basement",{"2":{"7":1}}],["bash",{"2":{"97":2,"133":1}}],["bg",{"2":{"62":4,"66":3,"70":1,"75":1,"84":1}}],["blur",{"2":{"289":1}}],["blue",{"2":{"85":1,"111":1,"139":1,"153":1,"158":2,"161":1,"162":3,"164":1,"166":1,"167":1,"168":1,"169":1,"174":1}}],["blank",{"2":{"278":1}}],["black38",{"2":{"70":1}}],["black45",{"2":{"66":1}}],["black",{"2":{"63":2,"72":1,"73":1,"76":1,"90":1,"126":1,"140":3,"160":1,"174":1}}],["black87",{"2":{"59":1}}],["blendmode",{"2":{"160":1,"168":1,"169":1}}],["block",{"2":{"284":2,"287":1}}],["blocks",{"0":{"287":1,"288":1,"289":1,"290":1,"291":1},"2":{"287":1,"292":2,"293":1}}],["blockserrors",{"2":{"282":1}}],["blockscolored",{"2":{"282":1}}],["blocksfocus",{"2":{"282":1}}],["blocksline",{"2":{"282":2}}],["blob",{"2":{"103":1,"299":4}}],["blogging",{"2":{"271":1,"279":1}}],["blog",{"2":{"2":1}}],["blink渲染引擎使用skia来处理所有的2d图形操作",{"2":{"101":1,"309":1}}],["blink渲染引擎是google开发的一种基于webkit的渲染引擎",{"2":{"101":1,"309":1}}],["buycode",{"2":{"299":1}}],["but",{"2":{"288":2}}],["button",{"2":{"139":1,"140":2,"141":1,"143":1,"164":4,"168":1,"169":1,"178":1,"179":1}}],["built",{"2":{"272":1}}],["builtin",{"2":{"241":1}}],["builder",{"2":{"111":1,"118":1,"119":2,"120":1,"125":2,"126":1,"211":1}}],["buildgridtilelist",{"2":{"66":2}}],["buildgrid",{"2":{"66":1}}],["buildstack",{"2":{"66":1}}],["buildcontext",{"2":{"58":1,"59":1,"89":3,"111":1,"114":1,"115":1,"116":1,"118":2,"119":2,"120":5,"122":1,"124":2,"125":2,"126":1,"130":1}}],["build",{"2":{"58":1,"59":1,"67":2,"89":2,"103":1,"106":1,"111":1,"114":1,"115":1,"116":1,"118":2,"119":2,"120":3,"122":1,"124":2,"130":2,"134":1,"153":1,"174":2,"237":3}}],["buffergeometry",{"2":{"24":1,"32":1}}],["buffergeometry先进行insert数据的旋转",{"2":{"24":1}}],["b",{"2":{"36":7,"48":4,"66":1,"125":2,"126":2}}],["both",{"2":{"275":1,"288":1}}],["bottomanchor",{"2":{"211":1}}],["bottom",{"2":{"160":1,"168":2,"169":2,"177":1}}],["bottomtrailing",{"2":{"158":2,"166":1}}],["book",{"2":{"266":1}}],["boolean",{"2":{"306":1}}],["bool",{"2":{"35":1,"172":1,"175":1,"189":1,"198":3}}],["bound",{"2":{"243":1}}],["bob",{"2":{"198":2}}],["borderradius",{"2":{"70":2}}],["border",{"2":{"70":2,"86":1,"138":2}}],["borders",{"2":{"65":1}}],["box",{"2":{"279":1,"284":2}}],["boxfit",{"2":{"66":1,"75":1}}],["boxdecoration",{"2":{"59":1,"66":1,"70":3}}],["body",{"2":{"58":1,"71":1,"89":1,"105":1,"110":1,"111":2,"114":1,"115":1,"116":1,"118":2,"119":2,"120":2,"122":1,"124":1,"130":2,"141":1,"160":1,"167":1,"168":2,"169":2,"174":1,"175":1,"178":1}}],["bold",{"2":{"10":1,"66":1,"138":1,"153":1,"168":1,"169":1,"174":2,"178":2}}],["bb",{"2":{"28":2,"190":3,"191":2,"192":1,"253":2}}],["bignumber",{"2":{"307":1}}],["bigint是es10新增的数据类型",{"2":{"306":1}}],["bigint",{"2":{"306":1}}],["bitmap",{"2":{"246":1}}],["billing",{"2":{"161":1,"162":1,"163":1}}],["biz=mjm5mda2mti1ma==",{"2":{"102":1}}],["bind不会直接调用函数",{"2":{"236":1}}],["bind的使用",{"2":{"236":1}}],["bind",{"0":{"233":1},"1":{"234":1,"235":1,"236":1},"2":{"236":3}}],["binding",{"2":{"172":1}}],["binaryify",{"2":{"232":1}}],["bin下",{"2":{"224":1}}],["bin下生成软链接",{"2":{"224":1}}],["bin下的软链接",{"2":{"223":1}}],["bin",{"0":{"217":1},"2":{"97":3,"217":1,"219":3,"223":6,"224":1}}],["bin是flutter安装路径",{"2":{"97":1}}],["bimface的cad图纸加载图纸消耗的内存很少",{"2":{"29":1}}],["birds顺便来学一学在three中如何使用着色器并且如何实现一些优雅的效果",{"2":{"266":1}}],["birds",{"2":{"26":1}}],["bio",{"2":{"10":1}}],["b039",{"2":{"7":1}}],["npx执行完成之后",{"0":{"228":1}}],["npx不会像npm或yarn一样将包下载到本地的node",{"2":{"227":1}}],["npx会在执行完命令后删除下载的包",{"2":{"228":1}}],["npx会在执行时",{"2":{"226":1}}],["npx会把远端的包下载到本地吗",{"0":{"227":1}}],["npx",{"0":{"225":1},"1":{"226":1,"227":1,"228":1},"2":{"226":1}}],["npm发布的sdk通过链接形式访问",{"0":{"300":1}}],["npmpnpmyarn",{"2":{"270":1}}],["npm",{"0":{"19":1,"222":1,"223":1},"1":{"223":1,"224":1},"2":{"4":2,"19":2,"20":1,"134":1,"217":2,"219":5,"223":1,"270":1,"286":1}}],["nginx",{"0":{"220":1},"1":{"221":1}}],["nslayoutconstraint",{"2":{"210":1,"211":1}}],["nscamerausagedescription",{"2":{"103":1}}],["nine",{"2":{"201":1}}],["nil不能用于非可选的常量和变量",{"2":{"194":1}}],["nil",{"2":{"194":1,"195":3}}],["nvm",{"0":{"147":1},"2":{"147":1}}],["nvidia",{"0":{"53":1},"1":{"54":1,"55":1},"2":{"53":1}}],["navigateanddisplayselection",{"2":{"120":2}}],["navigator",{"2":{"118":2,"119":1,"120":6,"125":5,"126":3}}],["navigationtitle",{"2":{"161":1,"165":1,"178":1}}],["navigationbartitledisplaymode",{"2":{"178":1}}],["navigationbardrawer",{"2":{"178":1}}],["navigationbar中指定数据接收",{"2":{"172":1}}],["navigationbar",{"2":{"172":2}}],["navigationbaritems",{"2":{"140":1,"178":1}}],["navigationbarbackbuttonhidden",{"2":{"140":1}}],["navigationlink",{"0":{"163":1},"2":{"140":1,"163":3}}],["navigationview",{"0":{"161":1},"2":{"140":4,"178":1}}],["navigation",{"2":{"118":1,"171":1,"276":1}}],["nativexr",{"2":{"55":1}}],["named",{"2":{"286":1}}],["namedshape",{"2":{"200":4}}],["namespace",{"2":{"174":10}}],["name",{"2":{"16":5,"28":2,"40":1,"41":2,"42":1,"43":5,"44":5,"45":5,"115":1,"116":1,"122":3,"137":2,"142":4,"191":1,"195":2,"200":17,"203":4,"206":1,"218":2,"224":5,"235":12,"236":9,"237":2,"287":2,"306":7}}],["n",{"2":{"51":1,"152":1,"197":4,"206":1}}],["numberoflines",{"2":{"210":1}}],["numberoftimes",{"2":{"204":3}}],["numberofsides",{"2":{"200":9}}],["numberscode",{"2":{"282":1}}],["numbers",{"0":{"292":1},"2":{"196":2,"198":2,"199":7,"292":8}}],["number",{"2":{"194":2,"196":3,"198":4,"199":4,"230":1,"253":7,"289":1,"306":1}}],["nummap",{"2":{"49":4}}],["numset",{"2":{"48":4}}],["numlist",{"2":{"47":12}}],["null",{"2":{"35":1,"50":1,"124":2,"306":1}}],["n+1个控制点",{"2":{"32":1}}],["n阶贝塞尔曲线",{"2":{"32":1}}],["net",{"2":{"300":2}}],["net也可以这样访问github上面的资源",{"2":{"300":1}}],["netrequest",{"2":{"115":2,"116":3}}],["neat",{"2":{"272":1,"280":2}}],["never",{"2":{"173":1}}],["nextvalue",{"2":{"169":2}}],["next",{"2":{"132":1,"219":1,"288":2}}],["need",{"2":{"132":2,"287":1}}],["needs",{"2":{"119":1}}],["nested",{"2":{"294":1}}],["nest",{"2":{"21":1}}],["nestjs",{"2":{"21":1}}],["newpos",{"2":{"266":1}}],["newlist",{"2":{"236":6}}],["new绑定时",{"2":{"235":1}}],["newitem",{"2":{"203":3}}],["newvalue",{"2":{"200":2}}],["new",{"2":{"5":1,"6":1,"7":1,"8":2,"9":1,"10":1,"16":1,"17":2,"21":1,"24":1,"32":28,"120":1,"232":1,"235":1,"244":3,"246":3,"248":1,"249":1,"253":2,"263":1,"267":1,"299":1}}],["noreferrer",{"2":{"278":1}}],["normal",{"2":{"168":1,"169":1}}],["normalizey",{"2":{"8":1}}],["no",{"2":{"132":1,"219":2,"228":1,"292":1}}],["nope",{"2":{"120":3}}],["nonzero",{"2":{"96":1}}],["none",{"2":{"72":1}}],["nowtime",{"2":{"246":2}}],["now是获取的当前时间的毫秒数",{"2":{"167":1}}],["now",{"2":{"51":1,"167":5,"168":2,"169":1}}],["noemit时使用命令行参数",{"2":{"19":1}}],["noemit",{"2":{"19":5}}],["node的子进程有哪些方法",{"0":{"314":1}}],["nodenext",{"2":{"219":2}}],["node版本需要",{"2":{"21":1}}],["node依赖",{"2":{"16":1}}],["node生效",{"2":{"16":1}}],["node",{"2":{"16":3,"19":3,"219":5,"223":3,"314":2}}],["node来运行自己的测试代码",{"2":{"11":1}}],["nodestrokewidth",{"2":{"10":1}}],["nodepadding",{"2":{"10":1}}],["nodealign",{"2":{"10":1}}],["note",{"2":{"289":1,"290":1,"291":1,"294":1}}],["notice",{"2":{"271":1}}],["notifications",{"2":{"168":8,"169":8}}],["notfound",{"2":{"237":2}}],["not",{"2":{"1":1,"86":1,"192":2,"218":1,"267":1,"271":1,"285":2,"286":1,"294":2}}],["right",{"2":{"272":1,"280":2,"285":1}}],["r$",{"2":{"263":1}}],["r144",{"2":{"253":4}}],["rules",{"2":{"219":1}}],["ruby",{"2":{"176":1}}],["rubygems",{"2":{"176":2}}],["run执行的脚手架命令",{"2":{"218":1}}],["running",{"2":{"132":1}}],["runner",{"2":{"96":1,"103":1,"106":1}}],["runapp",{"2":{"89":1,"111":1,"114":1,"115":1,"116":1,"118":1,"119":1,"120":1,"122":1,"124":1,"130":2}}],["run",{"0":{"19":1,"222":1,"223":1},"1":{"223":1,"224":1},"2":{"1":1,"16":1,"19":7,"20":1,"21":1,"219":1,"224":2}}],["r",{"2":{"103":1,"176":1}}],["rasterization",{"2":{"312":1}}],["raw",{"0":{"286":1},"2":{"286":4}}],["rawvalue",{"2":{"139":2,"201":2}}],["raycaster",{"0":{"265":1}}],["raisins",{"2":{"196":1}}],["radians",{"2":{"167":2}}],["radius",{"2":{"66":1,"70":1,"84":1,"153":1,"155":1,"156":1}}],["ranges",{"2":{"288":3}}],["range",{"2":{"206":2}}],["rangeerror",{"2":{"28":1}}],["rank",{"2":{"201":2}}],["random",{"2":{"137":2,"141":2,"143":2,"181":2}}],["rollup",{"2":{"219":1}}],["root",{"2":{"213":1,"271":1,"276":1,"294":2}}],["roundedrectangle",{"2":{"160":1,"168":2,"169":2,"177":1}}],["router",{"2":{"276":1,"286":1}}],["route",{"2":{"118":3}}],["roboto",{"2":{"72":1,"73":1}}],["row",{"0":{"77":1},"2":{"61":1,"122":1}}],["row和column是水平和垂直布局的基本原始widgets",{"2":{"60":1}}],["row和column是两种最常用的布局模式",{"2":{"60":1}}],["row和column每个都有一个子widgets列表",{"2":{"60":1}}],["rom算法",{"2":{"32":1}}],["rotatez",{"2":{"24":2}}],["rotationeffect",{"2":{"167":1}}],["rotation",{"2":{"24":4}}],["relative",{"2":{"294":1}}],["rel=",{"2":{"278":1}}],["re",{"2":{"286":1}}],["revision",{"2":{"263":1}}],["reviews",{"2":{"72":1}}],["rename",{"2":{"306":4}}],["renamed",{"2":{"253":2}}],["renderele",{"2":{"309":4}}],["renderer",{"2":{"295":1}}],["renderers",{"2":{"263":1,"264":2}}],["rendered",{"2":{"294":1}}],["rendering",{"2":{"273":1,"282":1}}],["render方法的目标是在webgl上下文中呈现场景和相机",{"2":{"264":1}}],["render方法的代码并不算很多",{"2":{"264":1}}],["render方法执行",{"2":{"251":1}}],["render",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"251":1}}],["register",{"2":{"248":2}}],["reference",{"2":{"295":1}}],["ref",{"2":{"230":3}}],["refactor",{"2":{"134":1}}],["readme",{"2":{"300":1}}],["readasstring",{"2":{"51":1}}],["reate",{"2":{"226":1}}],["reactivity这一块的源代码大概是2100行左右",{"2":{"240":1}}],["react现成的组件",{"2":{"232":1}}],["react",{"2":{"218":1,"226":1}}],["recognized",{"2":{"218":1}}],["reconcile",{"2":{"132":2}}],["rectangle",{"2":{"168":2,"169":2}}],["rect",{"2":{"167":3}}],["remainder",{"2":{"167":4}}],["removed",{"2":{"290":2}}],["removedata",{"2":{"122":2}}],["removeeventlistener",{"2":{"249":1,"261":1}}],["removesubrange",{"2":{"206":2}}],["removecurrentsnackbar",{"2":{"120":1}}],["remove方法根据key移除元素",{"2":{"49":1}}],["removelast",{"2":{"47":1}}],["removeat",{"2":{"47":1}}],["remove",{"2":{"47":1,"48":1,"49":1,"122":1,"206":2}}],["repeating",{"2":{"204":2}}],["repeat",{"2":{"197":2}}],["repeatforever",{"2":{"167":1}}],["repositories",{"2":{"132":1}}],["repository",{"2":{"92":4,"287":1}}],["replace",{"2":{"132":1}}],["rebase",{"2":{"132":6}}],["require",{"2":{"232":1,"295":2}}],["required",{"2":{"41":1,"111":3,"119":2,"286":1,"289":1,"290":1,"291":1}}],["requestanimationframe",{"2":{"251":1}}],["request按钮",{"2":{"133":2}}],["request你可以在你的github代码仓库页面切换到branches页面点击branch1分支后点击new",{"2":{"133":1}}],["request时会导致冲突",{"2":{"133":1}}],["request需要实操一遍",{"2":{"133":1}}],["request",{"0":{"133":1},"1":{"134":1},"2":{"137":1,"299":1}}],["requestinterceptorhandler",{"2":{"116":1}}],["requestoptions",{"2":{"116":1}}],["requesttest",{"2":{"114":2,"115":2,"116":2}}],["reduce",{"2":{"169":1}}],["red",{"2":{"90":1,"138":2,"155":1,"156":1,"158":1,"161":1,"164":1,"168":1,"169":1,"174":1,"177":2,"309":1}}],["rest",{"2":{"279":1}}],["restaurant",{"2":{"85":1}}],["resume",{"2":{"251":2}}],["result",{"2":{"120":6,"125":4,"126":2,"137":1,"141":8,"143":4,"199":2,"204":3}}],["resizable",{"2":{"139":1,"153":2,"156":1,"157":1,"173":1,"178":1,"180":1}}],["resizetoavoidbottominset",{"2":{"105":1}}],["res",{"2":{"137":2,"204":2,"230":4,"299":1}}],["reset",{"2":{"132":1}}],["responsetype",{"2":{"299":1}}],["responsedecodable",{"2":{"137":1}}],["responselist",{"2":{"137":3}}],["responseinterceptorhandler",{"2":{"116":1}}],["response",{"2":{"109":1,"110":3,"111":3,"113":2,"114":4,"115":4,"116":7,"168":1,"169":1,"174":1}}],["response类包含成功的http请求接收到的数据",{"2":{"109":1}}],["resolution",{"2":{"4":1}}],["returnfifteen",{"2":{"198":2}}],["returns",{"2":{"120":2}}],["returning",{"2":{"120":2}}],["return",{"2":{"9":1,"58":1,"59":1,"66":1,"89":2,"109":1,"110":1,"111":6,"114":2,"115":2,"116":2,"118":2,"119":3,"120":6,"122":2,"124":5,"125":2,"126":1,"130":1,"141":1,"143":1,"167":1,"198":9,"199":1,"200":7,"201":5,"204":1,"230":3,"241":2,"248":2,"253":1,"286":1,"288":6,"289":2,"290":2,"291":2,"299":1}}],["retry",{"2":{"4":1}}],["omit",{"2":{"271":1,"276":1}}],["ourcad",{"2":{"300":1}}],["ourcad由于没有在package",{"2":{"224":1}}],["ourbim",{"2":{"221":2,"267":1}}],["our",{"2":{"179":1}}],["output",{"2":{"280":1,"281":1,"282":1,"284":1,"285":1,"287":1,"288":3,"289":1,"290":1,"291":1,"292":1,"293":1,"312":1}}],["outbound",{"2":{"278":1}}],["out",{"2":{"203":1,"279":1,"286":1}}],["outofstock",{"2":{"203":3}}],["outlink",{"2":{"165":1}}],["outlineinputborder",{"2":{"86":1}}],["out的贝塞尔曲线",{"2":{"32":2}}],["overflow的语言趋势",{"2":{"303":1}}],["overlay",{"2":{"157":1,"160":2,"168":2,"169":3}}],["override",{"2":{"45":1,"58":1,"59":1,"89":3,"111":3,"114":1,"115":1,"116":3,"118":2,"119":2,"120":4,"122":1,"124":5,"130":2,"132":1,"200":2,"210":1,"292":1}}],["override注解进行示意",{"2":{"45":1}}],["ok",{"2":{"125":1,"192":1}}],["off",{"2":{"219":2}}],["offsetheight等",{"2":{"309":1}}],["offsetwidth",{"2":{"309":1}}],["offsetby",{"2":{"206":3}}],["offset",{"2":{"156":1,"157":1,"162":1,"173":1}}],["offsetpositiondata",{"2":{"31":2}}],["ofsize",{"2":{"210":1}}],["of",{"0":{"282":1},"2":{"119":1,"120":1,"124":1,"132":1,"179":1,"195":1,"200":2,"203":1,"218":2,"251":2,"253":2,"271":1,"273":1,"274":2,"276":1,"279":2,"281":1,"282":2,"285":1,"287":2,"289":2,"290":2,"295":2}}],["olexale",{"2":{"103":1}}],["obj",{"2":{"235":2,"243":2,"306":3}}],["objc",{"2":{"210":2}}],["object3d",{"2":{"243":1,"244":2,"249":5,"261":2}}],["object",{"2":{"34":1,"306":1}}],["object是所有类的基类",{"2":{"34":1}}],["object和dynamic的区别",{"2":{"34":1}}],["observableobject",{"2":{"175":1}}],["observable类型的变量",{"2":{"130":1}}],["obs",{"2":{"130":2}}],["obx通常用于绑定单个变量的情况",{"2":{"130":1}}],["obx会自动重新构建widget",{"2":{"130":1}}],["obx是getx库中的一个特殊widget",{"2":{"130":1}}],["obx",{"0":{"130":1},"2":{"130":3}}],["obx局部更新",{"2":{"68":1}}],["opt",{"2":{"286":1}}],["optionalname",{"2":{"195":2}}],["optional",{"2":{"194":2,"195":1,"200":1}}],["optionalsquare",{"2":{"200":2}}],["optionals",{"2":{"194":1}}],["option",{"2":{"120":3,"125":3,"219":2,"273":1,"282":1,"295":1}}],["options=",{"2":{"237":1}}],["options中的user",{"2":{"137":1}}],["options",{"2":{"6":1,"7":1,"8":1,"9":1,"10":1,"114":5,"115":2,"116":5,"230":1,"287":1,"292":1,"295":3}}],["opacity",{"2":{"155":1,"156":1,"158":1,"159":1,"160":2,"162":1,"179":1,"309":1}}],["open",{"2":{"96":1,"97":1,"118":1,"182":1}}],["openwrite",{"2":{"51":1}}],["os",{"2":{"7":1}}],["other",{"2":{"5":1,"6":1,"289":1}}],["ondeactivated",{"2":{"308":1}}],["onactivated",{"2":{"308":1}}],["onappear",{"2":{"167":1}}],["onunmounted",{"2":{"308":1}}],["onupdated",{"2":{"308":1}}],["onbeforeunmount",{"2":{"308":1}}],["onbeforeupdate",{"2":{"308":1}}],["onbeforemount",{"2":{"308":1}}],["online",{"2":{"258":1}}],["onload方法去测试json数据",{"2":{"267":1}}],["onload方法确实让报错提示温和了很多",{"2":{"267":1}}],["onload",{"2":{"232":1,"267":1}}],["only",{"2":{"132":3,"289":1,"290":1,"291":1}}],["onpreferencechange",{"2":{"169":1}}],["onpressed",{"2":{"87":1,"114":1,"115":1,"116":1,"118":2,"120":3,"122":3,"124":1,"125":6,"130":2}}],["on",{"2":{"120":1,"132":1,"179":1,"196":1,"219":1,"278":1,"286":1,"287":1,"289":1,"290":1,"291":1}}],["ontapgesture",{"2":{"174":1}}],["ontap",{"2":{"119":1,"126":3}}],["onresponse",{"2":{"116":2}}],["onrequest",{"2":{"116":2}}],["onselected",{"2":{"89":1}}],["onsave",{"2":{"1":1,"219":1}}],["onerror方法提示资源不存在",{"2":{"267":1}}],["onerror",{"2":{"267":1}}],["one",{"2":{"49":2,"132":1,"274":1,"276":2,"289":1,"290":1,"291":1}}],["onmounted",{"2":{"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"308":1}}],["orillusion使用了codepen来做代码编辑",{"2":{"251":1}}],["orillusion在three的源码基础上做了更好的封装",{"2":{"249":1}}],["orillusion源码",{"0":{"247":1},"1":{"248":1,"249":1,"250":1,"251":1,"252":1,"253":1}}],["orillusion",{"2":{"246":1,"249":1,"251":1}}],["orillusion会在componentcollect这个类中进行各种类型的component收集",{"2":{"244":1}}],["orillusion中",{"2":{"243":1}}],["orillusion的帧缓冲拾取",{"0":{"243":1}}],["origin",{"2":{"132":1}}],["org",{"2":{"176":2,"278":1}}],["or切换到branch1分支的代码仓库点击compare",{"2":{"133":1}}],["or",{"2":{"4":2,"132":1,"218":2,"219":1,"271":1,"276":1,"288":1,"290":1,"291":1}}],["坐标系",{"2":{"3":1}}],["src=",{"2":{"299":1}}],["srcdir",{"2":{"294":1}}],["src",{"2":{"219":3,"232":1,"243":1,"246":1,"248":1,"249":2,"250":1,"261":3,"262":2,"263":1,"267":1}}],["s2gz13pvdva5t",{"2":{"184":1}}],["sf",{"0":{"162":1}}],["square",{"2":{"139":2,"196":1,"200":9}}],["sqlite",{"2":{"121":1}}],["syntax",{"0":{"287":1},"2":{"286":1,"287":2}}],["systemfont",{"2":{"210":1}}],["systemred",{"2":{"208":1,"210":1}}],["systemimage",{"2":{"162":3,"163":5,"164":5}}],["systemname",{"2":{"139":3,"140":1,"162":2,"163":2,"164":1,"165":2,"166":2,"168":3,"169":1}}],["system",{"2":{"138":2,"139":1,"162":2,"165":1}}],["symmetric",{"2":{"124":1}}],["symlinks文件夹",{"2":{"103":1}}],["symbol是es6新增的数据类型",{"2":{"306":1}}],["symbolrenderingmode",{"2":{"162":1}}],["symbolvariant",{"2":{"162":2,"168":1,"169":1}}],["symbols",{"0":{"162":1},"2":{"162":1}}],["symbol",{"2":{"8":1,"35":1,"162":1,"306":1}}],["swipeactions",{"2":{"164":2}}],["swipe",{"0":{"164":1}}],["swift的字符串不能用整数做索引",{"2":{"206":1}}],["swift的枚举类型尤为适合构建一组相关的错误状态",{"2":{"203":1}}],["swiftprotocol",{"2":{"202":1}}],["swiftprint",{"2":{"188":1}}],["swiftenum",{"2":{"201":1,"203":1}}],["swift按照从0开始每次加1的方式为原始值进行赋值",{"2":{"201":1}}],["swiftclass",{"2":{"200":3}}],["swiftcanvas",{"2":{"166":1}}],["swiftvar",{"2":{"195":2,"197":2,"200":1}}],["swiftif",{"2":{"195":1}}],["swiftimport",{"2":{"175":1,"210":1}}],["swiftimage",{"2":{"162":1}}],["swift中的字典可以理解为",{"2":{"191":1}}],["swift中如何使用阿里图标库",{"2":{"185":1}}],["swiftlet",{"2":{"190":1,"194":2,"195":1,"196":2,"200":1,"205":1,"206":1}}],["swiftlink",{"2":{"164":1}}],["swift学习",{"0":{"187":1},"1":{"188":1,"189":1,"190":1,"191":1,"192":1,"193":1,"194":1,"195":1,"196":1,"197":1,"198":1,"199":1,"200":1,"201":1,"202":1,"203":1,"204":1,"205":1,"206":1}}],["swift性能",{"2":{"183":1}}],["swift和flutter的区别",{"0":{"183":1},"1":{"184":1,"185":1,"186":1}}],["swift打开开发人员工具",{"2":{"182":1}}],["swiftasyncimage",{"2":{"180":1}}],["swiftgroup",{"2":{"179":1}}],["swiftgeometryreader",{"2":{"177":1}}],["swiftscrollview",{"2":{"177":1}}],["swiftstruct",{"2":{"137":1,"142":1,"167":1,"174":1,"178":1}}],["swifttabview",{"2":{"173":1}}],["swifttext",{"2":{"154":1,"158":1}}],["swiftnavigationview",{"2":{"161":1,"165":1}}],["swiftfunc",{"2":{"143":1,"181":1,"198":5,"204":1}}],["swift",{"0":{"184":1},"2":{"138":2,"139":1,"140":1,"141":3,"153":1,"155":1,"156":1,"157":1,"159":1,"160":1,"163":2,"168":2,"169":1,"170":1,"172":1,"184":1,"191":1,"192":1,"199":1,"206":3,"208":1,"211":1,"212":1}}],["swiftui的基础文章",{"2":{"186":1}}],["swiftui开发",{"0":{"151":1},"1":{"152":1,"153":1,"154":1,"155":1,"156":1,"157":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"164":1,"165":1,"166":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1,"179":1,"180":1,"181":1,"182":1}}],["swiftui",{"2":{"141":1,"160":1,"174":2,"175":1,"178":1}}],["swiftui中的组件分为",{"2":{"138":1}}],["swiftui进阶",{"0":{"135":1},"1":{"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1}}],["swift发请求",{"0":{"137":1}}],["switch支持任意类型的数据以及各种比较操作",{"2":{"196":1}}],["switch语句",{"0":{"196":1}}],["switch",{"2":{"39":1,"137":1,"168":1,"169":1,"180":1,"196":1,"201":1}}],["snackbar",{"2":{"120":1,"124":1}}],["snackbars",{"2":{"120":1}}],["snapshot",{"2":{"111":5}}],["sn=e7f385e9f9cb1b6b9245398d49896b78",{"2":{"102":1}}],["skyobject",{"2":{"249":2}}],["sksl引入的卡顿问题",{"2":{"99":1}}],["skia是blink渲染引擎的一部分",{"2":{"101":1,"309":1}}],["skia在第一次使用某个着色器时",{"2":{"99":1}}],["skia",{"0":{"101":1},"2":{"99":1}}],["sdk如何发包",{"2":{"98":1}}],["sdk的这个事情",{"2":{"98":1}}],["sdk即可创建和运行项目",{"2":{"94":1}}],["sdk解压缩",{"2":{"94":1}}],["sdk由服务器驱动程序",{"2":{"53":1}}],["sdk",{"0":{"53":1},"1":{"54":1,"55":1},"2":{"94":1,"97":1}}],["sdk学习了解",{"0":{"52":1},"1":{"53":1,"54":1,"55":1}}],["single",{"2":{"288":4}}],["sink",{"2":{"51":4}}],["six",{"2":{"201":1}}],["sidelength",{"2":{"200":22}}],["sides",{"2":{"200":5}}],["sign",{"2":{"179":1}}],["simpledescription",{"2":{"200":7,"201":2,"202":1}}],["simpledialogoption",{"2":{"125":3}}],["simpledialog",{"2":{"125":3}}],["simulators打开设备管理器",{"2":{"106":1}}],["silicon版本下载",{"2":{"94":1}}],["sizedbox",{"2":{"86":1,"126":2}}],["sizebox",{"0":{"79":1}}],["size",{"2":{"28":1,"137":1,"138":2,"139":1,"162":2,"165":1,"166":3,"167":5,"169":1}}],["save",{"2":{"219":2}}],["savings",{"2":{"130":1}}],["sabartda",{"2":{"184":1}}],["safeareainsets",{"2":{"177":1}}],["sandwich",{"2":{"196":1}}],["sandboxing选项设置为no",{"2":{"137":1}}],["sankey",{"2":{"10":1}}],["sampleitem",{"2":{"89":11}}],["say",{"2":{"50":2,"235":11,"236":6}}],["survey",{"2":{"303":1}}],["sure",{"2":{"294":1}}],["suffixexternal",{"2":{"282":1}}],["suffix",{"0":{"277":1},"2":{"274":1,"277":1}}],["supports",{"2":{"287":1}}],["supported",{"2":{"279":1}}],["suppress",{"2":{"271":1}}],["super调用父级的构造函数",{"2":{"200":1}}],["super",{"2":{"44":3,"45":3,"58":1,"59":1,"89":2,"111":2,"114":1,"115":1,"116":3,"118":2,"119":2,"120":3,"122":1,"124":4,"130":1,"200":2,"210":1}}],["sum",{"2":{"198":5}}],["suggestion",{"2":{"178":3}}],["suggestions",{"2":{"178":1}}],["success",{"2":{"137":1,"180":1,"203":1}}],["sub",{"2":{"276":1}}],["submitbutton",{"2":{"211":2}}],["submitbutton的y轴中心和view",{"2":{"211":1}}],["submit",{"2":{"124":1,"251":1}}],["subtitle",{"2":{"85":1,"174":2}}],["subdemos",{"2":{"54":1}}],["substring",{"2":{"34":3}}],["svg的提取尝试",{"0":{"27":1}}],["see",{"2":{"279":1,"287":1,"292":1,"295":1}}],["sends",{"2":{"271":2,"276":2}}],["segmentfault",{"2":{"246":1}}],["sed",{"2":{"223":1}}],["seven",{"2":{"201":1}}],["service",{"2":{"179":1}}],["server",{"2":{"55":1}}],["se没有圆角",{"2":{"177":1}}],["semibold",{"2":{"165":1,"174":2}}],["separator",{"2":{"161":1}}],["section",{"2":{"161":1,"163":1,"303":1}}],["secondary",{"2":{"137":1,"163":2,"164":1,"165":1,"168":1,"169":1,"178":1,"179":2}}],["second",{"2":{"118":1,"124":1}}],["secondroute",{"2":{"118":3}}],["seconds",{"2":{"88":2}}],["self被用来区别实例变量和构造器的参数",{"2":{"200":1}}],["self",{"2":{"139":1,"141":1,"142":1,"169":2,"181":2,"200":4,"201":2,"210":1,"212":1,"219":1}}],["selector",{"2":{"210":2,"286":6}}],["selection",{"2":{"120":2,"203":1}}],["selectionscreen",{"2":{"120":4}}],["selectionbuttonstate",{"2":{"120":2}}],["selectionbutton",{"2":{"120":5}}],["selectedtab",{"2":{"168":17,"169":17,"170":2}}],["selected",{"2":{"89":1}}],["selectedmenu",{"2":{"89":3}}],["searchcompletion",{"2":{"178":1}}],["searchable",{"2":{"178":1}}],["searchview",{"2":{"178":1}}],["search",{"2":{"86":1,"176":1,"178":1,"237":1,"271":2}}],["searchid=202310241527044f1da052b7258fb7a7f1",{"2":{"131":1}}],["searchid=202310180953376667b7db9cbfc16c956b",{"2":{"100":1}}],["searchid=20231016171400c70564938d162c20bc4f",{"2":{"55":1,"150":1}}],["searchid=20231101165324a5f32542d249556280ac",{"2":{"98":1}}],["searchid=2023082817240424c3c2d3ff19b302c296",{"2":{"265":1}}],["searchid=20230828182808dc2e896f0bf7b80cc6ae",{"2":{"265":1}}],["searchid=20230822133528fb96f3be853e5d5ddcd1",{"2":{"252":1}}],["searchid=202308011333480f886c2a2ae1c06daa0b",{"2":{"218":1}}],["searchid=20230805001356abcfde5794fdc33c280b",{"2":{"92":1}}],["searchid=20230923172459859aefd2f817f56a1c17",{"2":{"147":1}}],["searchid=20230726141301208a558690115e13cc04",{"2":{"20":1}}],["setattribute",{"2":{"263":2}}],["set解构来优化",{"2":{"248":1}}],["settimeout",{"2":{"235":1,"309":2}}],["setting",{"2":{"219":1,"243":2}}],["settings",{"2":{"137":1,"161":2,"162":1,"163":1,"219":1}}],["setdata",{"2":{"122":2}}],["setstring",{"2":{"122":1}}],["setstate",{"2":{"89":1}}],["sets",{"2":{"89":1}}],["set类型可以盛放若干个同类型的对象",{"2":{"48":1}}],["set",{"2":{"35":1,"48":2,"132":1,"189":1,"200":1,"219":1,"253":1,"285":1,"292":1}}],["setfrompoints",{"2":{"32":1}}],["setup",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"55":1,"308":1}}],["s",{"2":{"19":1,"55":1,"102":1,"184":1,"205":1,"223":1,"286":1,"287":1,"288":1,"294":1}}],["shiki",{"2":{"287":3}}],["shift",{"2":{"95":1,"152":2}}],["sh$",{"2":{"270":3,"286":1}}],["sh",{"2":{"223":2}}],["sheet",{"2":{"140":1}}],["showmodalbottomsheet",{"2":{"126":1}}],["showdetail",{"2":{"175":1}}],["showdialog",{"2":{"125":2}}],["showduration",{"2":{"88":1}}],["showsnackbar",{"2":{"120":1,"124":1}}],["show",{"2":{"111":1,"120":1,"174":3}}],["shooter",{"2":{"5":1,"6":1}}],["shaking掉那些并没有用到的方法",{"2":{"263":1}}],["share",{"2":{"218":1}}],["sharedpreferences",{"2":{"122":3}}],["shared",{"0":{"122":1},"2":{"121":1,"122":3,"141":1,"143":1,"175":1,"181":1}}],["shadow",{"2":{"153":1,"155":1,"156":1}}],["shading",{"2":{"99":2}}],["shaderlib",{"2":{"248":7}}],["shader的离线编译",{"2":{"99":1}}],["shader",{"2":{"30":1,"248":1,"266":1,"312":2}}],["shapedescription",{"2":{"200":2}}],["shape",{"2":{"24":1,"139":8,"200":8}}],["shpnpm",{"2":{"14":1,"16":1,"17":1,"19":1}}],["shnpm",{"2":{"12":1}}],["stdout拥有",{"2":{"314":1}}],["stop",{"2":{"285":2}}],["stock",{"2":{"203":1}}],["storyboard",{"2":{"206":1}}],["storename",{"2":{"122":2}}],["store",{"2":{"122":6,"230":2}}],["storage",{"2":{"97":2,"122":5}}],["steamvr作为预构建包提供",{"2":{"53":1}}],["stuff",{"2":{"294":2}}],["studio中用flutter",{"2":{"106":1}}],["studio中build",{"2":{"55":1}}],["studio打开却不会报错",{"2":{"96":1}}],["studio打开cloudxr",{"2":{"55":1}}],["studio新建一个flutter项目",{"2":{"94":1}}],["studio后",{"2":{"94":1}}],["studio",{"2":{"94":2}}],["student",{"2":{"44":4,"45":4}}],["stu",{"2":{"44":2,"45":2}}],["stage",{"2":{"312":5}}],["statistics",{"2":{"198":3}}],["static修饰的变量和方法用类调用",{"2":{"253":1}}],["static修饰的属性和方法只能在类的内部进行访问",{"2":{"253":1}}],["static修饰的属性和方法可以在类内部和类外部访问",{"2":{"253":1}}],["static修饰的属性和方法也叫静态属性和静态方法",{"2":{"253":1}}],["static这中共同修饰下的属性和方法",{"2":{"253":1}}],["static和private修饰的区别是什么",{"2":{"253":1}}],["static和private",{"2":{"253":1}}],["static等关键词来修饰属性和方法",{"2":{"253":1}}],["static",{"2":{"107":1,"169":2,"248":2,"253":13}}],["statusmessage",{"2":{"192":1}}],["status",{"2":{"137":1}}],["statuscode",{"2":{"110":1,"111":1,"114":1,"115":1,"116":1,"192":3}}],["stateobject",{"2":{"175":1}}],["state数据",{"2":{"141":1}}],["state",{"0":{"136":1},"2":{"89":2,"111":2,"120":2,"124":1,"141":2,"167":1,"168":2,"169":3,"172":1,"174":1,"178":1,"230":3}}],["statefulwidget",{"2":{"89":1,"111":1,"120":2,"124":1}}],["statefulwidget的生命周期",{"2":{"67":1}}],["statefulwidget是一种可变的部件",{"2":{"67":1}}],["statefulwidget是可变状态的widget",{"2":{"67":1}}],["statefulwidget就可以",{"2":{"67":1}}],["statelesswidget的生命周期",{"2":{"67":1}}],["statelesswidget的构建是纯粹的",{"2":{"67":1}}],["statelesswidget是一种表示不可变部件的基类",{"2":{"67":1}}],["statelesswidget是一个不需要状态更改的widget",{"2":{"67":1}}],["statelesswidget和statefulwidget的区别",{"0":{"67":1}}],["statelesswidget",{"2":{"58":1,"59":1,"89":1,"114":1,"115":1,"116":1,"118":2,"119":2,"120":2,"122":1,"124":1,"130":2}}],["startrenderviews方法中调用",{"2":{"251":1}}],["startrenderview",{"2":{"251":1}}],["startindex",{"2":{"206":3}}],["startpoint",{"2":{"158":2,"160":1,"166":1,"167":1}}],["started",{"2":{"94":1,"294":2}}],["start",{"2":{"77":1,"124":1}}],["start即可运行项目",{"2":{"21":1}}],["star",{"2":{"63":5,"76":1}}],["stackoverflow",{"2":{"303":1}}],["stack的内容是无法滚动的",{"2":{"66":1}}],["stack",{"0":{"66":1,"83":1},"2":{"28":1,"65":1,"66":1,"168":1,"169":1,"303":1}}],["stacky",{"2":{"6":1}}],["stripes",{"2":{"272":1,"280":2}}],["strict",{"2":{"234":1}}],["string",{"2":{"16":2,"35":1,"36":4,"37":1,"40":1,"41":1,"42":1,"43":2,"44":2,"45":2,"49":1,"50":1,"103":2,"111":2,"114":1,"119":2,"122":4,"137":8,"139":2,"141":5,"142":1,"143":3,"163":2,"164":1,"168":3,"169":3,"175":1,"180":1,"181":2,"189":1,"190":1,"191":2,"192":1,"194":8,"195":3,"198":6,"200":11,"201":2,"202":1,"203":1,"206":2,"224":2,"248":4,"253":1,"306":1}}],["str4",{"2":{"206":2}}],["str3",{"2":{"206":2}}],["str2",{"2":{"206":2}}],["str1",{"2":{"206":2}}],["stroke",{"2":{"160":1}}],["strokestyle",{"2":{"160":6,"168":1,"169":1}}],["str",{"2":{"140":3}}],["structure",{"0":{"165":1},"2":{"276":1}}],["struct",{"2":{"137":2,"139":1,"141":1,"160":1,"168":2,"169":3,"175":1,"203":1}}],["street",{"2":{"85":1,"137":1}}],["strategy",{"2":{"5":1,"6":1}}],["styles",{"2":{"171":1}}],["style属性有两个值",{"2":{"168":1,"169":1}}],["style封装",{"0":{"73":1}}],["style",{"0":{"280":1},"2":{"10":1,"59":1,"66":1,"72":1,"73":1,"81":1,"85":1,"126":1,"130":1,"134":1,"160":1,"168":1,"169":1,"177":1,"237":1,"282":1,"286":2,"309":3}}],["split",{"2":{"286":1}}],["spline",{"2":{"26":1}}],["spawn",{"2":{"314":5}}],["spa",{"2":{"276":1}}],["spacing",{"2":{"139":1,"153":1,"168":1,"169":1,"174":2,"178":2}}],["space",{"2":{"289":1,"290":1,"291":1}}],["spacer",{"2":{"138":1,"163":2,"164":1,"168":16,"169":16,"174":1}}],["spaceevenly",{"2":{"61":2,"62":1,"77":1}}],["spaceflex",{"2":{"6":1}}],["special",{"2":{"275":1,"286":1}}],["specify",{"2":{"132":2,"274":1,"288":1}}],["specific",{"2":{"86":1}}],["spelling",{"2":{"218":1}}],["spicy",{"2":{"196":1}}],["spinner",{"2":{"111":1}}],["spm与cocoapods相互兼容",{"2":{"184":1}}],["spring",{"2":{"168":1,"169":1,"174":1}}],["spritekit",{"2":{"54":1}}],["sptlight",{"2":{"144":1}}],["sports",{"2":{"5":1,"6":1}}],["son",{"2":{"314":2}}],["software",{"2":{"258":1}}],["solutions",{"2":{"258":1}}],["sold",{"2":{"5":6,"6":7}}],["sort",{"2":{"253":1}}],["sorted",{"2":{"199":1}}],["sortednumbers",{"2":{"199":2}}],["social",{"2":{"237":1}}],["soup",{"2":{"196":1}}],["sources",{"2":{"176":3}}],["source",{"2":{"1":1,"10":1,"97":1,"219":1,"294":1}}],["so",{"2":{"132":1}}],["somestring",{"2":{"206":1}}],["sometime",{"2":{"132":1}}],["some",{"2":{"124":1,"139":1,"141":1,"160":2,"165":1,"167":1,"168":1,"169":1,"174":1,"175":1,"178":1,"195":1,"196":1,"206":1,"294":1}}],["scores",{"2":{"198":5}}],["score",{"2":{"195":3,"198":6}}],["screen",{"2":{"120":4}}],["scripting",{"2":{"303":1}}],["scripts",{"2":{"16":1,"18":1,"224":1}}],["script",{"2":{"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"137":1,"218":1}}],["scaffoldmessenger",{"2":{"120":1,"124":1}}],["scaffold",{"0":{"71":1},"2":{"58":1,"89":1,"111":1,"114":1,"115":1,"116":1,"118":2,"119":2,"120":2,"122":1,"124":1,"130":2}}],["scaley",{"2":{"24":3}}],["scalex",{"2":{"24":5}}],["scale",{"2":{"3":1,"24":12,"180":2}}],["school",{"2":{"44":2,"45":3}}],["scenes",{"2":{"261":1}}],["scene3d",{"0":{"249":1},"2":{"244":4,"249":3}}],["scenedelegate",{"2":{"209":1}}],["scene=27",{"2":{"102":1}}],["scenekit",{"2":{"54":1}}],["scene",{"0":{"261":1},"2":{"32":1,"175":1,"244":1,"247":1,"253":2,"261":1}}],["派生数据",{"2":{"3":1}}],["转换",{"2":{"3":1}}],["可行性还待研究",{"2":{"258":1}}],["可能就是像我遇到的这种",{"2":{"215":1}}],["可能可以直接满足需求",{"2":{"60":1}}],["可选值会被解包",{"2":{"200":1}}],["可选值的强制解析",{"2":{"195":1}}],["可选可以通过if语句来判断是否有值",{"2":{"194":1}}],["可选类型暗示了常量或者变量可以没有值",{"2":{"194":1}}],["可选类型表示两种可能",{"2":{"194":1}}],["可选类型",{"0":{"194":1}}],["可选的导语以及后面的图标组织在一行中",{"2":{"65":1}}],["可以利用gpu加速",{"2":{"309":1}}],["可以动态添加class",{"2":{"309":1}}],["可以改变this的指向",{"2":{"236":1}}],["可以跨平台",{"2":{"223":1}}],["可以参考orillusion的实现",{"2":{"246":1}}],["可以参考",{"2":{"218":1}}],["可以全局安装使用",{"2":{"218":1}}],["可以排查提交了错误代码打包导致的项目崩溃",{"2":{"215":1}}],["可以一起使用if和let一起来处理值缺失的情况",{"2":{"195":1}}],["可以确定一个可选类型总会有值",{"2":{"194":1}}],["可以给可选变量赋值nil来表示它没有值",{"2":{"194":1}}],["可以在命令行中输入要执行的包名加上其参数",{"2":{"226":1}}],["可以在其中包含常量",{"2":{"206":1}}],["可以在特性上提供互补",{"2":{"184":1}}],["可以在框架内对齐的",{"2":{"168":1,"169":1}}],["可以在flutter项目中的test文件夹中编辑代码做测试",{"2":{"33":1}}],["可以减小资源文件的大小",{"2":{"166":1}}],["可以让text和image各占一行显示",{"2":{"153":1}}],["可以正常真机调试",{"2":{"96":1}}],["可以使用嵌套函数来重构一个太长或者太复杂的函数",{"2":{"198":1}}],["可以使用默认值来代替",{"2":{"195":1}}],["可以使用",{"2":{"195":1,"228":1}}],["可以使用stack在基础widget上排列widget",{"2":{"66":1}}],["可以使用expanded",{"2":{"62":2}}],["可以使用mainaxisalignment和crossaxisalignment属性控制行或列如何对齐其子项",{"2":{"61":1}}],["可以指定子widgets如何占用row或column的可用空间",{"2":{"60":1}}],["可以指定row或column如何垂直和水平方向上对齐其子项",{"2":{"60":1}}],["可以拉伸或限制特定的子widgets",{"2":{"60":1}}],["可以方便的对接其他渲染",{"2":{"54":1}}],["可以进行简化书写",{"2":{"43":1}}],["可以省略若干个参数",{"2":{"42":1}}],["可以用=提供参数的默认值",{"2":{"41":1}}],["可以用来绘制平滑曲线",{"2":{"32":1}}],["可以通过动态样式的方法",{"2":{"309":1}}],["可以通过如下链接访问到资源",{"2":{"300":1}}],["可以通过https",{"2":{"300":1}}],["可以通过setstate函数来刷新当前widget来达到有状态",{"2":{"67":1}}],["可以通过索引获取列表中的数据",{"2":{"47":1}}],["可以通过参数的名称来传参",{"2":{"41":1}}],["可以通过下标访问具体字符串",{"2":{"35":1}}],["可以绕过编译检查",{"2":{"34":1}}],["可以直接在项目根目录下启动vue项目",{"2":{"18":1}}],["可参考下面的使用复合mark进行代码优化",{"2":{"6":1}}],["可视化叙事等多样式的需求",{"2":{"3":1}}],["可即使是这么优秀",{"2":{"2":1}}],["t1",{"2":{"241":2}}],["tbd其实是一个yaml文本文件",{"2":{"214":1}}],["tbd",{"2":{"214":1}}],["two",{"2":{"201":1,"276":1,"289":1,"290":1,"291":1}}],["tuesday",{"2":{"198":2}}],["tip",{"2":{"284":4,"294":1}}],["times",{"2":{"206":1}}],["timeintervalsincereferencedate",{"2":{"167":1}}],["timeline",{"2":{"167":2}}],["timelineview",{"2":{"167":1}}],["tint",{"2":{"161":1,"164":4}}],["titles",{"2":{"283":1}}],["titlerawsyntax",{"2":{"282":1}}],["titlecustom",{"2":{"282":1}}],["title",{"0":{"284":1,"285":1},"2":{"8":1,"58":2,"60":1,"71":2,"85":1,"89":1,"111":7,"114":2,"115":2,"116":2,"118":3,"119":8,"120":3,"122":2,"124":2,"125":2,"126":3,"130":2,"165":1,"172":2,"174":2,"178":2,"271":1,"279":1,"285":1}}],["typicode",{"2":{"109":1,"110":1,"111":1,"113":1,"114":1,"115":1,"116":1}}],["types",{"2":{"219":1,"237":1,"283":1}}],["typescript配置",{"2":{"20":1}}],["typescript在demo1中的依赖配置",{"2":{"15":1}}],["typescript",{"2":{"14":1,"219":2}}],["typecheck",{"2":{"19":11}}],["type",{"2":{"6":5,"7":2,"8":3,"9":3,"10":3,"34":1,"237":1,"253":1,"285":1,"293":4}}],["tailwindcss已经有72",{"2":{"302":1}}],["tada",{"2":{"281":1}}],["tag",{"2":{"206":2,"274":1}}],["tastes",{"2":{"196":1}}],["task",{"2":{"92":1,"141":1,"143":1,"181":1}}],["table",{"0":{"282":1}}],["tablesemoji",{"2":{"282":1}}],["tables",{"0":{"280":1},"2":{"272":1,"280":2}}],["tabpreferencekey",{"2":{"169":3}}],["tab",{"2":{"168":11,"169":11,"170":1}}],["tabitemwidth",{"2":{"169":4}}],["tabitems",{"2":{"168":2,"169":2}}],["tabitem",{"2":{"168":7,"169":5}}],["tabviewstyle",{"2":{"173":1}}],["tabview",{"2":{"168":1}}],["tabbar",{"0":{"168":1},"2":{"168":1,"169":1}}],["tapgesturerecognizer",{"2":{"210":2}}],["tapgesture",{"2":{"210":2}}],["tap",{"2":{"98":2}}],["target=",{"2":{"278":1}}],["target",{"2":{"10":1,"210":1}}],["txt文件拷贝到pico硬盘根目录中",{"2":{"55":1}}],["txt文件",{"2":{"55":1}}],["txt",{"2":{"51":2}}],["t",{"2":{"32":1,"34":1,"206":2,"288":2}}],["technologies",{"2":{"303":1}}],["ten",{"2":{"201":1}}],["tea",{"2":{"196":1}}],["teamscore",{"2":{"195":3}}],["teal",{"2":{"168":2,"169":2}}],["terminator",{"2":{"206":1}}],["terms",{"2":{"179":1}}],["term",{"2":{"86":1,"218":1}}],["tessellation",{"2":{"26":1}}],["testtiasdfasfsfafafsafaf",{"2":{"116":1}}],["test3",{"2":{"17":2}}],["test2",{"2":{"17":2}}],["test",{"2":{"16":6,"114":1,"115":1,"116":1,"122":1,"134":1,"195":2,"200":4,"209":3}}],["text的multilinetextalignment属性只是多行文字的一个对齐效果",{"2":{"138":1}}],["textbutton",{"2":{"125":2}}],["textformfield",{"2":{"124":1}}],["textfield",{"2":{"86":3,"246":1}}],["textfield和textformfield",{"2":{"86":1}}],["texteditingcontroller",{"2":{"124":1}}],["textdecoration",{"2":{"72":1}}],["textdirection",{"2":{"59":2}}],["textalignment",{"2":{"210":1}}],["textalign",{"2":{"72":2,"88":2}}],["textstyle",{"2":{"59":1,"66":1,"72":1,"73":1,"85":1,"125":1,"126":1,"130":1}}],["text",{"0":{"72":1},"2":{"25":1,"58":2,"59":1,"60":1,"66":1,"71":1,"85":2,"87":1,"88":1,"89":5,"111":3,"114":3,"115":3,"116":3,"118":4,"119":4,"120":6,"122":5,"124":7,"125":9,"126":4,"130":4,"137":1,"138":10,"140":7,"141":1,"153":2,"161":4,"163":1,"165":2,"166":1,"167":1,"168":9,"169":7,"174":8,"175":1,"177":1,"178":12,"179":5,"181":1,"210":1,"285":1,"287":3}}],["template",{"2":{"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"219":2}}],["too",{"2":{"286":1}}],["toolkit",{"2":{"232":1}}],["tool",{"2":{"182":1}}],["tooltip",{"0":{"88":1},"2":{"88":1}}],["toc",{"2":{"282":3,"295":3}}],["tolowercase",{"2":{"248":5}}],["today",{"2":{"198":2}}],["todos",{"2":{"119":7,"287":2}}],["todosscreen",{"2":{"119":3}}],["todo",{"2":{"29":1,"111":1,"119":12,"133":1,"248":1,"251":2,"287":6}}],["total",{"2":{"197":4}}],["topology",{"2":{"245":1}}],["topanchor",{"2":{"210":2,"211":3}}],["topleading",{"2":{"158":2,"166":1}}],["top",{"2":{"153":1,"156":1,"160":1,"168":3,"169":3,"178":1}}],["toggler",{"2":{"237":1}}],["toggle",{"2":{"139":4,"174":1,"237":1}}],["togglestyle",{"2":{"139":3}}],["token=aac06d17",{"2":{"218":1}}],["token",{"2":{"116":1}}],["tokeninterceptor",{"2":{"116":2}}],["tostringasfixed",{"2":{"36":1}}],["tostring",{"2":{"36":1,"37":1}}],["to",{"2":{"4":1,"110":1,"111":1,"114":1,"115":1,"116":1,"119":1,"132":6,"167":5,"179":1,"219":4,"253":2,"271":5,"274":4,"276":5,"279":1,"285":2,"286":2,"287":3,"288":2,"289":2,"290":1,"291":1,"292":1}}],["than",{"2":{"205":2}}],["that",{"2":{"86":1,"89":1,"120":2,"196":1,"218":1,"286":1,"289":1,"290":2,"291":1,"294":2}}],["throws",{"2":{"203":1}}],["throw",{"2":{"110":1,"111":1,"114":1,"115":1,"116":1,"203":3,"294":1}}],["threejs",{"2":{"297":1}}],["three通过属性实现显示和隐藏的原理是什么",{"2":{"246":1}}],["three缓冲区拾取步骤",{"2":{"246":1}}],["three中的mini",{"2":{"297":1}}],["three中使用的是射线法拾取",{"2":{"265":1}}],["three中案例",{"2":{"265":1}}],["three中还有",{"2":{"32":1}}],["three中有现成的贝塞尔曲线的方法封装",{"2":{"32":1}}],["three中是如何绘制出line2的",{"0":{"30":1}}],["three",{"2":{"24":4,"25":1,"32":28,"49":2,"190":1,"201":1,"245":1,"247":1,"249":1,"253":2,"257":1,"271":4,"276":5}}],["this",{"0":{"233":1},"1":{"234":1,"235":1,"236":1},"2":{"4":1,"16":2,"43":4,"44":3,"45":3,"111":3,"119":4,"224":2,"230":2,"234":2,"235":5,"236":3,"248":2,"249":3,"253":14,"263":2,"271":2,"274":1,"279":1,"284":10,"286":3,"288":4,"292":8,"293":1,"294":3}}],["their",{"2":{"283":1}}],["then",{"2":{"223":1,"230":2}}],["thenumber被推断为类型",{"2":{"194":1}}],["thenumber",{"2":{"194":1}}],["there",{"2":{"206":3}}],["theming",{"2":{"279":1}}],["them",{"2":{"132":1}}],["themedata",{"2":{"89":1,"111":1}}],["theme",{"2":{"89":1,"111":1,"237":5,"287":1}}],["theta",{"2":{"6":1}}],["the",{"2":{"4":1,"34":2,"86":1,"89":1,"120":10,"132":3,"218":4,"219":2,"271":5,"273":1,"274":4,"276":5,"277":1,"279":3,"282":2,"285":5,"287":2,"288":4,"289":3,"290":3,"291":1,"292":1,"294":4,"295":4}}],["tsfor",{"2":{"253":1}}],["tsget",{"2":{"253":1}}],["tsgit",{"2":{"132":1}}],["ts的着色器注册",{"2":{"248":1}}],["ts的配置如下所示",{"2":{"237":1}}],["tsawait",{"2":{"244":1,"248":1}}],["tsnpx",{"2":{"226":1}}],["tsnpm",{"2":{"4":1}}],["ts生成index",{"2":{"224":1}}],["tsexport",{"2":{"224":1}}],["ts代码",{"2":{"224":1}}],["tsstruct",{"2":{"241":1}}],["tsserver",{"2":{"221":1}}],["tssudo",{"2":{"176":1}}],["tsoutput",{"2":{"219":1}}],["tswakk",{"2":{"218":1}}],["tsmaven",{"2":{"92":1}}],["tslet",{"2":{"28":1,"244":3,"246":1,"267":1}}],["tsbuildinfo",{"2":{"19":1}}],["tsclass",{"2":{"253":4}}],["tsctrl",{"2":{"152":1}}],["tscollectpositionbylayer",{"2":{"31":2}}],["tsconst",{"2":{"24":1}}],["tsconfig",{"2":{"19":6}}],["tsc是基于volar的vue3类型检查工具",{"2":{"19":1}}],["tsc",{"2":{"19":7,"219":1}}],["tsimport",{"2":{"17":1,"237":1,"293":1}}],["ts运行测试",{"2":{"16":1}}],["ts文件提供一个demo2的类",{"2":{"16":1}}],["ts",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"16":7,"19":1,"24":1,"29":1,"32":2,"96":1,"97":1,"132":1,"147":1,"176":1,"219":7,"230":6,"241":4,"243":2,"246":1,"248":6,"249":3,"250":1,"251":1,"253":2,"266":1,"292":2,"293":2}}],["tstodo",{"2":{"2":1}}],["trending",{"2":{"303":1}}],["treatments",{"2":{"275":1}}],["tree的计算通常只需要遍历一次就可以完成",{"2":{"309":1}}],["tree和节点的几何信息",{"2":{"309":1}}],["tree和cssom",{"2":{"309":1}}],["tree得到节点的几何信息",{"2":{"309":1}}],["tree合成render",{"2":{"309":1}}],["tree",{"2":{"54":1,"295":1,"309":3}}],["trianglenum",{"2":{"246":3}}],["triangle",{"2":{"200":7}}],["try",{"2":{"141":1,"142":1,"143":1,"181":2,"203":1,"218":1}}],["trash",{"2":{"164":2}}],["trailinganchor",{"2":{"210":2,"211":1}}],["trailing",{"2":{"60":1,"138":2,"164":1,"178":1}}],["translation",{"2":{"237":1}}],["translatesautoresizingmaskintoconstraints",{"2":{"210":1}}],["translate",{"2":{"24":2}}],["transition",{"2":{"180":1}}],["transaction",{"2":{"180":2}}],["transporteruserguide",{"2":{"107":1}}],["transform",{"2":{"3":1,"6":1,"8":1,"10":1,"286":1}}],["troika",{"2":{"25":1}}],["true",{"2":{"1":2,"88":1,"89":1,"125":1,"132":1,"140":2,"141":1,"143":1,"164":3,"167":2,"198":1,"210":1,"212":1,"219":2,"243":1,"253":1,"292":1}}],["技术人员的出路到底是什么",{"2":{"2":1}}],["怀揣",{"2":{"2":1}}],["迎四海饕客",{"2":{"2":1}}],["助力共筹东方巨龙崛起之盛宴",{"2":{"2":1}}],["皆微小而美好",{"2":{"2":1}}],["林峰",{"2":{"2":1}}],["aqua",{"2":{"301":1}}],["above",{"2":{"295":1}}],["awesome",{"2":{"288":2}}],["await处理",{"2":{"248":1}}],["await发请求",{"0":{"143":1}}],["awaits",{"2":{"120":1}}],["await",{"2":{"51":3,"110":2,"111":1,"113":1,"114":1,"115":1,"116":1,"120":1,"122":7,"125":2,"126":1,"141":2,"143":2,"181":2,"230":4,"243":1,"248":1}}],["await使用方法和js中基本一致",{"2":{"51":1}}],["available",{"2":{"279":1,"281":1,"287":1}}],["avator",{"2":{"153":1,"156":1,"166":1,"173":1}}],["a的文件不能直接用",{"2":{"214":1}}],["a的值是",{"2":{"38":2}}],["a是一个纯二进制文件",{"2":{"214":1}}],["at",{"2":{"166":1,"206":6}}],["attributes",{"2":{"24":1}}],["api版本可能也会有一些差异",{"2":{"312":1}}],["api无法解决和避免的",{"2":{"231":1}}],["api本来就是为解决大项目中逻辑处理太过分散的问题",{"2":{"231":1}}],["api的利弊一样",{"2":{"231":1}}],["api的写法没有了getters和actions的模块要求",{"2":{"231":1}}],["api的写法",{"2":{"230":1}}],["api和options",{"2":{"231":1}}],["api和compositon",{"0":{"230":1}}],["api写法",{"2":{"230":1}}],["api写法对比",{"0":{"230":1}}],["api",{"2":{"137":2,"141":2,"143":2,"181":2,"230":2,"231":1,"256":1,"267":1}}],["app的react应用程序",{"2":{"226":1}}],["app的开发",{"2":{"55":1}}],["app包中的可执行文件",{"2":{"226":1}}],["appdelegate",{"2":{"209":1}}],["app首次打开的viewcontroller页面的背景颜色就被修改成了红色",{"2":{"208":1}}],["appendchild",{"2":{"309":3}}],["appending",{"2":{"285":1}}],["append",{"2":{"191":1,"195":1,"204":1,"271":2,"276":2,"287":1}}],["appear",{"2":{"167":3}}],["app中",{"2":{"175":1}}],["app中使用",{"2":{"65":1}}],["app中使用这些功能",{"2":{"59":1}}],["apptitle",{"2":{"124":3}}],["applied",{"2":{"273":1}}],["application",{"2":{"114":1}}],["apply是用数组传参",{"2":{"236":1}}],["apply的使用",{"2":{"236":1}}],["apply",{"0":{"233":1},"1":{"234":1,"235":1,"236":1},"2":{"236":3,"240":1}}],["apple为游戏开发者推出了新的平台技术",{"2":{"256":1}}],["appleseed",{"2":{"195":2}}],["apple",{"2":{"54":1,"55":1,"94":1,"107":1,"150":1}}],["app即可安装到设备上",{"2":{"106":1}}],["app不包含appbar",{"2":{"59":1}}],["appstorage",{"2":{"170":3}}],["appstorage缓存",{"0":{"170":1}}],["apps",{"0":{"59":1}}],["appbar",{"2":{"58":2,"71":2,"89":2,"111":2,"114":2,"115":2,"116":2,"118":4,"119":4,"120":4,"122":2,"124":2,"130":4}}],["app",{"2":{"58":1,"59":2,"174":2,"175":1,"214":1,"226":2,"237":3,"287":1,"295":1}}],["app本身就是一个widget",{"2":{"57":1}}],["afdadfs",{"2":{"206":1}}],["afdataresponse",{"2":{"137":1}}],["afddsadfdsf",{"2":{"154":1,"158":1}}],["af",{"2":{"137":1}}],["after",{"2":{"120":3,"206":2,"285":1,"289":1,"290":1,"291":1}}],["afx",{"2":{"2":1}}],["are",{"2":{"272":2,"276":2,"280":4,"288":2,"289":1,"290":1,"291":1,"294":1,"295":1}}],["area",{"2":{"200":4}}],["argument",{"2":{"240":1}}],["arguments",{"2":{"235":1}}],["arguments类数组",{"2":{"235":1}}],["ar的webview打开视频流是否改变了ipad的ua信息",{"2":{"214":1}}],["ar的画面是视频流还是像webgl一样",{"2":{"98":1}}],["ar的渲染需要依赖其他第三方渲染框架",{"2":{"54":1}}],["arcore",{"2":{"67":1}}],["arcore插件",{"2":{"67":1}}],["arcore文档",{"2":{"54":1}}],["arkit插件",{"2":{"67":1}}],["arkitdemo",{"2":{"54":1}}],["arkit官方文档",{"2":{"54":1}}],["arkit提供的功能总体可以分为三个部分",{"2":{"54":1}}],["arkit",{"0":{"54":1},"2":{"54":2,"67":1,"103":4}}],["ar",{"0":{"52":1},"1":{"53":1,"54":1,"55":1},"2":{"54":1,"102":1}}],["array",{"2":{"189":1,"236":3}}],["arr",{"2":{"28":2,"309":6}}],["asddsf",{"2":{"269":1}}],["asdfadfsf",{"2":{"269":1}}],["asfd",{"2":{"269":1}}],["aspect",{"2":{"244":1}}],["aspectratio",{"2":{"157":1,"178":1}}],["assign",{"2":{"219":1}}],["assumedstring",{"2":{"194":2}}],["assembly反汇编为spir",{"2":{"99":1}}],["assembly",{"2":{"99":1,"312":1}}],["assembledebug",{"2":{"92":1}}],["assetim",{"2":{"70":1}}],["assetimage",{"2":{"66":1,"84":1}}],["asset",{"2":{"61":3,"62":4,"66":2,"75":1}}],["assets",{"2":{"8":1,"10":1,"62":4,"66":3,"70":1,"75":1,"84":1,"209":1,"232":1,"248":1}}],["assert",{"2":{"36":4,"205":1}}],["as",{"2":{"109":1,"110":1,"111":1,"120":2,"181":1,"218":1,"274":1,"294":2,"295":1}}],["as插件",{"2":{"100":1}}],["asyncimage异步加载图片",{"0":{"180":1}}],["asynchronous",{"2":{"120":1}}],["async",{"2":{"51":1,"87":1,"110":3,"111":2,"113":1,"114":1,"115":1,"116":1,"120":1,"122":6,"125":3,"126":1,"141":1,"143":1,"181":1,"230":4}}],["agolia",{"2":{"237":1}}],["again",{"2":{"218":1}}],["agree",{"2":{"179":1}}],["agricultural",{"2":{"10":1}}],["age",{"2":{"41":2,"42":1,"43":5,"44":4,"45":5,"115":1,"116":1,"142":4,"191":1,"205":4}}],["a",{"2":{"34":4,"36":9,"37":3,"38":3,"48":5,"86":2,"96":2,"111":1,"119":1,"120":5,"125":2,"126":2,"132":1,"176":1,"196":3,"200":5,"205":1,"206":2,"214":1,"218":3,"246":1,"253":4,"271":3,"274":3,"276":1,"279":1,"281":1,"284":8,"286":3,"287":3,"288":1,"289":2,"290":2,"291":1,"294":2,"295":1}}],["advanced",{"0":{"295":1}}],["admin",{"2":{"221":1}}],["adjust",{"2":{"202":1}}],["adaptive",{"2":{"177":1}}],["added",{"2":{"290":2}}],["addeventlistener",{"2":{"249":1,"261":1}}],["adding",{"2":{"289":1,"290":1,"291":1}}],["addition",{"2":{"288":1}}],["additionally",{"2":{"289":1}}],["additional",{"2":{"203":1}}],["addchild",{"2":{"249":1}}],["addcomponent方法会将camera3d实例化",{"2":{"244":1}}],["addcomponent",{"2":{"243":1,"244":1}}],["addcurve",{"2":{"167":4}}],["addsubview",{"2":{"210":1}}],["addgesturerecognizer",{"2":{"210":1}}],["addone",{"2":{"198":2}}],["address",{"2":{"137":3,"141":2,"143":2,"181":7}}],["addlistener",{"2":{"124":1}}],["add",{"2":{"32":1,"47":1,"48":1,"109":1,"112":1,"116":1,"122":1,"128":1,"130":1,"196":1,"198":2,"219":1,"241":1,"270":2,"271":1,"274":1,"286":1,"292":1}}],["adfsasf",{"2":{"28":1}}],["aa",{"2":{"28":2,"50":2,"190":3,"191":3,"192":2,"195":2,"198":6,"203":2,"253":5,"306":6}}],["amp",{"2":{"24":4,"102":5,"133":1}}],["along",{"2":{"279":1}}],["algolia",{"2":{"271":1}}],["alphardex",{"2":{"266":1,"301":1}}],["already",{"2":{"179":1}}],["always",{"2":{"178":1}}],["alwaysstoppedanimation",{"2":{"90":2}}],["alamofire",{"2":{"176":1}}],["alt=",{"2":{"299":1}}],["alternatively",{"2":{"288":1}}],["alt",{"2":{"152":3}}],["also",{"2":{"132":1,"276":1,"286":1,"287":1,"288":1,"294":1}}],["alertdialog",{"2":{"125":3}}],["album",{"2":{"111":9,"114":1,"115":1,"116":1}}],["albums",{"2":{"109":1,"110":1,"111":1,"113":1,"114":1,"115":1,"116":1}}],["alive缓存的组件停用时调用",{"2":{"308":1}}],["alive缓存的组件激活时调用",{"2":{"308":1}}],["alias",{"2":{"287":1}}],["aliases",{"2":{"219":1}}],["aligned",{"2":{"272":1,"280":2}}],["alignment",{"2":{"66":2,"83":2,"138":4,"153":1,"168":4,"169":4,"174":4,"178":2}}],["alice",{"2":{"142":1}}],["aliyun",{"2":{"92":4}}],["alipayobjects",{"2":{"7":1}}],["allows",{"2":{"274":1}}],["allowsfullswipe",{"2":{"164":2}}],["allow",{"2":{"132":1}}],["all带参数的简写",{"2":{"19":1}}],["all提供三个命令",{"2":{"19":1}}],["all",{"2":{"19":2,"20":1,"66":1,"70":3,"82":1,"88":2,"119":1,"120":2,"132":1,"153":1,"279":1,"281":1,"287":1}}],["all来串行",{"0":{"19":1}}],["axis",{"2":{"8":1}}],["authorization",{"2":{"116":1}}],["autodesk",{"2":{"258":1}}],["autoupdate",{"2":{"253":4}}],["autoreverses",{"2":{"167":1}}],["automatically",{"2":{"273":1,"276":1,"278":1}}],["automatic",{"2":{"161":1}}],["auto",{"2":{"6":2,"274":1}}],["audit",{"2":{"4":1}}],["act",{"2":{"294":1}}],["active=",{"2":{"237":1}}],["activate",{"2":{"210":1,"211":1}}],["actions",{"0":{"164":1},"2":{"125":1,"230":1}}],["action",{"2":{"5":1,"6":1,"140":1,"164":3,"210":1}}],["acorn",{"2":{"223":10}}],["acedesc",{"2":{"201":2}}],["acerawvalue",{"2":{"201":2}}],["ace123",{"2":{"201":1}}],["ace",{"2":{"201":7}}],["accordingly",{"2":{"291":1}}],["accountview",{"2":{"168":4,"169":3}}],["account",{"2":{"161":1,"165":1,"179":2}}],["accessibility",{"2":{"182":1}}],["accessed",{"2":{"51":1}}],["accentcolor",{"2":{"179":1}}],["acceptheader",{"2":{"114":1,"115":1,"116":1}}],["accept",{"2":{"4":1,"114":1}}],["another",{"2":{"294":1}}],["animated",{"2":{"212":1}}],["animations",{"2":{"174":2}}],["animation",{"2":{"3":1,"167":1,"180":1}}],["anchorslinksinternal",{"2":{"282":1}}],["anchorscustom",{"2":{"282":1}}],["anchors",{"0":{"273":1,"274":1},"1":{"274":1},"2":{"271":1,"273":1,"274":2,"276":1}}],["anchor",{"2":{"180":1,"273":2,"274":3,"295":6}}],["ancestor",{"2":{"86":1}}],["angle2",{"2":{"167":2}}],["angle",{"2":{"167":5}}],["any",{"2":{"8":1,"9":1,"10":1,"120":2,"230":2}}],["android等平台上",{"2":{"255":1}}],["android",{"2":{"94":1}}],["android工程",{"2":{"55":2}}],["and",{"0":{"291":1},"2":{"4":1,"106":1,"120":4,"132":1,"174":2,"179":1,"196":1,"218":1,"275":1,"276":1,"277":1,"279":1,"282":1,"283":1,"286":2,"288":3,"289":1,"303":1}}],["an",{"2":{"4":1,"120":3,"153":1,"174":2,"179":2,"194":2,"195":1,"200":1,"203":1,"284":2}}],["ants",{"2":{"196":1}}],["antgroup",{"2":{"2":1,"8":1,"10":1}}],["antv",{"2":{"2":1,"4":1,"5":1,"6":1,"7":1,"8":2,"9":1,"10":2}}],["antfu",{"2":{"1":4,"219":3,"232":2}}],["wgsl语句结尾分号不能省略",{"2":{"241":1}}],["wgsl结构体有点类似javascript中的类",{"2":{"241":1}}],["wgsl中的函数写法",{"2":{"241":1}}],["wgsl是在gpu上执行",{"2":{"241":1}}],["would",{"2":{"196":1}}],["working",{"2":{"271":1}}],["workspace",{"2":{"13":1,"17":2,"237":3}}],["word",{"2":{"50":1}}],["world级别的demo都没有写过",{"2":{"254":1}}],["world不行",{"2":{"194":1}}],["world",{"0":{"188":1},"2":{"16":1,"58":1,"59":1,"89":1,"103":1,"140":3,"141":1,"188":1,"210":1}}],["wraps",{"2":{"286":1}}],["wrappedvalue",{"2":{"140":1}}],["write",{"2":{"51":1}}],["wd",{"2":{"114":1}}],["w500",{"2":{"85":1}}],["w800",{"2":{"72":1,"73":1}}],["welcome",{"2":{"206":17}}],["weixin",{"2":{"102":1,"184":1}}],["weight",{"2":{"7":1,"138":1,"165":1,"174":4}}],["wejua",{"2":{"54":1}}],["webxrmanager",{"2":{"263":2}}],["webgpu坐标系在canvas画布上的坐标原点是canvas画布的中间位置",{"2":{"260":1}}],["webgpu坐标系",{"0":{"260":1}}],["webgpu真的顶",{"2":{"259":1}}],["webgpu性能测试",{"0":{"259":1}}],["webgpu已经出来了",{"2":{"257":1}}],["webgpu它把graphic的技术",{"2":{"256":1}}],["webgpu可以运行在windows",{"2":{"255":1}}],["webgpu",{"0":{"256":1},"2":{"248":1}}],["webgpucontext",{"2":{"248":4,"251":2}}],["webgpu下一步",{"2":{"246":1}}],["webgl的渲染管线它的流程是怎样的",{"0":{"312":1}}],["webglbufferrenderer和webglindexedbufferrenderer",{"2":{"264":1}}],["webgl和three",{"2":{"260":1}}],["webgl重写底层渲染",{"2":{"258":1}}],["webglrenderer的render方法",{"0":{"264":1}}],["webglrenderer",{"0":{"263":1},"2":{"247":1,"263":1,"264":3}}],["webgl",{"2":{"26":6,"265":1,"266":2}}],["website",{"2":{"163":2,"164":1}}],["webpack注功绘制二维码中间logo",{"2":{"232":1}}],["webpack",{"2":{"134":1}}],["web",{"2":{"19":3,"93":1}}],["wanna",{"2":{"286":1}}],["warning",{"2":{"271":2,"284":6,"291":4,"294":1}}],["warnings",{"0":{"291":1},"2":{"271":1,"282":1}}],["warn",{"2":{"253":2}}],["watercress",{"2":{"196":1}}],["waitduration",{"2":{"88":1}}],["was",{"2":{"86":1,"218":1,"253":2}}],["waste",{"2":{"10":1}}],["wakk则可以正常执行",{"2":{"218":1}}],["wakk",{"2":{"17":1,"153":1,"174":2,"198":2,"217":1,"218":1,"219":1,"224":2,"253":2}}],["w",{"2":{"14":1,"19":1,"223":1}}],["w表示将依赖安装到公共模块中",{"2":{"14":1}}],["wish",{"2":{"271":1}}],["will",{"2":{"271":1,"276":1,"279":1,"289":1,"290":1,"291":1,"294":1}}],["willset",{"2":{"200":1}}],["window3",{"2":{"236":5}}],["window2",{"2":{"235":1}}],["window",{"2":{"234":1,"236":3,"299":1}}],["windows",{"2":{"223":2,"236":1}}],["windows执行的是cmd文件",{"2":{"223":1}}],["windows和linux操作系统",{"2":{"92":1}}],["windowgroup",{"2":{"175":1}}],["wide",{"2":{"287":1}}],["widget中",{"2":{"86":1}}],["widget需要被包裹在scaffold",{"2":{"86":1}}],["widget可以完全或者部分覆盖基础widget",{"2":{"66":1}}],["widget分为两类",{"2":{"65":1}}],["widget的flex属性",{"2":{"62":1}}],["widget调整widgets的大小以适合行或列",{"2":{"62":1}}],["widget垂直排列widgets",{"2":{"60":1}}],["widget水平排列widgets",{"2":{"60":1}}],["widget添加到app的build方法里",{"2":{"59":1}}],["widget直接添加到主页body的属性中",{"2":{"58":1}}],["widget",{"2":{"58":2,"59":1,"66":1,"86":1,"89":2,"111":1,"114":1,"115":1,"116":1,"118":2,"119":2,"120":4,"122":1,"124":2,"125":2,"130":2}}],["widgets",{"2":{"65":1}}],["widgets库中的标准widgets和material库中的widgets",{"2":{"65":1}}],["widgets可以用于布局和展示ui元素",{"2":{"57":1}}],["widgets是用于构建ui的类",{"2":{"57":1}}],["width",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"70":1,"79":1,"86":1,"90":1,"138":2,"139":1,"153":1,"156":1,"159":1,"166":6,"167":18,"168":4,"169":5,"173":1,"177":1,"178":1,"180":1}}],["withanimation",{"2":{"167":1,"168":1,"169":1,"174":1}}],["with",{"2":{"4":1,"94":1,"96":1,"132":1,"166":1,"167":1,"174":2,"200":5,"272":1,"276":1,"277":1,"279":1,"286":2,"294":1}}],["www",{"2":{"2":1,"53":1,"76":1,"163":2,"164":1,"246":1,"258":2}}],["where",{"2":{"196":1,"286":1}}],["when",{"2":{"120":1,"286":1,"294":1}}],["white",{"2":{"66":1,"160":1,"174":1}}],["while一样",{"2":{"197":1}}],["while和do",{"2":{"197":1}}],["while和repeat",{"0":{"197":1},"2":{"193":1}}],["while来进行循环",{"2":{"193":1}}],["while等流程控制语句的使用方法和js中基本一致",{"2":{"39":1}}],["while",{"0":{"197":1},"2":{"39":1,"197":2,"290":1}}],["what",{"2":{"2":1,"119":1}}],["whyframe",{"2":{"286":1}}],["why",{"2":{"1":1}}],["致远这篇文章的时候真的是羡慕这样的团队",{"2":{"2":1}}],["致远",{"2":{"2":1}}],["语雀知源",{"2":{"2":1}}],["msg",{"2":{"288":6,"289":2,"290":4,"291":4}}],["msys",{"2":{"223":1}}],["mdit",{"2":{"295":3}}],["mdsome",{"2":{"294":1}}],["md```ts",{"2":{"292":1}}],["md",{"2":{"271":4,"276":13,"284":1,"285":1,"286":1,"293":1,"294":4,"295":2,"300":1}}],["m",{"2":{"132":1,"197":4}}],["mudules",{"2":{"219":1}}],["multilang",{"2":{"237":1}}],["multilinetextalignment",{"2":{"153":2}}],["multiplier",{"2":{"206":3}}],["multiple",{"2":{"26":2,"288":2,"293":1}}],["mutating",{"2":{"141":1,"202":1}}],["must",{"2":{"120":1,"205":1}}],["mp",{"2":{"102":1,"184":1}}],["mymethod",{"2":{"253":4}}],["myvariable",{"2":{"253":6}}],["mylabel的左侧和view",{"2":{"211":1}}],["mylabel的顶部和view",{"2":{"211":1}}],["mylabel",{"2":{"210":12,"211":2}}],["mywidget",{"2":{"130":3}}],["mycomponent",{"2":{"287":2}}],["mycontroller",{"2":{"124":6,"130":3}}],["myclass",{"2":{"253":7}}],["mycustomformstate",{"2":{"124":3}}],["mycustomform",{"2":{"124":4}}],["my",{"2":{"85":1,"200":1,"226":1,"235":4,"274":2}}],["myappstate",{"2":{"111":2}}],["myapp",{"2":{"58":2,"59":2,"111":5,"114":3,"115":3,"116":3,"122":3,"124":3}}],["might",{"2":{"286":1}}],["missing",{"2":{"271":2}}],["mid=2649127118",{"2":{"102":1}}],["mia",{"2":{"66":1}}],["mingw",{"2":{"223":1}}],["minimum",{"2":{"177":1}}],["mini",{"0":{"97":1}}],["mini环境配置",{"0":{"94":1}}],["min`",{"2":{"77":1}}],["min",{"2":{"63":2,"77":1,"198":5}}],["mirror",{"2":{"26":1}}],["most",{"2":{"303":1}}],["motd",{"2":{"288":2}}],["more",{"2":{"279":1,"287":1,"292":1,"295":1}}],["move",{"2":{"167":1}}],["mounted",{"2":{"120":2,"308":1}}],["mousedown",{"2":{"29":2}}],["mousemove",{"2":{"29":1}}],["mode",{"2":{"243":1}}],["modelposition",{"2":{"266":2}}],["modelmatrix",{"2":{"266":2}}],["model",{"2":{"137":3,"171":1,"175":8}}],["modelbottomsheet",{"2":{"126":1}}],["models",{"2":{"24":1}}],["modules目录中",{"2":{"227":1}}],["modules下生成软链接吗",{"2":{"224":1}}],["modules下acorn",{"2":{"223":1}}],["modules",{"2":{"223":1,"224":2}}],["moduleresolution",{"2":{"219":2}}],["module",{"2":{"219":2,"295":1}}],["module配置",{"2":{"219":1}}],["modalpresentationstyle",{"2":{"212":1}}],["modifier",{"2":{"26":1,"160":1}}],["monorepo",{"2":{"237":1}}],["monorepo+pnpm",{"2":{"216":1,"224":1}}],["monorepo的demo项目完成",{"2":{"17":1}}],["monorepo学习",{"0":{"11":1},"1":{"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1},"2":{"20":1}}],["may",{"2":{"285":1,"287":1}}],["makearray",{"2":{"204":2}}],["makeincrementer",{"2":{"198":2}}],["make",{"2":{"196":2,"294":1}}],["makebody",{"2":{"139":1}}],["manager",{"2":{"286":1}}],["manager是apple为了弥补当前ios开发中缺少官方组件库管理工具的产物",{"2":{"184":1}}],["manager使用",{"0":{"184":1}}],["managedobjectcontext",{"2":{"175":1}}],["manual",{"2":{"2":1}}],["magnifyingglass",{"2":{"168":2,"169":1}}],["mask",{"2":{"159":1,"178":1}}],["master",{"2":{"103":1,"132":1}}],["mail",{"2":{"138":1}}],["mainimage",{"2":{"66":1}}],["mainaxisspacing",{"2":{"66":1}}],["mainaxissize",{"2":{"63":2,"77":2}}],["mainaxisalignment",{"2":{"61":2,"62":2,"77":2,"120":2,"122":2}}],["main",{"2":{"51":1,"54":1,"85":1,"89":1,"110":1,"111":1,"113":1,"114":1,"115":1,"116":1,"118":1,"119":1,"120":1,"122":1,"124":1,"130":2,"132":2,"175":1,"209":1,"241":1,"295":1}}],["machedview",{"2":{"174":1}}],["mac自带git",{"2":{"148":1}}],["mac环境安装",{"0":{"144":1},"1":{"145":1,"146":1,"147":1,"148":1,"149":1}}],["macos",{"2":{"94":1,"255":1}}],["mac",{"0":{"94":1,"97":1}}],["maven",{"2":{"92":7,"93":1}}],["maxbuffer",{"2":{"314":1}}],["max",{"2":{"198":5}}],["maxheight",{"2":{"138":3,"168":3,"169":3}}],["maxwidth",{"2":{"138":2,"165":1,"168":2,"169":2,"174":2,"177":1}}],["maxcrossaxisextent",{"2":{"66":1}}],["maximum",{"2":{"28":1}}],["margins",{"2":{"65":1}}],["margin",{"2":{"57":1,"70":1,"88":1}}],["markup",{"2":{"303":1}}],["markdown",{"0":{"268":1,"294":1},"1":{"269":1,"270":1,"271":1,"272":1,"273":1,"274":1,"275":1,"276":1,"277":1,"278":1,"279":1,"280":1,"281":1,"282":1,"283":1,"284":1,"285":1,"286":1,"287":1,"288":1,"289":1,"290":1,"291":1,"292":1,"293":1,"294":1,"295":1},"2":{"272":1,"273":1,"282":1,"287":2,"292":2,"294":4,"295":10}}],["mark",{"0":{"9":1},"2":{"3":1,"9":2,"292":1}}],["map数据的迭代方法",{"2":{"253":1}}],["map中再套map",{"2":{"248":1}}],["mappednumbers",{"2":{"199":3}}],["map方法必须有一个return返回值",{"2":{"199":1}}],["map不会改变原数组的值",{"2":{"199":1}}],["map是维护若干个键值对的数据类型",{"2":{"49":1}}],["map",{"2":{"35":1,"111":1,"114":1,"199":2,"236":3,"248":1}}],["matrixworldautoupdate",{"2":{"253":4}}],["mat4x4",{"2":{"241":2}}],["mat3x3",{"2":{"241":1}}],["mat2x2",{"2":{"241":1}}],["matchedgeometryeffect",{"2":{"174":8}}],["matched",{"0":{"174":1}}],["materialpageroute",{"2":{"118":1,"119":1,"120":1}}],["materialapp",{"2":{"58":1,"89":1,"111":1,"114":1,"115":1,"116":1,"118":1,"119":1,"120":1,"122":1,"124":1,"130":2}}],["material",{"2":{"32":2,"65":1,"86":1,"89":1,"111":1,"114":1,"115":1,"116":1,"118":1,"119":1,"120":1,"122":1,"124":1,"130":2}}],["math",{"2":{"24":2,"103":1,"307":1}}],["merging",{"2":{"312":1}}],["merge",{"0":{"81":1},"2":{"81":1,"132":1}}],["mergegeometry",{"2":{"24":5}}],["mean",{"2":{"219":1}}],["message",{"2":{"88":1,"137":1,"206":3,"230":5}}],["menu",{"2":{"85":1,"89":1,"237":1}}],["metal学习",{"0":{"150":1}}],["metal",{"0":{"55":1},"2":{"55":1,"99":1,"150":1,"256":2}}],["metal等",{"2":{"54":1}}],["method",{"2":{"34":1,"115":1,"116":1,"120":1,"137":1,"253":4,"299":1}}],["me",{"2":{"1":1,"285":2}}],["f",{"2":{"251":2,"253":2}}],["fbo",{"2":{"246":1}}],["f32",{"2":{"241":22}}],["fn1",{"2":{"234":2}}],["fn",{"2":{"234":2,"235":6,"241":2}}],["fragment",{"2":{"312":2}}],["framework的东西",{"2":{"214":1}}],["frame",{"2":{"138":6,"139":1,"153":2,"156":2,"157":1,"159":1,"165":1,"166":1,"167":1,"168":9,"169":9,"173":2,"174":2,"177":3,"178":1,"180":1}}],["frame属性给view提供特定空间",{"2":{"138":1}}],["frontmatter",{"0":{"279":1},"2":{"279":2}}],["fromjson",{"2":{"111":2}}],["fromltrb",{"2":{"70":1,"122":2}}],["fromrgbo",{"2":{"70":1}}],["from",{"2":{"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"16":1,"17":2,"120":2,"141":1,"142":1,"143":1,"181":2,"219":1,"230":7,"237":4,"271":1,"293":2}}],["ff",{"2":{"132":2}}],["further",{"2":{"295":1}}],["full",{"2":{"295":1}}],["fullname",{"2":{"235":6}}],["fullscreen",{"2":{"212":1,"237":1}}],["fullscreencover",{"2":{"140":1}}],["fun",{"2":{"236":2}}],["funds",{"2":{"203":1}}],["func",{"2":{"137":1,"139":1,"141":4,"160":2,"167":1,"169":1,"198":4,"200":6,"201":1,"202":1,"203":1,"210":2}}],["function",{"2":{"9":1,"218":1,"232":1,"234":1,"235":3,"253":1,"267":2,"299":1,"306":2}}],["futurebuilder",{"2":{"111":1}}],["futurealbum",{"2":{"111":3}}],["future",{"2":{"110":1,"111":3,"114":1,"115":1,"116":1,"120":2}}],["future是dart用来处理异步操作的一个核心类",{"2":{"109":1}}],["fvm文件夹",{"2":{"98":1}}],["fvm",{"2":{"98":7}}],["fvm切换flutter版本",{"0":{"98":1}}],["father",{"2":{"309":1}}],["fatal",{"2":{"132":1}}],["failure",{"2":{"137":1,"180":1}}],["failed",{"2":{"96":1,"110":1,"111":1,"114":1,"115":1,"116":1}}],["fast",{"2":{"132":1}}],["factory",{"2":{"111":1}}],["false不进行增量编译",{"2":{"19":1}}],["false",{"2":{"6":1,"19":4,"88":2,"105":2,"125":1,"132":2,"141":2,"143":1,"164":1,"167":1,"172":2,"174":1,"175":1,"198":1,"210":1}}],["float32array",{"2":{"246":1}}],["float",{"2":{"189":1,"191":1}}],["floatingactionbutton",{"2":{"130":4}}],["flex",{"2":{"62":1,"74":1}}],["flutter打包问题",{"0":{"106":1}}],["flutter项目学习",{"0":{"104":1},"1":{"105":1,"106":1,"107":1}}],["flutter中使用metal",{"0":{"102":1},"1":{"103":1}}],["flutter中如何使用arkit和arcore来实现一个ar",{"2":{"55":1}}],["flutter是否可以实现",{"2":{"98":1}}],["flutter如何打包成各种版本的app",{"2":{"98":1}}],["flutter的包管理工具pub",{"0":{"93":1}}],["flutter入门学习",{"0":{"91":1},"1":{"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1}}],["flutter内置进度条有三种类型",{"2":{"90":1}}],["flutter提供了两个开箱即用的文本框组件",{"2":{"86":1}}],["fluttericon",{"2":{"76":1}}],["flutter常用组件",{"0":{"69":1},"1":{"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1}}],["flutter会调用build方法来生成新的部件树",{"2":{"67":1}}],["flutter还提供专门的",{"2":{"60":1}}],["flutter",{"2":{"58":2,"67":1,"89":1,"93":1,"94":1,"97":10,"102":1,"103":1,"109":1,"111":1,"112":1,"114":1,"115":1,"116":1,"118":1,"119":1,"120":1,"122":1,"124":2,"128":2,"130":2}}],["flutter学习",{"0":{"56":1},"1":{"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1}}],["flush",{"2":{"51":1}}],["fenced",{"2":{"292":1}}],["feishu",{"2":{"184":1}}],["feature",{"2":{"294":1}}],["featureditem",{"2":{"173":1}}],["featured",{"2":{"172":2}}],["feat",{"2":{"134":1}}],["feedback",{"2":{"60":1}}],["fetching",{"2":{"181":1}}],["fetchaddress",{"2":{"181":2}}],["fetchalbum",{"2":{"109":1,"111":2}}],["fetchdata",{"2":{"110":2,"141":2,"143":2}}],["fetch",{"2":{"7":1,"8":1,"10":1,"110":1,"111":2,"141":1,"143":1}}],["focused",{"2":{"289":2}}],["focus",{"0":{"289":1},"2":{"289":5}}],["foorc",{"2":{"294":2}}],["foo",{"2":{"271":5,"276":7}}],["footnote",{"2":{"174":4,"178":1,"179":1}}],["four",{"2":{"201":1,"271":2,"276":3}}],["found",{"2":{"192":2,"267":1}}],["following",{"2":{"132":1,"271":1,"276":1}}],["font",{"2":{"138":2,"139":1,"153":1,"162":2,"165":2,"168":2,"169":2,"174":6,"178":1,"179":1,"210":1,"246":1}}],["fonts",{"2":{"76":1}}],["fontsize",{"2":{"59":1,"66":1,"72":1,"73":1,"126":1,"130":1}}],["fontfamily",{"2":{"72":1,"73":1}}],["fontweight",{"2":{"66":2,"72":2,"73":2,"85":2,"153":1}}],["fontloader",{"2":{"25":1}}],["fork会在父进程与子进程之间",{"2":{"314":1}}],["fork",{"2":{"314":3}}],["for=",{"2":{"287":2}}],["foregroundstyle",{"2":{"158":2,"162":1,"166":1,"168":1,"169":1,"174":2}}],["foregroundcolor",{"2":{"139":1,"140":3,"162":1,"163":2,"164":1,"165":1,"178":1,"179":2}}],["foreach",{"2":{"49":1,"168":1,"169":1,"173":1,"177":1,"178":1,"237":1,"309":2}}],["foreach遍历",{"2":{"49":1}}],["forward",{"2":{"132":1}}],["formkey",{"2":{"124":3}}],["form",{"2":{"124":2}}],["formstate",{"2":{"124":1}}],["forms",{"2":{"124":1}}],["format",{"2":{"1":1,"219":4}}],["for循环遍历",{"2":{"47":1}}],["for",{"2":{"28":1,"34":1,"39":1,"47":3,"48":1,"119":1,"132":1,"174":2,"195":1,"196":2,"197":1,"198":2,"204":1,"206":2,"246":2,"251":2,"253":1,"271":1,"274":1,"276":2,"279":1,"286":1,"287":2,"288":3,"292":2,"294":1,"295":2}}],["forcedstring",{"2":{"194":1}}],["force",{"2":{"4":3}}],["fi",{"2":{"223":1}}],["five",{"2":{"201":1}}],["fibonacci",{"2":{"196":1}}],["field11",{"2":{"124":1}}],["finish",{"2":{"251":1}}],["find",{"2":{"86":1,"219":1}}],["final不仅有const的编译时常量的特性",{"2":{"34":1}}],["final关键字声明的常量只能赋值一次且声明时可以不用赋值",{"2":{"34":1}}],["final",{"2":{"34":1,"44":1,"45":1,"47":2,"66":1,"110":3,"111":4,"113":1,"114":1,"115":1,"116":1,"119":4,"120":1,"122":3,"124":2,"130":1}}],["filters实现",{"2":{"309":1}}],["filter",{"2":{"178":1}}],["fill",{"2":{"66":1,"75":2,"139":1,"162":4,"165":1,"166":3,"167":1,"168":3,"169":3,"178":1}}],["files",{"2":{"221":1}}],["file",{"0":{"294":1},"2":{"51":5,"206":1,"218":1,"219":1,"271":1,"276":1,"282":1,"286":1,"294":5}}],["fit",{"2":{"66":1,"75":1,"157":1}}],["firstroute",{"2":{"118":3}}],["first",{"2":{"8":1,"118":1}}],["fixedsize",{"2":{"138":1}}],["fix",{"2":{"4":2,"134":1}}],["fixall",{"2":{"1":1,"219":1}}],["fpgdp5",{"2":{"2":1}}],["固执己见",{"2":{"1":1}}],["固执己见的",{"2":{"1":1}}],["也会触发重排",{"2":{"309":1}}],["也会走img",{"2":{"267":1}}],["也会带来试错成本",{"2":{"257":1}}],["也没有纹理",{"2":{"264":1}}],["也是three内置好的变量",{"2":{"266":1}}],["也是必然会涉及到的",{"2":{"258":1}}],["也是通过cpu和gpu共同处理显示出来的",{"2":{"101":1}}],["也还是做不到bimface那样的流畅操作",{"2":{"257":1}}],["也访问不了父类的private属性和方法",{"2":{"253":1}}],["也因为没有模块化要求",{"2":{"231":1}}],["也可以单个项目安装",{"2":{"218":1}}],["也可以通过bin配置别名",{"2":{"217":1}}],["也可以通过下标来访问元组中的单个元素",{"2":{"192":1}}],["也可以在set之后的圆括号中显示地设置一个名字",{"2":{"200":1}}],["也就明白了为什么",{"2":{"251":1}}],["也就是所谓的片元",{"2":{"312":1}}],["也就是说",{"2":{"50":1}}],["也就是文中所说的prettier的",{"2":{"1":1}}],["也就相当于修改了未释放的offsetpositiondata的值",{"2":{"31":1}}],["也不需要学习它的底层代码",{"2":{"2":1}}],["也最终会走向没落",{"2":{"2":1}}],["也对eslint不够了解",{"2":{"1":1}}],["pseudo",{"2":{"286":2}}],["ps1",{"2":{"223":1}}],["pc",{"2":{"214":1}}],["phase",{"2":{"180":2}}],["phasescriptexecution",{"2":{"96":1}}],["photos",{"2":{"180":1}}],["phone",{"2":{"138":1}}],["pepper",{"2":{"196":1}}],["pencil",{"2":{"140":1}}],["permalink",{"2":{"295":2}}],["perimeter",{"2":{"200":3}}],["perspectivecamera",{"2":{"262":4}}],["perspective",{"2":{"244":1}}],["persistencecontroller",{"2":{"175":3}}],["person2",{"2":{"253":2}}],["person1",{"2":{"253":2}}],["person",{"2":{"142":5,"162":1,"165":1,"198":5,"205":1,"235":9,"236":6,"253":5}}],["perf",{"2":{"134":1}}],["per",{"2":{"132":1}}],["peerdependencyrules",{"2":{"271":1}}],["peer",{"2":{"4":2,"271":2}}],["p调出输命令框",{"2":{"95":1}}],["png",{"2":{"62":4,"66":3,"70":1,"75":1,"84":1}}],["pnpm来执行对应的命令",{"2":{"224":1}}],["pnpm",{"2":{"12":1,"18":1,"270":1,"271":2}}],["pull",{"2":{"132":7,"133":2}}],["put",{"2":{"130":1}}],["published",{"2":{"175":2}}],["public",{"2":{"92":1,"248":2,"253":9}}],["pub",{"2":{"67":2,"93":1,"97":2,"102":1,"103":1,"109":1,"112":1,"122":1,"128":1}}],["purple",{"2":{"59":1,"70":1}}],["push",{"2":{"28":1,"118":1,"119":1,"120":2,"246":1}}],["p3是",{"2":{"32":1}}],["p3来定义",{"2":{"32":1}}],["p2需要添加在p3左侧",{"2":{"32":1}}],["p2",{"2":{"32":1}}],["p1和p2是需要添加的控制点",{"2":{"32":1}}],["p1",{"2":{"32":1}}],["p0是",{"2":{"32":1}}],["p0和p3是曲线的起点和终点",{"2":{"32":1}}],["p0",{"2":{"32":1}}],["pixel",{"2":{"243":1}}],["pinia中的options",{"0":{"230":1}}],["pinia",{"0":{"229":1},"1":{"230":1,"231":1},"2":{"230":2}}],["pin",{"2":{"164":4}}],["pink",{"2":{"90":1,"166":2,"167":1,"168":1,"169":1}}],["picsum",{"2":{"180":1}}],["pick",{"2":{"120":2,"243":2}}],["pickcolors",{"2":{"31":2}}],["pic3",{"2":{"61":1}}],["pic2",{"2":{"61":1}}],["pic1",{"2":{"61":1}}],["pico自动进入steamvr界面",{"2":{"55":1}}],["pico客户端",{"2":{"55":1}}],["pi",{"2":{"24":2,"190":2}}],["placement",{"2":{"178":1}}],["play",{"2":{"19":3}}],["please",{"2":{"124":1,"203":1,"287":1,"292":1}}],["plist中添加下面权限",{"2":{"103":1}}],["plugin插件的示例代码",{"2":{"103":1}}],["plugin",{"0":{"103":1},"2":{"67":2,"92":1,"100":1,"102":1,"103":3,"219":1,"295":2}}],["plugins",{"2":{"55":1,"286":1,"295":2}}],["plus的theme文件夹下index",{"2":{"237":1}}],["plus的vitepress配置",{"0":{"237":1},"1":{"238":1}}],["plus的配置命令",{"2":{"19":1}}],["plus的命令配置",{"2":{"19":1}}],["plus的源码",{"2":{"11":1}}],["plus",{"2":{"14":1,"237":7,"238":1}}],["plus和typescript依赖",{"0":{"14":1},"2":{"11":1}}],["p",{"2":{"19":8,"252":1}}],["painting",{"2":{"309":1}}],["paths",{"2":{"219":1}}],["path",{"2":{"166":1,"167":12,"218":2,"294":1}}],["path=",{"2":{"97":2}}],["palette",{"2":{"162":1}}],["pages",{"2":{"277":1}}],["pagesize",{"2":{"230":2}}],["pageno",{"2":{"230":2}}],["page",{"0":{"277":1},"2":{"137":1,"173":1,"279":1}}],["pass",{"2":{"132":1}}],["passing",{"2":{"119":1}}],["part",{"2":{"294":1}}],["parts",{"2":{"289":1,"294":2}}],["params",{"2":{"230":4}}],["paras",{"2":{"114":2}}],["parse层拿到原始数据后",{"2":{"24":1}}],["parse层",{"2":{"24":1}}],["parse",{"2":{"24":1,"36":2,"109":1,"110":1,"111":1}}],["parse解析获取cad图纸中的第一手原始数据",{"2":{"23":1}}],["package",{"0":{"184":1,"217":1},"2":{"89":1,"109":1,"110":1,"111":2,"112":1,"113":1,"114":2,"115":2,"116":2,"118":1,"119":1,"120":1,"122":2,"124":1,"130":4,"184":1,"219":1,"271":1,"286":1}}],["packages",{"2":{"13":1,"18":1,"67":2,"97":1,"102":1,"103":1,"128":1,"295":1}}],["padding属性是必写的",{"2":{"82":1}}],["padding",{"0":{"82":1},"2":{"6":2,"66":1,"70":1,"82":1,"88":1,"119":2,"120":4,"122":4,"124":2,"141":2,"153":2,"156":1,"162":1,"168":4,"169":4,"174":3,"309":1}}],["prevent",{"2":{"271":1,"286":1,"289":1,"290":1,"291":1}}],["previous",{"2":{"120":1}}],["preview",{"2":{"172":1}}],["preview运行",{"2":{"55":1}}],["preview功能已开启",{"2":{"55":1}}],["present",{"2":{"212":1,"294":1}}],["presentationmode",{"2":{"140":1}}],["precondition",{"2":{"205":1}}],["pretzels",{"2":{"203":1}}],["prettier",{"2":{"0":1,"1":1,"219":1}}],["prefix",{"2":{"286":5,"294":1}}],["prefs",{"2":{"122":6}}],["preferred",{"2":{"286":1}}],["prefer",{"2":{"219":1}}],["preferencekey",{"2":{"169":1}}],["preference",{"2":{"132":1,"169":1}}],["preferences",{"0":{"122":1},"2":{"121":1,"122":3}}],["preferbelow",{"2":{"88":1}}],["priority",{"2":{"253":2}}],["primitive",{"2":{"312":1}}],["prime",{"2":{"196":1}}],["primary",{"2":{"158":1,"168":1,"169":1,"179":1}}],["primaryswatch",{"2":{"111":1}}],["privacy",{"2":{"179":1}}],["private修饰的属性和方法只能够在类的内部直接进行访问",{"2":{"253":1}}],["private",{"2":{"141":2,"253":6}}],["printresult",{"2":{"141":2}}],["printlatestvalue",{"2":{"124":2}}],["printdata",{"2":{"41":2,"42":2}}],["print",{"2":{"38":2,"40":1,"41":1,"42":1,"44":1,"45":2,"47":4,"48":5,"49":1,"50":1,"51":3,"87":1,"110":2,"113":2,"114":2,"115":2,"116":4,"122":2,"124":1,"125":4,"126":1,"137":2,"141":3,"142":1,"143":1,"164":1,"178":1,"181":1,"190":2,"191":2,"192":4,"195":6,"196":5,"197":4,"198":5,"199":3,"200":5,"201":3,"203":6,"204":1,"206":13,"210":1}}],["price",{"2":{"8":1,"203":7}}],["pro做了一个打包优化",{"2":{"297":1}}],["properties",{"2":{"295":1}}],["property",{"2":{"120":1}}],["process",{"2":{"314":4}}],["processing",{"2":{"124":1,"289":1,"290":1,"291":1}}],["proceed",{"2":{"285":2}}],["providing",{"2":{"276":1}}],["protected修饰的属性和方法只能够在父类或者子类内部访问",{"2":{"253":1}}],["prototype",{"2":{"236":3}}],["programming",{"2":{"287":1,"303":1}}],["program",{"2":{"218":1}}],["progressview",{"2":{"180":1}}],["prompt",{"2":{"178":1}}],["promise",{"2":{"28":1}}],["proxy",{"2":{"169":2,"177":2}}],["profile",{"2":{"97":2}}],["projectedposition",{"2":{"266":1}}],["projectionmatrix",{"2":{"266":2}}],["projectcontroller",{"2":{"212":1}}],["project",{"2":{"19":1,"294":1}}],["product",{"2":{"103":1}}],["prod",{"2":{"7":1}}],["powershell中可执行文件",{"2":{"223":1}}],["policy",{"2":{"179":1}}],["popular",{"2":{"303":1}}],["popup",{"2":{"89":1}}],["popupmenuitem",{"2":{"89":3}}],["popupmenuentry",{"2":{"89":1}}],["popupmenuexamplestate",{"2":{"89":2}}],["popupmenuexample",{"2":{"89":5}}],["popupmenubutton",{"2":{"89":2}}],["popupmenubutton弹出菜单",{"0":{"89":1}}],["popupmenuapp",{"2":{"89":3}}],["pop",{"2":{"118":1,"120":4,"125":5,"126":3}}],["pod",{"2":{"176":4}}],["podfile",{"2":{"103":1}}],["pods文件夹",{"2":{"103":1}}],["possible",{"2":{"288":1}}],["possiblestring",{"2":{"194":2}}],["pos转齐次坐标",{"2":{"241":1}}],["pos2",{"2":{"241":2}}],["pos",{"2":{"241":2}}],["position2",{"2":{"241":1}}],["positions中",{"2":{"31":1}}],["positions",{"2":{"31":3}}],["position",{"2":{"24":5,"28":3,"241":8}}],["postcssrc",{"2":{"286":1}}],["postcss",{"2":{"286":3}}],["post",{"2":{"20":1,"55":1,"92":1,"98":1,"100":1,"104":1,"129":1,"131":1,"147":1,"150":1,"185":1,"186":1,"218":2,"252":1,"265":2,"299":1}}],["posts",{"2":{"1":1,"186":2}}],["pointarr",{"2":{"246":3}}],["pointlight",{"2":{"241":2}}],["pointline",{"2":{"9":2}}],["points",{"2":{"32":2}}],["pointermove",{"2":{"29":1}}],["point",{"2":{"7":1,"9":1}}],["potentially",{"2":{"4":1}}],["配套的as插件帮助建立开发规范和进一步提高开发效率",{"2":{"100":1}}],["配置如下",{"2":{"224":1}}],["配置了bin字段的所有包都会在node",{"2":{"224":1}}],["配置了bin就一定会生成软链接吗",{"0":{"224":1}}],["配置是用来说明哪些文件需要编译",{"2":{"219":1}}],["配置文件",{"2":{"219":1}}],["配置友好的脚手架命令提示等内容",{"2":{"218":1}}],["配置等",{"2":{"134":1}}],["配置环境变量",{"0":{"97":1}}],["配置下面五个类型检查命令分别进行对应模块的类型检查",{"2":{"19":1}}],["配置",{"0":{"217":1,"220":1},"1":{"221":1},"2":{"1":1,"219":1}}],["配合ide扩展",{"2":{"1":1}}],["哦不",{"2":{"249":1}}],["哦",{"2":{"1":1}}],["并针对每个对象进行必要的计算和渲染操作",{"2":{"264":1}}],["并根据所选图元来调用ourbim现有的功能去做三维模型的构件选中和高亮",{"2":{"257":1}}],["并根据spir",{"2":{"99":1}}],["并支持大家熟悉的游戏引擎及公司",{"2":{"256":1}}],["并返回实例化对象",{"2":{"244":1}}],["并进行整合形成框架的能力",{"2":{"239":1}}],["并进行相应的操作",{"2":{"67":1}}],["并执行命令",{"2":{"226":1}}],["并不会继续向下运行",{"2":{"196":1}}],["并不是所有的字符串都可以转换成一个整数",{"2":{"194":1}}],["并不要求是相同类型",{"2":{"192":1}}],["并生成编译目标产物所需要的相关配置",{"2":{"184":1}}],["并将子进程的输出以回调函数参数的形式一次性返回",{"2":{"314":1}}],["并将其应用于视图或形状",{"2":{"160":1}}],["并将帧和声音发送给客户端进行解码和显示",{"2":{"53":1}}],["并提高应用程序的性能和内存使用效率",{"2":{"129":1}}],["并提供了许多lint的最佳实践",{"2":{"1":1}}],["并触发它们的重建",{"2":{"129":1}}],["并在执行完毕后删除该目录",{"2":{"228":1}}],["并在程序运行之后",{"2":{"214":1}}],["并在变化时触发更新",{"2":{"129":1}}],["并在变化时通知所有依赖它们的widget",{"2":{"129":1}}],["并在各级目录下执行npm",{"2":{"13":1}}],["并通过离线编译的方式打到引擎之中的",{"2":{"99":1}}],["并带有自己的安装程序",{"2":{"53":1}}],["并集",{"2":{"48":1}}],["并最终将结果渲染到屏幕上",{"2":{"30":1}}],["并附加一些额外的属性",{"2":{"30":1}}],["并且tsconfig",{"2":{"219":1}}],["并且整个表达式返回nil",{"2":{"200":1}}],["并且允许重复",{"2":{"47":1}}],["并且final是惰性初始化",{"2":{"34":1}}],["并且与p0的y相同",{"2":{"32":1}}],["并且还能保证图片不失真",{"2":{"27":1}}],["并且更加可配置",{"2":{"0":1}}],["并可以通过",{"2":{"25":1}}],["并行执行脚本",{"2":{"20":1}}],["并行执行命令",{"0":{"19":1}}],["并行对所有模块类型进行检查",{"2":{"19":1}}],["但table及其内部元素除外",{"2":{"309":1}}],["但回流一定会导致重绘",{"2":{"309":1}}],["但sdk的封装请求不可能使用代理的字段去封装",{"2":{"267":1}}],["但这个过程就和我一开始接触做cad一样",{"2":{"257":1}}],["但只能通过类来访问",{"2":{"253":1}}],["但还没有设计到webgpu关键的渲染管线部分",{"2":{"248":1}}],["但我们没有运维",{"2":{"215":1}}],["但我确实在工作中感受到了prettier的一些局限性",{"2":{"1":1}}],["但不包含构造器中发生值改变地情况",{"2":{"200":1}}],["但可以通过父容器设置高度来间接设置",{"2":{"90":1}}],["但如果要将子项紧密结合在一起",{"2":{"63":1,"77":1}}],["但如果内容太长导致可用空间不够容纳时会自动滚动",{"2":{"60":1}}],["但也实在不好意思吹牛说我能保证结果",{"2":{"257":1}}],["但也可能仅仅是过多的堆栈层级",{"2":{"28":1}}],["但也不真实",{"2":{"23":1}}],["但是你不应该这样做",{"2":{"314":1}}],["但是你又不想在你的多行字符串字面量中出现换行符的话",{"2":{"206":1}}],["但是打包发布到线上就会找不到对应的文档",{"2":{"297":1}}],["但是前段时间突然发现语雀竟然不允许我新建知识库了",{"2":{"296":1}}],["但是还是会在控制台报错",{"2":{"267":1}}],["但是选择批注的辉光效果目前不是很好实现",{"2":{"246":1}}],["但是顶点颜色是按照id位计算成rgb值",{"2":{"242":1,"246":2}}],["但是因为",{"2":{"237":1}}],["但是composition",{"2":{"231":1}}],["但是我没有公司的阿里云管理账户",{"2":{"215":1}}],["但是仍然需要在设置一个新值之前或者之后运行代码",{"2":{"200":1}}],["但是字符串hello",{"2":{"194":1}}],["但是语句体的大括号是必须的",{"2":{"193":1}}],["但是它做不了跨平台",{"2":{"183":1}}],["但是它作为一个这么好用的图表库",{"2":{"2":1}}],["但是使用xcode再次打包时却会有很多报错",{"2":{"103":1}}],["但是运行却一直报错",{"2":{"96":1}}],["但是material库中的组件只能在material",{"2":{"65":1}}],["但是却能够实现很多文字的拾取效果",{"2":{"29":1}}],["但是颜色等信息会丢失",{"2":{"27":1}}],["但或许它可以成为一份很好的参考",{"2":{"1":1}}],["但当你要换行的时候尊重你的选择",{"2":{"1":1}}],["但在prettier中却无法做到",{"2":{"0":1}}],["还不如自己主动去适应更强大的tailwindcss",{"2":{"302":1}}],["还发了几篇csdn",{"2":{"296":1}}],["还是需要多做多学",{"2":{"259":1}}],["还是会以初始位置开始进行平移",{"2":{"246":1}}],["还是接口崩溃500",{"2":{"215":1}}],["还需要创造一个进行平移和缩放的2d场景",{"2":{"245":1}}],["还要配备",{"2":{"214":1}}],["还会增加可执行文件的大小",{"2":{"214":1}}],["还和界面切换相关",{"2":{"213":1}}],["还具有路由管理",{"2":{"68":1}}],["还有用于添加抽屉",{"2":{"58":1}}],["还有更自由的选择",{"2":{"0":1}}],["还可以在定义元组的时候给单个元素命名",{"2":{"192":1}}],["还可以在保存时触发自动修复",{"2":{"1":1}}],["还可以对当前widget做更改",{"2":{"67":1}}],["还可以使用wasm方案",{"2":{"26":1}}],["还使用eslint",{"2":{"21":1}}],["这也是为什么要避免使用table布局的原因",{"2":{"309":1}}],["这才是真正能提高我开发效率的工具",{"2":{"302":1}}],["这才是主界面",{"2":{"140":3}}],["这会比webgl性能更好",{"2":{"257":1}}],["这又是做什么的",{"2":{"249":1}}],["这又是一个必须要学的东西",{"2":{"11":1}}],["这一块一直是薄弱点",{"2":{"240":1}}],["这一点是options",{"2":{"231":1}}],["这行代码被当作注释删除",{"2":{"219":1}}],["这意味着函数可以作为另一个函数的返回值",{"2":{"198":1}}],["这意味着它们可以被观察",{"2":{"129":1}}],["这被称为",{"2":{"195":1}}],["这表示",{"2":{"195":1}}],["这种方法的优点是",{"2":{"237":1}}],["这种变体",{"2":{"203":1}}],["这种类型的可选状态被定义为隐式解析可选类型",{"2":{"194":1}}],["这种数据格式应该是固定的",{"2":{"10":1}}],["这位老哥用swift刷了很多的算法题",{"2":{"186":1}}],["这可以避免重复实例化controller",{"2":{"129":1}}],["这得益于arkit提供连续的摄像头图像流",{"2":{"54":1}}],["这就导致了很多方法根据不会被使用",{"2":{"263":1}}],["这就意味着",{"2":{"260":1}}],["这就是cloudxr的精髓所在",{"2":{"53":1}}],["这就必须有所有文字可供批注添加",{"2":{"25":1}}],["这点list是无法做到的",{"2":{"48":1}}],["这些逻辑对于cad来说其实是完全多余的",{"2":{"263":1}}],["这些属性会根据光栅化的结果进行计算",{"2":{"312":1}}],["这些属性可以用来创建约束",{"2":{"211":1}}],["这些属性将用于之后的绘制和着色过程",{"2":{"30":1}}],["这些方案在项目在chrome运行时会失效",{"2":{"121":1}}],["这些基础widgets允许最大程度的自定义",{"2":{"60":1}}],["这些应该是需要结合着色器的语法才能实现",{"2":{"29":1}}],["这次来做一个脚手架开发",{"2":{"219":1}}],["这次我们还是在",{"2":{"216":1}}],["这次事件就是jenkins多个项目同时打包造成的",{"2":{"215":1}}],["这次堆栈溢出的原因是",{"2":{"28":1}}],["这次的升级思路",{"2":{"23":1}}],["这是开销最大的一次重排",{"2":{"309":1}}],["这是因为npx会在执行命令之前",{"2":{"228":1}}],["这是必须实现的方法",{"2":{"67":1}}],["这是进行一次性初始化操作的好地方",{"2":{"67":1}}],["这是statefulwidget的构造方法",{"2":{"67":1}}],["这是statelesswidget的主要生命周期",{"2":{"67":1}}],["这是一种类似于列的布局",{"2":{"60":1}}],["这是一个全局数据",{"2":{"175":1}}],["这是一个用来确定widget的弹性系数的整数",{"2":{"62":1}}],["这是一个易于使用的widget",{"2":{"60":1}}],["这是一个很恐怖的内存问题",{"2":{"28":1}}],["这是基于我自己的需求的另一种",{"2":{"1":1}}],["这个buffer的大小应该是200k",{"2":{"314":1}}],["这个阶段会将顶点着色器输出的顶点连接起来",{"2":{"312":1}}],["这个阶段的输出会被送到下一个阶段进行处理",{"2":{"312":3}}],["这个类的构造函数又是八百多行",{"2":{"263":1}}],["这个类封装的是事件的监听处理",{"2":{"249":1}}],["这个方法会根据透视相机构造参数进行矩阵更新",{"2":{"262":1}}],["这个方法创建了group的uuid",{"2":{"248":1}}],["这个webgpu会不会不太成熟",{"2":{"258":1}}],["这个时间大概是700毫秒左右",{"2":{"246":1}}],["这个时候使用import",{"2":{"219":1}}],["这个时候去demo1打开终端",{"2":{"218":1}}],["这个时候已经知道是服务器出问题了",{"2":{"215":1}}],["这个目录可以直接访问",{"2":{"217":1}}],["这个错误会与catch子句做匹配",{"2":{"203":1}}],["这个空协议表明该类型可以用于错误处理",{"2":{"203":1}}],["这个修饰符代表使用sf符号的某个变体",{"2":{"162":1}}],["这个http",{"2":{"109":1}}],["这个报错如何解决",{"2":{"103":1}}],["这个过程可能会非常耗时",{"2":{"99":1}}],["这个路径是以项目根路径计算的",{"2":{"51":1}}],["这个点就是贝塞尔曲线上的一个点",{"2":{"32":1}}],["这个后续需要进一步学习",{"2":{"29":1}}],["这个网站可以将图片转为svg",{"2":{"27":1}}],["这个思路其实不仅仅适用于cad",{"2":{"23":1}}],["这能够真正放大成为数字化智慧城市",{"2":{"23":1}}],["这样只在隐藏和显示时触发两次重排",{"2":{"309":1}}],["这样我就可以用中文来命令md文件",{"2":{"297":1}}],["这样我就不需要每次启动项目都跑到demo1下面启动我的vue项目了",{"2":{"18":1}}],["这样打包的时候会就可以tree",{"2":{"263":1}}],["这样点击的时候获取到点击位置的rgb值",{"2":{"246":1}}],["这样点击的时候获取点击位置的rgb值",{"2":{"242":1,"246":1}}],["这样更方便学习",{"2":{"237":1}}],["这样可以避免在开发过程中在全局安装大量的包",{"2":{"227":1}}],["这样",{"2":{"208":1}}],["这样的代码会报错",{"2":{"195":1}}],["这样的数据称为",{"2":{"46":1}}],["这样里面的文字可以根据alignment属性来实现左右对齐效果",{"2":{"138":1}}],["这样后续相同图层的数据会push到collectpositionbylayer",{"2":{"31":1}}],["这样就保证了每一个物体的颜色值都不一样",{"2":{"246":2}}],["这样就保证了每一个物体的色值都不一样",{"2":{"242":1}}],["这样就能在p0和p3之间得到一条平滑的曲线",{"2":{"32":1}}],["这样就能得到一条平滑的曲线",{"2":{"32":1}}],["这样就影响到了其他收集到offsetpositiondata变量的数据",{"2":{"31":1}}],["这样就必须要进行内存上的一个优化处理了",{"2":{"28":1}}],["这样就造成了大量的线条数据",{"2":{"28":1}}],["这样就可以避免在本地留下不必要的依赖包",{"2":{"228":1}}],["这样就可以通过图片来实现一些thre场景中的数据加载",{"2":{"27":1}}],["这样就可以了",{"2":{"1":1}}],["这样其实能够让用户自己设计自己的房子",{"2":{"23":1}}],["这里看的是透视相机",{"2":{"262":1}}],["这里上一步还在创建命令编码器",{"2":{"251":1}}],["这里就是整个渲染的核心",{"2":{"251":1}}],["这里为canvas注册和绑定各种交互事件",{"2":{"248":1}}],["这里是不是可以像vue那样使用weakmap",{"2":{"248":1}}],["这里面很多的池数据解构都是用的map解构",{"2":{"248":1}}],["这里对webgpu还不是太熟悉",{"2":{"248":1}}],["这里进行了各种顶点着色器",{"2":{"248":1}}],["这里解释了lookat的封装思路",{"2":{"246":1}}],["这里要用到正交投影",{"2":{"245":1}}],["这里用pinyin",{"2":{"297":1}}],["这里用思维向量来表示颜色",{"2":{"241":1}}],["这里用一个空白的color将宽度撑满",{"2":{"138":1}}],["这里以acorn为例",{"2":{"223":1}}],["这里以三阶贝塞尔曲线为例",{"2":{"32":1}}],["这里纠结了ts的配置纠结了很久",{"2":{"219":1}}],["这里记录一个模块引入的报错",{"2":{"219":1}}],["这里不执行npm",{"2":{"217":1}}],["这里不再赘述",{"2":{"16":1}}],["这里有",{"2":{"210":1}}],["这里通过参数位置来引用参数",{"2":{"199":1}}],["这里的graphic就是字面意思",{"2":{"256":1}}],["这里的格式化不是按照eslint的规则来格式化的",{"2":{"219":1}}],["这里的y形成了闭包",{"2":{"198":1}}],["这里的搜索建议只能给一条",{"2":{"178":1}}],["这里的demo2",{"2":{"17":1}}],["这里",{"2":{"125":1,"248":1}}],["这里设置的style会影响child中所有的text的样式",{"2":{"81":1}}],["这里将1移除了",{"2":{"47":1}}],["这里element",{"2":{"19":1}}],["这里一起来看一下element",{"2":{"19":1}}],["这里我直接在demo2下新建index",{"2":{"16":1}}],["这里我用的是官方脚手架创建vue项目",{"2":{"15":1}}],["这时demo1中的依赖就安装好了",{"2":{"15":1}}],["这么纯粹的一个研发团队",{"2":{"2":1}}],["这两者混合在一起感觉很奇怪",{"2":{"0":1}}],["each",{"2":{"276":1,"292":1}}],["easeout",{"2":{"180":1}}],["ecs也存在一些弊端",{"2":{"252":1}}],["ecs相比于传统的面向对象的编程模式来说显然是有性能上的巨大优势",{"2":{"252":1}}],["ecs",{"0":{"252":1}}],["ecs组件式系统",{"2":{"251":2}}],["echo",{"2":{"223":1}}],["echarts",{"2":{"2":1}}],["echarts的作者",{"2":{"2":1}}],["even",{"2":{"294":1}}],["eventdispatcher类封装了事件的监听处理",{"2":{"261":1}}],["eventdispatcher",{"2":{"249":1,"261":2}}],["every",{"2":{"276":1}}],["everything",{"2":{"196":1}}],["especially",{"2":{"286":1}}],["esac",{"2":{"223":1}}],["esm",{"2":{"219":1,"300":1}}],["esnext",{"2":{"219":1}}],["eslint配置并且保存代码时自动格式化代码已经完成了",{"2":{"219":1}}],["eslint在vscode的setting中配置保存时自动格式化",{"2":{"1":1}}],["eslint用的其实很少",{"2":{"1":1}}],["eslintrc",{"2":{"1":1}}],["eslint",{"2":{"1":4,"219":9}}],["eslint对确保代码质量来说不可或缺",{"2":{"1":1}}],["eslint的自动修复也可以像prettier一样进行格式化",{"2":{"0":1}}],["eslint仍然需要大量的配置",{"2":{"0":1}}],["eslint和prettier的比较",{"0":{"0":1},"1":{"1":1}}],["equivalent",{"2":{"294":1}}],["equilateral",{"2":{"200":1}}],["equilateraltriangle",{"2":{"200":2}}],["equalto",{"2":{"210":2,"211":4}}],["e",{"2":{"206":1,"223":1}}],["eight",{"2":{"201":1}}],["emojis",{"2":{"281":1}}],["emoji",{"0":{"281":1}}],["emptydictionary",{"2":{"191":1}}],["emptyarray",{"2":{"191":1}}],["emptyview",{"2":{"180":1}}],["empty",{"2":{"180":1}}],["email",{"2":{"138":1}}],["effect",{"0":{"174":1}}],["edge",{"2":{"164":2}}],["edgeinsets",{"2":{"66":1,"70":2,"82":1,"88":2,"119":1,"120":2,"122":2,"124":1}}],["editor",{"2":{"1":1,"26":1,"219":2}}],["el",{"2":{"236":6}}],["ellipsein",{"2":{"166":1}}],["elevatedbutton",{"2":{"114":1,"115":1,"116":1,"118":2,"120":3,"122":3,"124":1,"125":1}}],["elementplus",{"2":{"237":2}}],["elements",{"2":{"26":1,"286":1}}],["element",{"0":{"14":1},"2":{"11":1,"14":1,"237":8,"238":1,"309":4}}],["else问题",{"2":{"248":1}}],["else",{"2":{"24":1,"39":1,"110":1,"111":2,"114":1,"115":1,"116":1,"174":1,"198":1,"203":3,"223":1}}],["external",{"0":{"278":1},"2":{"275":1}}],["extensions",{"0":{"268":1},"1":{"269":1,"270":1,"271":1,"272":1,"273":1,"274":1,"275":1,"276":1,"277":1,"278":1,"279":1,"280":1,"281":1,"282":1,"283":1,"284":1,"285":1,"286":1,"287":1,"288":1,"289":1,"290":1,"291":1,"292":1,"293":1,"294":1,"295":1},"2":{"272":1,"295":1}}],["extension",{"2":{"160":1,"271":1,"276":1}}],["extent",{"2":{"66":1}}],["extends",{"2":{"1":1,"44":1,"45":1,"58":1,"59":1,"89":3,"111":2,"114":1,"115":1,"116":2,"118":2,"119":2,"120":4,"122":1,"124":3,"130":3,"219":1,"253":1}}],["examples",{"2":{"297":1}}],["exampleprotocol",{"2":{"202":1}}],["example",{"2":{"103":1,"111":2,"276":1,"288":3,"294":1}}],["exit",{"2":{"96":1}}],["exclude",{"2":{"219":2}}],["excludefromsemantics",{"2":{"88":1}}],["exception",{"2":{"110":1,"111":1,"114":1,"115":1,"116":1}}],["exceeded",{"2":{"28":1,"314":1}}],["expected",{"2":{"294":1}}],["explore",{"2":{"168":9,"169":8}}],["expanded",{"0":{"74":1},"2":{"62":3,"66":1}}],["exports",{"2":{"286":1,"295":1}}],["export",{"2":{"16":1,"97":4,"230":2,"237":1,"253":1,"287":1,"288":3,"289":1,"290":1,"291":1,"293":4}}],["exec方法会从子进程中返回一个完整的buffer",{"2":{"314":1}}],["exec",{"2":{"223":2,"314":2}}],["executable",{"2":{"218":1}}],["exe",{"2":{"55":1}}],["en",{"2":{"271":1,"279":1}}],["engine",{"2":{"263":1}}],["engine属性",{"2":{"263":1}}],["engine3d",{"0":{"248":1},"2":{"243":3,"244":2,"248":5,"251":1}}],["entities",{"2":{"249":1}}],["entity",{"2":{"249":2}}],["enter",{"2":{"86":1,"124":1}}],["enhanceapp",{"2":{"237":1}}],["env",{"2":{"219":2}}],["environmentobject",{"2":{"175":2}}],["environment",{"2":{"160":1,"175":1}}],["end",{"2":{"314":1}}],["endindex",{"2":{"206":6}}],["endpoint",{"2":{"158":2,"160":1,"166":1,"167":1}}],["encoding",{"2":{"141":1,"143":1}}],["encode",{"2":{"5":2,"6":2,"7":1,"8":1,"9":4,"110":2}}],["enum",{"2":{"89":1,"139":1,"168":1,"169":1}}],["energy",{"2":{"10":1}}],["enabled",{"2":{"292":2}}],["enable",{"2":{"1":1,"219":1,"243":1,"251":1,"253":1,"292":1}}],["errors",{"0":{"291":1},"2":{"294":1}}],["error",{"2":{"111":1,"137":2,"181":1,"203":3,"219":2,"291":4,"314":1}}],["err",{"2":{"4":2}}],["d3d12",{"2":{"256":1}}],["d3d11",{"2":{"256":1}}],["dylib",{"2":{"214":1}}],["dylib就是动态库的文件的后缀名",{"2":{"214":1}}],["dylib这里我们可以知道",{"2":{"214":1}}],["dynamic",{"2":{"34":1,"110":1,"111":1,"114":2,"115":1,"116":1}}],["dynamic就是一个动态类",{"2":{"34":1}}],["duration",{"2":{"88":2,"167":1}}],["does",{"2":{"271":1,"294":1}}],["dog",{"2":{"206":1}}],["doxcnjubfgneyrslvrjg7iw913e",{"2":{"184":1}}],["dosomething",{"2":{"141":3}}],["done",{"2":{"119":1,"178":1}}],["doc",{"2":{"286":1}}],["docx",{"2":{"184":1}}],["document",{"2":{"309":6}}],["documenting",{"2":{"286":1}}],["documents",{"2":{"97":3}}],["documentation",{"2":{"54":1}}],["docsearch",{"2":{"271":1}}],["docs",{"2":{"94":1,"124":1,"134":1,"286":1,"294":2}}],["do",{"2":{"39":1,"132":1,"181":1,"203":1,"285":2,"287":1}}],["doubleplusone",{"2":{"230":1}}],["doublecount",{"2":{"230":5}}],["double",{"2":{"35":1,"36":3,"167":2,"189":1,"190":1,"200":6,"206":1}}],["dangerous",{"2":{"284":2}}],["danger",{"2":{"284":2,"285":3}}],["day",{"2":{"198":5}}],["dampingfraction",{"2":{"168":1,"169":1,"174":1}}],["dark",{"2":{"160":1}}],["dartflutter",{"2":{"122":1}}],["dartfuture",{"2":{"109":1}}],["dartfinal",{"2":{"86":1}}],["dart提供了包管理工具pub",{"2":{"93":1}}],["dartlinearprogressindicator",{"2":{"90":1}}],["dartlisttile",{"2":{"60":1,"85":1}}],["darttooltip",{"2":{"88":1}}],["darttext",{"2":{"72":1}}],["dartelevatedbutton",{"2":{"87":1}}],["dartexpanded",{"2":{"62":1,"74":1}}],["dartpadding",{"2":{"82":1}}],["dartdefaulttextstyle",{"2":{"81":1}}],["dartcircleavatar",{"2":{"84":1}}],["dartcard",{"2":{"80":1}}],["dartcenter",{"2":{"78":1}}],["dartconst",{"2":{"73":1}}],["dartcontainer",{"2":{"70":1}}],["dartclass",{"2":{"43":1,"44":1,"45":1,"58":1,"59":1}}],["dartwidget",{"2":{"66":1}}],["dartrow",{"2":{"62":1,"63":1,"77":1}}],["darticon",{"2":{"76":1}}],["dartimage",{"2":{"75":1}}],["dartimport",{"2":{"51":1,"89":1,"110":1,"113":1,"114":1,"115":1,"116":1,"118":1,"119":1,"120":1,"122":1,"124":1,"130":2}}],["dartint",{"2":{"37":1}}],["dartstack",{"2":{"83":1}}],["dartstring",{"2":{"50":1}}],["dartsizedbox",{"2":{"79":1,"90":1}}],["dartscaffold",{"2":{"71":1,"105":1}}],["dartset",{"2":{"48":1}}],["dart是一个空安全的语言",{"2":{"50":1}}],["dartmap",{"2":{"49":1}}],["dartvoid",{"2":{"41":1,"42":1,"126":1}}],["dart中的async",{"2":{"51":1}}],["dart中的string类型和js中差不多",{"2":{"35":1}}],["dart中支持命名参数",{"2":{"41":1}}],["dart",{"2":{"36":1,"38":2,"40":1,"47":3,"51":1,"61":1,"66":1,"89":1,"97":1,"98":1,"103":3,"109":2,"110":3,"111":5,"112":2,"113":1,"114":3,"115":3,"116":3,"118":1,"119":1,"120":1,"122":2,"124":1,"125":1,"128":1,"130":4}}],["dartobject",{"2":{"34":1}}],["dart语句后面必须带",{"2":{"33":1}}],["dart学习",{"0":{"33":1},"1":{"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1}}],["datetime",{"2":{"51":1}}],["date",{"2":{"8":2,"167":1,"246":2}}],["data",{"2":{"5":3,"6":5,"7":1,"8":1,"9":5,"10":3,"47":2,"110":5,"111":3,"119":1,"120":2,"124":1,"137":2,"141":9,"142":3,"143":7,"168":1,"169":1,"181":5,"230":2,"236":2,"263":1,"279":1,"288":6,"289":2,"290":2,"291":2,"299":2,"314":1}}],["drawelements这两个绘制方法",{"2":{"264":1}}],["drawarrays和gl",{"2":{"264":1}}],["drawimage",{"2":{"232":1}}],["draw",{"2":{"24":2,"166":4}}],["directly",{"2":{"286":1,"288":1}}],["directory",{"2":{"271":1,"276":3}}],["dirname",{"2":{"223":1}}],["diff",{"2":{"290":1}}],["diffs",{"0":{"290":1},"2":{"282":1}}],["diff算法",{"2":{"239":1}}],["difference",{"2":{"48":1}}],["dictionary",{"2":{"189":1}}],["distence",{"2":{"246":7}}],["disable",{"2":{"219":1}}],["disabled",{"2":{"141":1,"292":2}}],["display",{"2":{"309":1}}],["displaymode",{"2":{"178":1}}],["dispatchevent",{"2":{"249":1,"261":1}}],["dispensing",{"2":{"203":1}}],["dispose",{"2":{"67":1,"124":3}}],["dismiss",{"2":{"140":1}}],["dio",{"2":{"112":3,"113":6,"114":6,"115":4,"116":4}}],["did",{"2":{"219":1}}],["didupdatewidget",{"2":{"67":1}}],["didchangedependencies",{"2":{"67":1}}],["dimension数据",{"2":{"24":1}}],["dividingby",{"2":{"167":4}}],["divider",{"2":{"125":2,"126":4,"179":1}}],["divergent",{"2":{"132":2}}],["div",{"2":{"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"237":2,"286":1}}],["dxf",{"2":{"24":1}}],["details",{"0":{"271":1},"2":{"279":1,"284":4,"285":1,"286":1,"287":1,"292":1}}],["detailscreen",{"2":{"119":3}}],["degrees",{"2":{"167":4}}],["delete",{"2":{"164":2}}],["destroy阶段改名为unmount",{"2":{"308":1}}],["destroyed",{"2":{"308":1}}],["destination",{"2":{"163":3,"164":1}}],["designcode",{"2":{"166":1,"179":1}}],["descriptor",{"2":{"248":1}}],["description",{"2":{"119":4,"137":1,"192":1}}],["desc",{"2":{"200":2}}],["desctextstyle",{"2":{"73":2,"81":1}}],["decoding",{"2":{"181":1}}],["decode",{"2":{"110":3,"142":1,"181":1}}],["decorationimage",{"2":{"70":1}}],["decoration中还可以设置border和borderradius",{"2":{"70":1}}],["decoration",{"2":{"59":1,"66":1,"70":3,"72":1,"86":1}}],["defineproperty来实现的",{"2":{"240":1}}],["define",{"2":{"237":2,"289":1}}],["definestore",{"2":{"230":4}}],["defined",{"2":{"34":1,"283":1}}],["defaultvalue",{"2":{"169":1}}],["defaulttextstyle",{"0":{"81":1}}],["default",{"0":{"284":1},"2":{"16":1,"111":1,"132":2,"180":1,"196":1,"201":1,"224":1,"237":1,"274":1,"277":1,"287":2,"288":6,"289":2,"290":2,"291":2,"292":3,"293":4,"294":1}}],["device",{"2":{"251":2}}],["devices",{"2":{"106":1}}],["dev后发生了什么",{"0":{"222":1,"223":1},"1":{"223":1,"224":1}}],["develop",{"2":{"54":1}}],["developers",{"2":{"54":1}}],["developer",{"2":{"54":1,"55":1,"94":1,"150":1,"182":1}}],["dev",{"2":{"18":2,"67":2,"94":1,"102":1,"103":1,"219":1,"224":2}}],["demoapp",{"2":{"175":1}}],["demos",{"2":{"54":2}}],["demo3",{"2":{"17":6,"224":2}}],["demo3是根据具体package",{"2":{"17":1}}],["demo3作为依赖",{"0":{"17":1}}],["demo3的代码和demo2大体一致",{"2":{"16":1}}],["demo3中提供一些封装好的逻辑",{"0":{"16":1}}],["demo3三个文件夹",{"2":{"13":1}}],["demo2中安装自己的独立依赖ts",{"2":{"16":1}}],["demo2",{"0":{"16":1},"2":{"13":1,"16":4,"17":5}}],["demo下新建packages文件夹",{"2":{"13":1}}],["demo",{"2":{"13":1,"55":2,"58":2,"120":1,"124":1,"130":1,"209":3,"309":2}}],["demo1中创建vue3项目",{"0":{"15":1}}],["demo1",{"2":{"11":1,"18":1}}],["deprecated",{"2":{"253":2}}],["deployments版本为ios",{"2":{"151":1}}],["dependencies",{"2":{"17":1,"128":1}}],["dependency",{"2":{"4":2}}],["deps",{"2":{"4":2,"271":1,"286":1}}],["d",{"2":{"1":1,"8":2,"19":2,"152":1,"219":1,"221":1,"270":3,"286":1}}],["ipsum",{"2":{"288":2}}],["iphone",{"2":{"177":1}}],["iphoneos",{"2":{"106":1}}],["ignoremissing",{"2":{"271":1}}],["ignoressafearea",{"2":{"168":1,"169":1}}],["icomponent",{"2":{"253":1}}],["iconcolor",{"2":{"125":1}}],["icon组件的预览地址",{"2":{"76":1}}],["icons",{"2":{"60":1,"63":5,"76":3,"85":1,"125":1,"130":2}}],["icon",{"0":{"76":1},"2":{"60":1,"63":5,"76":1,"85":1,"125":2,"130":2,"168":6,"169":6}}],["iterator2",{"2":{"251":3,"253":3}}],["iterator",{"2":{"251":3,"253":3}}],["itemnamed",{"2":{"203":2}}],["itemcount",{"2":{"119":1}}],["itemcolors",{"2":{"31":2}}],["itembuilder",{"2":{"89":1,"119":1}}],["itemthree",{"2":{"89":2}}],["itemtwo",{"2":{"89":2}}],["itemone",{"2":{"89":2}}],["itempickcolors",{"2":{"31":2}}],["item",{"2":{"31":4,"89":6,"137":2,"161":1,"165":1,"168":7,"169":7,"173":2,"177":1,"178":4,"198":2,"203":10,"204":6}}],["it",{"2":{"196":1,"286":1,"288":1,"289":1,"291":1,"294":2,"295":7}}],["itc",{"2":{"107":1}}],["identifiable",{"2":{"168":1,"169":1}}],["id",{"2":{"111":4,"137":2,"168":1,"169":1,"174":8,"181":1,"287":2}}],["idx=1",{"2":{"102":1}}],["id=",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"299":1}}],["ir中的数据",{"2":{"99":1}}],["ir生成相应的msl源码",{"2":{"99":1}}],["ir",{"2":{"99":1}}],["img",{"2":{"232":4,"267":4,"299":1}}],["img1",{"2":{"157":1}}],["implemented",{"2":{"295":1}}],["implements",{"2":{"253":2}}],["implicitstring",{"2":{"194":1}}],["implicitly",{"2":{"194":1}}],["impellerc中的refector根据spir",{"2":{"99":1}}],["impellerc会借助shaderc",{"2":{"99":1}}],["impeller中的shader是使用glsl",{"2":{"99":1}}],["impeller中的shader并不需要在运行时动态生成",{"2":{"99":1}}],["impeller的出现是flutter团队用以彻底解决sksl",{"2":{"99":1}}],["impeller是flutter团队自研的渲染引擎",{"2":{"99":1}}],["impeller",{"0":{"99":1},"2":{"99":1}}],["import",{"2":{"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"16":1,"17":1,"109":1,"110":2,"111":4,"112":1,"114":2,"115":2,"116":2,"122":1,"130":2,"141":1,"160":1,"230":7,"237":5,"293":3}}],["imagescale",{"2":{"165":1}}],["images",{"2":{"61":3,"62":4,"66":3,"70":1,"75":1,"84":1}}],["image",{"0":{"75":1},"2":{"61":3,"62":4,"66":2,"70":2,"139":1,"140":1,"153":1,"156":1,"157":1,"162":1,"163":2,"164":1,"165":2,"166":3,"168":3,"169":1,"173":1,"178":2,"180":2,"232":1,"267":1}}],["ios中的view",{"2":{"213":1}}],["ios中的cocoapods",{"2":{"93":1}}],["ios团队外部技术分享汇总",{"2":{"184":1}}],["ios打包",{"2":{"106":1}}],["ios打包可以成功",{"2":{"103":1}}],["ios",{"2":{"96":1,"153":1,"174":2}}],["io",{"2":{"51":1,"93":1,"97":2,"114":1,"115":1,"116":1,"179":1}}],["i++",{"2":{"28":1,"47":1,"246":1}}],["if和let一起用的时候不能加括号",{"2":{"195":1}}],["if语句以及强制解析",{"0":{"195":1}}],["if",{"2":{"24":8,"39":1,"110":1,"111":3,"114":1,"115":1,"116":1,"120":1,"124":2,"142":2,"168":12,"169":12,"174":1,"195":4,"196":1,"198":3,"218":1,"223":1,"248":2,"251":1,"253":2,"271":2,"294":1}}],["innertext",{"2":{"309":2}}],["invalid",{"2":{"203":1}}],["invalidselection",{"2":{"203":3}}],["inventory",{"2":{"203":3}}],["invocation",{"2":{"132":1}}],["inline",{"2":{"178":1}}],["inout",{"2":{"169":1}}],["infinity",{"2":{"138":5,"165":1,"168":5,"169":5,"174":2,"177":1}}],["information",{"2":{"230":5}}],["info",{"2":{"44":2,"45":4,"103":1,"209":1,"230":12,"284":4}}],["inclusion",{"0":{"294":1}}],["inclusionadvanced",{"2":{"282":1}}],["includefiles",{"2":{"286":1}}],["include",{"2":{"219":4,"294":3}}],["included",{"2":{"218":1}}],["increment",{"2":{"130":2,"198":2}}],["incorrect",{"2":{"4":1}}],["input",{"2":{"280":1,"281":1,"282":1,"284":1,"285":1,"287":1,"288":3,"289":1,"290":1,"291":1,"292":1,"293":1,"294":1}}],["inputsystem",{"2":{"248":3}}],["inputdecoration",{"2":{"86":1}}],["inputcom",{"2":{"86":1}}],["in遍历字符串",{"2":{"206":1}}],["in遍历",{"2":{"47":1,"48":1}}],["in的贝塞尔曲线",{"2":{"32":1}}],["instead",{"2":{"274":2}}],["instance",{"2":{"253":3,"295":1}}],["install一样",{"2":{"224":1}}],["install执行的时候",{"2":{"224":1}}],["install的时候会根据库源代码的package",{"2":{"223":1}}],["install安装依赖",{"2":{"15":1}}],["install",{"2":{"4":1,"12":1,"14":1,"16":1,"17":1,"19":1,"94":1,"98":2,"103":1,"147":1,"176":3,"218":1,"219":1,"224":1,"270":1,"286":2}}],["insights",{"2":{"271":1}}],["insufficient",{"2":{"203":1}}],["insufficientfunds",{"2":{"203":3}}],["inspector",{"2":{"182":1}}],["insetgrouped",{"2":{"161":1,"165":1}}],["insert",{"2":{"24":1,"47":1,"203":1,"206":3}}],["insrt",{"2":{"24":1}}],["indent",{"2":{"219":2}}],["indexdisplaymode",{"2":{"173":1}}],["index",{"2":{"16":2,"24":1,"28":2,"47":14,"119":3,"205":2,"206":14,"217":1,"219":2,"221":1,"224":1,"230":4,"271":3,"276":8,"300":1}}],["individualscores",{"2":{"195":2}}],["indices",{"2":{"8":1,"206":1}}],["initglcontext",{"2":{"264":1}}],["initcanvas",{"2":{"248":1}}],["init方法可以传递一些配置属性",{"2":{"248":1}}],["init方法中",{"2":{"244":1}}],["initfunction",{"2":{"230":4}}],["initialvalue",{"2":{"89":1}}],["initstate",{"2":{"67":1,"111":2,"124":2}}],["init",{"2":{"13":1,"139":1,"176":1,"200":6,"219":3,"243":1,"244":1,"248":4}}],["in",{"0":{"287":1,"288":1,"289":1,"290":1,"291":1},"2":{"8":1,"28":1,"32":1,"47":1,"48":1,"137":1,"141":1,"161":1,"165":1,"166":4,"167":4,"168":2,"169":4,"173":1,"174":8,"177":2,"178":2,"179":1,"180":1,"193":1,"195":1,"196":4,"197":1,"198":2,"199":2,"204":1,"206":2,"223":1,"253":2,"263":1,"271":1,"272":1,"276":3,"282":5,"286":2,"287":4,"288":2,"292":2,"294":1,"295":2}}],["intensity",{"2":{"241":2}}],["integer",{"2":{"195":2}}],["integerpi",{"2":{"190":1}}],["internal",{"0":{"276":1},"2":{"275":1,"276":1,"277":1}}],["interactive",{"2":{"265":1}}],["interaction",{"2":{"3":1}}],["interface",{"2":{"211":1}}],["interface选择storyboard即uikit",{"2":{"208":1}}],["interestingnumbers",{"2":{"196":2}}],["interceptors",{"2":{"116":1}}],["interceptor",{"2":{"116":1}}],["intersection",{"2":{"48":1}}],["interval",{"2":{"5":2,"6":2}}],["int",{"2":{"35":1,"36":3,"38":2,"41":1,"42":1,"43":2,"44":1,"45":1,"47":5,"48":4,"49":1,"111":2,"137":5,"141":1,"142":1,"189":1,"190":1,"192":1,"194":4,"195":1,"198":12,"199":2,"200":2,"201":1,"203":3,"204":1}}],["introduction",{"2":{"2":1}}],["isolation",{"2":{"286":2}}],["ison",{"2":{"139":5}}],["isuserinteractionenabled",{"2":{"210":1}}],["isdeleted",{"2":{"164":2}}],["isloading",{"2":{"141":4,"143":2}}],["ispresented",{"2":{"140":2}}],["isactive",{"2":{"140":1}}],["isempty",{"2":{"124":1}}],["isn",{"2":{"34":1,"288":2}}],["is",{"2":{"2":1,"120":1,"196":1,"198":2,"206":1,"218":2,"235":7,"253":4,"272":2,"279":1,"280":4,"281":1,"284":10,"286":3,"287":2,"288":2,"289":1,"290":1,"291":1,"292":12,"294":2}}],["i",{"2":{"1":1,"21":1,"28":2,"47":3,"66":1,"119":1,"152":1,"197":2,"219":1,"246":5}}],["我是1号",{"2":{"309":1}}],["我是动态获取的",{"2":{"309":2}}],["我是5号",{"2":{"309":2}}],["我是4号",{"2":{"309":2}}],["我是3号",{"2":{"309":2}}],["我是2号",{"2":{"309":2}}],["我是0号",{"2":{"309":2}}],["我后面还有1号",{"2":{"309":2}}],["我没有拒绝的理由",{"2":{"302":1}}],["我会先用node将文档里的所有文件名替换成对应的拼音名",{"2":{"297":1}}],["我问chatgpt",{"2":{"264":1}}],["我用原生的三角形创建方法",{"2":{"259":1}}],["我用了多次数组结构出现了堆栈溢出",{"2":{"28":1}}],["我无法回答他webgl重写底层渲染和基于threejs修改本质的区别是什么",{"2":{"258":1}}],["我无法得到线段什么时候需要闭合",{"2":{"24":1}}],["我了解云端autodcad几年前就有了",{"2":{"258":1}}],["我只能保证我一定尽全力来做好",{"2":{"257":1}}],["我也看了bimface的cad渲染",{"2":{"257":1}}],["我还连第一个hello",{"2":{"254":1}}],["我还是第一次遇到这种情况",{"2":{"215":1}}],["我想简单了",{"2":{"249":1}}],["我这边已经开始在进行webgpu的相关学习",{"2":{"257":1}}],["我这样实现的话",{"2":{"246":1}}],["我这里选择使用pnpm作为包管理工具",{"2":{"21":1}}],["我这里是demo2",{"2":{"17":1}}],["我当然选择全力拥抱composition",{"2":{"231":1}}],["我在上午刚用",{"2":{"224":1}}],["我package",{"2":{"219":1}}],["我之前一直理解的脚手架就是拉取一份模板项目代码下来",{"2":{"218":1}}],["我前脚刚在上面操作了cad",{"2":{"215":1}}],["我知道这个可选有值",{"2":{"195":1}}],["我安装的fvm并没有像博客中的那样有",{"2":{"98":1}}],["我叫路飞",{"2":{"88":5}}],["我们来看一下three中这个令人惊叹的案例",{"2":{"266":1}}],["我们目前cad和bim是两套独立的架构",{"2":{"258":1}}],["我们还可以根据用户上传的图纸",{"2":{"257":1}}],["我们还能根据具体材质的隔音效果来进行隔音测试",{"2":{"23":1}}],["我们需要自己用底层来写一套渲染逻辑",{"2":{"257":1}}],["我们也要走和他们一样的路",{"2":{"257":1}}],["我们的cad也没有彻底解决图纸的卡顿问题",{"2":{"257":1}}],["我们现在的技术方案它做不了一个高性能的一个渲染",{"2":{"257":1}}],["我们可以用webgpu来做底层渲染",{"2":{"257":1}}],["我们可以拿它来做很多unify的事情",{"2":{"256":1}}],["我们可以将controller实例化并注册到getx中",{"2":{"129":1}}],["我们可以制作自己的font字体文件",{"2":{"25":1}}],["我们是蚂蚁集团数据可视化团队",{"2":{"2":1}}],["我悟了",{"2":{"11":1}}],["我一直在使用prettier",{"2":{"1":1}}],["我花了一些时间配置我的eslint并将其设置为预设配置",{"2":{"1":1}}],["我不认为parse两次代码会更快",{"2":{"0":1}}],["替代方案",{"0":{"1":1}}],["它说",{"2":{"264":1}}],["它继承自object3d类",{"2":{"261":1}}],["它打通了native的api",{"2":{"256":1}}],["它需要哪些功能模块",{"2":{"239":1}}],["它会在执行命令时",{"2":{"227":1}}],["它会用node去执行node",{"2":{"223":1}}],["它会创建一个与部件关联的state对象",{"2":{"67":1}}],["它负责用户界面的展示",{"2":{"213":1}}],["它对应着字符串中的每一个character的位置",{"2":{"206":1}}],["它将不等于nil",{"2":{"195":1}}],["它表示描边的圆角半径",{"2":{"160":1}}],["它们的宽高不是铺满屏幕的",{"2":{"138":1}}],["它可以帮助我们在不全局安装某些包的情况下",{"2":{"226":1}}],["它可以帮助我们轻松地管理controller的生命周期",{"2":{"129":1}}],["它可以将widget与observable对象绑定在一起",{"2":{"130":1}}],["它可以监听observable对象的变化",{"2":{"129":1}}],["它通常继承自getxcontroller",{"2":{"129":1}}],["它通常代表一个可能的值或者将来或许会用到的错误",{"2":{"109":1}}],["它有一些特定的生命周期方法",{"2":{"67":1}}],["它接受一组参数并返回一个在给定参数下可视化的部件",{"2":{"67":1}}],["它没有像statefulwidget那样的生命周期方法",{"2":{"67":1}}],["它没有要管理的内部状态",{"2":{"67":1}}],["它提供了一套基于getx极致简洁高效的flutter业务开发范式",{"2":{"100":1}}],["它提供了一套函数风格式",{"2":{"3":1}}],["它提供默认的banner背景颜色",{"2":{"58":1}}],["它最大的区别是",{"2":{"48":1}}],["它和普通函数列表的区别在于",{"2":{"42":1}}],["它的访问权限是怎样的",{"2":{"253":1}}],["它的响应式是用object",{"2":{"240":1}}],["它的文档项目中引用了自己项目内部的一些依赖",{"2":{"237":1}}],["它的数据是不会缓存的",{"2":{"175":1}}],["它的最终目标是在flutter中取代当前的渲染引擎skia",{"2":{"99":1}}],["它的状态在创建后不能改变",{"2":{"67":1}}],["它的实现原理是",{"2":{"32":1}}],["它的宽度是固定的",{"2":{"30":1}}],["它的底层原理是什么",{"0":{"30":1}}],["它的工作方式与prettier类似",{"2":{"1":1}}],["它是一个中间层数据处理",{"2":{"24":1}}],["它更多的适用于需要做设计的地方",{"2":{"23":1}}],["它并没有让你的生活变得更简单",{"2":{"0":1}}],["它也可以像prettier一样格式化代码",{"2":{"0":1}}],["++",{"2":{"290":2}}],["+=",{"2":{"197":1,"198":2}}],["+空格键来打开spotlight搜索框",{"2":{"144":1}}],["+",{"2":{"0":1,"38":1,"95":2,"100":1,"130":1,"152":13,"179":2,"190":2,"198":1,"230":3,"236":3,"241":1,"246":2,"286":2}}]],"serializationVersion":2}';export{t as default};
    diff --git a/assets/chunks/VPLocalSearchBox.3ae6b216.js b/assets/chunks/VPLocalSearchBox.b62f6905.js
    similarity index 99%
    rename from assets/chunks/VPLocalSearchBox.3ae6b216.js
    rename to assets/chunks/VPLocalSearchBox.b62f6905.js
    index d7aec99..fb34f0d 100644
    --- a/assets/chunks/VPLocalSearchBox.3ae6b216.js
    +++ b/assets/chunks/VPLocalSearchBox.b62f6905.js
    @@ -1,4 +1,4 @@
    -import{Z as pt,h as ne,z as ze,d as It,C as fe,g as Te,A as _t,j as Ie,E as de,aj as Dt,ak as Ot,o as Y,b as Rt,k as C,a3 as Mt,l as $,al as Pt,am as Lt,B as zt,c as X,n as Xe,e as be,J as et,I as tt,a as he,t as ve,an as Bt,p as Vt,m as $t,ao as rt,ap as jt,a8 as Wt,ae as Kt,_ as Jt}from"./framework.c5c8a48b.js";import{u as Ut,a as Ht,b as Gt,c as at,d as qt,e as Qt,w as Yt,o as we,f as Zt,g as Xt,h as er}from"./theme.ce6d32d1.js";const tr={root:()=>pt(()=>import("./@localSearchIndexroot.da0703be.js"),[])};/*!
    +import{Z as pt,h as ne,z as ze,d as It,C as fe,g as Te,A as _t,j as Ie,E as de,aj as Dt,ak as Ot,o as Y,b as Rt,k as C,a3 as Mt,l as $,al as Pt,am as Lt,B as zt,c as X,n as Xe,e as be,J as et,I as tt,a as he,t as ve,an as Bt,p as Vt,m as $t,ao as rt,ap as jt,a8 as Wt,ae as Kt,_ as Jt}from"./framework.c5c8a48b.js";import{u as Ut,a as Ht,b as Gt,c as at,d as qt,e as Qt,w as Yt,o as we,f as Zt,g as Xt,h as er}from"./theme.14e22398.js";const tr={root:()=>pt(()=>import("./@localSearchIndexroot.f4b49530.js"),[])};/*!
     * tabbable 6.2.0
     * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
     */var yt=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],Ee=yt.join(","),gt=typeof Element>"u",oe=gt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Se=!gt&&Element.prototype.getRootNode?function(o){var e;return o==null||(e=o.getRootNode)===null||e===void 0?void 0:e.call(o)}:function(o){return o==null?void 0:o.ownerDocument},Ae=function o(e,t){var r;t===void 0&&(t=!0);var n=e==null||(r=e.getAttribute)===null||r===void 0?void 0:r.call(e,"inert"),a=n===""||n==="true",i=a||t&&e&&o(e.parentNode);return i},rr=function(e){var t,r=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return r===""||r==="true"},mt=function(e,t,r){if(Ae(e))return[];var n=Array.prototype.slice.apply(e.querySelectorAll(Ee));return t&&oe.call(e,Ee)&&n.unshift(e),n=n.filter(r),n},bt=function o(e,t,r){for(var n=[],a=Array.from(e);a.length;){var i=a.shift();if(!Ae(i,!1))if(i.tagName==="SLOT"){var s=i.assignedElements(),u=s.length?s:i.children,l=o(u,!0,r);r.flatten?n.push.apply(n,l):n.push({scopeParent:i,candidates:l})}else{var d=oe.call(i,Ee);d&&r.filter(i)&&(t||!e.includes(i))&&n.push(i);var h=i.shadowRoot||typeof r.getShadowRoot=="function"&&r.getShadowRoot(i),v=!Ae(h,!1)&&(!r.shadowRootFilter||r.shadowRootFilter(i));if(h&&v){var p=o(h===!0?i.children:h.children,!0,r);r.flatten?n.push.apply(n,p):n.push({scopeParent:i,candidates:p})}else a.unshift.apply(a,i.children)}}return n},wt=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},ie=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||rr(e))&&!wt(e)?0:e.tabIndex},ar=function(e,t){var r=ie(e);return r<0&&t&&!wt(e)?0:r},nr=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},xt=function(e){return e.tagName==="INPUT"},ir=function(e){return xt(e)&&e.type==="hidden"},or=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(r){return r.tagName==="SUMMARY"});return t},sr=function(e,t){for(var r=0;rsummary:first-of-type"),i=a?e.parentElement:e;if(oe.call(i,"details:not([open]) *"))return!0;if(!r||r==="full"||r==="legacy-full"){if(typeof n=="function"){for(var s=e;e;){var u=e.parentElement,l=Se(e);if(u&&!u.shadowRoot&&n(u)===!0)return nt(e);e.assignedSlot?e=e.assignedSlot:!u&&l!==e.ownerDocument?e=l.host:e=u}e=s}if(fr(e))return!e.getClientRects().length;if(r!=="legacy-full")return!0}else if(r==="non-zero-area")return nt(e);return!1},hr=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var r=0;r=0)},pr=function o(e){var t=[],r=[];return e.forEach(function(n,a){var i=!!n.scopeParent,s=i?n.scopeParent:n,u=ar(s,i),l=i?o(n.candidates):s;u===0?i?t.push.apply(t,l):t.push(s):r.push({documentOrder:a,tabIndex:u,item:n,isScope:i,content:l})}),r.sort(nr).reduce(function(n,a){return a.isScope?n.push.apply(n,a.content):n.push(a.content),n},[]).concat(t)},yr=function(e,t){t=t||{};var r;return t.getShadowRoot?r=bt([e],t.includeContainer,{filter:Be.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:vr}):r=mt(e,t.includeContainer,Be.bind(null,t)),pr(r)},gr=function(e,t){t=t||{};var r;return t.getShadowRoot?r=bt([e],t.includeContainer,{filter:Ce.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):r=mt(e,t.includeContainer,Ce.bind(null,t)),r},se=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return oe.call(e,Ee)===!1?!1:Be(t,e)},mr=yt.concat("iframe").join(","),_e=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return oe.call(e,mr)===!1?!1:Ce(t,e)};/*!
    diff --git a/assets/chunks/pinyin.data.7aef660e.js b/assets/chunks/pinyin.data.7aef660e.js
    deleted file mode 100644
    index 9b0ddf9..0000000
    --- a/assets/chunks/pinyin.data.7aef660e.js
    +++ /dev/null
    @@ -1 +0,0 @@
    -const i=JSON.parse('{"data":{"ESlint和Prettier的比较":"ESli0n0the2Pre0tti0e0rde0bi3jiao4","G2学习":"G2xue2xi2","Monorepo学习":"Mo0n0o0re0po0xue2xi2","1-环境安装和项目搭建":"1-huan2jing4an1zhuang1he2xiang4mu4da1jian4","前言":"qian2yan2","cad优化":"ca0dyou1hua4","cad思路和流程":"ca0dsi1lu4he2liu2cheng2","dart学习":"da0rtxue2xi2","flutter使用Metal":"flu0tte0rshi3yong4Me0ta0l","flutter布局":"flu0tte0rbu4ju2","flutter常用组件":"flu0tte0rchang2yong4zu3jian4","flutter环境搭建":"flu0tte0rhuan2jing4da1jian4","flutter项目学习":"flu0tte0rxiang4mu4xue2xi2","一些常用场景":"yi1xie1chang2yong4chang3jing3","接口请求":"jie1kou3qing3qiu2","数据持久化":"shu4ju4chi2jiu3hua4","状态管理":"zhuang4tai4guan3li3","路由":"lu4you2","github提交pull request":"gi0thu0bti2jiao1pu0llre0qu0e0st","git常用命令":"gi0tchang2yong4ming4ling4","SwiftUI实战":"Swi0ftUIshi2zhan4","mac环境安装":"ma0chuan2jing4an1zhuang1","metal学习":"me0ta0lxue2xi2","swiftUI学习":"swi0ftUIxue2xi2","swift和flutter哪个更好":"swi0fthe2flu0tte0rnei3ge4geng4hao3","swift学习":"swi0ftxue2xi2","uikit开发":"u0i0ki0tkai1fa1","nginx配置":"n0gi0n0xpei4zhi4","npm run dev后发生了什么":"n0pmru0n0de0vhou4fa1sheng1le0shen2me0","npx":"n0px","pinia中的options api和compositon api对比":"pi0n0i0a0zhong1de0o0pti0o0n0sa0pi0he2co0mpo0si0to0n0a0pi0dui4bi3","this、call、apply、bind":"thi0s、ca0ll、a0pply、bi0n0d","学习element-plus的vitePress配置":"xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4","响应式系统":"xiang3ying4shi4xi4tong3","WGSL":"WGSL","orillusion源码学习":"o0ri0llu0si0o0n0yuan2ma3xue2xi2","一些故事":"yi1xie1gu4shi4","坐标系":"zuo4biao1xi4","绘制线段的能力":"hui4zhi4xian4duan4de0neng2li4","缓冲区拾取":"huan3chong1qu1shi2qu3","three.js的源码":"thre0e0.jsde0yuan2ma3","着色器学习":"zhuo2se4qi4xue2xi2","如何diy二维码":"ru2he2di0yer4wei2ma3","用image.load提前判断资源是否存在":"yong4i0ma0ge0.lo0a0dti2qian2pan4duan4zi1yuan2shi4fou3cun2zai4","脚手架开发":"jiao3shou3jia4kai1fa1","记录一次jenkins打包导致服务器卡死":"ji4lu4yi1ci4je0n0ki0n0sda3bao1dao3zhi4fu2wu4qi4ka3si3","效果参考":"xiao4guo3can1kao3","记一些内容短不足以写一篇博客的东西":"ji4yi1xie1nei4rong2duan3bu4zu2yi3xie3yi1pian1bo2ke4de0dong1xi1","01":"01","webgl":"we0bgl"}}');export{i as d};
    diff --git a/assets/chunks/pinyin.data.f658c8fa.js b/assets/chunks/pinyin.data.f658c8fa.js
    new file mode 100644
    index 0000000..916f4b9
    --- /dev/null
    +++ b/assets/chunks/pinyin.data.f658c8fa.js
    @@ -0,0 +1 @@
    +const i=JSON.parse('{"data":{".DS_Store":".DS_Sto0re0","ESlint和Prettier的比较":"ESli0n0the2Pre0tti0e0rde0bi3jiao4","G2学习":"G2xue2xi2","Monorepo学习":"Mo0n0o0re0po0xue2xi2","1-环境安装和项目搭建":"1-huan2jing4an1zhuang1he2xiang4mu4da1jian4","前言":"qian2yan2","cad优化":"ca0dyou1hua4","cad思路和流程":"ca0dsi1lu4he2liu2cheng2","dart学习":"da0rtxue2xi2","flutter使用Metal":"flu0tte0rshi3yong4Me0ta0l","flutter布局":"flu0tte0rbu4ju2","flutter常用组件":"flu0tte0rchang2yong4zu3jian4","flutter环境搭建":"flu0tte0rhuan2jing4da1jian4","flutter项目学习":"flu0tte0rxiang4mu4xue2xi2","一些常用场景":"yi1xie1chang2yong4chang3jing3","接口请求":"jie1kou3qing3qiu2","数据持久化":"shu4ju4chi2jiu3hua4","状态管理":"zhuang4tai4guan3li3","路由":"lu4you2","github提交pull request":"gi0thu0bti2jiao1pu0llre0qu0e0st","git常用命令":"gi0tchang2yong4ming4ling4","SwiftUI实战":"Swi0ftUIshi2zhan4","mac环境安装":"ma0chuan2jing4an1zhuang1","metal学习":"me0ta0lxue2xi2","swiftUI学习":"swi0ftUIxue2xi2","swift和flutter哪个更好":"swi0fthe2flu0tte0rnei3ge4geng4hao3","swift学习":"swi0ftxue2xi2","uikit开发":"u0i0ki0tkai1fa1","nginx配置":"n0gi0n0xpei4zhi4","npm run dev后发生了什么":"n0pmru0n0de0vhou4fa1sheng1le0shen2me0","npx":"n0px","pinia中的options api和compositon api对比":"pi0n0i0a0zhong1de0o0pti0o0n0sa0pi0he2co0mpo0si0to0n0a0pi0dui4bi3","this、call、apply、bind":"thi0s、ca0ll、a0pply、bi0n0d","学习element-plus的vitePress配置":"xue2xi2e0le0me0n0t-plu0sde0vi0te0Pre0sspei4zhi4","响应式系统":"xiang3ying4shi4xi4tong3","WGSL":"WGSL","orillusion源码学习":"o0ri0llu0si0o0n0yuan2ma3xue2xi2","一些故事":"yi1xie1gu4shi4","坐标系":"zuo4biao1xi4","绘制线段的能力":"hui4zhi4xian4duan4de0neng2li4","缓冲区拾取":"huan3chong1qu1shi2qu3","three.js的源码":"thre0e0.jsde0yuan2ma3","着色器学习":"zhuo2se4qi4xue2xi2","如何diy二维码":"ru2he2di0yer4wei2ma3","用image.load提前判断资源是否存在":"yong4i0ma0ge0.lo0a0dti2qian2pan4duan4zi1yuan2shi4fou3cun2zai4","脚手架开发":"jiao3shou3jia4kai1fa1","记录一次jenkins打包导致服务器卡死":"ji4lu4yi1ci4je0n0ki0n0sda3bao1dao3zhi4fu2wu4qi4ka3si3","效果参考":"xiao4guo3can1kao3","记一些内容短不足以写一篇博客的东西":"ji4yi1xie1nei4rong2duan3bu4zu2yi3xie3yi1pian1bo2ke4de0dong1xi1","01":"01","webgl":"we0bgl"}}');export{i as d};
    diff --git a/assets/chunks/theme.ce6d32d1.js b/assets/chunks/theme.14e22398.js
    similarity index 99%
    rename from assets/chunks/theme.ce6d32d1.js
    rename to assets/chunks/theme.14e22398.js
    index f0c54a3..99510b7 100644
    --- a/assets/chunks/theme.ce6d32d1.js
    +++ b/assets/chunks/theme.14e22398.js
    @@ -4,4 +4,4 @@ import{d as y,o as a,c as l,r as _,n as T,a as O,t as C,_ as g,b as P,w as p,T a
       -o-transition: none !important;
       -ms-transition: none !important;
       transition: none !important;
    -}`)),document.head.appendChild(V),o.value=N,u[N?"add":"remove"]("dark"),window.getComputedStyle(V).opacity,document.head.removeChild(V)}return b}return K(o,d=>{n.value=d}),(d,u)=>(a(),P(Ma,{title:"toggle dark mode",class:"VPSwitchAppearance","aria-checked":o.value,onClick:i(s)},{default:p(()=>[h(Ba,{class:"sun"}),h(za,{class:"moon"})]),_:1},8,["aria-checked","onClick"]))}});const ze=g(Fa,[["__scopeId","data-v-82b282f1"]]),ja={key:0,class:"VPNavBarAppearance"},Ga=y({__name:"VPNavBarAppearance",setup(t){const{site:e}=I();return(n,o)=>i(e).appearance?(a(),l("div",ja,[h(ze)])):m("",!0)}});const Ra=g(Ga,[["__scopeId","data-v-f6a63727"]]),Fe=L();let $t=!1,Ve=0;function Ua(t){const e=L(!1);if(lt){!$t&&Wa(),Ve++;const n=K(Fe,o=>{var s,r,d;o===t.el.value||(s=t.el.value)!=null&&s.contains(o)?(e.value=!0,(r=t.onFocus)==null||r.call(t)):(e.value=!1,(d=t.onBlur)==null||d.call(t))});Ae(()=>{n(),Ve--,Ve||Ka()})}return Ce(e)}function Wa(){document.addEventListener("focusin",kt),$t=!0,Fe.value=document.activeElement}function Ka(){document.removeEventListener("focusin",kt)}function kt(){Fe.value=document.activeElement}const Ya={},qa={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Ja=v("path",{d:"M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"},null,-1),Xa=[Ja];function Qa(t,e){return a(),l("svg",qa,Xa)}const Pt=g(Ya,[["render",Qa]]),Za={},er={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},tr=v("circle",{cx:"12",cy:"12",r:"2"},null,-1),nr=v("circle",{cx:"19",cy:"12",r:"2"},null,-1),or=v("circle",{cx:"5",cy:"12",r:"2"},null,-1),sr=[tr,nr,or];function ar(t,e){return a(),l("svg",er,sr)}const rr=g(Za,[["render",ar]]),ir={class:"VPMenuLink"},lr=y({__name:"VPMenuLink",props:{item:{}},setup(t){const{page:e}=I();return(n,o)=>(a(),l("div",ir,[h(Y,{class:T({active:i(te)(i(e).relativePath,n.item.activeMatch||n.item.link,!!n.item.activeMatch)}),href:n.item.link,target:n.item.target,rel:n.item.rel},{default:p(()=>[O(C(n.item.text),1)]),_:1},8,["class","href","target","rel"])]))}});const Pe=g(lr,[["__scopeId","data-v-2f2cfafc"]]),cr={class:"VPMenuGroup"},ur={key:0,class:"title"},dr=y({__name:"VPMenuGroup",props:{text:{},items:{}},setup(t){return(e,n)=>(a(),l("div",cr,[e.text?(a(),l("p",ur,C(e.text),1)):m("",!0),(a(!0),l(A,null,E(e.items,o=>(a(),l(A,null,["link"in o?(a(),P(Pe,{key:0,item:o},null,8,["item"])):m("",!0)],64))),256))]))}});const _r=g(dr,[["__scopeId","data-v-69e747b5"]]),vr={class:"VPMenu"},pr={key:0,class:"items"},fr=y({__name:"VPMenu",props:{items:{}},setup(t){return(e,n)=>(a(),l("div",vr,[e.items?(a(),l("div",pr,[(a(!0),l(A,null,E(e.items,o=>(a(),l(A,{key:o.text},["link"in o?(a(),P(Pe,{key:0,item:o},null,8,["item"])):(a(),P(_r,{key:1,text:o.text,items:o.items},null,8,["text","items"]))],64))),128))])):m("",!0),_(e.$slots,"default",{},void 0,!0)]))}});const hr=g(fr,[["__scopeId","data-v-e7ea1737"]]),mr=["aria-expanded","aria-label"],gr={key:0,class:"text"},yr={class:"menu"},br=y({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(t){const e=L(!1),n=L();Ua({el:n,onBlur:o});function o(){e.value=!1}return(s,r)=>(a(),l("div",{class:"VPFlyout",ref_key:"el",ref:n,onMouseenter:r[1]||(r[1]=d=>e.value=!0),onMouseleave:r[2]||(r[2]=d=>e.value=!1)},[v("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":s.label,onClick:r[0]||(r[0]=d=>e.value=!e.value)},[s.button||s.icon?(a(),l("span",gr,[s.icon?(a(),P(Q(s.icon),{key:0,class:"option-icon"})):m("",!0),O(" "+C(s.button)+" ",1),h(Pt,{class:"text-icon"})])):(a(),P(rr,{key:1,class:"icon"}))],8,mr),v("div",yr,[h(hr,{items:s.items},{default:p(()=>[_(s.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}});const je=g(br,[["__scopeId","data-v-764effdf"]]),$r={discord:'Discord',facebook:'Facebook',github:'GitHub',instagram:'Instagram',linkedin:'LinkedIn',mastodon:'Mastodon',slack:'Slack',twitter:'Twitter',youtube:'YouTube'},kr=["href","aria-label","innerHTML"],Pr=y({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(t){const e=t,n=w(()=>typeof e.icon=="object"?e.icon.svg:$r[e.icon]);return(o,s)=>(a(),l("a",{class:"VPSocialLink",href:o.link,"aria-label":o.ariaLabel??(typeof o.icon=="string"?o.icon:""),target:"_blank",rel:"noopener",innerHTML:n.value},null,8,kr))}});const wr=g(Pr,[["__scopeId","data-v-36371990"]]),Vr={class:"VPSocialLinks"},Sr=y({__name:"VPSocialLinks",props:{links:{}},setup(t){return(e,n)=>(a(),l("div",Vr,[(a(!0),l(A,null,E(e.links,({link:o,icon:s,ariaLabel:r})=>(a(),P(wr,{key:o,icon:s,link:o,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}});const Ge=g(Sr,[["__scopeId","data-v-7bc22406"]]),Lr={key:0,class:"group translations"},Mr={class:"trans-title"},Ir={key:1,class:"group"},Nr={class:"item appearance"},Cr={class:"label"},Ar={class:"appearance-action"},Tr={key:2,class:"group"},Br={class:"item social-links"},xr=y({__name:"VPNavBarExtra",setup(t){const{site:e,theme:n}=I(),{localeLinks:o,currentLang:s}=ue({correspondingLink:!0}),r=w(()=>o.value.length&&s.value.label||e.value.appearance||n.value.socialLinks);return(d,u)=>r.value?(a(),P(je,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:p(()=>[i(o).length&&i(s).label?(a(),l("div",Lr,[v("p",Mr,C(i(s).label),1),(a(!0),l(A,null,E(i(o),c=>(a(),P(Pe,{key:c.link,item:c},null,8,["item"]))),128))])):m("",!0),i(e).appearance?(a(),l("div",Ir,[v("div",Nr,[v("p",Cr,C(i(n).darkModeSwitchLabel||"Appearance"),1),v("div",Ar,[h(ze)])])])):m("",!0),i(n).socialLinks?(a(),l("div",Tr,[v("div",Br,[h(Ge,{class:"social-links-list",links:i(n).socialLinks},null,8,["links"])])])):m("",!0)]),_:1})):m("",!0)}});const Or=g(xr,[["__scopeId","data-v-40855f84"]]),Er=t=>(F("data-v-e5dd9c1c"),t=t(),j(),t),Dr=["aria-expanded"],Hr=Er(()=>v("span",{class:"container"},[v("span",{class:"top"}),v("span",{class:"middle"}),v("span",{class:"bottom"})],-1)),zr=[Hr],Fr=y({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(t){return(e,n)=>(a(),l("button",{type:"button",class:T(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:n[0]||(n[0]=o=>e.$emit("click"))},zr,10,Dr))}});const jr=g(Fr,[["__scopeId","data-v-e5dd9c1c"]]),Gr=y({__name:"VPNavBarMenuLink",props:{item:{}},setup(t){const{page:e}=I();return(n,o)=>(a(),P(Y,{class:T({VPNavBarMenuLink:!0,active:i(te)(i(e).relativePath,n.item.activeMatch||n.item.link,!!n.item.activeMatch)}),href:n.item.link,target:n.item.target,rel:n.item.rel,tabindex:"0"},{default:p(()=>[O(C(n.item.text),1)]),_:1},8,["class","href","target","rel"]))}});const Rr=g(Gr,[["__scopeId","data-v-5e623618"]]),Ur=y({__name:"VPNavBarMenuGroup",props:{item:{}},setup(t){const{page:e}=I();return(n,o)=>(a(),P(je,{class:T({VPNavBarMenuGroup:!0,active:i(te)(i(e).relativePath,n.item.activeMatch,!!n.item.activeMatch)}),button:n.item.text,items:n.item.items},null,8,["class","button","items"]))}}),Wr=t=>(F("data-v-7f418b0f"),t=t(),j(),t),Kr={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Yr=Wr(()=>v("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),qr=y({__name:"VPNavBarMenu",setup(t){const{theme:e}=I();return(n,o)=>i(e).nav?(a(),l("nav",Kr,[Yr,(a(!0),l(A,null,E(i(e).nav,s=>(a(),l(A,{key:s.text},["link"in s?(a(),P(Rr,{key:0,item:s},null,8,["item"])):(a(),P(Ur,{key:1,item:s},null,8,["item"]))],64))),128))])):m("",!0)}});const Jr=g(qr,[["__scopeId","data-v-7f418b0f"]]);const Xr={type:"button",class:"DocSearch DocSearch-Button","aria-label":"Search"},Qr={class:"DocSearch-Button-Container"},Zr=v("svg",{class:"DocSearch-Search-Icon",width:"20",height:"20",viewBox:"0 0 20 20","aria-label":"search icon"},[v("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none","fill-rule":"evenodd","stroke-linecap":"round","stroke-linejoin":"round"})],-1),ei={class:"DocSearch-Button-Placeholder"},ti=v("span",{class:"DocSearch-Button-Keys"},[v("kbd",{class:"DocSearch-Button-Key"}),v("kbd",{class:"DocSearch-Button-Key"},"K")],-1),ot=y({__name:"VPNavBarSearchButton",props:{placeholder:{}},setup(t){return(e,n)=>(a(),l("button",Xr,[v("span",Qr,[Zr,v("span",ei,C(e.placeholder),1)]),ti]))}});const ni={id:"local-search"},oi={key:1,id:"docsearch"},si=y({__name:"VPNavBarSearch",setup(t){const e=jt(()=>Gt(()=>import("./VPLocalSearchBox.3ae6b216.js"),["assets/chunks/VPLocalSearchBox.3ae6b216.js","assets/chunks/framework.c5c8a48b.js"])),n=()=>null,{theme:o,localeIndex:s}=I(),r=L(!1),d=L(!1),u=w(()=>{var M,S,x,z,H,de,_e;const $=((M=o.value.search)==null?void 0:M.options)??o.value.algolia;return((H=(z=(x=(S=$==null?void 0:$.locales)==null?void 0:S[s.value])==null?void 0:x.translations)==null?void 0:z.button)==null?void 0:H.buttonText)||((_e=(de=$==null?void 0:$.translations)==null?void 0:de.button)==null?void 0:_e.buttonText)||"Search"});R(()=>{});function c(){r.value||(r.value=!0,setTimeout(f,16))}function f(){const $=new Event("keydown");$.key="k",$.metaKey=!0,window.dispatchEvent($),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||f()},16)}function b($){const M=$.target,S=M.tagName;return M.isContentEditable||S==="INPUT"||S==="SELECT"||S==="TEXTAREA"}const k=L(!1);Xe("k",$=>{($.ctrlKey||$.metaKey)&&($.preventDefault(),k.value=!0)}),Xe("/",$=>{b($)||($.preventDefault(),k.value=!0)});const N=L("'Meta'");R(()=>{N.value=/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?"'⌘'":"'Ctrl'"});const V="local";return($,M)=>{var S;return a(),l("div",{class:"VPNavBarSearch",style:it({"--vp-meta-key":N.value})},[i(V)==="local"?(a(),l(A,{key:0},[k.value?(a(),P(i(e),{key:0,placeholder:u.value,onClose:M[0]||(M[0]=x=>k.value=!1)},null,8,["placeholder"])):m("",!0),v("div",ni,[h(ot,{placeholder:u.value,onClick:M[1]||(M[1]=x=>k.value=!0)},null,8,["placeholder"])])],64)):i(V)==="algolia"?(a(),l(A,{key:1},[r.value?(a(),P(i(n),{key:0,algolia:((S=i(o).search)==null?void 0:S.options)??i(o).algolia,onVnodeBeforeMount:M[2]||(M[2]=x=>d.value=!0)},null,8,["algolia"])):m("",!0),d.value?m("",!0):(a(),l("div",oi,[h(ot,{placeholder:u.value,onClick:c},null,8,["placeholder"])]))],64)):m("",!0)],4)}}});const ai=y({__name:"VPNavBarSocialLinks",setup(t){const{theme:e}=I();return(n,o)=>i(e).socialLinks?(a(),P(Ge,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):m("",!0)}});const ri=g(ai,[["__scopeId","data-v-0394ad82"]]),ii=["href"],li=y({__name:"VPNavBarTitle",setup(t){const{site:e,theme:n}=I(),{hasSidebar:o}=G(),{currentLang:s}=ue();return(r,d)=>(a(),l("div",{class:T(["VPNavBarTitle",{"has-sidebar":i(o)}])},[v("a",{class:"title",href:i(ae)(i(s).link)},[_(r.$slots,"nav-bar-title-before",{},void 0,!0),i(n).logo?(a(),P(He,{key:0,class:"logo",image:i(n).logo},null,8,["image"])):m("",!0),i(n).siteTitle?(a(),l(A,{key:1},[O(C(i(n).siteTitle),1)],64)):i(n).siteTitle===void 0?(a(),l(A,{key:2},[O(C(i(e).title),1)],64)):m("",!0),_(r.$slots,"nav-bar-title-after",{},void 0,!0)],8,ii)],2))}});const ci=g(li,[["__scopeId","data-v-305adf00"]]),ui={},di={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},_i=v("path",{d:"M0 0h24v24H0z",fill:"none"},null,-1),vi=v("path",{d:" M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z ",class:"css-c4d79v"},null,-1),pi=[_i,vi];function fi(t,e){return a(),l("svg",di,pi)}const wt=g(ui,[["render",fi]]),hi={class:"items"},mi={class:"title"},gi=y({__name:"VPNavBarTranslations",setup(t){const{theme:e}=I(),{localeLinks:n,currentLang:o}=ue({correspondingLink:!0});return(s,r)=>i(n).length&&i(o).label?(a(),P(je,{key:0,class:"VPNavBarTranslations",icon:wt,label:i(e).langMenuLabel||"Change language"},{default:p(()=>[v("div",hi,[v("p",mi,C(i(o).label),1),(a(!0),l(A,null,E(i(n),d=>(a(),P(Pe,{key:d.link,item:d},null,8,["item"]))),128))])]),_:1},8,["label"])):m("",!0)}});const yi=g(gi,[["__scopeId","data-v-74abcbb9"]]),bi=t=>(F("data-v-381568bf"),t=t(),j(),t),$i={class:"container"},ki={class:"title"},Pi={class:"content"},wi=bi(()=>v("div",{class:"curtain"},null,-1)),Vi={class:"content-body"},Si=y({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(t){const{y:e}=yt(),{hasSidebar:n}=G(),o=w(()=>({"has-sidebar":n.value,fill:e.value>0}));return(s,r)=>(a(),l("div",{class:T(["VPNavBar",o.value])},[v("div",$i,[v("div",ki,[h(ci,null,{"nav-bar-title-before":p(()=>[_(s.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[_(s.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),v("div",Pi,[wi,v("div",Vi,[_(s.$slots,"nav-bar-content-before",{},void 0,!0),h(si,{class:"search"}),h(Jr,{class:"menu"}),h(yi,{class:"translations"}),h(Ra,{class:"appearance"}),h(ri,{class:"social-links"}),h(Or,{class:"extra"}),_(s.$slots,"nav-bar-content-after",{},void 0,!0),h(jr,{class:"hamburger",active:s.isScreenOpen,onClick:r[0]||(r[0]=d=>s.$emit("toggle-screen"))},null,8,["active"])])])])],2))}});const Li=g(Si,[["__scopeId","data-v-381568bf"]]);function Mi(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e1),Z=[],be=!1,Ue=-1,ne=void 0,J=void 0,oe=void 0,Vt=function(e){return Z.some(function(n){return!!(n.options.allowTouchMove&&n.options.allowTouchMove(e))})},$e=function(e){var n=e||window.event;return Vt(n.target)||n.touches.length>1?!0:(n.preventDefault&&n.preventDefault(),!1)},Ii=function(e){if(oe===void 0){var n=!!e&&e.reserveScrollBarGap===!0,o=window.innerWidth-document.documentElement.clientWidth;if(n&&o>0){var s=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right"),10);oe=document.body.style.paddingRight,document.body.style.paddingRight=s+o+"px"}}ne===void 0&&(ne=document.body.style.overflow,document.body.style.overflow="hidden")},Ni=function(){oe!==void 0&&(document.body.style.paddingRight=oe,oe=void 0),ne!==void 0&&(document.body.style.overflow=ne,ne=void 0)},Ci=function(){return window.requestAnimationFrame(function(){if(J===void 0){J={position:document.body.style.position,top:document.body.style.top,left:document.body.style.left};var e=window,n=e.scrollY,o=e.scrollX,s=e.innerHeight;document.body.style.position="fixed",document.body.style.top=-n,document.body.style.left=-o,setTimeout(function(){return window.requestAnimationFrame(function(){var r=s-window.innerHeight;r&&n>=s&&(document.body.style.top=-(n+r))})},300)}})},Ai=function(){if(J!==void 0){var e=-parseInt(document.body.style.top,10),n=-parseInt(document.body.style.left,10);document.body.style.position=J.position,document.body.style.top=J.top,document.body.style.left=J.left,window.scrollTo(n,e),J=void 0}},Ti=function(e){return e?e.scrollHeight-e.scrollTop<=e.clientHeight:!1},Bi=function(e,n){var o=e.targetTouches[0].clientY-Ue;return Vt(e.target)?!1:n&&n.scrollTop===0&&o>0||Ti(n)&&o<0?$e(e):(e.stopPropagation(),!0)},St=function(e,n){if(!e){console.error("disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.");return}if(!Z.some(function(s){return s.targetElement===e})){var o={targetElement:e,options:n||{}};Z=[].concat(Mi(Z),[o]),ye?Ci():Ii(n),ye&&(e.ontouchstart=function(s){s.targetTouches.length===1&&(Ue=s.targetTouches[0].clientY)},e.ontouchmove=function(s){s.targetTouches.length===1&&Bi(s,e)},be||(document.addEventListener("touchmove",$e,Re?{passive:!1}:void 0),be=!0))}},Lt=function(){ye&&(Z.forEach(function(e){e.targetElement.ontouchstart=null,e.targetElement.ontouchmove=null}),be&&(document.removeEventListener("touchmove",$e,Re?{passive:!1}:void 0),be=!1),Ue=-1),ye?Ai():Ni(),Z=[]};const xi=y({__name:"VPNavScreenMenuLink",props:{item:{}},setup(t){const e=Te("close-screen");return(n,o)=>(a(),P(Y,{class:"VPNavScreenMenuLink",href:n.item.link,target:n.item.target,rel:n.item.rel,onClick:i(e)},{default:p(()=>[O(C(n.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}});const Oi=g(xi,[["__scopeId","data-v-30be0acb"]]),Ei={},Di={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Hi=v("path",{d:"M18.9,10.9h-6v-6c0-0.6-0.4-1-1-1s-1,0.4-1,1v6h-6c-0.6,0-1,0.4-1,1s0.4,1,1,1h6v6c0,0.6,0.4,1,1,1s1-0.4,1-1v-6h6c0.6,0,1-0.4,1-1S19.5,10.9,18.9,10.9z"},null,-1),zi=[Hi];function Fi(t,e){return a(),l("svg",Di,zi)}const ji=g(Ei,[["render",Fi]]),Gi=y({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(t){const e=Te("close-screen");return(n,o)=>(a(),P(Y,{class:"VPNavScreenMenuGroupLink",href:n.item.link,target:n.item.target,rel:n.item.rel,onClick:i(e)},{default:p(()=>[O(C(n.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}});const Mt=g(Gi,[["__scopeId","data-v-6656c42a"]]),Ri={class:"VPNavScreenMenuGroupSection"},Ui={key:0,class:"title"},Wi=y({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(t){return(e,n)=>(a(),l("div",Ri,[e.text?(a(),l("p",Ui,C(e.text),1)):m("",!0),(a(!0),l(A,null,E(e.items,o=>(a(),P(Mt,{key:o.text,item:o},null,8,["item"]))),128))]))}});const Ki=g(Wi,[["__scopeId","data-v-8133b170"]]),Yi=["aria-controls","aria-expanded"],qi={class:"button-text"},Ji=["id"],Xi={key:1,class:"group"},Qi=y({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(t){const e=t,n=L(!1),o=w(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function s(){n.value=!n.value}return(r,d)=>(a(),l("div",{class:T(["VPNavScreenMenuGroup",{open:n.value}])},[v("button",{class:"button","aria-controls":o.value,"aria-expanded":n.value,onClick:s},[v("span",qi,C(r.text),1),h(ji,{class:"button-icon"})],8,Yi),v("div",{id:o.value,class:"items"},[(a(!0),l(A,null,E(r.items,u=>(a(),l(A,{key:u.text},["link"in u?(a(),l("div",{key:u.text,class:"item"},[h(Mt,{item:u},null,8,["item"])])):(a(),l("div",Xi,[h(Ki,{text:u.text,items:u.items},null,8,["text","items"])]))],64))),128))],8,Ji)],2))}});const Zi=g(Qi,[["__scopeId","data-v-338a1689"]]),el={key:0,class:"VPNavScreenMenu"},tl=y({__name:"VPNavScreenMenu",setup(t){const{theme:e}=I();return(n,o)=>i(e).nav?(a(),l("nav",el,[(a(!0),l(A,null,E(i(e).nav,s=>(a(),l(A,{key:s.text},["link"in s?(a(),P(Oi,{key:0,item:s},null,8,["item"])):(a(),P(Zi,{key:1,text:s.text||"",items:s.items},null,8,["text","items"]))],64))),128))])):m("",!0)}}),nl={key:0,class:"VPNavScreenAppearance"},ol={class:"text"},sl=y({__name:"VPNavScreenAppearance",setup(t){const{site:e,theme:n}=I();return(o,s)=>i(e).appearance?(a(),l("div",nl,[v("p",ol,C(i(n).darkModeSwitchLabel||"Appearance"),1),h(ze)])):m("",!0)}});const al=g(sl,[["__scopeId","data-v-add8f686"]]),rl={class:"list"},il=y({__name:"VPNavScreenTranslations",setup(t){const{localeLinks:e,currentLang:n}=ue({correspondingLink:!0}),o=L(!1);function s(){o.value=!o.value}return(r,d)=>i(e).length&&i(n).label?(a(),l("div",{key:0,class:T(["VPNavScreenTranslations",{open:o.value}])},[v("button",{class:"title",onClick:s},[h(wt,{class:"icon lang"}),O(" "+C(i(n).label)+" ",1),h(Pt,{class:"icon chevron"})]),v("ul",rl,[(a(!0),l(A,null,E(i(e),u=>(a(),l("li",{key:u.link,class:"item"},[h(Y,{class:"link",href:u.link},{default:p(()=>[O(C(u.text),1)]),_:2},1032,["href"])]))),128))])],2)):m("",!0)}});const ll=g(il,[["__scopeId","data-v-d72aa483"]]),cl=y({__name:"VPNavScreenSocialLinks",setup(t){const{theme:e}=I();return(n,o)=>i(e).socialLinks?(a(),P(Ge,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):m("",!0)}}),ul={class:"container"},dl=y({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(t){const e=L(null);function n(){St(e.value,{reserveScrollBarGap:!0})}function o(){Lt()}return(s,r)=>(a(),P(Ie,{name:"fade",onEnter:n,onAfterLeave:o},{default:p(()=>[s.open?(a(),l("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e},[v("div",ul,[_(s.$slots,"nav-screen-content-before",{},void 0,!0),h(tl,{class:"menu"}),h(ll,{class:"translations"}),h(al,{class:"appearance"}),h(cl,{class:"social-links"}),_(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):m("",!0)]),_:3}))}});const _l=g(dl,[["__scopeId","data-v-724636ae"]]),vl={class:"VPNav"},pl=y({__name:"VPNav",setup(t){const{isScreenOpen:e,closeScreen:n,toggleScreen:o}=ka();return he("close-screen",n),(s,r)=>(a(),l("header",vl,[h(Li,{"is-screen-open":i(e),onToggleScreen:i(o)},{"nav-bar-title-before":p(()=>[_(s.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[_(s.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[_(s.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[_(s.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),h(_l,{open:i(e)},{"nav-screen-content-before":p(()=>[_(s.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[_(s.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])]))}});const fl=g(pl,[["__scopeId","data-v-7e5bc4a5"]]);function G(){const t=ce(),{theme:e,frontmatter:n}=I(),o=Le("(min-width: 960px)"),s=L(!1),r=w(()=>{const $=e.value.sidebar,M=t.data.relativePath;return $?bt($,M):[]}),d=w(()=>n.value.sidebar!==!1&&r.value.length>0&&n.value.layout!=="home"),u=w(()=>c?n.value.aside==null?e.value.aside==="left":n.value.aside==="left":!1),c=w(()=>n.value.layout==="home"?!1:n.value.aside!=null?!!n.value.aside:e.value.aside!==!1),f=w(()=>d.value&&o.value),b=w(()=>d.value?fo(r.value):[]);function k(){s.value=!0}function N(){s.value=!1}function V(){s.value?N():k()}return{isOpen:s,sidebar:r,sidebarGroups:b,hasSidebar:d,hasAside:c,leftAside:u,isSidebarEnabled:f,open:k,close:N,toggle:V}}function hl(t,e){let n;ee(()=>{n=t.value?document.activeElement:void 0}),R(()=>{window.addEventListener("keyup",o)}),Ae(()=>{window.removeEventListener("keyup",o)});function o(s){s.key==="Escape"&&t.value&&(e(),n==null||n.focus())}}function ml(t){const{page:e}=I(),n=L(!1),o=w(()=>t.value.collapsed!=null),s=w(()=>!!t.value.link),r=w(()=>te(e.value.relativePath,t.value.link)),d=w(()=>r.value?!0:t.value.items?Me(e.value.relativePath,t.value.items):!1),u=w(()=>!!(t.value.items&&t.value.items.length));ee(()=>{n.value=!!(o.value&&t.value.collapsed)}),ee(()=>{(r.value||d.value)&&(n.value=!1)});function c(){o.value&&(n.value=!n.value)}return{collapsed:n,collapsible:o,isLink:s,isActiveLink:r,hasActiveLink:d,hasChildren:u,toggle:c}}const gl=t=>(F("data-v-c4656e6d"),t=t(),j(),t),yl=["role","tabindex"],bl=gl(()=>v("div",{class:"indicator"},null,-1)),$l=["onKeydown"],kl={key:1,class:"items"},Pl=y({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(t){const e=t,{collapsed:n,collapsible:o,isLink:s,isActiveLink:r,hasActiveLink:d,hasChildren:u,toggle:c}=ml(w(()=>e.item)),f=w(()=>u.value?"section":"div"),b=w(()=>s.value?"a":"div"),k=w(()=>u.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),N=w(()=>s.value?void 0:"button"),V=w(()=>[[`level-${e.depth}`],{collapsible:o.value},{collapsed:n.value},{"is-link":s.value},{"is-active":r.value},{"has-active":d.value}]);function $(S){"key"in S&&S.key!=="Enter"||!e.item.link&&c()}function M(){e.item.link&&c()}return(S,x)=>{const z=X("VPSidebarItem",!0);return a(),P(Q(f.value),{class:T(["VPSidebarItem",V.value])},{default:p(()=>[S.item.text?(a(),l("div",fe({key:0,class:"item",role:N.value},Ut(S.item.items?{click:$,keydown:$}:{},!0),{tabindex:S.item.items&&0}),[bl,S.item.link?(a(),P(Y,{key:0,tag:b.value,class:"link",href:S.item.link},{default:p(()=>[(a(),P(Q(k.value),{class:"text",innerHTML:S.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href"])):(a(),P(Q(k.value),{key:1,class:"text",innerHTML:S.item.text},null,8,["innerHTML"])),S.item.collapsed!=null?(a(),l("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:M,onKeydown:Rt(M,["enter"]),tabindex:"0"},[h(De,{class:"caret-icon"})],40,$l)):m("",!0)],16,yl)):m("",!0),S.item.items&&S.item.items.length?(a(),l("div",kl,[S.depth<5?(a(!0),l(A,{key:0},E(S.item.items,H=>(a(),P(z,{key:H.text,item:H,depth:S.depth+1},null,8,["item","depth"]))),128)):m("",!0)])):m("",!0)]),_:1},8,["class"])}}});const wl=g(Pl,[["__scopeId","data-v-c4656e6d"]]),It=t=>(F("data-v-54885d6c"),t=t(),j(),t),Vl=It(()=>v("div",{class:"curtain"},null,-1)),Sl={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Ll=It(()=>v("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),Ml=y({__name:"VPSidebar",props:{open:{type:Boolean}},setup(t){const e=t,{sidebarGroups:n,hasSidebar:o}=G();let s=L(null);function r(){St(s.value,{reserveScrollBarGap:!0})}function d(){Lt()}return Wt(async()=>{var u;e.open?(r(),(u=s.value)==null||u.focus()):d()}),(u,c)=>i(o)?(a(),l("aside",{key:0,class:T(["VPSidebar",{open:u.open}]),ref_key:"navEl",ref:s,onClick:c[0]||(c[0]=Kt(()=>{},["stop"]))},[Vl,v("nav",Sl,[Ll,_(u.$slots,"sidebar-nav-before",{},void 0,!0),(a(!0),l(A,null,E(i(n),f=>(a(),l("div",{key:f.text,class:"group"},[h(wl,{item:f,depth:0},null,8,["item"])]))),128)),_(u.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):m("",!0)}});const Il=g(Ml,[["__scopeId","data-v-54885d6c"]]),Nl=y({__name:"VPSkipLink",setup(t){const e=ce(),n=L();K(()=>e.path,()=>n.value.focus());function o({target:s}){const r=document.getElementById(decodeURIComponent(s.hash).slice(1));if(r){const d=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",d)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",d),r.focus(),window.scrollTo(0,0)}}return(s,r)=>(a(),l(A,null,[v("span",{ref_key:"backToTop",ref:n,tabindex:"-1"},null,512),v("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:o}," Skip to content ")],64))}});const Cl=g(Nl,[["__scopeId","data-v-ae3e3f51"]]),Al={key:0,class:"Layout"},Tl=y({__name:"Layout",setup(t){const{isOpen:e,open:n,close:o}=G(),s=ce();K(()=>s.path,o),hl(e,o),he("close-sidebar",o),he("is-sidebar-open",e);const{frontmatter:r}=I(),d=Yt(),u=w(()=>!!d["home-hero-image"]);return he("hero-image-slot-exists",u),(c,f)=>{const b=X("Content");return i(r).layout!==!1?(a(),l("div",Al,[_(c.$slots,"layout-top",{},void 0,!0),h(Cl),h(Zt,{class:"backdrop",show:i(e),onClick:i(o)},null,8,["show","onClick"]),i(r).navbar!==!1?(a(),P(fl,{key:0},{"nav-bar-title-before":p(()=>[_(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[_(c.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[_(c.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[_(c.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":p(()=>[_(c.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[_(c.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3})):m("",!0),h($a,{open:i(e),onOpenMenu:i(n)},null,8,["open","onOpenMenu"]),h(Il,{open:i(e)},{"sidebar-nav-before":p(()=>[_(c.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":p(()=>[_(c.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),h(ta,null,{"page-top":p(()=>[_(c.$slots,"page-top",{},void 0,!0)]),"page-bottom":p(()=>[_(c.$slots,"page-bottom",{},void 0,!0)]),"not-found":p(()=>[_(c.$slots,"not-found",{},void 0,!0)]),"home-hero-before":p(()=>[_(c.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info":p(()=>[_(c.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":p(()=>[_(c.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":p(()=>[_(c.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":p(()=>[_(c.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":p(()=>[_(c.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":p(()=>[_(c.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":p(()=>[_(c.$slots,"doc-before",{},void 0,!0)]),"doc-after":p(()=>[_(c.$slots,"doc-after",{},void 0,!0)]),"doc-top":p(()=>[_(c.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":p(()=>[_(c.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":p(()=>[_(c.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":p(()=>[_(c.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":p(()=>[_(c.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[_(c.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[_(c.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[_(c.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),h(ra),_(c.$slots,"layout-bottom",{},void 0,!0)])):(a(),P(b,{key:1}))}}});const Bl=g(Tl,[["__scopeId","data-v-99cf8a88"]]);const Fl={Layout:Bl,enhanceApp:({app:t})=>{t.component("Badge",Jt)}};function jl(t,e){const{localeIndex:n}=I();function o(s){var V,$;const r=s.split("."),d=t&&typeof t=="object",u=d&&(($=(V=t.locales)==null?void 0:V[n.value])==null?void 0:$.translations)||null,c=d&&t.translations||null;let f=u,b=c,k=e;const N=r.pop();for(const M of r){let S=null;const x=k==null?void 0:k[M];x&&(S=k=x);const z=b==null?void 0:b[M];z&&(S=b=z);const H=f==null?void 0:f[M];H&&(S=f=H),x||(k=S),z||(b=S),H||(f=S)}return(f==null?void 0:f[N])??(b==null?void 0:b[N])??(k==null?void 0:k[N])??""}return o}export{Be as a,I as b,El as c,zl as d,Dl as e,jl as f,ie as g,Hl as h,Xe as o,Fl as t,An as u,Ol as w};
    +}`)),document.head.appendChild(V),o.value=N,u[N?"add":"remove"]("dark"),window.getComputedStyle(V).opacity,document.head.removeChild(V)}return b}return K(o,d=>{n.value=d}),(d,u)=>(a(),P(Ma,{title:"toggle dark mode",class:"VPSwitchAppearance","aria-checked":o.value,onClick:i(s)},{default:p(()=>[h(Ba,{class:"sun"}),h(za,{class:"moon"})]),_:1},8,["aria-checked","onClick"]))}});const ze=g(Fa,[["__scopeId","data-v-82b282f1"]]),ja={key:0,class:"VPNavBarAppearance"},Ga=y({__name:"VPNavBarAppearance",setup(t){const{site:e}=I();return(n,o)=>i(e).appearance?(a(),l("div",ja,[h(ze)])):m("",!0)}});const Ra=g(Ga,[["__scopeId","data-v-f6a63727"]]),Fe=L();let $t=!1,Ve=0;function Ua(t){const e=L(!1);if(lt){!$t&&Wa(),Ve++;const n=K(Fe,o=>{var s,r,d;o===t.el.value||(s=t.el.value)!=null&&s.contains(o)?(e.value=!0,(r=t.onFocus)==null||r.call(t)):(e.value=!1,(d=t.onBlur)==null||d.call(t))});Ae(()=>{n(),Ve--,Ve||Ka()})}return Ce(e)}function Wa(){document.addEventListener("focusin",kt),$t=!0,Fe.value=document.activeElement}function Ka(){document.removeEventListener("focusin",kt)}function kt(){Fe.value=document.activeElement}const Ya={},qa={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Ja=v("path",{d:"M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"},null,-1),Xa=[Ja];function Qa(t,e){return a(),l("svg",qa,Xa)}const Pt=g(Ya,[["render",Qa]]),Za={},er={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},tr=v("circle",{cx:"12",cy:"12",r:"2"},null,-1),nr=v("circle",{cx:"19",cy:"12",r:"2"},null,-1),or=v("circle",{cx:"5",cy:"12",r:"2"},null,-1),sr=[tr,nr,or];function ar(t,e){return a(),l("svg",er,sr)}const rr=g(Za,[["render",ar]]),ir={class:"VPMenuLink"},lr=y({__name:"VPMenuLink",props:{item:{}},setup(t){const{page:e}=I();return(n,o)=>(a(),l("div",ir,[h(Y,{class:T({active:i(te)(i(e).relativePath,n.item.activeMatch||n.item.link,!!n.item.activeMatch)}),href:n.item.link,target:n.item.target,rel:n.item.rel},{default:p(()=>[O(C(n.item.text),1)]),_:1},8,["class","href","target","rel"])]))}});const Pe=g(lr,[["__scopeId","data-v-2f2cfafc"]]),cr={class:"VPMenuGroup"},ur={key:0,class:"title"},dr=y({__name:"VPMenuGroup",props:{text:{},items:{}},setup(t){return(e,n)=>(a(),l("div",cr,[e.text?(a(),l("p",ur,C(e.text),1)):m("",!0),(a(!0),l(A,null,E(e.items,o=>(a(),l(A,null,["link"in o?(a(),P(Pe,{key:0,item:o},null,8,["item"])):m("",!0)],64))),256))]))}});const _r=g(dr,[["__scopeId","data-v-69e747b5"]]),vr={class:"VPMenu"},pr={key:0,class:"items"},fr=y({__name:"VPMenu",props:{items:{}},setup(t){return(e,n)=>(a(),l("div",vr,[e.items?(a(),l("div",pr,[(a(!0),l(A,null,E(e.items,o=>(a(),l(A,{key:o.text},["link"in o?(a(),P(Pe,{key:0,item:o},null,8,["item"])):(a(),P(_r,{key:1,text:o.text,items:o.items},null,8,["text","items"]))],64))),128))])):m("",!0),_(e.$slots,"default",{},void 0,!0)]))}});const hr=g(fr,[["__scopeId","data-v-e7ea1737"]]),mr=["aria-expanded","aria-label"],gr={key:0,class:"text"},yr={class:"menu"},br=y({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(t){const e=L(!1),n=L();Ua({el:n,onBlur:o});function o(){e.value=!1}return(s,r)=>(a(),l("div",{class:"VPFlyout",ref_key:"el",ref:n,onMouseenter:r[1]||(r[1]=d=>e.value=!0),onMouseleave:r[2]||(r[2]=d=>e.value=!1)},[v("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":s.label,onClick:r[0]||(r[0]=d=>e.value=!e.value)},[s.button||s.icon?(a(),l("span",gr,[s.icon?(a(),P(Q(s.icon),{key:0,class:"option-icon"})):m("",!0),O(" "+C(s.button)+" ",1),h(Pt,{class:"text-icon"})])):(a(),P(rr,{key:1,class:"icon"}))],8,mr),v("div",yr,[h(hr,{items:s.items},{default:p(()=>[_(s.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}});const je=g(br,[["__scopeId","data-v-764effdf"]]),$r={discord:'Discord',facebook:'Facebook',github:'GitHub',instagram:'Instagram',linkedin:'LinkedIn',mastodon:'Mastodon',slack:'Slack',twitter:'Twitter',youtube:'YouTube'},kr=["href","aria-label","innerHTML"],Pr=y({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(t){const e=t,n=w(()=>typeof e.icon=="object"?e.icon.svg:$r[e.icon]);return(o,s)=>(a(),l("a",{class:"VPSocialLink",href:o.link,"aria-label":o.ariaLabel??(typeof o.icon=="string"?o.icon:""),target:"_blank",rel:"noopener",innerHTML:n.value},null,8,kr))}});const wr=g(Pr,[["__scopeId","data-v-36371990"]]),Vr={class:"VPSocialLinks"},Sr=y({__name:"VPSocialLinks",props:{links:{}},setup(t){return(e,n)=>(a(),l("div",Vr,[(a(!0),l(A,null,E(e.links,({link:o,icon:s,ariaLabel:r})=>(a(),P(wr,{key:o,icon:s,link:o,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}});const Ge=g(Sr,[["__scopeId","data-v-7bc22406"]]),Lr={key:0,class:"group translations"},Mr={class:"trans-title"},Ir={key:1,class:"group"},Nr={class:"item appearance"},Cr={class:"label"},Ar={class:"appearance-action"},Tr={key:2,class:"group"},Br={class:"item social-links"},xr=y({__name:"VPNavBarExtra",setup(t){const{site:e,theme:n}=I(),{localeLinks:o,currentLang:s}=ue({correspondingLink:!0}),r=w(()=>o.value.length&&s.value.label||e.value.appearance||n.value.socialLinks);return(d,u)=>r.value?(a(),P(je,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:p(()=>[i(o).length&&i(s).label?(a(),l("div",Lr,[v("p",Mr,C(i(s).label),1),(a(!0),l(A,null,E(i(o),c=>(a(),P(Pe,{key:c.link,item:c},null,8,["item"]))),128))])):m("",!0),i(e).appearance?(a(),l("div",Ir,[v("div",Nr,[v("p",Cr,C(i(n).darkModeSwitchLabel||"Appearance"),1),v("div",Ar,[h(ze)])])])):m("",!0),i(n).socialLinks?(a(),l("div",Tr,[v("div",Br,[h(Ge,{class:"social-links-list",links:i(n).socialLinks},null,8,["links"])])])):m("",!0)]),_:1})):m("",!0)}});const Or=g(xr,[["__scopeId","data-v-40855f84"]]),Er=t=>(F("data-v-e5dd9c1c"),t=t(),j(),t),Dr=["aria-expanded"],Hr=Er(()=>v("span",{class:"container"},[v("span",{class:"top"}),v("span",{class:"middle"}),v("span",{class:"bottom"})],-1)),zr=[Hr],Fr=y({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(t){return(e,n)=>(a(),l("button",{type:"button",class:T(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:n[0]||(n[0]=o=>e.$emit("click"))},zr,10,Dr))}});const jr=g(Fr,[["__scopeId","data-v-e5dd9c1c"]]),Gr=y({__name:"VPNavBarMenuLink",props:{item:{}},setup(t){const{page:e}=I();return(n,o)=>(a(),P(Y,{class:T({VPNavBarMenuLink:!0,active:i(te)(i(e).relativePath,n.item.activeMatch||n.item.link,!!n.item.activeMatch)}),href:n.item.link,target:n.item.target,rel:n.item.rel,tabindex:"0"},{default:p(()=>[O(C(n.item.text),1)]),_:1},8,["class","href","target","rel"]))}});const Rr=g(Gr,[["__scopeId","data-v-5e623618"]]),Ur=y({__name:"VPNavBarMenuGroup",props:{item:{}},setup(t){const{page:e}=I();return(n,o)=>(a(),P(je,{class:T({VPNavBarMenuGroup:!0,active:i(te)(i(e).relativePath,n.item.activeMatch,!!n.item.activeMatch)}),button:n.item.text,items:n.item.items},null,8,["class","button","items"]))}}),Wr=t=>(F("data-v-7f418b0f"),t=t(),j(),t),Kr={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Yr=Wr(()=>v("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),qr=y({__name:"VPNavBarMenu",setup(t){const{theme:e}=I();return(n,o)=>i(e).nav?(a(),l("nav",Kr,[Yr,(a(!0),l(A,null,E(i(e).nav,s=>(a(),l(A,{key:s.text},["link"in s?(a(),P(Rr,{key:0,item:s},null,8,["item"])):(a(),P(Ur,{key:1,item:s},null,8,["item"]))],64))),128))])):m("",!0)}});const Jr=g(qr,[["__scopeId","data-v-7f418b0f"]]);const Xr={type:"button",class:"DocSearch DocSearch-Button","aria-label":"Search"},Qr={class:"DocSearch-Button-Container"},Zr=v("svg",{class:"DocSearch-Search-Icon",width:"20",height:"20",viewBox:"0 0 20 20","aria-label":"search icon"},[v("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none","fill-rule":"evenodd","stroke-linecap":"round","stroke-linejoin":"round"})],-1),ei={class:"DocSearch-Button-Placeholder"},ti=v("span",{class:"DocSearch-Button-Keys"},[v("kbd",{class:"DocSearch-Button-Key"}),v("kbd",{class:"DocSearch-Button-Key"},"K")],-1),ot=y({__name:"VPNavBarSearchButton",props:{placeholder:{}},setup(t){return(e,n)=>(a(),l("button",Xr,[v("span",Qr,[Zr,v("span",ei,C(e.placeholder),1)]),ti]))}});const ni={id:"local-search"},oi={key:1,id:"docsearch"},si=y({__name:"VPNavBarSearch",setup(t){const e=jt(()=>Gt(()=>import("./VPLocalSearchBox.b62f6905.js"),["assets/chunks/VPLocalSearchBox.b62f6905.js","assets/chunks/framework.c5c8a48b.js"])),n=()=>null,{theme:o,localeIndex:s}=I(),r=L(!1),d=L(!1),u=w(()=>{var M,S,x,z,H,de,_e;const $=((M=o.value.search)==null?void 0:M.options)??o.value.algolia;return((H=(z=(x=(S=$==null?void 0:$.locales)==null?void 0:S[s.value])==null?void 0:x.translations)==null?void 0:z.button)==null?void 0:H.buttonText)||((_e=(de=$==null?void 0:$.translations)==null?void 0:de.button)==null?void 0:_e.buttonText)||"Search"});R(()=>{});function c(){r.value||(r.value=!0,setTimeout(f,16))}function f(){const $=new Event("keydown");$.key="k",$.metaKey=!0,window.dispatchEvent($),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||f()},16)}function b($){const M=$.target,S=M.tagName;return M.isContentEditable||S==="INPUT"||S==="SELECT"||S==="TEXTAREA"}const k=L(!1);Xe("k",$=>{($.ctrlKey||$.metaKey)&&($.preventDefault(),k.value=!0)}),Xe("/",$=>{b($)||($.preventDefault(),k.value=!0)});const N=L("'Meta'");R(()=>{N.value=/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?"'⌘'":"'Ctrl'"});const V="local";return($,M)=>{var S;return a(),l("div",{class:"VPNavBarSearch",style:it({"--vp-meta-key":N.value})},[i(V)==="local"?(a(),l(A,{key:0},[k.value?(a(),P(i(e),{key:0,placeholder:u.value,onClose:M[0]||(M[0]=x=>k.value=!1)},null,8,["placeholder"])):m("",!0),v("div",ni,[h(ot,{placeholder:u.value,onClick:M[1]||(M[1]=x=>k.value=!0)},null,8,["placeholder"])])],64)):i(V)==="algolia"?(a(),l(A,{key:1},[r.value?(a(),P(i(n),{key:0,algolia:((S=i(o).search)==null?void 0:S.options)??i(o).algolia,onVnodeBeforeMount:M[2]||(M[2]=x=>d.value=!0)},null,8,["algolia"])):m("",!0),d.value?m("",!0):(a(),l("div",oi,[h(ot,{placeholder:u.value,onClick:c},null,8,["placeholder"])]))],64)):m("",!0)],4)}}});const ai=y({__name:"VPNavBarSocialLinks",setup(t){const{theme:e}=I();return(n,o)=>i(e).socialLinks?(a(),P(Ge,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):m("",!0)}});const ri=g(ai,[["__scopeId","data-v-0394ad82"]]),ii=["href"],li=y({__name:"VPNavBarTitle",setup(t){const{site:e,theme:n}=I(),{hasSidebar:o}=G(),{currentLang:s}=ue();return(r,d)=>(a(),l("div",{class:T(["VPNavBarTitle",{"has-sidebar":i(o)}])},[v("a",{class:"title",href:i(ae)(i(s).link)},[_(r.$slots,"nav-bar-title-before",{},void 0,!0),i(n).logo?(a(),P(He,{key:0,class:"logo",image:i(n).logo},null,8,["image"])):m("",!0),i(n).siteTitle?(a(),l(A,{key:1},[O(C(i(n).siteTitle),1)],64)):i(n).siteTitle===void 0?(a(),l(A,{key:2},[O(C(i(e).title),1)],64)):m("",!0),_(r.$slots,"nav-bar-title-after",{},void 0,!0)],8,ii)],2))}});const ci=g(li,[["__scopeId","data-v-305adf00"]]),ui={},di={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},_i=v("path",{d:"M0 0h24v24H0z",fill:"none"},null,-1),vi=v("path",{d:" M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z ",class:"css-c4d79v"},null,-1),pi=[_i,vi];function fi(t,e){return a(),l("svg",di,pi)}const wt=g(ui,[["render",fi]]),hi={class:"items"},mi={class:"title"},gi=y({__name:"VPNavBarTranslations",setup(t){const{theme:e}=I(),{localeLinks:n,currentLang:o}=ue({correspondingLink:!0});return(s,r)=>i(n).length&&i(o).label?(a(),P(je,{key:0,class:"VPNavBarTranslations",icon:wt,label:i(e).langMenuLabel||"Change language"},{default:p(()=>[v("div",hi,[v("p",mi,C(i(o).label),1),(a(!0),l(A,null,E(i(n),d=>(a(),P(Pe,{key:d.link,item:d},null,8,["item"]))),128))])]),_:1},8,["label"])):m("",!0)}});const yi=g(gi,[["__scopeId","data-v-74abcbb9"]]),bi=t=>(F("data-v-381568bf"),t=t(),j(),t),$i={class:"container"},ki={class:"title"},Pi={class:"content"},wi=bi(()=>v("div",{class:"curtain"},null,-1)),Vi={class:"content-body"},Si=y({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(t){const{y:e}=yt(),{hasSidebar:n}=G(),o=w(()=>({"has-sidebar":n.value,fill:e.value>0}));return(s,r)=>(a(),l("div",{class:T(["VPNavBar",o.value])},[v("div",$i,[v("div",ki,[h(ci,null,{"nav-bar-title-before":p(()=>[_(s.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[_(s.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),v("div",Pi,[wi,v("div",Vi,[_(s.$slots,"nav-bar-content-before",{},void 0,!0),h(si,{class:"search"}),h(Jr,{class:"menu"}),h(yi,{class:"translations"}),h(Ra,{class:"appearance"}),h(ri,{class:"social-links"}),h(Or,{class:"extra"}),_(s.$slots,"nav-bar-content-after",{},void 0,!0),h(jr,{class:"hamburger",active:s.isScreenOpen,onClick:r[0]||(r[0]=d=>s.$emit("toggle-screen"))},null,8,["active"])])])])],2))}});const Li=g(Si,[["__scopeId","data-v-381568bf"]]);function Mi(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e1),Z=[],be=!1,Ue=-1,ne=void 0,J=void 0,oe=void 0,Vt=function(e){return Z.some(function(n){return!!(n.options.allowTouchMove&&n.options.allowTouchMove(e))})},$e=function(e){var n=e||window.event;return Vt(n.target)||n.touches.length>1?!0:(n.preventDefault&&n.preventDefault(),!1)},Ii=function(e){if(oe===void 0){var n=!!e&&e.reserveScrollBarGap===!0,o=window.innerWidth-document.documentElement.clientWidth;if(n&&o>0){var s=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right"),10);oe=document.body.style.paddingRight,document.body.style.paddingRight=s+o+"px"}}ne===void 0&&(ne=document.body.style.overflow,document.body.style.overflow="hidden")},Ni=function(){oe!==void 0&&(document.body.style.paddingRight=oe,oe=void 0),ne!==void 0&&(document.body.style.overflow=ne,ne=void 0)},Ci=function(){return window.requestAnimationFrame(function(){if(J===void 0){J={position:document.body.style.position,top:document.body.style.top,left:document.body.style.left};var e=window,n=e.scrollY,o=e.scrollX,s=e.innerHeight;document.body.style.position="fixed",document.body.style.top=-n,document.body.style.left=-o,setTimeout(function(){return window.requestAnimationFrame(function(){var r=s-window.innerHeight;r&&n>=s&&(document.body.style.top=-(n+r))})},300)}})},Ai=function(){if(J!==void 0){var e=-parseInt(document.body.style.top,10),n=-parseInt(document.body.style.left,10);document.body.style.position=J.position,document.body.style.top=J.top,document.body.style.left=J.left,window.scrollTo(n,e),J=void 0}},Ti=function(e){return e?e.scrollHeight-e.scrollTop<=e.clientHeight:!1},Bi=function(e,n){var o=e.targetTouches[0].clientY-Ue;return Vt(e.target)?!1:n&&n.scrollTop===0&&o>0||Ti(n)&&o<0?$e(e):(e.stopPropagation(),!0)},St=function(e,n){if(!e){console.error("disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.");return}if(!Z.some(function(s){return s.targetElement===e})){var o={targetElement:e,options:n||{}};Z=[].concat(Mi(Z),[o]),ye?Ci():Ii(n),ye&&(e.ontouchstart=function(s){s.targetTouches.length===1&&(Ue=s.targetTouches[0].clientY)},e.ontouchmove=function(s){s.targetTouches.length===1&&Bi(s,e)},be||(document.addEventListener("touchmove",$e,Re?{passive:!1}:void 0),be=!0))}},Lt=function(){ye&&(Z.forEach(function(e){e.targetElement.ontouchstart=null,e.targetElement.ontouchmove=null}),be&&(document.removeEventListener("touchmove",$e,Re?{passive:!1}:void 0),be=!1),Ue=-1),ye?Ai():Ni(),Z=[]};const xi=y({__name:"VPNavScreenMenuLink",props:{item:{}},setup(t){const e=Te("close-screen");return(n,o)=>(a(),P(Y,{class:"VPNavScreenMenuLink",href:n.item.link,target:n.item.target,rel:n.item.rel,onClick:i(e)},{default:p(()=>[O(C(n.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}});const Oi=g(xi,[["__scopeId","data-v-30be0acb"]]),Ei={},Di={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Hi=v("path",{d:"M18.9,10.9h-6v-6c0-0.6-0.4-1-1-1s-1,0.4-1,1v6h-6c-0.6,0-1,0.4-1,1s0.4,1,1,1h6v6c0,0.6,0.4,1,1,1s1-0.4,1-1v-6h6c0.6,0,1-0.4,1-1S19.5,10.9,18.9,10.9z"},null,-1),zi=[Hi];function Fi(t,e){return a(),l("svg",Di,zi)}const ji=g(Ei,[["render",Fi]]),Gi=y({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(t){const e=Te("close-screen");return(n,o)=>(a(),P(Y,{class:"VPNavScreenMenuGroupLink",href:n.item.link,target:n.item.target,rel:n.item.rel,onClick:i(e)},{default:p(()=>[O(C(n.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}});const Mt=g(Gi,[["__scopeId","data-v-6656c42a"]]),Ri={class:"VPNavScreenMenuGroupSection"},Ui={key:0,class:"title"},Wi=y({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(t){return(e,n)=>(a(),l("div",Ri,[e.text?(a(),l("p",Ui,C(e.text),1)):m("",!0),(a(!0),l(A,null,E(e.items,o=>(a(),P(Mt,{key:o.text,item:o},null,8,["item"]))),128))]))}});const Ki=g(Wi,[["__scopeId","data-v-8133b170"]]),Yi=["aria-controls","aria-expanded"],qi={class:"button-text"},Ji=["id"],Xi={key:1,class:"group"},Qi=y({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(t){const e=t,n=L(!1),o=w(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function s(){n.value=!n.value}return(r,d)=>(a(),l("div",{class:T(["VPNavScreenMenuGroup",{open:n.value}])},[v("button",{class:"button","aria-controls":o.value,"aria-expanded":n.value,onClick:s},[v("span",qi,C(r.text),1),h(ji,{class:"button-icon"})],8,Yi),v("div",{id:o.value,class:"items"},[(a(!0),l(A,null,E(r.items,u=>(a(),l(A,{key:u.text},["link"in u?(a(),l("div",{key:u.text,class:"item"},[h(Mt,{item:u},null,8,["item"])])):(a(),l("div",Xi,[h(Ki,{text:u.text,items:u.items},null,8,["text","items"])]))],64))),128))],8,Ji)],2))}});const Zi=g(Qi,[["__scopeId","data-v-338a1689"]]),el={key:0,class:"VPNavScreenMenu"},tl=y({__name:"VPNavScreenMenu",setup(t){const{theme:e}=I();return(n,o)=>i(e).nav?(a(),l("nav",el,[(a(!0),l(A,null,E(i(e).nav,s=>(a(),l(A,{key:s.text},["link"in s?(a(),P(Oi,{key:0,item:s},null,8,["item"])):(a(),P(Zi,{key:1,text:s.text||"",items:s.items},null,8,["text","items"]))],64))),128))])):m("",!0)}}),nl={key:0,class:"VPNavScreenAppearance"},ol={class:"text"},sl=y({__name:"VPNavScreenAppearance",setup(t){const{site:e,theme:n}=I();return(o,s)=>i(e).appearance?(a(),l("div",nl,[v("p",ol,C(i(n).darkModeSwitchLabel||"Appearance"),1),h(ze)])):m("",!0)}});const al=g(sl,[["__scopeId","data-v-add8f686"]]),rl={class:"list"},il=y({__name:"VPNavScreenTranslations",setup(t){const{localeLinks:e,currentLang:n}=ue({correspondingLink:!0}),o=L(!1);function s(){o.value=!o.value}return(r,d)=>i(e).length&&i(n).label?(a(),l("div",{key:0,class:T(["VPNavScreenTranslations",{open:o.value}])},[v("button",{class:"title",onClick:s},[h(wt,{class:"icon lang"}),O(" "+C(i(n).label)+" ",1),h(Pt,{class:"icon chevron"})]),v("ul",rl,[(a(!0),l(A,null,E(i(e),u=>(a(),l("li",{key:u.link,class:"item"},[h(Y,{class:"link",href:u.link},{default:p(()=>[O(C(u.text),1)]),_:2},1032,["href"])]))),128))])],2)):m("",!0)}});const ll=g(il,[["__scopeId","data-v-d72aa483"]]),cl=y({__name:"VPNavScreenSocialLinks",setup(t){const{theme:e}=I();return(n,o)=>i(e).socialLinks?(a(),P(Ge,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):m("",!0)}}),ul={class:"container"},dl=y({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(t){const e=L(null);function n(){St(e.value,{reserveScrollBarGap:!0})}function o(){Lt()}return(s,r)=>(a(),P(Ie,{name:"fade",onEnter:n,onAfterLeave:o},{default:p(()=>[s.open?(a(),l("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e},[v("div",ul,[_(s.$slots,"nav-screen-content-before",{},void 0,!0),h(tl,{class:"menu"}),h(ll,{class:"translations"}),h(al,{class:"appearance"}),h(cl,{class:"social-links"}),_(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):m("",!0)]),_:3}))}});const _l=g(dl,[["__scopeId","data-v-724636ae"]]),vl={class:"VPNav"},pl=y({__name:"VPNav",setup(t){const{isScreenOpen:e,closeScreen:n,toggleScreen:o}=ka();return he("close-screen",n),(s,r)=>(a(),l("header",vl,[h(Li,{"is-screen-open":i(e),onToggleScreen:i(o)},{"nav-bar-title-before":p(()=>[_(s.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[_(s.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[_(s.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[_(s.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),h(_l,{open:i(e)},{"nav-screen-content-before":p(()=>[_(s.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[_(s.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])]))}});const fl=g(pl,[["__scopeId","data-v-7e5bc4a5"]]);function G(){const t=ce(),{theme:e,frontmatter:n}=I(),o=Le("(min-width: 960px)"),s=L(!1),r=w(()=>{const $=e.value.sidebar,M=t.data.relativePath;return $?bt($,M):[]}),d=w(()=>n.value.sidebar!==!1&&r.value.length>0&&n.value.layout!=="home"),u=w(()=>c?n.value.aside==null?e.value.aside==="left":n.value.aside==="left":!1),c=w(()=>n.value.layout==="home"?!1:n.value.aside!=null?!!n.value.aside:e.value.aside!==!1),f=w(()=>d.value&&o.value),b=w(()=>d.value?fo(r.value):[]);function k(){s.value=!0}function N(){s.value=!1}function V(){s.value?N():k()}return{isOpen:s,sidebar:r,sidebarGroups:b,hasSidebar:d,hasAside:c,leftAside:u,isSidebarEnabled:f,open:k,close:N,toggle:V}}function hl(t,e){let n;ee(()=>{n=t.value?document.activeElement:void 0}),R(()=>{window.addEventListener("keyup",o)}),Ae(()=>{window.removeEventListener("keyup",o)});function o(s){s.key==="Escape"&&t.value&&(e(),n==null||n.focus())}}function ml(t){const{page:e}=I(),n=L(!1),o=w(()=>t.value.collapsed!=null),s=w(()=>!!t.value.link),r=w(()=>te(e.value.relativePath,t.value.link)),d=w(()=>r.value?!0:t.value.items?Me(e.value.relativePath,t.value.items):!1),u=w(()=>!!(t.value.items&&t.value.items.length));ee(()=>{n.value=!!(o.value&&t.value.collapsed)}),ee(()=>{(r.value||d.value)&&(n.value=!1)});function c(){o.value&&(n.value=!n.value)}return{collapsed:n,collapsible:o,isLink:s,isActiveLink:r,hasActiveLink:d,hasChildren:u,toggle:c}}const gl=t=>(F("data-v-c4656e6d"),t=t(),j(),t),yl=["role","tabindex"],bl=gl(()=>v("div",{class:"indicator"},null,-1)),$l=["onKeydown"],kl={key:1,class:"items"},Pl=y({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(t){const e=t,{collapsed:n,collapsible:o,isLink:s,isActiveLink:r,hasActiveLink:d,hasChildren:u,toggle:c}=ml(w(()=>e.item)),f=w(()=>u.value?"section":"div"),b=w(()=>s.value?"a":"div"),k=w(()=>u.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),N=w(()=>s.value?void 0:"button"),V=w(()=>[[`level-${e.depth}`],{collapsible:o.value},{collapsed:n.value},{"is-link":s.value},{"is-active":r.value},{"has-active":d.value}]);function $(S){"key"in S&&S.key!=="Enter"||!e.item.link&&c()}function M(){e.item.link&&c()}return(S,x)=>{const z=X("VPSidebarItem",!0);return a(),P(Q(f.value),{class:T(["VPSidebarItem",V.value])},{default:p(()=>[S.item.text?(a(),l("div",fe({key:0,class:"item",role:N.value},Ut(S.item.items?{click:$,keydown:$}:{},!0),{tabindex:S.item.items&&0}),[bl,S.item.link?(a(),P(Y,{key:0,tag:b.value,class:"link",href:S.item.link},{default:p(()=>[(a(),P(Q(k.value),{class:"text",innerHTML:S.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href"])):(a(),P(Q(k.value),{key:1,class:"text",innerHTML:S.item.text},null,8,["innerHTML"])),S.item.collapsed!=null?(a(),l("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:M,onKeydown:Rt(M,["enter"]),tabindex:"0"},[h(De,{class:"caret-icon"})],40,$l)):m("",!0)],16,yl)):m("",!0),S.item.items&&S.item.items.length?(a(),l("div",kl,[S.depth<5?(a(!0),l(A,{key:0},E(S.item.items,H=>(a(),P(z,{key:H.text,item:H,depth:S.depth+1},null,8,["item","depth"]))),128)):m("",!0)])):m("",!0)]),_:1},8,["class"])}}});const wl=g(Pl,[["__scopeId","data-v-c4656e6d"]]),It=t=>(F("data-v-54885d6c"),t=t(),j(),t),Vl=It(()=>v("div",{class:"curtain"},null,-1)),Sl={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Ll=It(()=>v("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),Ml=y({__name:"VPSidebar",props:{open:{type:Boolean}},setup(t){const e=t,{sidebarGroups:n,hasSidebar:o}=G();let s=L(null);function r(){St(s.value,{reserveScrollBarGap:!0})}function d(){Lt()}return Wt(async()=>{var u;e.open?(r(),(u=s.value)==null||u.focus()):d()}),(u,c)=>i(o)?(a(),l("aside",{key:0,class:T(["VPSidebar",{open:u.open}]),ref_key:"navEl",ref:s,onClick:c[0]||(c[0]=Kt(()=>{},["stop"]))},[Vl,v("nav",Sl,[Ll,_(u.$slots,"sidebar-nav-before",{},void 0,!0),(a(!0),l(A,null,E(i(n),f=>(a(),l("div",{key:f.text,class:"group"},[h(wl,{item:f,depth:0},null,8,["item"])]))),128)),_(u.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):m("",!0)}});const Il=g(Ml,[["__scopeId","data-v-54885d6c"]]),Nl=y({__name:"VPSkipLink",setup(t){const e=ce(),n=L();K(()=>e.path,()=>n.value.focus());function o({target:s}){const r=document.getElementById(decodeURIComponent(s.hash).slice(1));if(r){const d=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",d)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",d),r.focus(),window.scrollTo(0,0)}}return(s,r)=>(a(),l(A,null,[v("span",{ref_key:"backToTop",ref:n,tabindex:"-1"},null,512),v("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:o}," Skip to content ")],64))}});const Cl=g(Nl,[["__scopeId","data-v-ae3e3f51"]]),Al={key:0,class:"Layout"},Tl=y({__name:"Layout",setup(t){const{isOpen:e,open:n,close:o}=G(),s=ce();K(()=>s.path,o),hl(e,o),he("close-sidebar",o),he("is-sidebar-open",e);const{frontmatter:r}=I(),d=Yt(),u=w(()=>!!d["home-hero-image"]);return he("hero-image-slot-exists",u),(c,f)=>{const b=X("Content");return i(r).layout!==!1?(a(),l("div",Al,[_(c.$slots,"layout-top",{},void 0,!0),h(Cl),h(Zt,{class:"backdrop",show:i(e),onClick:i(o)},null,8,["show","onClick"]),i(r).navbar!==!1?(a(),P(fl,{key:0},{"nav-bar-title-before":p(()=>[_(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[_(c.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[_(c.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[_(c.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":p(()=>[_(c.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[_(c.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3})):m("",!0),h($a,{open:i(e),onOpenMenu:i(n)},null,8,["open","onOpenMenu"]),h(Il,{open:i(e)},{"sidebar-nav-before":p(()=>[_(c.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":p(()=>[_(c.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),h(ta,null,{"page-top":p(()=>[_(c.$slots,"page-top",{},void 0,!0)]),"page-bottom":p(()=>[_(c.$slots,"page-bottom",{},void 0,!0)]),"not-found":p(()=>[_(c.$slots,"not-found",{},void 0,!0)]),"home-hero-before":p(()=>[_(c.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info":p(()=>[_(c.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":p(()=>[_(c.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":p(()=>[_(c.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":p(()=>[_(c.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":p(()=>[_(c.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":p(()=>[_(c.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":p(()=>[_(c.$slots,"doc-before",{},void 0,!0)]),"doc-after":p(()=>[_(c.$slots,"doc-after",{},void 0,!0)]),"doc-top":p(()=>[_(c.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":p(()=>[_(c.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":p(()=>[_(c.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":p(()=>[_(c.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":p(()=>[_(c.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[_(c.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[_(c.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[_(c.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),h(ra),_(c.$slots,"layout-bottom",{},void 0,!0)])):(a(),P(b,{key:1}))}}});const Bl=g(Tl,[["__scopeId","data-v-99cf8a88"]]);const Fl={Layout:Bl,enhanceApp:({app:t})=>{t.component("Badge",Jt)}};function jl(t,e){const{localeIndex:n}=I();function o(s){var V,$;const r=s.split("."),d=t&&typeof t=="object",u=d&&(($=(V=t.locales)==null?void 0:V[n.value])==null?void 0:$.translations)||null,c=d&&t.translations||null;let f=u,b=c,k=e;const N=r.pop();for(const M of r){let S=null;const x=k==null?void 0:k[M];x&&(S=k=x);const z=b==null?void 0:b[M];z&&(S=b=z);const H=f==null?void 0:f[M];H&&(S=f=H),x||(k=S),z||(b=S),H||(f=S)}return(f==null?void 0:f[N])??(b==null?void 0:b[N])??(k==null?void 0:k[N])??""}return o}export{Be as a,I as b,El as c,zl as d,Dl as e,jl as f,ie as g,Hl as h,Xe as o,Fl as t,An as u,Ol as w};
    diff --git a/assets/demo_xiao4guo3can1kao3.md.6e170ec3.js b/assets/demo_xiao4guo3can1kao3.md.c7c31bdc.js
    similarity index 99%
    rename from assets/demo_xiao4guo3can1kao3.md.6e170ec3.js
    rename to assets/demo_xiao4guo3can1kao3.md.c7c31bdc.js
    index 3981625..ea2276a 100644
    --- a/assets/demo_xiao4guo3can1kao3.md.6e170ec3.js
    +++ b/assets/demo_xiao4guo3can1kao3.md.c7c31bdc.js
    @@ -1,4 +1,4 @@
    -import{_ as s,o as a,c as n,V as l}from"./chunks/framework.c5c8a48b.js";const F=JSON.parse('{"title":"Markdown Extensions","description":"","frontmatter":{},"headers":[],"relativePath":"demo/xiao4guo3can1kao3.md","filePath":"demo/xiao4guo3can1kao3.md","lastUpdated":null}'),o={name:"demo/xiao4guo3can1kao3.md"},e=l(`

    Markdown Extensions

    加粗效果

    asdfadfsf asfd asddsf

    code-group

    sh
    $ npm install -D vitepress
    sh
    $ pnpm add -D vitepress
    sh
    $ yarn add -D vitepress

    details

    Getting missing peer deps warnings?

    If using PNPM, you will notice a missing peer warning for @docsearch/js. This does not prevent VitePress from working. If you wish to suppress this warning, add the following to your package.json:

    json
    "pnpm": {
    +import{_ as s,o as a,c as n,V as l}from"./chunks/framework.c5c8a48b.js";const F=JSON.parse('{"title":"Markdown Extensions","description":"","frontmatter":{},"headers":[],"relativePath":"demo/xiao4guo3can1kao3.md","filePath":"demo/xiao4guo3can1kao3.md","lastUpdated":null}'),o={name:"demo/xiao4guo3can1kao3.md"},e=l(`

    Markdown Extensions

    加粗效果

    asdfadfsf asfd asddsf

    code-group

    sh
    $ npm install -D vitepress
    sh
    $ pnpm add -D vitepress
    sh
    $ yarn add -D vitepress

    details

    Getting missing peer deps warnings?

    If using PNPM, you will notice a missing peer warning for @docsearch/js. This does not prevent VitePress from working. If you wish to suppress this warning, add the following to your package.json:

    json
    "pnpm": {
       "peerDependencyRules": {
         "ignoreMissing": [
           "@algolia/client-search",
    @@ -228,7 +228,7 @@ import{_ as s,o as a,c as n,V as l}from"./chunks/framework.c5c8a48b.js";const F=
     export default config
     \`\`\`
     
    -:::

    Output

    js
    /**
    +:::

    Output

    js
    /**
      * @type {import('vitepress').UserConfig}
      */
     const config = {
    diff --git a/assets/demo_xiao4guo3can1kao3.md.6e170ec3.lean.js b/assets/demo_xiao4guo3can1kao3.md.c7c31bdc.lean.js
    similarity index 100%
    rename from assets/demo_xiao4guo3can1kao3.md.6e170ec3.lean.js
    rename to assets/demo_xiao4guo3can1kao3.md.c7c31bdc.lean.js
    diff --git a/assets/index.md.80f2f17d.js b/assets/index.md.0f367b8f.js
    similarity index 96%
    rename from assets/index.md.80f2f17d.js
    rename to assets/index.md.0f367b8f.js
    index 7531ed2..181b3da 100644
    --- a/assets/index.md.80f2f17d.js
    +++ b/assets/index.md.0f367b8f.js
    @@ -1 +1 @@
    -import{_ as e,o as t,c as a,V as r}from"./chunks/framework.c5c8a48b.js";const f=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1698929614000}'),o={name:"index.md"},d=r('

    缘起

    一直有记笔记的习惯,最开始还在学校的时候还比较勤快,还发了几篇csdn,后来就一直用语雀。但是前段时间突然发现语雀竟然不允许我新建知识库了。果断弃之,当天下午就用vitePress搭建了一个自己的文档站点。

    中文命名md文件

    vitePress如果用中文进行md的文件命名,本地不会有什么影响,但是打包发布到线上就会找不到对应的文档。这里用pinyin-pro做了一个打包优化,思路是:打包前,我会先用node将文档里的所有文件名替换成对应的拼音名,然后再打包,打包结束以后,再将文件名进行还原。这样我就可以用中文来命令md文件,方便我自己的维护。

    three中的mini-city案例: https://github.com/luosijie/threejs-examples

    ',5),n=[d];function s(c,i,p,_,h,l){return t(),a("div",null,n)}const u=e(o,[["render",s]]);export{f as __pageData,u as default}; +import{_ as e,o as t,c as a,V as r}from"./chunks/framework.c5c8a48b.js";const f=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1698998049000}'),o={name:"index.md"},d=r('

    缘起

    一直有记笔记的习惯,最开始还在学校的时候还比较勤快,还发了几篇csdn,后来就一直用语雀。但是前段时间突然发现语雀竟然不允许我新建知识库了。果断弃之,当天下午就用vitePress搭建了一个自己的文档站点。

    中文命名md文件

    vitePress如果用中文进行md的文件命名,本地不会有什么影响,但是打包发布到线上就会找不到对应的文档。这里用pinyin-pro做了一个打包优化,思路是:打包前,我会先用node将文档里的所有文件名替换成对应的拼音名,然后再打包,打包结束以后,再将文件名进行还原。这样我就可以用中文来命令md文件,方便我自己的维护。

    three中的mini-city案例: https://github.com/luosijie/threejs-examples

    ',5),n=[d];function s(c,i,p,_,h,l){return t(),a("div",null,n)}const u=e(o,[["render",s]]);export{f as __pageData,u as default}; diff --git a/assets/index.md.80f2f17d.lean.js b/assets/index.md.0f367b8f.lean.js similarity index 83% rename from assets/index.md.80f2f17d.lean.js rename to assets/index.md.0f367b8f.lean.js index e14a013..388265b 100644 --- a/assets/index.md.80f2f17d.lean.js +++ b/assets/index.md.0f367b8f.lean.js @@ -1 +1 @@ -import{_ as e,o as t,c as a,V as r}from"./chunks/framework.c5c8a48b.js";const f=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1698929614000}'),o={name:"index.md"},d=r("",5),n=[d];function s(c,i,p,_,h,l){return t(),a("div",null,n)}const u=e(o,[["render",s]]);export{f as __pageData,u as default}; +import{_ as e,o as t,c as a,V as r}from"./chunks/framework.c5c8a48b.js";const f=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1698998049000}'),o={name:"index.md"},d=r("",5),n=[d];function s(c,i,p,_,h,l){return t(),a("div",null,n)}const u=e(o,[["render",s]]);export{f as __pageData,u as default}; diff --git "a/assets/\351\200\237\350\256\260_01.md.99a1f2fb.js" "b/assets/\351\200\237\350\256\260_01.md.8cd0278c.js" similarity index 99% rename from "assets/\351\200\237\350\256\260_01.md.99a1f2fb.js" rename to "assets/\351\200\237\350\256\260_01.md.8cd0278c.js" index 2698794..30877a1 100644 --- "a/assets/\351\200\237\350\256\260_01.md.99a1f2fb.js" +++ "b/assets/\351\200\237\350\256\260_01.md.8cd0278c.js" @@ -1,4 +1,4 @@ -import{_ as s,o as n,c as a,V as l}from"./chunks/framework.c5c8a48b.js";const i=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"速记/01.md","filePath":"速记/01.md","lastUpdated":1698929614000}'),o={name:"速记/01.md"},p=l(`

    js的数据类型

    基本数据类型: StringBooleanNumberNullUndefinedSymbolBigInt 引用数据类型: Object

    BigIntES10新增的数据类型,用来表示大于2^53 - 1的整数,2^53 - 1ES10之前,JavaScript所能表示的最大的数字 SymbolES6新增的数据类型,表示值是唯一的

    js
    // 如果函数的参数是对象,则进行的是引用传递,修改参数会影响到对象本身
    +import{_ as s,o as n,c as a,V as l}from"./chunks/framework.c5c8a48b.js";const i=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"速记/01.md","filePath":"速记/01.md","lastUpdated":1698998049000}'),o={name:"速记/01.md"},p=l(`

    js的数据类型

    基本数据类型: StringBooleanNumberNullUndefinedSymbolBigInt 引用数据类型: Object

    BigIntES10新增的数据类型,用来表示大于2^53 - 1的整数,2^53 - 1ES10之前,JavaScript所能表示的最大的数字 SymbolES6新增的数据类型,表示值是唯一的

    js
    // 如果函数的参数是对象,则进行的是引用传递,修改参数会影响到对象本身
     let aa = {
         name: 'lisi'
     }
    diff --git "a/assets/\351\200\237\350\256\260_01.md.99a1f2fb.lean.js" "b/assets/\351\200\237\350\256\260_01.md.8cd0278c.lean.js"
    similarity index 83%
    rename from "assets/\351\200\237\350\256\260_01.md.99a1f2fb.lean.js"
    rename to "assets/\351\200\237\350\256\260_01.md.8cd0278c.lean.js"
    index 3af08cd..a985f42 100644
    --- "a/assets/\351\200\237\350\256\260_01.md.99a1f2fb.lean.js"
    +++ "b/assets/\351\200\237\350\256\260_01.md.8cd0278c.lean.js"
    @@ -1 +1 @@
    -import{_ as s,o as n,c as a,V as l}from"./chunks/framework.c5c8a48b.js";const i=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"速记/01.md","filePath":"速记/01.md","lastUpdated":1698929614000}'),o={name:"速记/01.md"},p=l("",34),e=[p];function t(c,r,y,D,F,C){return n(),a("div",null,e)}const d=s(o,[["render",t]]);export{i as __pageData,d as default};
    +import{_ as s,o as n,c as a,V as l}from"./chunks/framework.c5c8a48b.js";const i=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"速记/01.md","filePath":"速记/01.md","lastUpdated":1698998049000}'),o={name:"速记/01.md"},p=l("",34),e=[p];function t(c,r,y,D,F,C){return n(),a("div",null,e)}const d=s(o,[["render",t]]);export{i as __pageData,d as default};
    diff --git a/demo/xiao4guo3can1kao3.html b/demo/xiao4guo3can1kao3.html
    index 1f43084..175d73e 100644
    --- a/demo/xiao4guo3can1kao3.html
    +++ b/demo/xiao4guo3can1kao3.html
    @@ -6,15 +6,15 @@
         Markdown Extensions | 轻踏云层
         
         
    -    
    +    
         
       
    -  
    -  
    +  
    +  
       
       
       
    -    
    Skip to content
    On this page

    Markdown Extensions

    加粗效果

    asdfadfsf asfd asddsf

    code-group

    sh
    $ npm install -D vitepress
    sh
    $ pnpm add -D vitepress
    sh
    $ yarn add -D vitepress

    details

    Getting missing peer deps warnings?

    If using PNPM, you will notice a missing peer warning for @docsearch/js. This does not prevent VitePress from working. If you wish to suppress this warning, add the following to your package.json:

    json
    "pnpm": {
    +    
    Skip to content
    On this page

    Markdown Extensions

    加粗效果

    asdfadfsf asfd asddsf

    code-group

    sh
    $ npm install -D vitepress
    sh
    $ pnpm add -D vitepress
    sh
    $ yarn add -D vitepress

    details

    Getting missing peer deps warnings?

    If using PNPM, you will notice a missing peer warning for @docsearch/js. This does not prevent VitePress from working. If you wish to suppress this warning, add the following to your package.json:

    json
    "pnpm": {
       "peerDependencyRules": {
         "ignoreMissing": [
           "@algolia/client-search",
    @@ -244,7 +244,7 @@
     export default config
     ```
     
    -:::

    Output

    js
    /**
    +:::

    Output

    js
    /**
      * @type {import('vitepress').UserConfig}
      */
     const config = {
    @@ -293,7 +293,7 @@
         }
       }
     }

    See full list of configurable properties in Config Reference: App Config.

    - diff --git a/hashmap.json b/hashmap.json index 8833b39..423e25d 100644 --- a/hashmap.json +++ b/hashmap.json @@ -1 +1 @@ -{"2023_flutter_zhuang4tai4guan3li3.md":"d6a50c8b","2023_gi0thu0bti2jiao1pu0llre0qu0e0st.md":"949087c6","2023_flutter_flu0tte0rchang2yong4zu3jian4.md":"c15c1dbc","2023_flutter_shu4ju4chi2jiu3hua4.md":"0e6bb718","2023_flutter_flu0tte0rshi3yong4me0ta0l.md":"1a4a0c42","index.md":"80f2f17d","2023_ios学习_swi0ftuishi2zhan4.md":"9ab609e2","2023_ca0dsi1lu4he2liu2cheng2.md":"a805a3cc","2023_flutter_da0rtxue2xi2.md":"b71b1b82","2023_flutter_flu0tte0rhuan2jing4da1jian4.md":"59223aba","2023_mo0n0o0re0po0xue2xi2.md":"eccea2b4","2023_nest学习_qian2yan2.md":"21cfd631","2023_flutter_yi1xie1chang2yong4chang3jing3.md":"9d1c6c49","2023_esli0n0the2pre0tti0e0rde0bi3jiao4.md":"e0d2b58f","2023_nest学习_1-huan2jing4an1zhuang1he2xiang4mu4da1jian4.md":"d4784fa3","2023_g2xue2xi2.md":"7bcc60ff","2023_ios学习_swi0ftuixue2xi2.md":"90895fd1","2023_ru2he2di0yer4wei2ma3.md":"70f881a6","2023_thi0s、ca0ll、a0pply、bi0n0d.md":"25fb7005","2023_vitepress_xue2xi2e0le0me0n0t-plu0sde0vi0te0pre0sspei4zhi4.md":"1b4135f9","2023_vue3源码学习_qian2yan2.md":"5a8f3b54","2023_vue3源码学习_xiang3ying4shi4xi4tong3.md":"bccd2e3f","2023_webgpu学习_wgsl.md":"663139ea","2023_webgpu学习_huan3chong1qu1shi2qu3.md":"db7cd02c","2023_webgpu学习_hui4zhi4xian4duan4de0neng2li4.md":"1c4d181b","2023_webgpu学习_o0ri0llu0si0o0n0yuan2ma3xue2xi2.md":"1f484e09","2023_webgpu学习_qian2yan2.md":"d56b4050","2023_webgpu学习_yi1xie1gu4shi4.md":"3a48a92f","2023_webgpu学习_zuo4biao1xi4.md":"d6fbe9b3","2023_webgl学习_qian2yan2.md":"8825542e","2023_webgl学习_thre0e0.jsde0yuan2ma3.md":"24f51bee","2023_gi0tchang2yong4ming4ling4.md":"235329e0","2023_yong4i0ma0ge0.lo0a0dti2qian2pan4duan4zi1yuan2shi4fou3cun2zai4.md":"84f78d22","demo_xiao4guo3can1kao3.md":"6e170ec3","杂记_ji4yi1xie1nei4rong2duan3bu4zu2yi3xie3yi1pian1bo2ke4de0dong1xi1.md":"ecbd29d3","速记_01.md":"99a1f2fb","2023_flutter_jie1kou3qing3qiu2.md":"69d35457","2023_ios学习_swi0fthe2flu0tte0rnei3ge4geng4hao3.md":"5c7302ad","2023_ios学习_swi0ftxue2xi2.md":"57ac7a90","2023_ios学习_u0i0ki0tkai1fa1.md":"5952f7c8","2023_ji4lu4yi1ci4je0n0ki0n0sda3bao1dao3zhi4fu2wu4qi4ka3si3.md":"6356f0e7","2023_n0gi0n0xpei4zhi4.md":"a946769b","2023_n0pmru0n0de0vhou4fa1sheng1le0shen2me0.md":"f131a4f6","2023_n0px.md":"eabb35f0","2023_webgl学习_zhuo2se4qi4xue2xi2.md":"28add543","速记_we0bgl.md":"4b54b7bf","2023_flutter_flu0tte0rxiang4mu4xue2xi2.md":"6df3122a","2023_ios学习_me0ta0lxue2xi2.md":"52156c78","2023_jiao3shou3jia4kai1fa1.md":"45a40831","2023_pi0n0i0a0zhong1de0o0pti0o0n0sa0pi0he2co0mpo0si0to0n0a0pi0dui4bi3.md":"8e4d0364","2023_ca0dyou1hua4.md":"2cd62bff","2023_ios学习_ma0chuan2jing4an1zhuang1.md":"a8daaf90","2023_flutter_flu0tte0rbu4ju2.md":"940f596f","2023_flutter_lu4you2.md":"6baf9923"} +{"2023_esli0n0the2pre0tti0e0rde0bi3jiao4.md":"e0d2b58f","2023_g2xue2xi2.md":"7bcc60ff","2023_flutter_flu0tte0rshi3yong4me0ta0l.md":"1a4a0c42","2023_flutter_flu0tte0rxiang4mu4xue2xi2.md":"b55898ca","2023_flutter_flu0tte0rhuan2jing4da1jian4.md":"59223aba","demo_xiao4guo3can1kao3.md":"c7c31bdc","2023_ios学习_swi0fthe2flu0tte0rnei3ge4geng4hao3.md":"5c7302ad","2023_ru2he2di0yer4wei2ma3.md":"70f881a6","2023_thi0s、ca0ll、a0pply、bi0n0d.md":"25fb7005","2023_vitepress_xue2xi2e0le0me0n0t-plu0sde0vi0te0pre0sspei4zhi4.md":"86c6ddbe","2023_vue3源码学习_qian2yan2.md":"5a8f3b54","2023_webgpu学习_wgsl.md":"c78978e1","2023_vue3源码学习_xiang3ying4shi4xi4tong3.md":"bccd2e3f","2023_webgpu学习_huan3chong1qu1shi2qu3.md":"db7cd02c","2023_webgpu学习_hui4zhi4xian4duan4de0neng2li4.md":"1c4d181b","2023_webgpu学习_qian2yan2.md":"d56b4050","2023_webgpu学习_zuo4biao1xi4.md":"d6fbe9b3","2023_webgl学习_qian2yan2.md":"8825542e","2023_webgl学习_thre0e0.jsde0yuan2ma3.md":"24f51bee","2023_webgl学习_zhuo2se4qi4xue2xi2.md":"28add543","2023_flutter_flu0tte0rbu4ju2.md":"940f596f","2023_yong4i0ma0ge0.lo0a0dti2qian2pan4duan4zi1yuan2shi4fou3cun2zai4.md":"84f78d22","2023_webgpu学习_o0ri0llu0si0o0n0yuan2ma3xue2xi2.md":"1f484e09","2023_webgpu学习_yi1xie1gu4shi4.md":"3a48a92f","index.md":"0f367b8f","杂记_ji4yi1xie1nei4rong2duan3bu4zu2yi3xie3yi1pian1bo2ke4de0dong1xi1.md":"ecbd29d3","速记_01.md":"8cd0278c","速记_we0bgl.md":"4b54b7bf","2023_nest学习_qian2yan2.md":"21cfd631","2023_nest学习_1-huan2jing4an1zhuang1he2xiang4mu4da1jian4.md":"d4784fa3","2023_mo0n0o0re0po0xue2xi2.md":"eccea2b4","2023_ca0dsi1lu4he2liu2cheng2.md":"a805a3cc","2023_ca0dyou1hua4.md":"c346e90c","2023_flutter_da0rtxue2xi2.md":"b71b1b82","2023_flutter_jie1kou3qing3qiu2.md":"69d35457","2023_flutter_zhuang4tai4guan3li3.md":"d6a50c8b","2023_flutter_flu0tte0rchang2yong4zu3jian4.md":"c15c1dbc","2023_ios学习_swi0ftxue2xi2.md":"57ac7a90","2023_flutter_shu4ju4chi2jiu3hua4.md":"0e6bb718","2023_flutter_yi1xie1chang2yong4chang3jing3.md":"9d1c6c49","2023_ios学习_u0i0ki0tkai1fa1.md":"5952f7c8","2023_jiao3shou3jia4kai1fa1.md":"7f2baba3","2023_ji4lu4yi1ci4je0n0ki0n0sda3bao1dao3zhi4fu2wu4qi4ka3si3.md":"6356f0e7","2023_n0gi0n0xpei4zhi4.md":"a946769b","2023_ios学习_swi0ftuishi2zhan4.md":"9ab609e2","2023_n0px.md":"eabb35f0","2023_gi0thu0bti2jiao1pu0llre0qu0e0st.md":"949087c6","2023_ios学习_swi0ftuixue2xi2.md":"90895fd1","2023_n0pmru0n0de0vhou4fa1sheng1le0shen2me0.md":"2ef37717","2023_gi0tchang2yong4ming4ling4.md":"235329e0","2023_pi0n0i0a0zhong1de0o0pti0o0n0sa0pi0he2co0mpo0si0to0n0a0pi0dui4bi3.md":"8e4d0364","2023_ios学习_me0ta0lxue2xi2.md":"52156c78","2023_ios学习_ma0chuan2jing4an1zhuang1.md":"a8daaf90","2023_flutter_lu4you2.md":"6baf9923"} diff --git a/index.html b/index.html index ac7064c..b4c5851 100644 --- a/index.html +++ b/index.html @@ -6,16 +6,16 @@ 轻踏云层 | 轻踏云层 - + - - + + -
    Skip to content
    On this page

    缘起

    一直有记笔记的习惯,最开始还在学校的时候还比较勤快,还发了几篇csdn,后来就一直用语雀。但是前段时间突然发现语雀竟然不允许我新建知识库了。果断弃之,当天下午就用vitePress搭建了一个自己的文档站点。

    中文命名md文件

    vitePress如果用中文进行md的文件命名,本地不会有什么影响,但是打包发布到线上就会找不到对应的文档。这里用pinyin-pro做了一个打包优化,思路是:打包前,我会先用node将文档里的所有文件名替换成对应的拼音名,然后再打包,打包结束以后,再将文件名进行还原。这样我就可以用中文来命令md文件,方便我自己的维护。

    three中的mini-city案例: https://github.com/luosijie/threejs-examples

    - diff --git "a/\346\235\202\350\256\260/ji4yi1xie1nei4rong2duan3bu4zu2yi3xie3yi1pian1bo2ke4de0dong1xi1.html" "b/\346\235\202\350\256\260/ji4yi1xie1nei4rong2duan3bu4zu2yi3xie3yi1pian1bo2ke4de0dong1xi1.html" index 17fdef9..1d52764 100644 --- "a/\346\235\202\350\256\260/ji4yi1xie1nei4rong2duan3bu4zu2yi3xie3yi1pian1bo2ke4de0dong1xi1.html" +++ "b/\346\235\202\350\256\260/ji4yi1xie1nei4rong2duan3bu4zu2yi3xie3yi1pian1bo2ke4de0dong1xi1.html" @@ -6,10 +6,10 @@ 杂记 | 轻踏云层 - + - + @@ -28,7 +28,7 @@ let codeImage = window.URL.createObjectURL(blob) <img :src="codeImage" id="buyCode" alt="">

    npm发布的sdk通过链接形式访问

    在npm上发布的js代码,可以通过https://unpkg.com访问到资源,例如ourcad,可以通过如下链接访问到资源: https://unpkg.com/ourcad@1.0.5/esm/index.js

    https://cdn.jsdelivr.net也可以这样访问github上面的资源 https://cdn.jsdelivr.net/gh/你的用户名/你的仓库名@发布的版本号/文件路径https://cdn.jsdelivr.net/gh/chaochao2-0/chaochao-cli/readme.md

    使用scss打包成css的纯css项目

    alphardex/aqua.css

    原子化css框架tailwind

    2023/9/20 今天打开github一看,好家伙,tailwindcss已经有72.1k的star数了。而且还提供了vscode插件的支持,看来下一个项目又要开始用新东西了。 确实,按照tailwindcss官网所说的,我没有拒绝的理由,与其每个项目都维护一个自己习惯的commom.less,还不如自己主动去适应更强大的tailwindcss。在有了vscode插件的加持下,这才是真正能提高我开发效率的工具!

    查看github热门趋势和star排行榜

    https://github.com/trending

    Stack Overflow的语言趋势: https://survey.stackoverflow.co/2022/#section-most-popular-technologies-programming-scripting-and-markup-languages

    服务的部署和资源访问这些链接

    服务的访问链接和一些静态资源的访问最好都新建一个统一配置的文件来管理,以防止后续有私有化的情况需要重新部署。

    图形学相关地书

    《数据可视化创意手记》 原研哉相关的书 有时间都可以读一读,扩展自己的想象力

    - diff --git "a/\351\200\237\350\256\260/01.html" "b/\351\200\237\350\256\260/01.html" index 2820d8e..91afe49 100644 --- "a/\351\200\237\350\256\260/01.html" +++ "b/\351\200\237\350\256\260/01.html" @@ -6,11 +6,11 @@ 轻踏云层 | 轻踏云层 - + - - + + @@ -55,8 +55,8 @@ childUlNode.appendChild(childLiNode); }) },1000) -ulEle.appendChild(childUlNode);// 只会引起一次重排(重排会引起重绘)
    • 动画使用transformopacityfilters实现,比如:位移、缩放和旋转操作,可以利用GPU加速,减少回流和重绘的开销,性能更好
    • 避免使用table布局

    浏览器使用流式布局模型,渲染过程:

    1. 会把HTML解析成DOM Tree,解析CSS生成CSSOM Tree
    2. DOM TreeCSSOM Tree合成Render Tree
    3. Layout: 根据Render Tree得到节点的几何信息(位置、大小)
    4. Painting: 根据Render Tree和节点的几何信息,得到节点的像素信息
    5. Display: 将像素发送给GPU,展示在页面上

    由于浏览器使用流式布局,对Render Tree的计算通常只需要遍历一次就可以完成,但table及其内部元素除外,他们可能需要多次计算,通常要花3倍于同等元素的时间,这也是为什么要避免使用table布局的原因。

    chrome浏览器中,SkiaBlink渲染引擎的一部分,Blink渲染引擎是Google开发的一种基于WebKit的渲染引擎,用于处理HTMLCSSJavaScript的渲染。Blink渲染引擎使用Skia来处理所有的2D图形操作,以提高网页的渲染性能。

    - diff --git "a/\351\200\237\350\256\260/we0bgl.html" "b/\351\200\237\350\256\260/we0bgl.html" index 5ccf9b2..31cc09f 100644 --- "a/\351\200\237\350\256\260/we0bgl.html" +++ "b/\351\200\237\350\256\260/we0bgl.html" @@ -6,16 +6,16 @@ 嘉立创 | 轻踏云层 - + - +
    Skip to content
    On this page

    嘉立创

    顶点着色器是不是只有顶点信息?法线这些如何获取?

    不是的,除了顶点信息,顶点着色器还可以访问其他类型的数据,如:法线、纹理坐标等。

    webgl的渲染管线它的流程是怎样的?

    • 顶点着色器阶段(Vertex Shader Stage):在这个阶段,输入的顶点数据会被处理。顶点着色器会对每个顶点执行一系列运算,例如计算变换后的顶点位置、法线、纹理坐标等等。这个阶段的输出会被送到下一个阶段进行处理。
    • 图元装配阶段(Primitive Assembly Stage):这个阶段会将顶点着色器输出的顶点连接起来,形成几何图形,例如点、线段、三角形等。这个阶段的输出会被送到下一个阶段进行处理。
    • 光栅化阶段(Rasterization Stage):在这个阶段,图元会被分解成一组更小的像素,也就是所谓的片元(fragment)。每个片元都有自己的属性,例如颜色、深度值等,这些属性会根据光栅化的结果进行计算。
    • 片元着色器阶段(Fragment Shader Stage):在这个阶段,片元的属性会被处理。片元着色器会执行一系列运算,例如计算最终的颜色、混合多个纹理、进行雾效处理等等。这个阶段的输出会被送到下一个阶段进行处理。
    • 输出合并阶段(Output Merging Stage):在这个阶段,所有的片元会被送入帧缓冲区,最终生成显示在屏幕上的图像。 需要注意的是,以上只是一个通用的渲染管线流程,具体的实现可能会有所不同。此外,不同的WebGL API版本可能也会有一些差异。

    gltf格式的数据格式是怎样的?如何优化?

    Node的子进程有哪些方法?

    Node 提供了 child_process 模块来创建子进程,方法有:

    exec - child_process.exec 使用子进程执行命令,缓存子进程的输出,并将子进程的输出以回调函数参数的形式一次性返回。exec方法会从子进程中返回一个完整的buffer。默认情况下,这个buffer的大小应该是200k。如果子进程返回的数据大小超过了200k,程序将会崩溃,同时显示错误信息“Error:maxBuffer exceeded”。你可以通过在exec的可选项中设置一个更大的buffer体积来解决这个问题,但是你不应该这样做,因为exec本来就不是用来返回很多数据的方法。

    spawn - child_process.spawn 使用指定的命令行参数创建新进程。spawn 会返回一个带有stdout和stderr流的对象。你可以通过stdout流来读取子进程返回给Node.js的数据。stdout拥有’data’,’end’以及一般流所具有的事件。当你想要子进程返回大量数据给Node时,比如说图像处理,读取二进制数据等等,你最好使用spawn方法。

    fork - child_process.fork 是 spawn()的特殊形式,用于在子进程中运行的模块,如 fork(‘./son.js’) 相当于 spawn(‘node’, [‘./son.js’]) 。与spawn方法不同的是,fork会在父进程与子进程之间,建立一个通信管道,用于进程之间的通信。

    -