Compare commits

..
27 Commits
Author SHA1 Message Date
jinchao f7ac3ecf00 Deploying to gh-pages from @ thejinchao/thejinchao.github.io@2aa0484d00 🚀 2025-04-13 14:24:46 +00:00
jinchao a530299cea Deploying to gh-pages from @ thejinchao/thejinchao.github.io@fda18ef058 🚀 2025-04-09 14:20:10 +00:00
jinchao 4db20fb93f Deploying to gh-pages from @ thejinchao/thejinchao.github.io@5fa619a73a 🚀 2025-04-07 16:38:15 +00:00
jinchao 624852198f Deploying to gh-pages from @ thejinchao/thejinchao.github.io@baee74ef27 🚀 2025-03-12 14:00:57 +00:00
jinchao 0b0dfd605d Deploying to gh-pages from @ thejinchao/thejinchao.github.io@47cf734493 🚀 2025-03-11 16:31:18 +00:00
jinchao 4449420e4f Deploying to gh-pages from @ thejinchao/thejinchao.github.io@b17eb6490f 🚀 2025-03-08 11:25:32 +00:00
jinchao 328eb69836 Deploying to gh-pages from @ thejinchao/thejinchao.github.io@fdc7c33fe8 🚀 2025-03-08 11:15:57 +00:00
jinchao 914de06f5c Deploying to gh-pages from @ thejinchao/thejinchao.github.io@41389c04da 🚀 2025-03-08 08:28:58 +00:00
jinchao c93a7df6b5 Deploying to gh-pages from @ thejinchao/thejinchao.github.io@a5c077c5db 🚀 2025-03-08 08:14:34 +00:00
jinchao b88bcf94a8 Deploying to gh-pages from @ thejinchao/thejinchao.github.io@7096f66a6d 🚀 2025-03-07 16:18:32 +00:00
jinchao a2f3dcb5f8 Deploying to gh-pages from @ thejinchao/thejinchao.github.io@2eea319e54 🚀 2025-03-07 16:15:04 +00:00
jinchao 089fafd407 Deploying to gh-pages from @ thejinchao/thejinchao.github.io@da75a56037 🚀 2025-02-26 06:09:21 +00:00
jinchao 5580c2422c Deploying to gh-pages from @ thejinchao/thejinchao.github.io@e5181f6061 🚀 2025-02-24 08:54:14 +00:00
jinchao 1215c09b11 Deploying to gh-pages from @ thejinchao/thejinchao.github.io@8430b21338 🚀 2025-02-24 08:46:54 +00:00
jinchao d656ed856f Deploying to gh-pages from @ thejinchao/thejinchao.github.io@214c55cfe9 🚀 2025-02-24 08:40:41 +00:00
jinchao ed58e43463 Deploying to gh-pages from @ thejinchao/thejinchao.github.io@fbd3385ded 🚀 2025-02-24 08:29:21 +00:00
jinchao bfefe30aef Deploying to gh-pages from @ thejinchao/thejinchao.github.io@c7d9dc3926 🚀 2025-02-23 13:12:30 +00:00
jinchao 18ea38ea79 Deploying to gh-pages from @ thejinchao/thejinchao.github.io@791c17ebdf 🚀 2025-02-23 12:52:49 +00:00
jinchao 66d3b43bfd Deploying to gh-pages from @ thejinchao/thejinchao.github.io@2bf0000c22 🚀 2025-02-23 11:36:02 +00:00
jinchao 14fe72b1d8 Deploying to gh-pages from @ thejinchao/thejinchao.github.io@26244880ee 🚀 2025-02-23 08:05:06 +00:00
jinchao eb2e70b42a Deploying to gh-pages from @ thejinchao/thejinchao.github.io@f1fdc98268 🚀 2025-02-23 05:46:59 +00:00
jinchao 4d10ba440f Deploying to gh-pages from @ thejinchao/thejinchao.github.io@99d2daeddf 🚀 2025-02-22 15:09:10 +00:00
jinchao 26c32a3f23 Deploying to gh-pages from @ thejinchao/thejinchao.github.io@dc7d28521e 🚀 2025-02-22 14:54:44 +00:00
jinchao 41b300b96c Deploying to gh-pages from @ thejinchao/thejinchao.github.io@f151dc08b2 🚀 2025-02-22 12:40:59 +00:00
jinchao 3f85227b42 Deploying to gh-pages from @ thejinchao/thejinchao.github.io@33bca70350 🚀 2025-02-22 12:36:57 +00:00
jinchao bdb9c175fa Deploying to gh-pages from @ thejinchao/thejinchao.github.io@b64083b006 🚀 2025-02-22 12:28:55 +00:00
jinchao 7064463876 Initial gh-pages commit 2025-02-22 12:28:55 +00:00
340 changed files with 3398 additions and 8465 deletions
-48
View File
@@ -1,48 +0,0 @@
name: Build And Deploy
on:
push:
branches:
# 确保这是你正在使用的分支名称
- main
workflow_dispatch:
permissions:
contents: write
jobs:
deploy-gh-pages:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
# 如果你文档需要 Git 子模块,取消注释下一行
# submodules: true
- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version: 20
cache: yarn
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Build docs
env:
NODE_OPTIONS: --max_old_space_size=8192
run: |-
yarn run docs:build
> docs/.vuepress/dist/.nojekyll
- name: Deploy docs
uses: JamesIves/github-pages-deploy-action@v4
with:
# 这是文档部署到的分支名称
branch: gh-pages
folder: docs/.vuepress/dist
-4
View File
@@ -1,4 +0,0 @@
/node_modules
/docs/.vuepress/.cache
/docs/.vuepress/.temp
/docs/.vuepress/dist
View File
+43
View File
@@ -0,0 +1,43 @@
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<meta name="generator" content="VuePress 2.0.0-rc.19" />
<style>
:root {
--vp-c-bg: #fff;
}
[data-theme='dark'] {
--vp-c-bg: #1b1b1f;
}
html,
body {
background-color: var(--vp-c-bg);
}
</style>
<script>
const useChoice = localStorage.getItem('vuepress-color-scheme')
const systemStatus =
'matchMedia' in window
? window.matchMedia('(prefers-color-scheme: dark)').matches
: false
if (useChoice === 'light') {
document.documentElement.dataset.theme = 'light'
} else if (useChoice === 'dark' || systemStatus) {
document.documentElement.dataset.theme = 'dark'
}
</script>
<link rel="icon" href="favicon.png"><title>我的博客和笔记</title><meta name="description" content="理性派,数学,物理,程序">
<link rel="preload" href="/assets/style-BeRIA1J-.css" as="style"><link rel="stylesheet" href="/assets/style-BeRIA1J-.css">
<link rel="modulepreload" href="/assets/app-CBOiqV2i.js"><link rel="modulepreload" href="/assets/404.html-Ce5fuf8c.js">
<link rel="prefetch" href="/assets/about.html-CaCRgfd4.js" as="script"><link rel="prefetch" href="/assets/index.html-BnOhmHX0.js" as="script"><link rel="prefetch" href="/assets/index.html-C0tp0HQZ.js" as="script"><link rel="prefetch" href="/assets/index.html-BVjtOtLU.js" as="script"><link rel="prefetch" href="/assets/flip_coin.html-CbgDM0WC.js" as="script"><link rel="prefetch" href="/assets/index.html-CfMm_lA8.js" as="script"><link rel="prefetch" href="/assets/mental_poker.html-D-MkRjcd.js" as="script"><link rel="prefetch" href="/assets/rsa.html-CVcSHRfS.js" as="script"><link rel="prefetch" href="/assets/index.html-Cki9uH7s.js" as="script"><link rel="prefetch" href="/assets/index.html-DYry7oJe.js" as="script"><link rel="prefetch" href="/assets/group.html-Blubyy1D.js" as="script"><link rel="prefetch" href="/assets/index.html-KmyIJlXN.js" as="script"><link rel="prefetch" href="/assets/number_theory_1.html-B1aNMMbd.js" as="script"><link rel="prefetch" href="/assets/number_theory_2.html-DXjPYAOh.js" as="script"><link rel="prefetch" href="/assets/number_theory_3.html-BH2WbXF_.js" as="script"><link rel="prefetch" href="/assets/probability.html-BFSdoHzA.js" as="script"><link rel="prefetch" href="/assets/symbol.html-BRzFB_KP.js" as="script"><link rel="prefetch" href="/assets/DH.html-C3jU6zeQ.js" as="script"><link rel="prefetch" href="/assets/Ellipse.html-D7sDMIW5.js" as="script"><link rel="prefetch" href="/assets/Fibonacci.html-ByrsOyCH.js" as="script"><link rel="prefetch" href="/assets/JPEG001.html-ZuJpzikG.js" as="script"><link rel="prefetch" href="/assets/JPEG002.html-BNJM6lSf.js" as="script"><link rel="prefetch" href="/assets/JPEG003.html-DqKj1uCw.js" as="script"><link rel="prefetch" href="/assets/JPEG004.html-BpvwrgYX.js" as="script"><link rel="prefetch" href="/assets/JPEG005.html-BhyNx4ch.js" as="script"><link rel="prefetch" href="/assets/Martingle.html-BcQmvYho.js" as="script"><link rel="prefetch" href="/assets/MentalPoker01.html-BQyDLi0z.js" as="script"><link rel="prefetch" href="/assets/MentalPoker02.html-CoPNsKV8.js" as="script"><link rel="prefetch" href="/assets/RandRound.html-DJ6F5fE-.js" as="script"><link rel="prefetch" href="/assets/SPH001.html-79Z2Vgx0.js" as="script"><link rel="prefetch" href="/assets/SPH002.html-Ctwtmflg.js" as="script"><link rel="prefetch" href="/assets/SPH003.html-B4G1f4aT.js" as="script"><link rel="prefetch" href="/assets/SPH004.html-R_jEP5EL.js" as="script"><link rel="prefetch" href="/assets/SegmentCircle.html-CLl34xc5.js" as="script"><link rel="prefetch" href="/assets/BezierLine01.html-C5lugmYi.js" as="script"><link rel="prefetch" href="/assets/BezierLine02.html-DB-bWzHF.js" as="script"><link rel="prefetch" href="/assets/index.html-D-dWNmd6.js" as="script"><link rel="prefetch" href="/assets/ibl_01.html-Berc-6tA.js" as="script"><link rel="prefetch" href="/assets/ibl_02.html-BtAPQych.js" as="script"><link rel="prefetch" href="/assets/index.html-idMuDBIk.js" as="script"><link rel="prefetch" href="/assets/index.html-wHyIQDet.js" as="script"><link rel="prefetch" href="/assets/math_01.html-Ck2811N3.js" as="script"><link rel="prefetch" href="/assets/math_02.html-B1k04DnP.js" as="script"><link rel="prefetch" href="/assets/math_03.html-D1u4_nDT.js" as="script"><link rel="prefetch" href="/assets/transform_01.html-Bgql5csh.js" as="script"><link rel="prefetch" href="/assets/transform_02.html-BDHXswhj.js" as="script"><link rel="prefetch" href="/assets/transform_03.html-BnnEu_9h.js" as="script"><link rel="prefetch" href="/assets/transform_04.html-DylfftlJ.js" as="script"><link rel="prefetch" href="/assets/function.html-DkoRzIhQ.js" as="script"><link rel="prefetch" href="/assets/grammar.html-BY3WjPfm.js" as="script"><link rel="prefetch" href="/assets/helloworld.html-2VrLbE34.js" as="script"><link rel="prefetch" href="/assets/index.html-DizodJ7B.js" as="script"><link rel="prefetch" href="/assets/object_and_class.html-CUoMR8vO.js" as="script"><link rel="prefetch" href="/assets/BRDF.html-CgpuVTB8.js" as="script"><link rel="prefetch" href="/assets/illumination_model_01.html-CjoiNhAi.js" as="script"><link rel="prefetch" href="/assets/luminosity.html-BNuRLk2_.js" as="script"><link rel="prefetch" href="/assets/microfacets_1.html-BackwOBg.js" as="script"><link rel="prefetch" href="/assets/microfacets_2.html-CvKaS_uK.js" as="script"><link rel="prefetch" href="/assets/microfacets_3.html-BbPXacLL.js" as="script"><link rel="prefetch" href="/assets/render_function_1.html-drEPcWRu.js" as="script"><link rel="prefetch" href="/assets/setupDevtools-7MC2TMWH-L9XiQ4bX.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>There&#39;s nothing here.</blockquote><a class="route-link" href="/" data-v-8636ca9b>Take me home</a></div></main></div><!--[--><!----><!--]--><!--]--></div>
<script type="module" src="/assets/app-CBOiqV2i.js" defer></script>
</body>
</html>
-35
View File
@@ -1,35 +0,0 @@
# My Blog and Notebook
Visit: [https://thejinchao.github.io](https://thejinchao.github.io)
## 开发环境搭建
1. 安装node.js [https://nodejs.org](https://nodejs.org)
2. 安装yarn [https://classic.yarnpkg.com/lang/en/docs/install/#windows-stable](https://classic.yarnpkg.com/lang/en/docs/install/#windows-stable)
```
npm install --global yarn
yarn --version
```
## 安装必须组件
### 安装 vuepress
```
npm install -D vuepress@next
```
### 安装打包工具和主题
```
npm install -D @vuepress/bundler-vite@next @vuepress/theme-default@next
```
### 安装sass-embedded
```
yarn add -D sass-embedded
```
#### Add math support to your VuePress site
```
npm i -D @vuepress/plugin-markdown-math@next
npm i -D mathjax-full
```
### Add additional features to your markdown images
```
npm i -D @vuepress/plugin-markdown-image@next
```
+43
View File
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
import{_ as e,c as o,b as a,o as l}from"./app-CBOiqV2i.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};

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

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

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

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
+9
View File
@@ -0,0 +1,9 @@
import{_ as e,c as a,a as t,o as s}from"./app-CBOiqV2i.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>
<span class="line">encoder<span class="token punctuation">.</span><span class="token function">readFromBMP</span><span class="token punctuation">(</span>inputFileName<span class="token punctuation">)</span><span class="token punctuation">;</span></span>
<span class="line"> </span>
<span class="line"><span class="token comment">//第二个参数在1~199之间,代表文件压缩程度,数字越大,压缩后的文件体积越小</span></span>
<span class="line">encoder<span class="token punctuation">.</span><span class="token function">encodeToJPG</span><span class="token punctuation">(</span>outputFileName<span class="token punctuation">,</span> <span class="token number">50</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span>
<span class="line"></span></code></pre></div><p>这份代码只是为了配合这个系列的文章,所以没有考虑优化,如果你想在实际工程中使用jpeg的压缩算法,还是使用被广泛应用的libjpeg或者OpenJpeg。</p><hr><p>参考资料:<br> 【1】<a href="http://www.impulseadventure.com/photo/jpeg-huffman-coding.html" target="_blank" rel="noopener noreferrer">http://www.impulseadventure.com/photo/jpeg-huffman-coding.html</a><br> 【2】<a href="http://www.mysanco.cn/index.php?class=wenku&amp;action=wenku_item&amp;id=96" target="_blank" rel="noopener noreferrer">http://www.mysanco.cn/index.php?class=wenku&amp;action=wenku_item&amp;id=96</a><br> 【3】<a href="http://www.codingnow.com/2000/download/jpeg.txt" target="_blank" rel="noopener noreferrer">http://www.codingnow.com/2000/download/jpeg.txt</a><br> 【4】<a href="http://jingyan.baidu.com/article/cbf0e500f1ce562eaa2893f4.html" target="_blank" rel="noopener noreferrer">http://jingyan.baidu.com/article/cbf0e500f1ce562eaa2893f4.html</a><br> 【5】<a href="http://www.codeproject.com/Articles/83225/A-Simple-JPEG-Encoder-in-C" target="_blank" rel="noopener noreferrer">http://www.codeproject.com/Articles/83225/A-Simple-JPEG-Encoder-in-C</a></p>`,6)]))}const l=e(p,[["render",o],["__file","JPEG005.html.vue"]]),i=JSON.parse('{"path":"/blog/2025/02/JPEG005.html","title":"JPEG算法解密(五)","lang":"zh-CN","frontmatter":{"title":"JPEG算法解密(五)","tags":"压缩 图像 程序 算法"},"headers":[],"git":{},"filePathRelative":"blog/2025/02/JPEG005.md"}');export{l as comp,i as data};

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 73 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

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
View File
@@ -0,0 +1 @@
import{_ as i,c as t,a as l,o as r}from"./app-CBOiqV2i.js";const a="/images/2014/08/sph_45.jpg",o={};function n(s,e){return r(),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="'+a+'" 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 p=i(o,[["render",n],["__file","SPH004.html.vue"]]),h=JSON.parse('{"path":"/blog/2025/02/SPH004.html","title":" SPH算法简介(四): 算法实现","lang":"zh-CN","frontmatter":{"title":" SPH算法简介(四): 算法实现","tags":"数学 流体 程序 算法"},"headers":[],"git":{},"filePathRelative":"blog/2025/02/SPH004.md"}');export{p as comp,h as data};
File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

+1
View File
@@ -0,0 +1 @@
import{_ as e,c as l,a,o as i}from"./app-CBOiqV2i.js";const o={};function r(n,t){return i(),l("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 h=e(o,[["render",r],["__file","about.html.vue"]]),p=JSON.parse('{"path":"/about.html","title":"关于","lang":"zh-CN","frontmatter":{"title":"关于"},"headers":[],"git":{},"filePathRelative":"about.md"}');export{h as comp,p as data};
File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

+17
View File
@@ -0,0 +1,17 @@
import{_ as n,c as s,a as p,o as t}from"./app-CBOiqV2i.js";const e={};function c(o,a){return t(),s("div",null,a[0]||(a[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><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>
<span class="line"></span></code></pre></div><p>调用函数<code>greeter(&#39;Alice&#39;);</code></p><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 function-variable function">funcGreeter</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token parameter">name</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</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 class="token punctuation">}</span></span>
<span class="line"></span></code></pre></div><p>如果只有一个参数的函数,可以省掉括号</p><div class="language-javascript" data-highlighter="prismjs" data-ext="js" data-title="js"><pre><code><span class="line"><span class="token parameter">name</span> <span class="token operator">=&gt;</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 class="token punctuation">}</span></span>
<span class="line"></span></code></pre></div><p>如果函数体只包含一个返回语句,可以省略大括号</p><div class="language-javascript" data-highlighter="prismjs" data-ext="js" data-title="js"><pre><code><span class="line"><span class="token punctuation">(</span><span class="token parameter">a<span class="token punctuation">,</span> b</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span></span>
<span class="line"> <span class="token keyword">return</span> a<span class="token operator">+</span>b<span class="token punctuation">;</span></span>
<span class="line"><span class="token punctuation">}</span></span>
<span class="line"></span>
<span class="line"><span class="token comment">//可以写成</span></span>
<span class="line"><span class="token punctuation">(</span><span class="token parameter">a<span class="token punctuation">,</span> b</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> a<span class="token operator">+</span>b<span class="token punctuation">;</span></span>
<span class="line"></span></code></pre></div>`,10)]))}const i=n(e,[["render",c],["__file","function.html.vue"]]),r=JSON.parse('{"path":"/note/language/javascript/function.html","title":"JavaScript函数","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"基本函数定义","slug":"基本函数定义","link":"#基本函数定义","children":[]},{"level":2,"title":"箭头方式定义函数","slug":"箭头方式定义函数","link":"#箭头方式定义函数","children":[]}],"git":{},"filePathRelative":"note/language/javascript/function.md"}');export{i as comp,r as data};
+40
View File
@@ -0,0 +1,40 @@
import{_ as a,c as n,a as p,o as e}from"./app-CBOiqV2i.js";const t={};function c(l,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>
<span class="line"><span class="token keyword">var</span> d<span class="token punctuation">;</span> <span class="token comment">//Undefined\`</span></span>
<span class="line"><span class="token keyword">var</span> e<span class="token operator">=</span><span class="token keyword">null</span><span class="token punctuation">;</span> <span class="token comment">//Null</span></span>
<span class="line"></span></code></pre></div><p>JavaScript 是一种动态类型语言,也就是说,变量的类型没有限制,变量可以随时更改类型。</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">a<span class="token operator">=</span><span class="token string">&quot;hello&quot;</span><span class="token punctuation">;</span></span>
<span class="line"></span></code></pre></div><h2 id="流程控制" tabindex="-1"><a class="header-anchor" href="#流程控制"><span>流程控制</span></a></h2><h3 id="条件-if-else-结构" tabindex="-1"><a class="header-anchor" href="#条件-if-else-结构"><span>条件(if...else 结构)</span></a></h3><div class="language-javascript" data-highlighter="prismjs" data-ext="js" data-title="js"><pre><code><span class="line"><span class="token keyword">if</span> <span class="token punctuation">(</span>m <span class="token operator">===</span> <span class="token number">0</span><span class="token punctuation">)</span> </span>
<span class="line"><span class="token punctuation">{</span> </span>
<span class="line"> <span class="token comment">// ...</span></span>
<span class="line"><span class="token punctuation">}</span> </span>
<span class="line"><span class="token keyword">else</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>m <span class="token operator">===</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> </span>
<span class="line"> <span class="token comment">// ...</span></span>
<span class="line"><span class="token punctuation">}</span> </span>
<span class="line"><span class="token keyword">else</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>m <span class="token operator">===</span> <span class="token number">2</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> </span>
<span class="line"><span class="token comment">// ...</span></span>
<span class="line"><span class="token punctuation">}</span> </span>
<span class="line"><span class="token keyword">else</span> <span class="token punctuation">{</span> <span class="token comment">// ... }</span></span>
<span class="line"></span></code></pre></div><h3 id="switch-结构" tabindex="-1"><a class="header-anchor" href="#switch-结构"><span>switch 结构</span></a></h3><div class="language-javascript" data-highlighter="prismjs" data-ext="js" data-title="js"><pre><code><span class="line"><span class="token keyword">switch</span> <span class="token punctuation">(</span>fruit<span class="token punctuation">)</span> <span class="token punctuation">{</span> </span>
<span class="line"><span class="token keyword">case</span> <span class="token string">&quot;banana&quot;</span><span class="token operator">:</span></span>
<span class="line"> <span class="token punctuation">{</span></span>
<span class="line"> <span class="token comment">//...</span></span>
<span class="line"> <span class="token punctuation">}</span></span>
<span class="line"> <span class="token keyword">break</span><span class="token punctuation">;</span> </span>
<span class="line"><span class="token keyword">case</span> <span class="token string">&quot;apple&quot;</span><span class="token operator">:</span> </span>
<span class="line"> <span class="token keyword">break</span><span class="token punctuation">;</span> </span>
<span class="line"><span class="token keyword">default</span><span class="token operator">:</span></span>
<span class="line"><span class="token punctuation">}</span></span>
<span class="line"></span></code></pre></div><h3 id="循环" tabindex="-1"><a class="header-anchor" href="#循环"><span>循环</span></a></h3><p>while循环</p><div class="language-javascript" data-highlighter="prismjs" data-ext="js" data-title="js"><pre><code><span class="line"><span class="token keyword">while</span><span class="token punctuation">(</span>condition<span class="token punctuation">)</span> <span class="token punctuation">{</span></span>
<span class="line"> <span class="token comment">//do something</span></span>
<span class="line"><span class="token punctuation">}</span></span>
<span class="line"></span>
<span class="line"><span class="token keyword">do</span> <span class="token punctuation">{</span></span>
<span class="line"> <span class="token comment">//do something</span></span>
<span class="line"><span class="token punctuation">}</span><span class="token keyword">while</span><span class="token punctuation">(</span>condition<span class="token punctuation">)</span></span>
<span class="line"></span></code></pre></div><p>for循环</p><div class="language-javascript" data-highlighter="prismjs" data-ext="js" data-title="js"><pre><code><span class="line"><span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">var</span> i <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> i <span class="token operator">&lt;</span> <span class="token number">3</span><span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</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>i<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 0 1 2 </span></span>
<span class="line"><span class="token punctuation">}</span></span>
<span class="line"></span></code></pre></div><p>和c++一样,<code>continue</code>和<code>break</code>在循环体中起到同样作用</p>`,19)]))}const i=a(t,[["render",c],["__file","grammar.html.vue"]]),r=JSON.parse('{"path":"/note/language/javascript/grammar.html","title":"JavaScript基本语法","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"变量","slug":"变量","link":"#变量","children":[]},{"level":2,"title":"流程控制","slug":"流程控制","link":"#流程控制","children":[{"level":3,"title":"条件(if...else 结构)","slug":"条件-if-else-结构","link":"#条件-if-else-结构","children":[]},{"level":3,"title":"switch 结构","slug":"switch-结构","link":"#switch-结构","children":[]},{"level":3,"title":"循环","slug":"循环","link":"#循环","children":[]}]}],"git":{},"filePathRelative":"note/language/javascript/grammar.md"}');export{i as comp,r as data};
File diff suppressed because one or more lines are too long
+4
View File
@@ -0,0 +1,4 @@
import{_ as s,c as n,a as e,o as t}from"./app-CBOiqV2i.js";const l={};function o(p,a){return t(),n("div",null,a[0]||(a[0]=[e(`<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 c=s(l,[["render",o],["__file","helloworld.html.vue"]]),i=JSON.parse('{"path":"/note/language/javascript/helloworld.html","title":"环境搭建","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"使用nodejs直接运行","slug":"使用nodejs直接运行","link":"#使用nodejs直接运行","children":[]}],"git":{},"filePathRelative":"note/language/javascript/helloworld.md"}');export{c as comp,i as data};

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Before

Width:  |  Height:  |  Size: 153 KiB

After

Width:  |  Height:  |  Size: 153 KiB

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 95 KiB

File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
import{_ as r,c as i,b as e,e as o,f as a,d as l,r as s,o as u}from"./app-CBOiqV2i.js";const d={};function p(f,t){const n=s("RouteLink");return u(),i("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(n,{to:"/note/math/"},{default:a(()=>t[0]||(t[0]=[l("数学相关")])),_:1})]),e("li",null,[o(n,{to:"/note/cryptography/"},{default:a(()=>t[1]||(t[1]=[l("密码学")])),_:1})]),e("li",null,[o(n,{to:"/note/graphics/"},{default:a(()=>t[2]||(t[2]=[l("图形学")])),_:1})]),e("li",null,[t[4]||(t[4]=l("编程语言 ")),e("ul",null,[e("li",null,[o(n,{to:"/note/language/javascript/"},{default:a(()=>t[3]||(t[3]=[l("JavaScript")])),_:1})])])])])])}const x=r(d,[["render",p],["__file","index.html.vue"]]),g=JSON.parse('{"path":"/note/","title":"读书笔记","lang":"zh-CN","frontmatter":{},"headers":[],"git":{},"filePathRelative":"note/index.md"}');export{x as comp,g as data};
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
import{_ as i,c as e,b as o,d as t,e as r,f as u,r as d,o as f}from"./app-CBOiqV2i.js";const g={};function m(b,l){const n=d("RouteLink");return f(),e("div",null,[l[36]||(l[36]=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})]),o("li",null,[l[35]||(l[35]=t("匀速贝塞尔曲线运动实现 ")),o("ul",null,[o("li",null,[r(n,{to:"/blog/2025/03/BezierLine01.html"},{default:u(()=>l[32]||(l[32]=[t("Part1")])),_:1}),l[34]||(l[34]=t(", ")),r(n,{to:"/blog/2025/03/BezierLine02.html"},{default:u(()=>l[33]||(l[33]=[t("Part2")])),_:1})])])])])])}const s=i(g,[["render",m],["__file","index.html.vue"]]),p=JSON.parse('{"path":"/blog/","title":"我的文章","lang":"zh-CN","frontmatter":{},"headers":[],"git":{},"filePathRelative":"blog/index.md"}');export{s as comp,p as data};
+1
View File
@@ -0,0 +1 @@
import{_ as a,c as s,b as e,e as n,f as l,r as i,o as p,d as r}from"./app-CBOiqV2i.js";const d={};function m(u,t){const o=i("RouteLink");return p(),s("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:l(()=>t[0]||(t[0]=[r("RSA")])),_:1})]),e("li",null,[n(o,{to:"/note/cryptography/flip_coin.html"},{default:l(()=>t[1]||(t[1]=[r("抛币协议")])),_:1})]),e("li",null,[n(o,{to:"/note/cryptography/mental_poker.html"},{default:l(()=>t[2]||(t[2]=[r("智能扑克")])),_:1})])])])}const c=a(d,[["render",m],["__file","index.html.vue"]]),h=JSON.parse('{"path":"/note/cryptography/","title":"密码学","lang":"zh-CN","frontmatter":{},"headers":[],"git":{},"filePathRelative":"note/cryptography/index.md"}');export{c as comp,h as data};
+1
View File
@@ -0,0 +1 @@
import{_ as i,c as s,b as t,e as o,f as a,r,o as d,d as l}from"./app-CBOiqV2i.js";const u={};function m(p,e){const n=r("RouteLink");return d(),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]=[l("数学基础")])),_:1})]),t("li",null,[o(n,{to:"/note/graphics/illumination_model/"},{default:a(()=>e[1]||(e[1]=[l("光照模型")])),_:1})]),t("li",null,[o(n,{to:"/note/graphics/image_based_lighting/"},{default:a(()=>e[2]||(e[2]=[l("环境光渲染")])),_:1})])])])}const _=i(u,[["render",m],["__file","index.html.vue"]]),c=JSON.parse('{"path":"/note/graphics/","title":"图形学","lang":"zh-CN","frontmatter":{},"headers":[],"git":{},"filePathRelative":"note/graphics/index.md"}');export{_ as comp,c as data};
+1
View File
@@ -0,0 +1 @@
import{_ as a,c as m,b as t,e as n,f as o,r,o as s,d as e}from"./app-CBOiqV2i.js";const u={};function d(f,l){const i=r("RouteLink");return s(),m("div",null,[l[7]||(l[7]=t("h1",{id:"光照模型",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#光照模型"},[t("span",null,"光照模型")])],-1)),t("ul",null,[t("li",null,[n(i,{to:"/note/graphics/illumination_model/classic/illumination_model_01.html"},{default:o(()=>l[0]||(l[0]=[e("传统光照模型")])),_:1})]),t("li",null,[n(i,{to:"/note/graphics/illumination_model/luminosity/luminosity.html"},{default:o(()=>l[1]||(l[1]=[e("光度学")])),_:1})]),t("li",null,[n(i,{to:"/note/graphics/illumination_model/BRDF/BRDF.html"},{default:o(()=>l[2]||(l[2]=[e("双向反射分布函数(BRDF)")])),_:1})]),t("li",null,[n(i,{to:"/note/graphics/illumination_model/microfacets/microfacets_1.html"},{default:o(()=>l[3]||(l[3]=[e("微平面理论(一)")])),_:1})]),t("li",null,[n(i,{to:"/note/graphics/illumination_model/microfacets/microfacets_2.html"},{default:o(()=>l[4]||(l[4]=[e("微平面理论(二)")])),_:1})]),t("li",null,[n(i,{to:"/note/graphics/illumination_model/microfacets/microfacets_3.html"},{default:o(()=>l[5]||(l[5]=[e("微平面理论(三)")])),_:1})]),t("li",null,[n(i,{to:"/note/graphics/illumination_model/render_function/render_function_1.html"},{default:o(()=>l[6]||(l[6]=[e("光照方程")])),_:1})])])])}const p=a(u,[["render",d],["__file","index.html.vue"]]),c=JSON.parse('{"path":"/note/graphics/illumination_model/","title":"光照模型","lang":"zh-CN","frontmatter":{},"headers":[],"git":{},"filePathRelative":"note/graphics/illumination_model/index.md"}');export{p as comp,c as data};
+1
View File
@@ -0,0 +1 @@
import{_ as n,c as o,b as e,e as l,f as r,r as s,o as i,d}from"./app-CBOiqV2i.js";const c={};function u(p,t){const a=s("RouteLink");return i(),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,[l(a,{to:"/note/language/javascript/"},{default:r(()=>t[0]||(t[0]=[d("JavaScript")])),_:1})])])])}const m=n(c,[["render",u],["__file","index.html.vue"]]),_=JSON.parse('{"path":"/note/language/","title":"编程语言","lang":"zh-CN","frontmatter":{},"headers":[],"git":{},"filePathRelative":"note/language/index.md"}');export{m as comp,_ as data};
+1
View File
@@ -0,0 +1 @@
import{_ as r,c as i,b as a,e as n,f as o,d as e,r as s,o as u}from"./app-CBOiqV2i.js";const p={};function d(f,t){const l=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,[n(l,{to:"/note/language/javascript/helloworld.html"},{default:o(()=>t[0]||(t[0]=[e("环境搭建")])),_:1})]),a("li",null,[n(l,{to:"/note/language/javascript/grammar.html"},{default:o(()=>t[1]||(t[1]=[e("基本语法")])),_:1})]),a("li",null,[n(l,{to:"/note/language/javascript/function.html"},{default:o(()=>t[2]||(t[2]=[e("函数")])),_:1})]),a("li",null,[n(l,{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(p,[["render",d],["__file","index.html.vue"]]),v=JSON.parse('{"path":"/note/language/javascript/","title":"JavaScript","lang":"zh-CN","frontmatter":{},"headers":[],"git":{},"filePathRelative":"note/language/javascript/index.md"}');export{g as comp,v as data};
+1
View File
@@ -0,0 +1 @@
import{_ as r,c as m,b as e,e as n,f as o,r as i,o as u,d as a}from"./app-CBOiqV2i.js";const s={};function d(f,t){const l=i("RouteLink");return u(),m("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,[n(l,{to:"/note/math/symbol.html"},{default:o(()=>t[0]||(t[0]=[a("常用数学符号")])),_:1})]),e("li",null,[n(l,{to:"/note/math/group.html"},{default:o(()=>t[1]||(t[1]=[a("群")])),_:1})]),e("li",null,[n(l,{to:"/note/math/number_theory_1.html"},{default:o(()=>t[2]||(t[2]=[a("数论(一)")])),_:1})]),e("li",null,[n(l,{to:"/note/math/number_theory_2.html"},{default:o(()=>t[3]||(t[3]=[a("数论(二)")])),_:1})]),e("li",null,[n(l,{to:"/note/math/number_theory_3.html"},{default:o(()=>t[4]||(t[4]=[a("数论(三)")])),_:1})]),e("li",null,[n(l,{to:"/note/math/probability.html"},{default:o(()=>t[5]||(t[5]=[a("概率")])),_:1})])])])}const p=r(s,[["render",d],["__file","index.html.vue"]]),_=JSON.parse('{"path":"/note/math/","title":"数学","lang":"zh-CN","frontmatter":{},"headers":[],"git":{},"filePathRelative":"note/math/index.md"}');export{p as comp,_ as data};
+1
View File
@@ -0,0 +1 @@
import{_ as o,c as s,b as t,e as n,f as i,r,o as d,d as l}from"./app-CBOiqV2i.js";const _={};function g(m,e){const a=r("RouteLink");return d(),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,[n(a,{to:"/note/graphics/image_based_lighting/ibl_01.html"},{default:i(()=>e[0]||(e[0]=[l("环境光渲染(一)")])),_:1})]),t("li",null,[n(a,{to:"/note/graphics/image_based_lighting/ibl_02.html"},{default:i(()=>e[1]||(e[1]=[l("环境光渲染(二)")])),_:1})])])])}const c=o(_,[["render",g],["__file","index.html.vue"]]),p=JSON.parse('{"path":"/note/graphics/image_based_lighting/","title":"环境光渲染","lang":"zh-CN","frontmatter":{},"headers":[],"git":{},"filePathRelative":"note/graphics/image_based_lighting/index.md"}');export{c as comp,p as data};
+1
View File
@@ -0,0 +1 @@
import{_ as r,c as s,b as l,e,f as a,r as m,o as i,d as o}from"./app-CBOiqV2i.js";const h={};function d(u,t){const n=m("RouteLink");return i(),s("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,[e(n,{to:"/note/graphics/math/math_01.html"},{default:a(()=>t[0]||(t[0]=[o("矢量")])),_:1})]),l("li",null,[e(n,{to:"/note/graphics/math/math_02.html"},{default:a(()=>t[1]||(t[1]=[o("矩阵")])),_:1})]),l("li",null,[e(n,{to:"/note/graphics/math/math_03.html"},{default:a(()=>t[2]||(t[2]=[o("立体角")])),_:1})]),l("li",null,[e(n,{to:"/note/graphics/math/transform_01.html"},{default:a(()=>t[3]||(t[3]=[o("几何变换(一)")])),_:1})]),l("li",null,[e(n,{to:"/note/graphics/math/transform_02.html"},{default:a(()=>t[4]||(t[4]=[o("几何变换(二)")])),_:1})]),l("li",null,[e(n,{to:"/note/graphics/math/transform_03.html"},{default:a(()=>t[5]||(t[5]=[o("法线变换")])),_:1})]),l("li",null,[e(n,{to:"/note/graphics/math/transform_04.html"},{default:a(()=>t[6]||(t[6]=[o("摄像机变换")])),_:1})])])])}const p=r(h,[["render",d],["__file","index.html.vue"]]),_=JSON.parse('{"path":"/note/graphics/math/","title":"数学基础","lang":"zh-CN","frontmatter":{},"headers":[],"git":{},"filePathRelative":"note/graphics/math/index.md"}');export{p as comp,_ as data};

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 75 KiB

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

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

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 96 KiB

Before

Width:  |  Height:  |  Size: 157 KiB

After

Width:  |  Height:  |  Size: 157 KiB

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 113 KiB

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