This commit is contained in:
2025-02-24 08:40:41 +00:00
parent ed58e43463
commit d656ed856f
122 changed files with 300 additions and 300 deletions
+4 -4
View File
@@ -32,12 +32,12 @@
}
</script>
<title>我的博客和笔记</title><meta name="description" content="理性派,数学,物理,程序">
<link rel="preload" href="/assets/style-Bs7SmLUV.css" as="style"><link rel="stylesheet" href="/assets/style-Bs7SmLUV.css">
<link rel="modulepreload" href="/assets/app-DDhCkyt5.js"><link rel="modulepreload" href="/assets/404.html-BEnbJqBR.js">
<link rel="prefetch" href="/assets/about.html-DjRPn6ER.js" as="script"><link rel="prefetch" href="/assets/index.html-ByhSNFKE.js" as="script"><link rel="prefetch" href="/assets/index.html-Ce-1bCo8.js" as="script"><link rel="prefetch" href="/assets/index.html-DSv2mZMp.js" as="script"><link rel="prefetch" href="/assets/flip_coin.html-DL8uzTi-.js" as="script"><link rel="prefetch" href="/assets/index.html-DpL5vJQq.js" as="script"><link rel="prefetch" href="/assets/mental_poker.html-B7-2volk.js" as="script"><link rel="prefetch" href="/assets/rsa.html-DlNUFTye.js" as="script"><link rel="prefetch" href="/assets/index.html-ZZlUCSTR.js" as="script"><link rel="prefetch" href="/assets/index.html-CObVRk6K.js" as="script"><link rel="prefetch" href="/assets/group.html-DK_JEi2E.js" as="script"><link rel="prefetch" href="/assets/index.html-CSCfhxkt.js" as="script"><link rel="prefetch" href="/assets/number_theory_1.html-DhDrD2kG.js" as="script"><link rel="prefetch" href="/assets/number_theory_2.html-DZP6Wu2m.js" as="script"><link rel="prefetch" href="/assets/number_theory_3.html-Dshh7Y8i.js" as="script"><link rel="prefetch" href="/assets/probability.html-C9-Zf5Tu.js" as="script"><link rel="prefetch" href="/assets/symbol.html-DNWjZbR6.js" as="script"><link rel="prefetch" href="/assets/DH.html-D30-0uAg.js" as="script"><link rel="prefetch" href="/assets/Ellipse.html-CWnkVO2j.js" as="script"><link rel="prefetch" href="/assets/Fibonacci.html-DKF_-wj-.js" as="script"><link rel="prefetch" href="/assets/JPEG001.html-DVjS_-ix.js" as="script"><link rel="prefetch" href="/assets/JPEG002.html-XdHcqhxR.js" as="script"><link rel="prefetch" href="/assets/JPEG003.html-CPJZr3dK.js" as="script"><link rel="prefetch" href="/assets/JPEG004.html-B6tAsxli.js" as="script"><link rel="prefetch" href="/assets/JPEG005.html-DY2HbkzF.js" as="script"><link rel="prefetch" href="/assets/Martingle.html-j0sD60Zg.js" as="script"><link rel="prefetch" href="/assets/MentalPoker01.html-D7I09CPK.js" as="script"><link rel="prefetch" href="/assets/MentalPoker02.html-BUuJfOTc.js" as="script"><link rel="prefetch" href="/assets/RandRound.html-uKm7RdBk.js" as="script"><link rel="prefetch" href="/assets/SPH001.html-Zi-KP04S.js" as="script"><link rel="prefetch" href="/assets/SPH002.html-3IkBQBEV.js" as="script"><link rel="prefetch" href="/assets/SPH003.html-Z7aNa78Q.js" as="script"><link rel="prefetch" href="/assets/SPH004.html-CMkN5952.js" as="script"><link rel="prefetch" href="/assets/SegmentCircle.html-NbmEdi8u.js" as="script"><link rel="prefetch" href="/assets/index.html-DOrU3tKs.js" as="script"><link rel="prefetch" href="/assets/ibl_01.html-P7QXSkBu.js" as="script"><link rel="prefetch" href="/assets/ibl_02.html-CY-F_Bno.js" as="script"><link rel="prefetch" href="/assets/index.html-DlFDMo9J.js" as="script"><link rel="prefetch" href="/assets/index.html-BQtaiX90.js" as="script"><link rel="prefetch" href="/assets/math_01.html-IrcRXfCC.js" as="script"><link rel="prefetch" href="/assets/math_02.html-DcqNHdj_.js" as="script"><link rel="prefetch" href="/assets/math_03.html-DUHsPWor.js" as="script"><link rel="prefetch" href="/assets/transform_01.html-DmYRcYAG.js" as="script"><link rel="prefetch" href="/assets/transform_02.html-DVyq9nPx.js" as="script"><link rel="prefetch" href="/assets/transform_03.html-Db3w7qxs.js" as="script"><link rel="prefetch" href="/assets/transform_04.html-h4LbPJz3.js" as="script"><link rel="prefetch" href="/assets/function.html-D_t-6oJV.js" as="script"><link rel="prefetch" href="/assets/grammar.html-QqC7cYGD.js" as="script"><link rel="prefetch" href="/assets/helloworld.html-DZD_sFKM.js" as="script"><link rel="prefetch" href="/assets/index.html-DaR6Hhwb.js" as="script"><link rel="prefetch" href="/assets/object_and_class.html-B1vfX41z.js" as="script"><link rel="prefetch" href="/assets/BRDF.html-BljMBIBd.js" as="script"><link rel="prefetch" href="/assets/illumination_model_01.html-Cq9ajXli.js" as="script"><link rel="prefetch" href="/assets/luminosity.html-BOAC9vlF.js" as="script"><link rel="prefetch" href="/assets/microfacets_1.html-gFuCpUaJ.js" as="script"><link rel="prefetch" href="/assets/microfacets_2.html-C5fTNrnO.js" as="script"><link rel="prefetch" href="/assets/microfacets_3.html-CqfzWkM9.js" as="script"><link rel="prefetch" href="/assets/render_function_1.html-CWpZuOCJ.js" as="script"><link rel="prefetch" href="/assets/setupDevtools-7MC2TMWH-BCCtf40a.js" as="script">
<link rel="preload" href="/assets/style-BYOq-PtM.css" as="style"><link rel="stylesheet" href="/assets/style-BYOq-PtM.css">
<link rel="modulepreload" href="/assets/app-BdNP3b8G.js"><link rel="modulepreload" href="/assets/404.html-CZXEFqLc.js">
<link rel="prefetch" href="/assets/about.html-Dxt9El3d.js" as="script"><link rel="prefetch" href="/assets/index.html-Gx15EMj8.js" as="script"><link rel="prefetch" href="/assets/index.html-XqwzOX-I.js" as="script"><link rel="prefetch" href="/assets/index.html-8h6jJ9CX.js" as="script"><link rel="prefetch" href="/assets/flip_coin.html-jTD02cj2.js" as="script"><link rel="prefetch" href="/assets/index.html-BAS85gI-.js" as="script"><link rel="prefetch" href="/assets/mental_poker.html-DnLF12z5.js" as="script"><link rel="prefetch" href="/assets/rsa.html-BF_5xcoZ.js" as="script"><link rel="prefetch" href="/assets/index.html-DddlIhXR.js" as="script"><link rel="prefetch" href="/assets/index.html-BbSYb6wK.js" as="script"><link rel="prefetch" href="/assets/group.html-X8UJTzT-.js" as="script"><link rel="prefetch" href="/assets/index.html-t9h7JJxv.js" as="script"><link rel="prefetch" href="/assets/number_theory_1.html-8wHeVqWE.js" as="script"><link rel="prefetch" href="/assets/number_theory_2.html-DvSwtoRh.js" as="script"><link rel="prefetch" href="/assets/number_theory_3.html-BHRvn7hg.js" as="script"><link rel="prefetch" href="/assets/probability.html-DlPRsbpg.js" as="script"><link rel="prefetch" href="/assets/symbol.html-Da9Wdc_M.js" as="script"><link rel="prefetch" href="/assets/DH.html-Bdz9YzjK.js" as="script"><link rel="prefetch" href="/assets/Ellipse.html-g7jQWLng.js" as="script"><link rel="prefetch" href="/assets/Fibonacci.html-3htqivdb.js" as="script"><link rel="prefetch" href="/assets/JPEG001.html-CfjDWoJj.js" as="script"><link rel="prefetch" href="/assets/JPEG002.html-BZA8u7A6.js" as="script"><link rel="prefetch" href="/assets/JPEG003.html-B5sc-I90.js" as="script"><link rel="prefetch" href="/assets/JPEG004.html-DMgbopJw.js" as="script"><link rel="prefetch" href="/assets/JPEG005.html-DhpV-Dok.js" as="script"><link rel="prefetch" href="/assets/Martingle.html-BcGtPVNm.js" as="script"><link rel="prefetch" href="/assets/MentalPoker01.html-3dyJagmL.js" as="script"><link rel="prefetch" href="/assets/MentalPoker02.html-D4z5wDum.js" as="script"><link rel="prefetch" href="/assets/RandRound.html-DOXfikyr.js" as="script"><link rel="prefetch" href="/assets/SPH001.html-xwFeb2JI.js" as="script"><link rel="prefetch" href="/assets/SPH002.html-qwkEiJUC.js" as="script"><link rel="prefetch" href="/assets/SPH003.html-DB1N6GlY.js" as="script"><link rel="prefetch" href="/assets/SPH004.html-fHsEeyRJ.js" as="script"><link rel="prefetch" href="/assets/SegmentCircle.html-DcWFtQke.js" as="script"><link rel="prefetch" href="/assets/index.html-Ct-4KTW1.js" as="script"><link rel="prefetch" href="/assets/ibl_01.html-CibZoR0p.js" as="script"><link rel="prefetch" href="/assets/ibl_02.html-v2XcKZv5.js" as="script"><link rel="prefetch" href="/assets/index.html-CboMC1mL.js" as="script"><link rel="prefetch" href="/assets/index.html-DxFUe7DN.js" as="script"><link rel="prefetch" href="/assets/math_01.html-lD8hEnlM.js" as="script"><link rel="prefetch" href="/assets/math_02.html-BTdNsqe6.js" as="script"><link rel="prefetch" href="/assets/math_03.html-C7g11Mi8.js" as="script"><link rel="prefetch" href="/assets/transform_01.html-C3UWxFFl.js" as="script"><link rel="prefetch" href="/assets/transform_02.html-Jf-Y0oSx.js" as="script"><link rel="prefetch" href="/assets/transform_03.html-BtNvoHnH.js" as="script"><link rel="prefetch" href="/assets/transform_04.html-BSWLv-5I.js" as="script"><link rel="prefetch" href="/assets/function.html-0XTYbo8h.js" as="script"><link rel="prefetch" href="/assets/grammar.html-ByRI9iER.js" as="script"><link rel="prefetch" href="/assets/helloworld.html-C4G7WzTQ.js" as="script"><link rel="prefetch" href="/assets/index.html-Ct1gLa9k.js" as="script"><link rel="prefetch" href="/assets/object_and_class.html-CdURHaBY.js" as="script"><link rel="prefetch" href="/assets/BRDF.html-BjketfdO.js" as="script"><link rel="prefetch" href="/assets/illumination_model_01.html-DTvyLz-T.js" as="script"><link rel="prefetch" href="/assets/luminosity.html-DILiY7Yp.js" as="script"><link rel="prefetch" href="/assets/microfacets_1.html-BPYekw1T.js" as="script"><link rel="prefetch" href="/assets/microfacets_2.html-Cfiasajn.js" as="script"><link rel="prefetch" href="/assets/microfacets_3.html-TFJmcx4s.js" as="script"><link rel="prefetch" href="/assets/render_function_1.html-Bp2Xgz79.js" as="script"><link rel="prefetch" href="/assets/setupDevtools-7MC2TMWH-CRvPB6jN.js" as="script">
</head>
<body>
<div id="app"><!--[--><div class="vp-theme-container" vp-container data-v-8636ca9b><main class="page" data-v-8636ca9b><div vp-content data-v-8636ca9b><h1 data-v-8636ca9b>404</h1><blockquote data-v-8636ca9b>Looks like we&#39;ve got some broken links.</blockquote><a class="route-link" href="/" data-v-8636ca9b>Take me home</a></div></main></div><!--[--><!----><!--]--><!--]--></div>
<script type="module" src="/assets/app-DDhCkyt5.js" defer></script>
<script type="module" src="/assets/app-BdNP3b8G.js" defer></script>
</body>
</html>
+4 -4
View File
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{_ as e,c as o,b as a,o as l}from"./app-DDhCkyt5.js";const n={};function r(s,t){return l(),o("div",null,t[0]||(t[0]=[a("p",null,"404 Not Found",-1)]))}const _=e(n,[["render",r],["__file","404.html.vue"]]),i=JSON.parse('{"path":"/404.html","title":"","lang":"zh-CN","frontmatter":{"layout":"NotFound"},"headers":[],"git":{},"filePathRelative":null}');export{_ as comp,i as data};
import{_ as e,c as o,b as a,o as l}from"./app-BdNP3b8G.js";const n={};function r(s,t){return l(),o("div",null,t[0]||(t[0]=[a("p",null,"404 Not Found",-1)]))}const _=e(n,[["render",r],["__file","404.html.vue"]]),i=JSON.parse('{"path":"/404.html","title":"","lang":"zh-CN","frontmatter":{"layout":"NotFound"},"headers":[],"git":{},"filePathRelative":null}');export{_ as comp,i as data};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
import{_ as x,c as j,a as c,b as m,d as l,o as a}from"./app-DDhCkyt5.js";const n={};function t(e,s){return a(),j("div",null,s[0]||(s[0]=[c(`<p>斐波那契数列作为最有名的数列之一广为人之,它的顺序就是 0,1,1,2,3,5,8,13,… 每个数字都是前两个数字的和,这个数列有很多有意思的特征,比和数字“89”的关系。方法很简单,把数列排列成一列,然后每个数都依次右移,最后加在一起形成一个小数,这个数恰好就是1/89。</p><div class="language-text" data-highlighter="prismjs" data-ext="text" data-title="text"><pre><code><span class="line"> 0.0</span>
import{_ as x,c as j,a as c,b as m,d as l,o as a}from"./app-BdNP3b8G.js";const n={};function t(e,s){return a(),j("div",null,s[0]||(s[0]=[c(`<p>斐波那契数列作为最有名的数列之一广为人之,它的顺序就是 0,1,1,2,3,5,8,13,… 每个数字都是前两个数字的和,这个数列有很多有意思的特征,比和数字“89”的关系。方法很简单,把数列排列成一列,然后每个数都依次右移,最后加在一起形成一个小数,这个数恰好就是1/89。</p><div class="language-text" data-highlighter="prismjs" data-ext="text" data-title="text"><pre><code><span class="line"> 0.0</span>
<span class="line"> 0.01</span>
<span class="line"> 0.001</span>
<span class="line"> 0.0002</span>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
import{_ as e,c as a,a as t,o as s}from"./app-DDhCkyt5.js";const p={};function o(c,n){return s(),a("div",null,n[0]||(n[0]=[t(`<h1 id="jpeg算法解密-五" tabindex="-1"><a class="header-anchor" href="#jpeg算法解密-五"><span>JPEG算法解密(五)</span></a></h1><p>最后,我提供给大家一个简易的jpeg压缩算法的代码,这份代码用C++编写,以开源方式提供,放在了github上,可以到下面这个网址下载<br><a href="http://github.com/thejinchao/jpeg_encoder" target="_blank" rel="noopener noreferrer">http://github.com/thejinchao/jpeg_encoder</a><br> 使用方法很简单,像下面这样就可以了</p><div class="language-cpp" data-highlighter="prismjs" data-ext="cpp" data-title="cpp"><pre><code><span class="line"><span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">include</span> <span class="token string">&quot;jpeg_encoder.h&quot;</span></span></span>
import{_ as e,c as a,a as t,o as s}from"./app-BdNP3b8G.js";const p={};function o(c,n){return s(),a("div",null,n[0]||(n[0]=[t(`<h1 id="jpeg算法解密-五" tabindex="-1"><a class="header-anchor" href="#jpeg算法解密-五"><span>JPEG算法解密(五)</span></a></h1><p>最后,我提供给大家一个简易的jpeg压缩算法的代码,这份代码用C++编写,以开源方式提供,放在了github上,可以到下面这个网址下载<br><a href="http://github.com/thejinchao/jpeg_encoder" target="_blank" rel="noopener noreferrer">http://github.com/thejinchao/jpeg_encoder</a><br> 使用方法很简单,像下面这样就可以了</p><div class="language-cpp" data-highlighter="prismjs" data-ext="cpp" data-title="cpp"><pre><code><span class="line"><span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">include</span> <span class="token string">&quot;jpeg_encoder.h&quot;</span></span></span>
<span class="line"> </span>
<span class="line">JpegEncoder encoder<span class="token punctuation">;</span></span>
<span class="line"><span class="token comment">//输入的文件必须是24bit的bmp文件,尺寸必须是8的倍数</span></span>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
import{_ as n,c,a as l,b as s,d as a,o as t}from"./app-DDhCkyt5.js";const x="/images/2015/05/rnd_01.gif",e="/images/2015/05/rnd_02.gif",j="/images/2015/05/rnd_03.gif",i="/images/2015/05/rnd_04.png",o="/images/2015/05/rnd_07.png",p={};function r(u,m){return t(),c("div",null,m[0]||(m[0]=[l(`<h1 id="如何生成一个随机的圆形" tabindex="-1"><a class="header-anchor" href="#如何生成一个随机的圆形"><span>如何生成一个随机的圆形</span></a></h1><p>最近在工作中遇到这么一个问题:</p><blockquote><p>在游戏场景中有一个怪物生成点,这个生长点产生的怪物均匀分布在半径为R的圆形内,这个随机算法应该如何生成?看起来很简单,随手写了一个:</p></blockquote><div class="language-cpp" data-highlighter="prismjs" data-ext="cpp" data-title="cpp"><pre><code><span class="line"><span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">define</span> <span class="token macro-name">RAND</span> <span class="token expression"><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token keyword">float</span><span class="token punctuation">)</span><span class="token function">rand</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">/</span>RAND_MAX<span class="token punctuation">)</span></span></span></span>
import{_ as n,c,a as l,b as s,d as a,o as t}from"./app-BdNP3b8G.js";const x="/images/2015/05/rnd_01.gif",e="/images/2015/05/rnd_02.gif",j="/images/2015/05/rnd_03.gif",i="/images/2015/05/rnd_04.png",o="/images/2015/05/rnd_07.png",p={};function r(u,m){return t(),c("div",null,m[0]||(m[0]=[l(`<h1 id="如何生成一个随机的圆形" tabindex="-1"><a class="header-anchor" href="#如何生成一个随机的圆形"><span>如何生成一个随机的圆形</span></a></h1><p>最近在工作中遇到这么一个问题:</p><blockquote><p>在游戏场景中有一个怪物生成点,这个生长点产生的怪物均匀分布在半径为R的圆形内,这个随机算法应该如何生成?看起来很简单,随手写了一个:</p></blockquote><div class="language-cpp" data-highlighter="prismjs" data-ext="cpp" data-title="cpp"><pre><code><span class="line"><span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">define</span> <span class="token macro-name">RAND</span> <span class="token expression"><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token keyword">float</span><span class="token punctuation">)</span><span class="token function">rand</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">/</span>RAND_MAX<span class="token punctuation">)</span></span></span></span>
<span class="line"> </span>
<span class="line"><span class="token keyword">void</span> <span class="token function">get_random_pos</span><span class="token punctuation">(</span><span class="token keyword">float</span> center_x<span class="token punctuation">,</span> <span class="token keyword">float</span> center_y<span class="token punctuation">,</span> <span class="token keyword">float</span> radius<span class="token punctuation">,</span> <span class="token keyword">float</span><span class="token operator">&amp;</span>x<span class="token punctuation">,</span> <span class="token keyword">float</span><span class="token operator">&amp;</span> y<span class="token punctuation">)</span></span>
<span class="line"><span class="token punctuation">{</span></span>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{_ as i,c as t,a as l,o as a}from"./app-DDhCkyt5.js";const o="/images/2014/08/sph_45.jpg",r={};function n(h,e){return a(),t("div",null,e[0]||(e[0]=[l('<p>上几节,我们推导出一大推复杂无比的公式,似乎有点纸上谈兵,这节来点真的,写一个可以运行的SPH系统,下面就是SPH基本的运算流程</p><ol><li>初始化粒子,为每个粒子赋上初始位置</li><li>根据公式3.7计算每个粒子的密度</li><li>根据公式3.10计算每个粒子的压强</li><li>根据公式3.18计算每个粒子的加速度</li><li>根据临界条件调整加速度</li><li>根据加速度计算每个粒子的速度变化</li><li>根据速度计算粒子位置的变化</li><li>绘制粒子</li><li>回到步骤2 下面有个简单的示例程序,运行效果如下</li></ol><figure><img src="'+o+'" alt="" tabindex="0" loading="lazy"><figcaption></figcaption></figure><p>这个程序基本上没有怎么考虑效率,只是让系统跑起来,所以比较适合拿来对照公式学习,按照惯例,放出源代码和可执行程序<br> Github:<a href="https://github.com/thejinchao/fluid" target="_blank" rel="noopener noreferrer">https://github.com/thejinchao/fluid</a><br> 可执行程序下载: <a href="https://github.com/thejinchao/fluid/releases/download/v1.0/fluid_relase_x64.zip" target="_blank" rel="noopener noreferrer">fluid_relase_x64.zip</a>(132KB)<br> SPH还有很多细节值得讨论,比如表面张力、并行计算、构建网格、真实材质的水渲染等,这些部分我会抽时间再写一些东西出来介绍。</p>',4)]))}const s=i(r,[["render",n],["__file","SPH004.html.vue"]]),m=JSON.parse('{"path":"/blog/2025/02/SPH004.html","title":" SPH算法简介(四): 算法实现","lang":"zh-CN","frontmatter":{"title":" SPH算法简介(四): 算法实现","tags":"数学 流体 程序 算法"},"headers":[],"git":{"updatedTime":1740225290000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":1,"url":"https://github.com/thejinchao"}]},"filePathRelative":"blog/2025/02/SPH004.md"}');export{s as comp,m as data};
import{_ as i,c as t,a as l,o as a}from"./app-BdNP3b8G.js";const o="/images/2014/08/sph_45.jpg",r={};function n(h,e){return a(),t("div",null,e[0]||(e[0]=[l('<p>上几节,我们推导出一大推复杂无比的公式,似乎有点纸上谈兵,这节来点真的,写一个可以运行的SPH系统,下面就是SPH基本的运算流程</p><ol><li>初始化粒子,为每个粒子赋上初始位置</li><li>根据公式3.7计算每个粒子的密度</li><li>根据公式3.10计算每个粒子的压强</li><li>根据公式3.18计算每个粒子的加速度</li><li>根据临界条件调整加速度</li><li>根据加速度计算每个粒子的速度变化</li><li>根据速度计算粒子位置的变化</li><li>绘制粒子</li><li>回到步骤2 下面有个简单的示例程序,运行效果如下</li></ol><figure><img src="'+o+'" alt="" tabindex="0" loading="lazy"><figcaption></figcaption></figure><p>这个程序基本上没有怎么考虑效率,只是让系统跑起来,所以比较适合拿来对照公式学习,按照惯例,放出源代码和可执行程序<br> Github:<a href="https://github.com/thejinchao/fluid" target="_blank" rel="noopener noreferrer">https://github.com/thejinchao/fluid</a><br> 可执行程序下载: <a href="https://github.com/thejinchao/fluid/releases/download/v1.0/fluid_relase_x64.zip" target="_blank" rel="noopener noreferrer">fluid_relase_x64.zip</a>(132KB)<br> SPH还有很多细节值得讨论,比如表面张力、并行计算、构建网格、真实材质的水渲染等,这些部分我会抽时间再写一些东西出来介绍。</p>',4)]))}const s=i(r,[["render",n],["__file","SPH004.html.vue"]]),m=JSON.parse('{"path":"/blog/2025/02/SPH004.html","title":" SPH算法简介(四): 算法实现","lang":"zh-CN","frontmatter":{"title":" SPH算法简介(四): 算法实现","tags":"数学 流体 程序 算法"},"headers":[],"git":{"updatedTime":1740225290000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":1,"url":"https://github.com/thejinchao"}]},"filePathRelative":"blog/2025/02/SPH004.md"}');export{s as comp,m as data};
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{_ as e,c as i,a,o as l}from"./app-DDhCkyt5.js";const o={};function r(h,t){return l(),i("div",null,t[0]||(t[0]=[a('<h1 id="关于我" tabindex="-1"><a class="header-anchor" href="#关于我"><span>关于我</span></a></h1><blockquote><p>淡泊明志,宁静致远</p></blockquote><p>靳超,生于70年代末,河北邯郸人。<br> 这里是我用来保存平时的经验和心得的地方。</p><hr><p>主要学习和工作经历:</p><ul><li>(1996~2000) 天津大学化工学院</li><li>(2000~2002) 中国纺织工业设计院</li><li>(2002~2003) 天人互动</li><li>(2003~2004) 国风因特(3721)</li><li>(2004~2005) 新浪</li><li>(2005~2016) 搜狐畅游</li><li>(2016~2018) 创业</li><li>(2018~2020) 香港乐游科技</li><li>(2020~至今) 腾讯</li></ul><p>我的邮箱:thejinchao@gmail.com<br> GitHub: <a href="http://www.github.com/thejinchao%5D" target="_blank" rel="noopener noreferrer">http://www.github.com/thejinchao</a></p>',7)]))}const c=e(o,[["render",r],["__file","about.html.vue"]]),m=JSON.parse('{"path":"/about.html","title":"关于","lang":"zh-CN","frontmatter":{"title":"关于"},"headers":[],"git":{"updatedTime":1740235322000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":1,"url":"https://github.com/thejinchao"}]},"filePathRelative":"about.md"}');export{c as comp,m as data};
import{_ as e,c as i,a,o as l}from"./app-BdNP3b8G.js";const o={};function r(h,t){return l(),i("div",null,t[0]||(t[0]=[a('<h1 id="关于我" tabindex="-1"><a class="header-anchor" href="#关于我"><span>关于我</span></a></h1><blockquote><p>淡泊明志,宁静致远</p></blockquote><p>靳超,生于70年代末,河北邯郸人。<br> 这里是我用来保存平时的经验和心得的地方。</p><hr><p>主要学习和工作经历:</p><ul><li>(1996~2000) 天津大学化工学院</li><li>(2000~2002) 中国纺织工业设计院</li><li>(2002~2003) 天人互动</li><li>(2003~2004) 国风因特(3721)</li><li>(2004~2005) 新浪</li><li>(2005~2016) 搜狐畅游</li><li>(2016~2018) 创业</li><li>(2018~2020) 香港乐游科技</li><li>(2020~至今) 腾讯</li></ul><p>我的邮箱:thejinchao@gmail.com<br> GitHub: <a href="http://www.github.com/thejinchao%5D" target="_blank" rel="noopener noreferrer">http://www.github.com/thejinchao</a></p>',7)]))}const c=e(o,[["render",r],["__file","about.html.vue"]]),m=JSON.parse('{"path":"/about.html","title":"关于","lang":"zh-CN","frontmatter":{"title":"关于"},"headers":[],"git":{"updatedTime":1740235322000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":1,"url":"https://github.com/thejinchao"}]},"filePathRelative":"about.md"}');export{c as comp,m as data};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
import{_ as n,c as s,a as t,o as p}from"./app-DDhCkyt5.js";const e={};function o(c,a){return p(),s("div",null,a[0]||(a[0]=[t(`<h1 id="javascript函数" tabindex="-1"><a class="header-anchor" href="#javascript函数"><span>JavaScript函数</span></a></h1><h2 id="基本函数定义" tabindex="-1"><a class="header-anchor" href="#基本函数定义"><span>基本函数定义</span></a></h2><div class="language-javascript" data-highlighter="prismjs" data-ext="js" data-title="js"><pre><code><span class="line"><span class="token keyword">function</span> <span class="token function">greeter</span><span class="token punctuation">(</span><span class="token parameter">name</span><span class="token punctuation">)</span></span>
import{_ as n,c as s,a as t,o as p}from"./app-BdNP3b8G.js";const e={};function o(c,a){return p(),s("div",null,a[0]||(a[0]=[t(`<h1 id="javascript函数" tabindex="-1"><a class="header-anchor" href="#javascript函数"><span>JavaScript函数</span></a></h1><h2 id="基本函数定义" tabindex="-1"><a class="header-anchor" href="#基本函数定义"><span>基本函数定义</span></a></h2><div class="language-javascript" data-highlighter="prismjs" data-ext="js" data-title="js"><pre><code><span class="line"><span class="token keyword">function</span> <span class="token function">greeter</span><span class="token punctuation">(</span><span class="token parameter">name</span><span class="token punctuation">)</span></span>
<span class="line"><span class="token punctuation">{</span></span>
<span class="line"> console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">&quot;Hello, &quot;</span> <span class="token operator">+</span> name<span class="token punctuation">)</span><span class="token punctuation">;</span></span>
<span class="line"><span class="token punctuation">}</span></span>
@@ -1,4 +1,4 @@
import{_ as a,c as n,a as p,o as e}from"./app-DDhCkyt5.js";const t={};function c(o,s){return e(),n("div",null,s[0]||(s[0]=[p(`<h1 id="javascript基本语法" tabindex="-1"><a class="header-anchor" href="#javascript基本语法"><span>JavaScript基本语法</span></a></h1><h2 id="变量" tabindex="-1"><a class="header-anchor" href="#变量"><span>变量</span></a></h2><p>声明变量</p><div class="language-javascript" data-highlighter="prismjs" data-ext="js" data-title="js"><pre><code><span class="line"><span class="token keyword">var</span> a <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">;</span></span>
import{_ as a,c as n,a as p,o as e}from"./app-BdNP3b8G.js";const t={};function c(o,s){return e(),n("div",null,s[0]||(s[0]=[p(`<h1 id="javascript基本语法" tabindex="-1"><a class="header-anchor" href="#javascript基本语法"><span>JavaScript基本语法</span></a></h1><h2 id="变量" tabindex="-1"><a class="header-anchor" href="#变量"><span>变量</span></a></h2><p>声明变量</p><div class="language-javascript" data-highlighter="prismjs" data-ext="js" data-title="js"><pre><code><span class="line"><span class="token keyword">var</span> a <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">;</span></span>
<span class="line"></span></code></pre></div><p>JavaScript有如下基本的变量类型<code>Number</code>, <code>String</code>, <code>Boolean</code>, <code>Undefined</code>, <code>Null</code></p><div class="language-javascript" data-highlighter="prismjs" data-ext="js" data-title="js"><pre><code><span class="line"><span class="token keyword">var</span> a<span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span> <span class="token comment">//Number</span></span>
<span class="line"><span class="token keyword">var</span> b<span class="token operator">=</span><span class="token string">&quot;hello&quot;</span><span class="token punctuation">;</span> <span class="token comment">//String\`</span></span>
<span class="line"><span class="token keyword">var</span> c<span class="token operator">=</span><span class="token boolean">true</span><span class="token punctuation">;</span> <span class="token comment">//Boolean</span></span>
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
import{_ as e,c as n,a as s,o as t}from"./app-DDhCkyt5.js";const o={};function l(p,a){return t(),n("div",null,a[0]||(a[0]=[s(`<h1 id="环境搭建" tabindex="-1"><a class="header-anchor" href="#环境搭建"><span>环境搭建</span></a></h1><h2 id="使用nodejs直接运行" tabindex="-1"><a class="header-anchor" href="#使用nodejs直接运行"><span>使用nodejs直接运行</span></a></h2><ol><li>下载安装<a href="https://nodejs.org/en" target="_blank" rel="noopener noreferrer">nodejs</a></li><li>创建一个js文件<code>helloworld.js</code></li></ol><div class="language-javascript" data-highlighter="prismjs" data-ext="js" data-title="js"><pre><code><span class="line"><span class="token keyword">var</span> name<span class="token operator">=</span><span class="token string">&quot;Alice&quot;</span><span class="token punctuation">;</span></span>
import{_ as e,c as n,a as s,o as t}from"./app-BdNP3b8G.js";const o={};function l(p,a){return t(),n("div",null,a[0]||(a[0]=[s(`<h1 id="环境搭建" tabindex="-1"><a class="header-anchor" href="#环境搭建"><span>环境搭建</span></a></h1><h2 id="使用nodejs直接运行" tabindex="-1"><a class="header-anchor" href="#使用nodejs直接运行"><span>使用nodejs直接运行</span></a></h2><ol><li>下载安装<a href="https://nodejs.org/en" target="_blank" rel="noopener noreferrer">nodejs</a></li><li>创建一个js文件<code>helloworld.js</code></li></ol><div class="language-javascript" data-highlighter="prismjs" data-ext="js" data-title="js"><pre><code><span class="line"><span class="token keyword">var</span> name<span class="token operator">=</span><span class="token string">&quot;Alice&quot;</span><span class="token punctuation">;</span></span>
<span class="line">console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">&quot;Hello, &quot;</span> <span class="token operator">+</span> name<span class="token punctuation">)</span><span class="token punctuation">;</span></span>
<span class="line"></span></code></pre></div><ol start="3"><li>在命令行中输入如下命令</li></ol><div class="language-text" data-highlighter="prismjs" data-ext="text" data-title="text"><pre><code><span class="line">node helloworld.js</span>
<span class="line"></span></code></pre></div>`,6)]))}const r=e(o,[["render",l],["__file","helloworld.html.vue"]]),c=JSON.parse('{"path":"/note/language/javascript/helloworld.html","title":"环境搭建","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"使用nodejs直接运行","slug":"使用nodejs直接运行","link":"#使用nodejs直接运行","children":[]}],"git":{"updatedTime":1740235322000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":1,"url":"https://github.com/thejinchao"}]},"filePathRelative":"note/language/javascript/helloworld.md"}');export{r as comp,c as data};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{_ as i,c as r,b as e,e as o,f as a,d as n,r as s,o as u}from"./app-DDhCkyt5.js";const d={};function m(p,t){const l=s("RouteLink");return u(),r("div",null,[t[5]||(t[5]=e("h1",{id:"读书笔记",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#读书笔记"},[e("span",null,"读书笔记")])],-1)),t[6]||(t[6]=e("p",null,"开卷有益",-1)),e("ul",null,[e("li",null,[o(l,{to:"/note/math/"},{default:a(()=>t[0]||(t[0]=[n("数学相关")])),_:1})]),e("li",null,[o(l,{to:"/note/cryptography/"},{default:a(()=>t[1]||(t[1]=[n("密码学")])),_:1})]),e("li",null,[o(l,{to:"/note/graphics/"},{default:a(()=>t[2]||(t[2]=[n("图形学")])),_:1})]),e("li",null,[t[4]||(t[4]=n("编程语言 ")),e("ul",null,[e("li",null,[o(l,{to:"/note/language/javascript/"},{default:a(()=>t[3]||(t[3]=[n("JavaScript")])),_:1})])])])])])}const h=i(d,[["render",m],["__file","index.html.vue"]]),x=JSON.parse('{"path":"/note/","title":"读书笔记","lang":"zh-CN","frontmatter":{},"headers":[],"git":{"updatedTime":1740236893000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":2,"url":"https://github.com/thejinchao"}]},"filePathRelative":"note/index.md"}');export{h as comp,x as data};
import{_ as i,c as r,b as e,e as o,f as a,d as n,r as s,o as u}from"./app-BdNP3b8G.js";const d={};function m(p,t){const l=s("RouteLink");return u(),r("div",null,[t[5]||(t[5]=e("h1",{id:"读书笔记",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#读书笔记"},[e("span",null,"读书笔记")])],-1)),t[6]||(t[6]=e("p",null,"开卷有益",-1)),e("ul",null,[e("li",null,[o(l,{to:"/note/math/"},{default:a(()=>t[0]||(t[0]=[n("数学相关")])),_:1})]),e("li",null,[o(l,{to:"/note/cryptography/"},{default:a(()=>t[1]||(t[1]=[n("密码学")])),_:1})]),e("li",null,[o(l,{to:"/note/graphics/"},{default:a(()=>t[2]||(t[2]=[n("图形学")])),_:1})]),e("li",null,[t[4]||(t[4]=n("编程语言 ")),e("ul",null,[e("li",null,[o(l,{to:"/note/language/javascript/"},{default:a(()=>t[3]||(t[3]=[n("JavaScript")])),_:1})])])])])])}const h=i(d,[["render",m],["__file","index.html.vue"]]),x=JSON.parse('{"path":"/note/","title":"读书笔记","lang":"zh-CN","frontmatter":{},"headers":[],"git":{"updatedTime":1740236893000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":2,"url":"https://github.com/thejinchao"}]},"filePathRelative":"note/index.md"}');export{h as comp,x as data};
@@ -1 +1 @@
import{_ as r,c as i,b as e,e as n,f as a,r as s,o as m,d as l}from"./app-DDhCkyt5.js";const p={};function h(d,t){const o=s("RouteLink");return m(),i("div",null,[t[3]||(t[3]=e("h1",{id:"密码学",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#密码学"},[e("span",null,"密码学")])],-1)),e("ul",null,[e("li",null,[n(o,{to:"/note/cryptography/rsa.html"},{default:a(()=>t[0]||(t[0]=[l("RSA")])),_:1})]),e("li",null,[n(o,{to:"/note/cryptography/flip_coin.html"},{default:a(()=>t[1]||(t[1]=[l("抛币协议")])),_:1})]),e("li",null,[n(o,{to:"/note/cryptography/mental_poker.html"},{default:a(()=>t[2]||(t[2]=[l("智能扑克")])),_:1})])])])}const u=r(p,[["render",h],["__file","index.html.vue"]]),f=JSON.parse('{"path":"/note/cryptography/","title":"密码学","lang":"zh-CN","frontmatter":{},"headers":[],"git":{"updatedTime":1740235322000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":1,"url":"https://github.com/thejinchao"}]},"filePathRelative":"note/cryptography/index.md"}');export{u as comp,f as data};
import{_ as r,c as i,b as e,e as n,f as a,r as s,o as m,d as l}from"./app-BdNP3b8G.js";const p={};function h(d,t){const o=s("RouteLink");return m(),i("div",null,[t[3]||(t[3]=e("h1",{id:"密码学",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#密码学"},[e("span",null,"密码学")])],-1)),e("ul",null,[e("li",null,[n(o,{to:"/note/cryptography/rsa.html"},{default:a(()=>t[0]||(t[0]=[l("RSA")])),_:1})]),e("li",null,[n(o,{to:"/note/cryptography/flip_coin.html"},{default:a(()=>t[1]||(t[1]=[l("抛币协议")])),_:1})]),e("li",null,[n(o,{to:"/note/cryptography/mental_poker.html"},{default:a(()=>t[2]||(t[2]=[l("智能扑克")])),_:1})])])])}const u=r(p,[["render",h],["__file","index.html.vue"]]),f=JSON.parse('{"path":"/note/cryptography/","title":"密码学","lang":"zh-CN","frontmatter":{},"headers":[],"git":{"updatedTime":1740235322000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":1,"url":"https://github.com/thejinchao"}]},"filePathRelative":"note/cryptography/index.md"}');export{u as comp,f as data};
@@ -1 +1 @@
import{_ as n,c as o,b as e,e as i,f as l,r,o as s,d as c}from"./app-DDhCkyt5.js";const m={};function d(u,t){const a=r("RouteLink");return s(),o("div",null,[t[1]||(t[1]=e("h1",{id:"编程语言",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#编程语言"},[e("span",null,"编程语言")])],-1)),e("ul",null,[e("li",null,[i(a,{to:"/note/language/javascript/"},{default:l(()=>t[0]||(t[0]=[c("JavaScript")])),_:1})])])])}const p=n(m,[["render",d],["__file","index.html.vue"]]),f=JSON.parse('{"path":"/note/language/","title":"编程语言","lang":"zh-CN","frontmatter":{},"headers":[],"git":{"updatedTime":1740235322000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":1,"url":"https://github.com/thejinchao"}]},"filePathRelative":"note/language/index.md"}');export{p as comp,f as data};
import{_ as n,c as o,b as e,e as i,f as l,r,o as s,d as c}from"./app-BdNP3b8G.js";const m={};function d(u,t){const a=r("RouteLink");return s(),o("div",null,[t[1]||(t[1]=e("h1",{id:"编程语言",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#编程语言"},[e("span",null,"编程语言")])],-1)),e("ul",null,[e("li",null,[i(a,{to:"/note/language/javascript/"},{default:l(()=>t[0]||(t[0]=[c("JavaScript")])),_:1})])])])}const p=n(m,[["render",d],["__file","index.html.vue"]]),f=JSON.parse('{"path":"/note/language/","title":"编程语言","lang":"zh-CN","frontmatter":{},"headers":[],"git":{"updatedTime":1740235322000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":1,"url":"https://github.com/thejinchao"}]},"filePathRelative":"note/language/index.md"}');export{p as comp,f as data};
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{_ as l,c as s,b as t,e as i,f as n,r,o as h,d as o}from"./app-DDhCkyt5.js";const m={};function d(c,e){const a=r("RouteLink");return h(),s("div",null,[e[2]||(e[2]=t("h1",{id:"环境光渲染",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#环境光渲染"},[t("span",null,"环境光渲染")])],-1)),t("ul",null,[t("li",null,[i(a,{to:"/note/graphics/image_based_lighting/ibl_01.html"},{default:n(()=>e[0]||(e[0]=[o("环境光渲染(一)")])),_:1})]),t("li",null,[i(a,{to:"/note/graphics/image_based_lighting/ibl_02.html"},{default:n(()=>e[1]||(e[1]=[o("环境光渲染(二)")])),_:1})])])])}const _=l(m,[["render",d],["__file","index.html.vue"]]),u=JSON.parse('{"path":"/note/graphics/image_based_lighting/","title":"环境光渲染","lang":"zh-CN","frontmatter":{},"headers":[],"git":{"updatedTime":1740235322000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":1,"url":"https://github.com/thejinchao"}]},"filePathRelative":"note/graphics/image_based_lighting/index.md"}');export{_ as comp,u as data};
import{_ as l,c as s,b as t,e as i,f as n,r,o as h,d as o}from"./app-BdNP3b8G.js";const m={};function d(c,e){const a=r("RouteLink");return h(),s("div",null,[e[2]||(e[2]=t("h1",{id:"环境光渲染",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#环境光渲染"},[t("span",null,"环境光渲染")])],-1)),t("ul",null,[t("li",null,[i(a,{to:"/note/graphics/image_based_lighting/ibl_01.html"},{default:n(()=>e[0]||(e[0]=[o("环境光渲染(一)")])),_:1})]),t("li",null,[i(a,{to:"/note/graphics/image_based_lighting/ibl_02.html"},{default:n(()=>e[1]||(e[1]=[o("环境光渲染(二)")])),_:1})])])])}const _=l(m,[["render",d],["__file","index.html.vue"]]),u=JSON.parse('{"path":"/note/graphics/image_based_lighting/","title":"环境光渲染","lang":"zh-CN","frontmatter":{},"headers":[],"git":{"updatedTime":1740235322000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":1,"url":"https://github.com/thejinchao"}]},"filePathRelative":"note/graphics/image_based_lighting/index.md"}');export{_ as comp,u as data};
@@ -1 +1 @@
import{_ as a,c as m,b as l,e as o,f as n,r,o as s,d as e}from"./app-DDhCkyt5.js";const u={};function d(f,t){const i=r("RouteLink");return s(),m("div",null,[t[7]||(t[7]=l("h1",{id:"光照模型",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#光照模型"},[l("span",null,"光照模型")])],-1)),l("ul",null,[l("li",null,[o(i,{to:"/note/graphics/illumination_model/classic/illumination_model_01.html"},{default:n(()=>t[0]||(t[0]=[e("传统光照模型")])),_:1})]),l("li",null,[o(i,{to:"/note/graphics/illumination_model/luminosity/luminosity.html"},{default:n(()=>t[1]||(t[1]=[e("光度学")])),_:1})]),l("li",null,[o(i,{to:"/note/graphics/illumination_model/BRDF/BRDF.html"},{default:n(()=>t[2]||(t[2]=[e("双向反射分布函数(BRDF)")])),_:1})]),l("li",null,[o(i,{to:"/note/graphics/illumination_model/microfacets/microfacets_1.html"},{default:n(()=>t[3]||(t[3]=[e("微平面理论(一)")])),_:1})]),l("li",null,[o(i,{to:"/note/graphics/illumination_model/microfacets/microfacets_2.html"},{default:n(()=>t[4]||(t[4]=[e("微平面理论(二)")])),_:1})]),l("li",null,[o(i,{to:"/note/graphics/illumination_model/microfacets/microfacets_3.html"},{default:n(()=>t[5]||(t[5]=[e("微平面理论(三)")])),_:1})]),l("li",null,[o(i,{to:"/note/graphics/illumination_model/render_function/render_function_1.html"},{default:n(()=>t[6]||(t[6]=[e("光照方程")])),_:1})])])])}const h=a(u,[["render",d],["__file","index.html.vue"]]),_=JSON.parse('{"path":"/note/graphics/illumination_model/","title":"光照模型","lang":"zh-CN","frontmatter":{},"headers":[],"git":{"updatedTime":1740316295000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":2,"url":"https://github.com/thejinchao"}]},"filePathRelative":"note/graphics/illumination_model/index.md"}');export{h as comp,_ as data};
import{_ as a,c as m,b as l,e as o,f as n,r,o as s,d as e}from"./app-BdNP3b8G.js";const u={};function d(f,t){const i=r("RouteLink");return s(),m("div",null,[t[7]||(t[7]=l("h1",{id:"光照模型",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#光照模型"},[l("span",null,"光照模型")])],-1)),l("ul",null,[l("li",null,[o(i,{to:"/note/graphics/illumination_model/classic/illumination_model_01.html"},{default:n(()=>t[0]||(t[0]=[e("传统光照模型")])),_:1})]),l("li",null,[o(i,{to:"/note/graphics/illumination_model/luminosity/luminosity.html"},{default:n(()=>t[1]||(t[1]=[e("光度学")])),_:1})]),l("li",null,[o(i,{to:"/note/graphics/illumination_model/BRDF/BRDF.html"},{default:n(()=>t[2]||(t[2]=[e("双向反射分布函数(BRDF)")])),_:1})]),l("li",null,[o(i,{to:"/note/graphics/illumination_model/microfacets/microfacets_1.html"},{default:n(()=>t[3]||(t[3]=[e("微平面理论(一)")])),_:1})]),l("li",null,[o(i,{to:"/note/graphics/illumination_model/microfacets/microfacets_2.html"},{default:n(()=>t[4]||(t[4]=[e("微平面理论(二)")])),_:1})]),l("li",null,[o(i,{to:"/note/graphics/illumination_model/microfacets/microfacets_3.html"},{default:n(()=>t[5]||(t[5]=[e("微平面理论(三)")])),_:1})]),l("li",null,[o(i,{to:"/note/graphics/illumination_model/render_function/render_function_1.html"},{default:n(()=>t[6]||(t[6]=[e("光照方程")])),_:1})])])])}const h=a(u,[["render",d],["__file","index.html.vue"]]),_=JSON.parse('{"path":"/note/graphics/illumination_model/","title":"光照模型","lang":"zh-CN","frontmatter":{},"headers":[],"git":{"updatedTime":1740316295000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":2,"url":"https://github.com/thejinchao"}]},"filePathRelative":"note/graphics/illumination_model/index.md"}');export{h as comp,_ as data};
@@ -1 +1 @@
import{_ as r,c as i,b as a,e as l,f as o,d as e,r as s,o as u}from"./app-DDhCkyt5.js";const m={};function p(d,t){const n=s("RouteLink");return u(),i("div",null,[t[4]||(t[4]=a("h1",{id:"javascript",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#javascript"},[a("span",null,"JavaScript")])],-1)),a("ul",null,[a("li",null,[l(n,{to:"/note/language/javascript/helloworld.html"},{default:o(()=>t[0]||(t[0]=[e("环境搭建")])),_:1})]),a("li",null,[l(n,{to:"/note/language/javascript/grammar.html"},{default:o(()=>t[1]||(t[1]=[e("基本语法")])),_:1})]),a("li",null,[l(n,{to:"/note/language/javascript/function.html"},{default:o(()=>t[2]||(t[2]=[e("函数")])),_:1})]),a("li",null,[l(n,{to:"/note/language/javascript/object_and_class.html"},{default:o(()=>t[3]||(t[3]=[e("对象和类")])),_:1})])]),t[5]||(t[5]=a("p",null,[e("建议的教程网站 "),a("a",{href:"https://www.liaoxuefeng.com/wiki/1022910821149312",target:"_blank",rel:"noopener noreferrer"},"廖雪峰的JavaScript教程")],-1))])}const g=r(m,[["render",p],["__file","index.html.vue"]]),f=JSON.parse('{"path":"/note/language/javascript/","title":"JavaScript","lang":"zh-CN","frontmatter":{},"headers":[],"git":{"updatedTime":1740235322000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":1,"url":"https://github.com/thejinchao"}]},"filePathRelative":"note/language/javascript/index.md"}');export{g as comp,f as data};
import{_ as r,c as i,b as a,e as l,f as o,d as e,r as s,o as u}from"./app-BdNP3b8G.js";const m={};function p(d,t){const n=s("RouteLink");return u(),i("div",null,[t[4]||(t[4]=a("h1",{id:"javascript",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#javascript"},[a("span",null,"JavaScript")])],-1)),a("ul",null,[a("li",null,[l(n,{to:"/note/language/javascript/helloworld.html"},{default:o(()=>t[0]||(t[0]=[e("环境搭建")])),_:1})]),a("li",null,[l(n,{to:"/note/language/javascript/grammar.html"},{default:o(()=>t[1]||(t[1]=[e("基本语法")])),_:1})]),a("li",null,[l(n,{to:"/note/language/javascript/function.html"},{default:o(()=>t[2]||(t[2]=[e("函数")])),_:1})]),a("li",null,[l(n,{to:"/note/language/javascript/object_and_class.html"},{default:o(()=>t[3]||(t[3]=[e("对象和类")])),_:1})])]),t[5]||(t[5]=a("p",null,[e("建议的教程网站 "),a("a",{href:"https://www.liaoxuefeng.com/wiki/1022910821149312",target:"_blank",rel:"noopener noreferrer"},"廖雪峰的JavaScript教程")],-1))])}const g=r(m,[["render",p],["__file","index.html.vue"]]),f=JSON.parse('{"path":"/note/language/javascript/","title":"JavaScript","lang":"zh-CN","frontmatter":{},"headers":[],"git":{"updatedTime":1740235322000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":1,"url":"https://github.com/thejinchao"}]},"filePathRelative":"note/language/javascript/index.md"}');export{g as comp,f as data};
@@ -1 +1 @@
import{_ as l,c as s,b as t,e as o,f as a,r,o as m,d as i}from"./app-DDhCkyt5.js";const d={};function h(u,e){const n=r("RouteLink");return m(),s("div",null,[e[3]||(e[3]=t("h1",{id:"图形学",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#图形学"},[t("span",null,"图形学")])],-1)),t("ul",null,[t("li",null,[o(n,{to:"/note/graphics/math/"},{default:a(()=>e[0]||(e[0]=[i("数学基础")])),_:1})]),t("li",null,[o(n,{to:"/note/graphics/illumination_model/"},{default:a(()=>e[1]||(e[1]=[i("光照模型")])),_:1})]),t("li",null,[o(n,{to:"/note/graphics/image_based_lighting/"},{default:a(()=>e[2]||(e[2]=[i("环境光渲染")])),_:1})])])])}const p=l(d,[["render",h],["__file","index.html.vue"]]),f=JSON.parse('{"path":"/note/graphics/","title":"图形学","lang":"zh-CN","frontmatter":{},"headers":[],"git":{"updatedTime":1740235322000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":1,"url":"https://github.com/thejinchao"}]},"filePathRelative":"note/graphics/index.md"}');export{p as comp,f as data};
import{_ as l,c as s,b as t,e as o,f as a,r,o as m,d as i}from"./app-BdNP3b8G.js";const d={};function h(u,e){const n=r("RouteLink");return m(),s("div",null,[e[3]||(e[3]=t("h1",{id:"图形学",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#图形学"},[t("span",null,"图形学")])],-1)),t("ul",null,[t("li",null,[o(n,{to:"/note/graphics/math/"},{default:a(()=>e[0]||(e[0]=[i("数学基础")])),_:1})]),t("li",null,[o(n,{to:"/note/graphics/illumination_model/"},{default:a(()=>e[1]||(e[1]=[i("光照模型")])),_:1})]),t("li",null,[o(n,{to:"/note/graphics/image_based_lighting/"},{default:a(()=>e[2]||(e[2]=[i("环境光渲染")])),_:1})])])])}const p=l(d,[["render",h],["__file","index.html.vue"]]),f=JSON.parse('{"path":"/note/graphics/","title":"图形学","lang":"zh-CN","frontmatter":{},"headers":[],"git":{"updatedTime":1740235322000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":1,"url":"https://github.com/thejinchao"}]},"filePathRelative":"note/graphics/index.md"}');export{p as comp,f as data};
@@ -1 +1 @@
import{_ as r,c as i,b as e,e as a,f as n,r as m,o as s,d as o}from"./app-DDhCkyt5.js";const h={};function u(d,t){const l=m("RouteLink");return s(),i("div",null,[t[7]||(t[7]=e("h1",{id:"数学基础",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#数学基础"},[e("span",null,"数学基础")])],-1)),e("ul",null,[e("li",null,[a(l,{to:"/note/graphics/math/math_01.html"},{default:n(()=>t[0]||(t[0]=[o("矢量")])),_:1})]),e("li",null,[a(l,{to:"/note/graphics/math/math_02.html"},{default:n(()=>t[1]||(t[1]=[o("矩阵")])),_:1})]),e("li",null,[a(l,{to:"/note/graphics/math/math_03.html"},{default:n(()=>t[2]||(t[2]=[o("立体角")])),_:1})]),e("li",null,[a(l,{to:"/note/graphics/math/transform_01.html"},{default:n(()=>t[3]||(t[3]=[o("几何变换(一)")])),_:1})]),e("li",null,[a(l,{to:"/note/graphics/math/transform_02.html"},{default:n(()=>t[4]||(t[4]=[o("几何变换(二)")])),_:1})]),e("li",null,[a(l,{to:"/note/graphics/math/transform_03.html"},{default:n(()=>t[5]||(t[5]=[o("法线变换")])),_:1})]),e("li",null,[a(l,{to:"/note/graphics/math/transform_04.html"},{default:n(()=>t[6]||(t[6]=[o("摄像机变换")])),_:1})])])])}const p=r(h,[["render",u],["__file","index.html.vue"]]),g=JSON.parse('{"path":"/note/graphics/math/","title":"数学基础","lang":"zh-CN","frontmatter":{},"headers":[],"git":{"updatedTime":1740235322000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":1,"url":"https://github.com/thejinchao"}]},"filePathRelative":"note/graphics/math/index.md"}');export{p as comp,g as data};
import{_ as r,c as i,b as e,e as a,f as n,r as m,o as s,d as o}from"./app-BdNP3b8G.js";const h={};function u(d,t){const l=m("RouteLink");return s(),i("div",null,[t[7]||(t[7]=e("h1",{id:"数学基础",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#数学基础"},[e("span",null,"数学基础")])],-1)),e("ul",null,[e("li",null,[a(l,{to:"/note/graphics/math/math_01.html"},{default:n(()=>t[0]||(t[0]=[o("矢量")])),_:1})]),e("li",null,[a(l,{to:"/note/graphics/math/math_02.html"},{default:n(()=>t[1]||(t[1]=[o("矩阵")])),_:1})]),e("li",null,[a(l,{to:"/note/graphics/math/math_03.html"},{default:n(()=>t[2]||(t[2]=[o("立体角")])),_:1})]),e("li",null,[a(l,{to:"/note/graphics/math/transform_01.html"},{default:n(()=>t[3]||(t[3]=[o("几何变换(一)")])),_:1})]),e("li",null,[a(l,{to:"/note/graphics/math/transform_02.html"},{default:n(()=>t[4]||(t[4]=[o("几何变换(二)")])),_:1})]),e("li",null,[a(l,{to:"/note/graphics/math/transform_03.html"},{default:n(()=>t[5]||(t[5]=[o("法线变换")])),_:1})]),e("li",null,[a(l,{to:"/note/graphics/math/transform_04.html"},{default:n(()=>t[6]||(t[6]=[o("摄像机变换")])),_:1})])])])}const p=r(h,[["render",u],["__file","index.html.vue"]]),g=JSON.parse('{"path":"/note/graphics/math/","title":"数学基础","lang":"zh-CN","frontmatter":{},"headers":[],"git":{"updatedTime":1740235322000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":1,"url":"https://github.com/thejinchao"}]},"filePathRelative":"note/graphics/math/index.md"}');export{p as comp,g as data};
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{_ as i,c as e,b as o,d as t,e as r,f as u,r as m,o as d}from"./app-DDhCkyt5.js";const f={};function g(b,l){const n=m("RouteLink");return d(),e("div",null,[l[32]||(l[32]=o("h1",{id:"我的文章",tabindex:"-1"},[o("a",{class:"header-anchor",href:"#我的文章"},[o("span",null,"我的文章")])],-1)),o("ul",null,[o("li",null,[l[3]||(l[3]=t("从抛币协议到智能合约 ")),o("ul",null,[o("li",null,[r(n,{to:"/blog/2025/02/MentalPoker01.html"},{default:u(()=>l[0]||(l[0]=[t("Part1")])),_:1}),l[2]||(l[2]=t(", ")),r(n,{to:"/blog/2025/02/MentalPoker02.html"},{default:u(()=>l[1]||(l[1]=[t("Part2")])),_:1})])])]),o("li",null,[l[14]||(l[14]=t("JPEG算法解密 ")),o("ul",null,[o("li",null,[r(n,{to:"/blog/2025/02/JPEG001.html"},{default:u(()=>l[4]||(l[4]=[t("Part1")])),_:1}),l[9]||(l[9]=t(", ")),r(n,{to:"/blog/2025/02/JPEG002.html"},{default:u(()=>l[5]||(l[5]=[t("Part2")])),_:1}),l[10]||(l[10]=t(", ")),r(n,{to:"/blog/2025/02/JPEG003.html"},{default:u(()=>l[6]||(l[6]=[t("Part3")])),_:1}),l[11]||(l[11]=t(", ")),r(n,{to:"/blog/2025/02/JPEG004.html"},{default:u(()=>l[7]||(l[7]=[t("Part4")])),_:1}),l[12]||(l[12]=t(", ")),r(n,{to:"/blog/2025/02/JPEG005.html"},{default:u(()=>l[8]||(l[8]=[t("Part5")])),_:1})]),l[13]||(l[13]=o("li",null,[o("a",{href:"http://github.com/thejinchao/jpeg_encoder",target:"_blank",rel:"noopener noreferrer"},"Github")],-1))])]),o("li",null,[l[23]||(l[23]=t("SPH算法简介 ")),o("ul",null,[o("li",null,[r(n,{to:"/blog/2025/02/SPH001.html"},{default:u(()=>l[15]||(l[15]=[t("Part1")])),_:1}),l[19]||(l[19]=t(", ")),r(n,{to:"/blog/2025/02/SPH002.html"},{default:u(()=>l[16]||(l[16]=[t("Part2")])),_:1}),l[20]||(l[20]=t(", ")),r(n,{to:"/blog/2025/02/SPH003.html"},{default:u(()=>l[17]||(l[17]=[t("Part3")])),_:1}),l[21]||(l[21]=t(", ")),r(n,{to:"/blog/2025/02/SPH004.html"},{default:u(()=>l[18]||(l[18]=[t("Part4")])),_:1})]),l[22]||(l[22]=o("li",null,[o("a",{href:"https://github.com/thejinchao/fluid",target:"_blank",rel:"noopener noreferrer"},"Github")],-1))])]),o("li",null,[r(n,{to:"/blog/2025/02/Martingle.html"},{default:u(()=>l[24]||(l[24]=[t("赌博中的数学:Martingle策略")])),_:1})]),o("li",null,[r(n,{to:"/blog/2025/02/RandRound.html"},{default:u(()=>l[25]||(l[25]=[t("如何生成一个随机的圆形")])),_:1})]),o("li",null,[r(n,{to:"/blog/2025/02/DH.html"},{default:u(()=>l[26]||(l[26]=[t("一个简单的DH密钥协商算法的实现")])),_:1}),l[27]||(l[27]=t(", ")),l[28]||(l[28]=o("a",{href:"https://github.com/thejinchao/dhexchange",target:"_blank",rel:"noopener noreferrer"},"Github",-1))]),o("li",null,[r(n,{to:"/blog/2025/02/SegmentCircle.html"},{default:u(()=>l[29]||(l[29]=[t("如何计算线段和圆的交点")])),_:1})]),o("li",null,[r(n,{to:"/blog/2025/02/Ellipse.html"},{default:u(()=>l[30]||(l[30]=[t("一道数学趣题")])),_:1})]),o("li",null,[r(n,{to:"/blog/2025/02/Fibonacci.html"},{default:u(()=>l[31]||(l[31]=[t("斐波那契数列和1/89")])),_:1})])])])}const P=i(f,[["render",g],["__file","index.html.vue"]]),a=JSON.parse('{"path":"/blog/","title":"我的文章","lang":"zh-CN","frontmatter":{},"headers":[],"git":{"updatedTime":1740225290000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":2,"url":"https://github.com/thejinchao"}]},"filePathRelative":"blog/index.md"}');export{P as comp,a as data};
import{_ as i,c as e,b as o,d as t,e as r,f as u,r as m,o as d}from"./app-BdNP3b8G.js";const f={};function g(b,l){const n=m("RouteLink");return d(),e("div",null,[l[32]||(l[32]=o("h1",{id:"我的文章",tabindex:"-1"},[o("a",{class:"header-anchor",href:"#我的文章"},[o("span",null,"我的文章")])],-1)),o("ul",null,[o("li",null,[l[3]||(l[3]=t("从抛币协议到智能合约 ")),o("ul",null,[o("li",null,[r(n,{to:"/blog/2025/02/MentalPoker01.html"},{default:u(()=>l[0]||(l[0]=[t("Part1")])),_:1}),l[2]||(l[2]=t(", ")),r(n,{to:"/blog/2025/02/MentalPoker02.html"},{default:u(()=>l[1]||(l[1]=[t("Part2")])),_:1})])])]),o("li",null,[l[14]||(l[14]=t("JPEG算法解密 ")),o("ul",null,[o("li",null,[r(n,{to:"/blog/2025/02/JPEG001.html"},{default:u(()=>l[4]||(l[4]=[t("Part1")])),_:1}),l[9]||(l[9]=t(", ")),r(n,{to:"/blog/2025/02/JPEG002.html"},{default:u(()=>l[5]||(l[5]=[t("Part2")])),_:1}),l[10]||(l[10]=t(", ")),r(n,{to:"/blog/2025/02/JPEG003.html"},{default:u(()=>l[6]||(l[6]=[t("Part3")])),_:1}),l[11]||(l[11]=t(", ")),r(n,{to:"/blog/2025/02/JPEG004.html"},{default:u(()=>l[7]||(l[7]=[t("Part4")])),_:1}),l[12]||(l[12]=t(", ")),r(n,{to:"/blog/2025/02/JPEG005.html"},{default:u(()=>l[8]||(l[8]=[t("Part5")])),_:1})]),l[13]||(l[13]=o("li",null,[o("a",{href:"http://github.com/thejinchao/jpeg_encoder",target:"_blank",rel:"noopener noreferrer"},"Github")],-1))])]),o("li",null,[l[23]||(l[23]=t("SPH算法简介 ")),o("ul",null,[o("li",null,[r(n,{to:"/blog/2025/02/SPH001.html"},{default:u(()=>l[15]||(l[15]=[t("Part1")])),_:1}),l[19]||(l[19]=t(", ")),r(n,{to:"/blog/2025/02/SPH002.html"},{default:u(()=>l[16]||(l[16]=[t("Part2")])),_:1}),l[20]||(l[20]=t(", ")),r(n,{to:"/blog/2025/02/SPH003.html"},{default:u(()=>l[17]||(l[17]=[t("Part3")])),_:1}),l[21]||(l[21]=t(", ")),r(n,{to:"/blog/2025/02/SPH004.html"},{default:u(()=>l[18]||(l[18]=[t("Part4")])),_:1})]),l[22]||(l[22]=o("li",null,[o("a",{href:"https://github.com/thejinchao/fluid",target:"_blank",rel:"noopener noreferrer"},"Github")],-1))])]),o("li",null,[r(n,{to:"/blog/2025/02/Martingle.html"},{default:u(()=>l[24]||(l[24]=[t("赌博中的数学:Martingle策略")])),_:1})]),o("li",null,[r(n,{to:"/blog/2025/02/RandRound.html"},{default:u(()=>l[25]||(l[25]=[t("如何生成一个随机的圆形")])),_:1})]),o("li",null,[r(n,{to:"/blog/2025/02/DH.html"},{default:u(()=>l[26]||(l[26]=[t("一个简单的DH密钥协商算法的实现")])),_:1}),l[27]||(l[27]=t(", ")),l[28]||(l[28]=o("a",{href:"https://github.com/thejinchao/dhexchange",target:"_blank",rel:"noopener noreferrer"},"Github",-1))]),o("li",null,[r(n,{to:"/blog/2025/02/SegmentCircle.html"},{default:u(()=>l[29]||(l[29]=[t("如何计算线段和圆的交点")])),_:1})]),o("li",null,[r(n,{to:"/blog/2025/02/Ellipse.html"},{default:u(()=>l[30]||(l[30]=[t("一道数学趣题")])),_:1})]),o("li",null,[r(n,{to:"/blog/2025/02/Fibonacci.html"},{default:u(()=>l[31]||(l[31]=[t("斐波那契数列和1/89")])),_:1})])])])}const P=i(f,[["render",g],["__file","index.html.vue"]]),a=JSON.parse('{"path":"/blog/","title":"我的文章","lang":"zh-CN","frontmatter":{},"headers":[],"git":{"updatedTime":1740225290000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":2,"url":"https://github.com/thejinchao"}]},"filePathRelative":"blog/index.md"}');export{P as comp,a as data};
@@ -1 +1 @@
import{_ as m,c as i,b as e,e as l,f as n,r,o as u,d as a}from"./app-DDhCkyt5.js";const s={};function h(d,t){const o=r("RouteLink");return u(),i("div",null,[t[6]||(t[6]=e("h1",{id:"数学",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#数学"},[e("span",null,"数学")])],-1)),e("ul",null,[e("li",null,[l(o,{to:"/note/math/symbol.html"},{default:n(()=>t[0]||(t[0]=[a("常用数学符号")])),_:1})]),e("li",null,[l(o,{to:"/note/math/group.html"},{default:n(()=>t[1]||(t[1]=[a("群")])),_:1})]),e("li",null,[l(o,{to:"/note/math/number_theory_1.html"},{default:n(()=>t[2]||(t[2]=[a("数论(一)")])),_:1})]),e("li",null,[l(o,{to:"/note/math/number_theory_2.html"},{default:n(()=>t[3]||(t[3]=[a("数论(二)")])),_:1})]),e("li",null,[l(o,{to:"/note/math/number_theory_3.html"},{default:n(()=>t[4]||(t[4]=[a("数论(三)")])),_:1})]),e("li",null,[l(o,{to:"/note/math/probability.html"},{default:n(()=>t[5]||(t[5]=[a("概率")])),_:1})])])])}const p=m(s,[["render",h],["__file","index.html.vue"]]),_=JSON.parse('{"path":"/note/math/","title":"数学","lang":"zh-CN","frontmatter":{},"headers":[],"git":{"updatedTime":1740235322000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":1,"url":"https://github.com/thejinchao"}]},"filePathRelative":"note/math/index.md"}');export{p as comp,_ as data};
import{_ as m,c as i,b as e,e as l,f as n,r,o as u,d as a}from"./app-BdNP3b8G.js";const s={};function h(d,t){const o=r("RouteLink");return u(),i("div",null,[t[6]||(t[6]=e("h1",{id:"数学",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#数学"},[e("span",null,"数学")])],-1)),e("ul",null,[e("li",null,[l(o,{to:"/note/math/symbol.html"},{default:n(()=>t[0]||(t[0]=[a("常用数学符号")])),_:1})]),e("li",null,[l(o,{to:"/note/math/group.html"},{default:n(()=>t[1]||(t[1]=[a("群")])),_:1})]),e("li",null,[l(o,{to:"/note/math/number_theory_1.html"},{default:n(()=>t[2]||(t[2]=[a("数论(一)")])),_:1})]),e("li",null,[l(o,{to:"/note/math/number_theory_2.html"},{default:n(()=>t[3]||(t[3]=[a("数论(二)")])),_:1})]),e("li",null,[l(o,{to:"/note/math/number_theory_3.html"},{default:n(()=>t[4]||(t[4]=[a("数论(三)")])),_:1})]),e("li",null,[l(o,{to:"/note/math/probability.html"},{default:n(()=>t[5]||(t[5]=[a("概率")])),_:1})])])])}const p=m(s,[["render",h],["__file","index.html.vue"]]),_=JSON.parse('{"path":"/note/math/","title":"数学","lang":"zh-CN","frontmatter":{},"headers":[],"git":{"updatedTime":1740235322000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":1,"url":"https://github.com/thejinchao"}]},"filePathRelative":"note/math/index.md"}');export{p as comp,_ as data};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
import{_ as n,c as a,a as p,o as t}from"./app-DDhCkyt5.js";const e={};function o(c,s){return t(),a("div",null,s[0]||(s[0]=[p(`<h1 id="对象和类" tabindex="-1"><a class="header-anchor" href="#对象和类"><span>对象和类</span></a></h1><h2 id="对象" tabindex="-1"><a class="header-anchor" href="#对象"><span>对象</span></a></h2><p>JavaScript中的对象(object)用于存储各种键值集合和更复杂的实体。例如下面的对象</p><div class="language-javascript" data-highlighter="prismjs" data-ext="js" data-title="js"><pre><code><span class="line"><span class="token keyword">var</span> person <span class="token operator">=</span> <span class="token punctuation">{</span></span>
import{_ as n,c as a,a as p,o as t}from"./app-BdNP3b8G.js";const e={};function o(c,s){return t(),a("div",null,s[0]||(s[0]=[p(`<h1 id="对象和类" tabindex="-1"><a class="header-anchor" href="#对象和类"><span>对象和类</span></a></h1><h2 id="对象" tabindex="-1"><a class="header-anchor" href="#对象"><span>对象</span></a></h2><p>JavaScript中的对象(object)用于存储各种键值集合和更复杂的实体。例如下面的对象</p><div class="language-javascript" data-highlighter="prismjs" data-ext="js" data-title="js"><pre><code><span class="line"><span class="token keyword">var</span> person <span class="token operator">=</span> <span class="token punctuation">{</span></span>
<span class="line"> <span class="token literal-property property">firstName</span><span class="token operator">:</span> <span class="token string">&#39;John&#39;</span><span class="token punctuation">,</span></span>
<span class="line"> <span class="token literal-property property">lastName</span><span class="token operator">:</span> <span class="token string">&#39;Doe&#39;</span><span class="token punctuation">,</span></span>
<span class="line"> <span class="token literal-property property">age</span><span class="token operator">:</span> <span class="token number">30</span><span class="token punctuation">,</span></span>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{s as T,w as E}from"./app-DDhCkyt5.js";var l="org.vuejs.vuepress",v="VuePress",I=v,r=l,N=v,i="client-data",a="Client Data",g=(p,n)=>{T({app:p,id:l,label:v,packageName:"@vuepress/client",homepage:"https://vuepress.vuejs.org",logo:"https://vuepress.vuejs.org/images/hero.png",componentStateTypes:[I]},t=>{const c=Object.entries(n),u=Object.keys(n),d=Object.values(n);t.on.inspectComponent(e=>{e.instanceData.state.push(...c.map(([s,o])=>({type:I,editable:!1,key:s,value:o.value})))}),t.addInspector({id:r,label:N,icon:"article"}),t.on.getInspectorTree(e=>{e.inspectorId===r&&(e.rootNodes=[{id:i,label:a,children:u.map(s=>({id:s,label:s}))}])}),t.on.getInspectorState(e=>{e.inspectorId===r&&(e.nodeId===i&&(e.state={[a]:c.map(([s,o])=>({key:s,value:o.value}))}),u.includes(e.nodeId)&&(e.state={[a]:[{key:e.nodeId,value:n[e.nodeId].value}]}))}),E(d,()=>{t.notifyComponentUpdate(),t.sendInspectorState(r)})})};export{g as setupDevtools};
import{s as T,w as E}from"./app-BdNP3b8G.js";var l="org.vuejs.vuepress",v="VuePress",I=v,r=l,N=v,i="client-data",a="Client Data",g=(p,n)=>{T({app:p,id:l,label:v,packageName:"@vuepress/client",homepage:"https://vuepress.vuejs.org",logo:"https://vuepress.vuejs.org/images/hero.png",componentStateTypes:[I]},t=>{const c=Object.entries(n),u=Object.keys(n),d=Object.values(n);t.on.inspectComponent(e=>{e.instanceData.state.push(...c.map(([s,o])=>({type:I,editable:!1,key:s,value:o.value})))}),t.addInspector({id:r,label:N,icon:"article"}),t.on.getInspectorTree(e=>{e.inspectorId===r&&(e.rootNodes=[{id:i,label:a,children:u.map(s=>({id:s,label:s}))}])}),t.on.getInspectorState(e=>{e.inspectorId===r&&(e.nodeId===i&&(e.state={[a]:c.map(([s,o])=>({key:s,value:o.value}))}),u.includes(e.nodeId)&&(e.state={[a]:[{key:e.nodeId,value:n[e.nodeId].value}]}))}),E(d,()=>{t.notifyComponentUpdate(),t.sendInspectorState(r)})})};export{g as setupDevtools};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+4 -4
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+4 -4
View File
File diff suppressed because one or more lines are too long
+5 -5
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More