Files
thejinchao.github.io/index.html
T

44 lines
36 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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-CdF2Bty1.js"><link rel="modulepreload" href="/assets/index.html-ZsYZLDLc.js">
<link rel="prefetch" href="/assets/about.html-RGx4SfCC.js" as="script"><link rel="prefetch" href="/assets/index.html-CcIvT70U.js" as="script"><link rel="prefetch" href="/assets/index.html-HU6vL3O0.js" as="script"><link rel="prefetch" href="/assets/flip_coin.html-Di3rUC4z.js" as="script"><link rel="prefetch" href="/assets/index.html-D_QCDTf1.js" as="script"><link rel="prefetch" href="/assets/mental_poker.html-Dz2g_79n.js" as="script"><link rel="prefetch" href="/assets/rsa.html-rVjbdUeS.js" as="script"><link rel="prefetch" href="/assets/index.html-BOOf8F7M.js" as="script"><link rel="prefetch" href="/assets/index.html-iQJ6hLJm.js" as="script"><link rel="prefetch" href="/assets/group.html-wbCIFj0K.js" as="script"><link rel="prefetch" href="/assets/index.html-mEKlkFXS.js" as="script"><link rel="prefetch" href="/assets/number_theory_1.html-Cn1Vq0sf.js" as="script"><link rel="prefetch" href="/assets/number_theory_2.html-DYUOCSuk.js" as="script"><link rel="prefetch" href="/assets/number_theory_3.html-DINTfZGj.js" as="script"><link rel="prefetch" href="/assets/probability.html-Bi031lJB.js" as="script"><link rel="prefetch" href="/assets/symbol.html-Vz3wEsXv.js" as="script"><link rel="prefetch" href="/assets/DH.html-CrD92nJA.js" as="script"><link rel="prefetch" href="/assets/Ellipse.html-GqPl8LOQ.js" as="script"><link rel="prefetch" href="/assets/Fibonacci.html-B5yh854E.js" as="script"><link rel="prefetch" href="/assets/JPEG001.html-D34q6xip.js" as="script"><link rel="prefetch" href="/assets/JPEG002.html-g6DruvKA.js" as="script"><link rel="prefetch" href="/assets/JPEG003.html-BfRsdsfK.js" as="script"><link rel="prefetch" href="/assets/JPEG004.html-DWC_YnQF.js" as="script"><link rel="prefetch" href="/assets/JPEG005.html-C7zVaKTA.js" as="script"><link rel="prefetch" href="/assets/Martingle.html-DBJAkkzu.js" as="script"><link rel="prefetch" href="/assets/MentalPoker01.html-C7T-eDFi.js" as="script"><link rel="prefetch" href="/assets/MentalPoker02.html-_IV4J-qg.js" as="script"><link rel="prefetch" href="/assets/RandRound.html-5cUHEefd.js" as="script"><link rel="prefetch" href="/assets/SPH001.html-KqJp79Nt.js" as="script"><link rel="prefetch" href="/assets/SPH002.html-6gNU_10L.js" as="script"><link rel="prefetch" href="/assets/SPH003.html-DGbjsfjb.js" as="script"><link rel="prefetch" href="/assets/SPH004.html-Dptc8XG3.js" as="script"><link rel="prefetch" href="/assets/SegmentCircle.html-CObwr0SV.js" as="script"><link rel="prefetch" href="/assets/BezierLine.html-CcD1LYN8.js" as="script"><link rel="prefetch" href="/assets/index.html-BAOyIuCh.js" as="script"><link rel="prefetch" href="/assets/ibl_01.html-CgOGrDNQ.js" as="script"><link rel="prefetch" href="/assets/ibl_02.html-DLcdHgnk.js" as="script"><link rel="prefetch" href="/assets/index.html-Qe_yKU0v.js" as="script"><link rel="prefetch" href="/assets/index.html-CqAHP-c5.js" as="script"><link rel="prefetch" href="/assets/math_01.html-C4066Wf6.js" as="script"><link rel="prefetch" href="/assets/math_02.html-DN6r7HNF.js" as="script"><link rel="prefetch" href="/assets/math_03.html-DrZQH0ZJ.js" as="script"><link rel="prefetch" href="/assets/transform_01.html-BcpAWyTS.js" as="script"><link rel="prefetch" href="/assets/transform_02.html-GC1F9jWS.js" as="script"><link rel="prefetch" href="/assets/transform_03.html-Cd0lyxsB.js" as="script"><link rel="prefetch" href="/assets/transform_04.html-vNeos55D.js" as="script"><link rel="prefetch" href="/assets/function.html-B1DIfsbU.js" as="script"><link rel="prefetch" href="/assets/grammar.html-CQ3vBFWX.js" as="script"><link rel="prefetch" href="/assets/helloworld.html-DnPakSHe.js" as="script"><link rel="prefetch" href="/assets/index.html-Cm3v_5Z0.js" as="script"><link rel="prefetch" href="/assets/object_and_class.html-oGnBo4kB.js" as="script"><link rel="prefetch" href="/assets/BRDF.html-8YwCtxjK.js" as="script"><link rel="prefetch" href="/assets/illumination_model_01.html-Dxts4laT.js" as="script"><link rel="prefetch" href="/assets/luminosity.html-CorB3KKS.js" as="script"><link rel="prefetch" href="/assets/microfacets_1.html-CS9siS3a.js" as="script"><link rel="prefetch" href="/assets/microfacets_2.html-C5uagM10.js" as="script"><link rel="prefetch" href="/assets/microfacets_3.html-BtErzT9T.js" as="script"><link rel="prefetch" href="/assets/render_function_1.html-Bp3Ik38j.js" as="script"><link rel="prefetch" href="/assets/404.html-BEa2SBKv.js" as="script"><link rel="prefetch" href="/assets/setupDevtools-7MC2TMWH-eF77EkD0.js" as="script">
</head>
<body>
<div id="app"><!--[--><div class="vp-theme-container external-link-icon" vp-container><!--[--><header class="vp-navbar" vp-navbar><div class="vp-toggle-sidebar-button" title="toggle sidebar" aria-expanded="false" role="button" tabindex="0"><div class="icon" aria-hidden="true"><span></span><span></span><span></span></div></div><span><a class="route-link" href="/"><img class="vp-site-logo" src="/favicon.png" alt="我的博客和笔记"><span class="vp-site-name vp-hide-mobile" aria-hidden="true">我的博客和笔记</span></a></span><div class="vp-navbar-items-wrapper" style=""><!--[--><!--]--><nav class="vp-navbar-items vp-hide-mobile" aria-label="site navigation"><!--[--><div class="vp-navbar-item"><a class="route-link route-link-active auto-link" href="/" aria-label="首页"><!--[--><!--[--><!--]--><!--]-->首页<!--[--><!--[--><!--]--><!--]--></a></div><div class="vp-navbar-item"><a class="route-link auto-link" href="/blog/" aria-label="文章"><!--[--><!--[--><!--]--><!--]-->文章<!--[--><!--[--><!--]--><!--]--></a></div><div class="vp-navbar-item"><div class="vp-navbar-dropdown-wrapper"><button class="vp-navbar-dropdown-title" type="button" aria-label="开源项目"><span class="title">开源项目</span><span class="arrow down"></span></button><button class="vp-navbar-dropdown-title-mobile" type="button" aria-label="开源项目"><span class="title">开源项目</span><span class="right arrow"></span></button><ul style="display:none;" class="vp-navbar-dropdown"><!--[--><li class="vp-navbar-dropdown-item"><a class="auto-link external-link" href="https://github.com/thejinchao/turbolink" aria-label="TurboLink" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->TurboLink<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="auto-link external-link" href="https://github.com/thejinchao/TinyEncrypt" aria-label="TinyEncrypt" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->TinyEncrypt<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="auto-link external-link" href="https://github.com/thejinchao/ue5-style-guide" aria-label="UnrealStyleGuide" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->UnrealStyleGuide<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="auto-link external-link" href="https://github.com/thejinchao/AxTrace" aria-label="AxTrace" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->AxTrace<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="auto-link external-link" href="https://github.com/thejinchao/cyclone" aria-label="Cyclone" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->Cyclone<!--[--><!--[--><!--]--><!--]--></a></li><!--]--></ul></div></div><div class="vp-navbar-item"><div class="vp-navbar-dropdown-wrapper"><button class="vp-navbar-dropdown-title" type="button" aria-label="个人笔记"><span class="title">个人笔记</span><span class="arrow down"></span></button><button class="vp-navbar-dropdown-title-mobile" type="button" aria-label="个人笔记"><span class="title">个人笔记</span><span class="right arrow"></span></button><ul style="display:none;" class="vp-navbar-dropdown"><!--[--><li class="vp-navbar-dropdown-item"><a class="route-link auto-link" href="/note/math/" aria-label="数学相关"><!--[--><!--[--><!--]--><!--]-->数学相关<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="route-link auto-link" href="/note/graphics/" aria-label="图形学"><!--[--><!--[--><!--]--><!--]-->图形学<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="route-link auto-link" href="/note/cryptography/" aria-label="密码学"><!--[--><!--[--><!--]--><!--]-->密码学<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="route-link auto-link" href="/note/language/" aria-label="编程语言"><!--[--><!--[--><!--]--><!--]-->编程语言<!--[--><!--[--><!--]--><!--]--></a></li><!--]--></ul></div></div><div class="vp-navbar-item"><a class="route-link auto-link" href="/about.html" aria-label="关于"><!--[--><!--[--><!--]--><!--]-->关于<!--[--><!--[--><!--]--><!--]--></a></div><div class="vp-navbar-item"><a class="auto-link external-link" href="https://github.com/thejinchao/thejinchao.github.io" aria-label="GitHub" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->GitHub<!--[--><!--[--><!--]--><!--]--></a></div><!--]--></nav><!--[--><!--]--><button type="button" class="vp-toggle-color-mode-button" title="toggle color mode"><svg class="light-icon" viewbox="0 0 32 32" style=""><path d="M16 12.005a4 4 0 1 1-4 4a4.005 4.005 0 0 1 4-4m0-2a6 6 0 1 0 6 6a6 6 0 0 0-6-6z" fill="currentColor"></path><path d="M5.394 6.813l1.414-1.415l3.506 3.506L8.9 10.318z" fill="currentColor"></path><path d="M2 15.005h5v2H2z" fill="currentColor"></path><path d="M5.394 25.197L8.9 21.691l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 25.005h2v5h-2z" fill="currentColor"></path><path d="M21.687 23.106l1.414-1.415l3.506 3.506l-1.414 1.414z" fill="currentColor"></path><path d="M25 15.005h5v2h-5z" fill="currentColor"></path><path d="M21.687 8.904l3.506-3.506l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 2.005h2v5h-2z" fill="currentColor"></path></svg><svg class="dark-icon" viewbox="0 0 32 32" style="display:none;"><path d="M13.502 5.414a15.075 15.075 0 0 0 11.594 18.194a11.113 11.113 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1.002 1.002 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.072 13.072 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3z" fill="currentColor"></path></svg></button><!----></div></header><!--]--><div class="vp-sidebar-mask"></div><!--[--><aside class="vp-sidebar" vp-sidebar><nav class="vp-navbar-items" aria-label="site navigation"><!--[--><div class="vp-navbar-item"><a class="route-link route-link-active auto-link" href="/" aria-label="首页"><!--[--><!--[--><!--]--><!--]-->首页<!--[--><!--[--><!--]--><!--]--></a></div><div class="vp-navbar-item"><a class="route-link auto-link" href="/blog/" aria-label="文章"><!--[--><!--[--><!--]--><!--]-->文章<!--[--><!--[--><!--]--><!--]--></a></div><div class="vp-navbar-item"><div class="vp-navbar-dropdown-wrapper"><button class="vp-navbar-dropdown-title" type="button" aria-label="开源项目"><span class="title">开源项目</span><span class="arrow down"></span></button><button class="vp-navbar-dropdown-title-mobile" type="button" aria-label="开源项目"><span class="title">开源项目</span><span class="right arrow"></span></button><ul style="display:none;" class="vp-navbar-dropdown"><!--[--><li class="vp-navbar-dropdown-item"><a class="auto-link external-link" href="https://github.com/thejinchao/turbolink" aria-label="TurboLink" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->TurboLink<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="auto-link external-link" href="https://github.com/thejinchao/TinyEncrypt" aria-label="TinyEncrypt" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->TinyEncrypt<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="auto-link external-link" href="https://github.com/thejinchao/ue5-style-guide" aria-label="UnrealStyleGuide" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->UnrealStyleGuide<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="auto-link external-link" href="https://github.com/thejinchao/AxTrace" aria-label="AxTrace" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->AxTrace<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="auto-link external-link" href="https://github.com/thejinchao/cyclone" aria-label="Cyclone" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->Cyclone<!--[--><!--[--><!--]--><!--]--></a></li><!--]--></ul></div></div><div class="vp-navbar-item"><div class="vp-navbar-dropdown-wrapper"><button class="vp-navbar-dropdown-title" type="button" aria-label="个人笔记"><span class="title">个人笔记</span><span class="arrow down"></span></button><button class="vp-navbar-dropdown-title-mobile" type="button" aria-label="个人笔记"><span class="title">个人笔记</span><span class="right arrow"></span></button><ul style="display:none;" class="vp-navbar-dropdown"><!--[--><li class="vp-navbar-dropdown-item"><a class="route-link auto-link" href="/note/math/" aria-label="数学相关"><!--[--><!--[--><!--]--><!--]-->数学相关<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="route-link auto-link" href="/note/graphics/" aria-label="图形学"><!--[--><!--[--><!--]--><!--]-->图形学<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="route-link auto-link" href="/note/cryptography/" aria-label="密码学"><!--[--><!--[--><!--]--><!--]-->密码学<!--[--><!--[--><!--]--><!--]--></a></li><li class="vp-navbar-dropdown-item"><a class="route-link auto-link" href="/note/language/" aria-label="编程语言"><!--[--><!--[--><!--]--><!--]-->编程语言<!--[--><!--[--><!--]--><!--]--></a></li><!--]--></ul></div></div><div class="vp-navbar-item"><a class="route-link auto-link" href="/about.html" aria-label="关于"><!--[--><!--[--><!--]--><!--]-->关于<!--[--><!--[--><!--]--><!--]--></a></div><div class="vp-navbar-item"><a class="auto-link external-link" href="https://github.com/thejinchao/thejinchao.github.io" aria-label="GitHub" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->GitHub<!--[--><!--[--><!--]--><!--]--></a></div><!--]--></nav><!--[--><!--]--><ul class="vp-sidebar-items"><!--[--><li><p tabindex="0" class="vp-sidebar-item vp-sidebar-heading collapsible">我的文章 <span class="right arrow"></span></p><ul style="display:none;" class="vp-sidebar-children"><!--[--><li><p tabindex="0" class="vp-sidebar-item collapsible">从抛币协议到智能合约 <span class="right arrow"></span></p><ul style="display:none;" class="vp-sidebar-children"><!--[--><li><a class="route-link auto-link vp-sidebar-item" href="/blog/2025/02/MentalPoker01.html" aria-label="Part1"><!--[--><!--[--><!--]--><!--]-->Part1<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/blog/2025/02/MentalPoker02.html" aria-label="Part2"><!--[--><!--[--><!--]--><!--]-->Part2<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="vp-sidebar-item collapsible">JPEG算法解密 <span class="right arrow"></span></p><ul style="display:none;" class="vp-sidebar-children"><!--[--><li><a class="route-link auto-link vp-sidebar-item" href="/blog/2025/02/JPEG001.html" aria-label="Part1"><!--[--><!--[--><!--]--><!--]-->Part1<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/blog/2025/02/JPEG002.html" aria-label="Part2"><!--[--><!--[--><!--]--><!--]-->Part2<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/blog/2025/02/JPEG003.html" aria-label="Part3"><!--[--><!--[--><!--]--><!--]-->Part3<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/blog/2025/02/JPEG004.html" aria-label="Part4"><!--[--><!--[--><!--]--><!--]-->Part4<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/blog/2025/02/JPEG005.html" aria-label="Part5"><!--[--><!--[--><!--]--><!--]-->Part5<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="auto-link external-link vp-sidebar-item" href="http://github.com/thejinchao/jpeg_encoder" aria-label="Github" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->Github<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="vp-sidebar-item collapsible">SPH算法简介 <span class="right arrow"></span></p><ul style="display:none;" class="vp-sidebar-children"><!--[--><li><a class="route-link auto-link vp-sidebar-item" href="/blog/2025/02/SPH001.html" aria-label="Part1"><!--[--><!--[--><!--]--><!--]-->Part1<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/blog/2025/02/SPH002.html" aria-label="Part2"><!--[--><!--[--><!--]--><!--]-->Part2<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/blog/2025/02/SPH003.html" aria-label="Part3"><!--[--><!--[--><!--]--><!--]-->Part3<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/blog/2025/02/SPH004.html" aria-label="Part4"><!--[--><!--[--><!--]--><!--]-->Part4<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="auto-link external-link vp-sidebar-item" href="https://github.com/thejinchao/fluid" aria-label="Github" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->Github<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul></li><li><a class="route-link auto-link vp-sidebar-item" href="/blog/2025/02/Martingle.html" aria-label="赌博中的数学:Martingle策略"><!--[--><!--[--><!--]--><!--]-->赌博中的数学:Martingle策略<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/blog/2025/02/RandRound.html" aria-label="如何生成一个随机的圆形"><!--[--><!--[--><!--]--><!--]-->如何生成一个随机的圆形<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/blog/2025/02/DH.html" aria-label="一个简单的DH密钥协商算法的实现"><!--[--><!--[--><!--]--><!--]-->一个简单的DH密钥协商算法的实现<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/blog/2025/02/SegmentCircle.html" aria-label="如何计算线段和圆的交点"><!--[--><!--[--><!--]--><!--]-->如何计算线段和圆的交点<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/blog/2025/02/Ellipse.html" aria-label="一道数学趣题"><!--[--><!--[--><!--]--><!--]-->一道数学趣题<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/blog/2025/02/Fibonacci.html" aria-label="斐波那契数列和1/89"><!--[--><!--[--><!--]--><!--]-->斐波那契数列和1/89<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/blog/2025/03/BezierLine.html" aria-label="匀速贝塞尔曲线运动的实现"><!--[--><!--[--><!--]--><!--]-->匀速贝塞尔曲线运动的实现<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="vp-sidebar-item vp-sidebar-heading collapsible">开源项目 <span class="right arrow"></span></p><ul style="display:none;" class="vp-sidebar-children"><!--[--><li><a class="auto-link external-link vp-sidebar-item" href="https://github.com/thejinchao/turbolink" aria-label="TurboLink" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->TurboLink<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="auto-link external-link vp-sidebar-item" href="https://github.com/thejinchao/TinyEncrypt" aria-label="TinyEncrypt" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->TinyEncrypt<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="auto-link external-link vp-sidebar-item" href="https://github.com/thejinchao/ue5-style-guide" aria-label="UnrealStyleGuide" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->UnrealStyleGuide<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="auto-link external-link vp-sidebar-item" href="https://github.com/thejinchao/AxTrace" aria-label="AxTrace" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->AxTrace<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="auto-link external-link vp-sidebar-item" href="https://github.com/thejinchao/cyclone" aria-label="Cyclone" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->Cyclone<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="vp-sidebar-item vp-sidebar-heading collapsible">学习笔记 <span class="right arrow"></span></p><ul style="display:none;" class="vp-sidebar-children"><!--[--><li><p tabindex="0" class="vp-sidebar-item collapsible">数学相关 <span class="right arrow"></span></p><ul style="display:none;" class="vp-sidebar-children"><!--[--><li><a class="route-link auto-link vp-sidebar-item" href="/note/math/symbol.html" aria-label="常用数学符号"><!--[--><!--[--><!--]--><!--]-->常用数学符号<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/note/math/group.html" aria-label="群"><!--[--><!--[--><!--]--><!--]-->群<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/note/math/number_theory_1.html" aria-label="数论(一)"><!--[--><!--[--><!--]--><!--]-->数论(一)<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/note/math/number_theory_2.html" aria-label="数论(二)"><!--[--><!--[--><!--]--><!--]-->数论(二)<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/note/math/number_theory_3.html" aria-label="数论(三)"><!--[--><!--[--><!--]--><!--]-->数论(三)<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/note/math/probability.html" aria-label="概率"><!--[--><!--[--><!--]--><!--]-->概率<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="vp-sidebar-item collapsible">密码学 <span class="right arrow"></span></p><ul style="display:none;" class="vp-sidebar-children"><!--[--><li><a class="route-link auto-link vp-sidebar-item" href="/note/cryptography/rsa.html" aria-label="RSA"><!--[--><!--[--><!--]--><!--]-->RSA<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/note/cryptography/flip_coin.html" aria-label="抛币协议"><!--[--><!--[--><!--]--><!--]-->抛币协议<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/note/cryptography/mental_poker.html" aria-label="智能扑克协议"><!--[--><!--[--><!--]--><!--]-->智能扑克协议<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="vp-sidebar-item collapsible">图形学 <span class="right arrow"></span></p><ul style="display:none;" class="vp-sidebar-children"><!--[--><li><p tabindex="0" class="vp-sidebar-item collapsible">数学基础 <span class="right arrow"></span></p><ul style="display:none;" class="vp-sidebar-children"><!--[--><li><a class="route-link auto-link vp-sidebar-item" href="/note/graphics/math/math_01.html" aria-label="矢量"><!--[--><!--[--><!--]--><!--]-->矢量<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/note/graphics/math/math_02.html" aria-label="矩阵"><!--[--><!--[--><!--]--><!--]-->矩阵<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/note/graphics/math/math_03.html" aria-label="立体角"><!--[--><!--[--><!--]--><!--]-->立体角<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/note/graphics/math/transform_01.html" aria-label="几何变换(一)"><!--[--><!--[--><!--]--><!--]-->几何变换(一)<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/note/graphics/math/transform_02.html" aria-label="几何变换(二)"><!--[--><!--[--><!--]--><!--]-->几何变换(二)<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/note/graphics/math/transform_03.html" aria-label="法线变换"><!--[--><!--[--><!--]--><!--]-->法线变换<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/note/graphics/math/transform_04.html" aria-label="摄像机变换"><!--[--><!--[--><!--]--><!--]-->摄像机变换<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="vp-sidebar-item collapsible">光照模型 <span class="right arrow"></span></p><ul style="display:none;" class="vp-sidebar-children"><!--[--><li><a class="route-link auto-link vp-sidebar-item" href="/note/graphics/illumination_model/classic/illumination_model_01.html" aria-label="传统光照模型"><!--[--><!--[--><!--]--><!--]-->传统光照模型<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/note/graphics/illumination_model/luminosity/luminosity.html" aria-label="光度学"><!--[--><!--[--><!--]--><!--]-->光度学<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/note/graphics/illumination_model/BRDF/BRDF.html" aria-label="双向反射分布函数(BRDF)"><!--[--><!--[--><!--]--><!--]-->双向反射分布函数(BRDF)<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/note/graphics/illumination_model/microfacets/microfacets_1.html" aria-label="微平面理论(一)"><!--[--><!--[--><!--]--><!--]-->微平面理论(一)<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/note/graphics/illumination_model/microfacets/microfacets_2.html" aria-label="微平面理论(二)"><!--[--><!--[--><!--]--><!--]-->微平面理论(二)<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/note/graphics/illumination_model/microfacets/microfacets_3.html" aria-label="微平面理论(三)"><!--[--><!--[--><!--]--><!--]-->微平面理论(三)<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/note/graphics/illumination_model/render_function/render_function_1.html" aria-label="光照方程"><!--[--><!--[--><!--]--><!--]-->光照方程<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="vp-sidebar-item collapsible">环境光渲染 <span class="right arrow"></span></p><ul style="display:none;" class="vp-sidebar-children"><!--[--><li><a class="route-link auto-link vp-sidebar-item" href="/note/graphics/image_based_lighting/ibl_01.html" aria-label="环境光渲染(一)"><!--[--><!--[--><!--]--><!--]-->环境光渲染(一)<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/note/graphics/image_based_lighting/ibl_02.html" aria-label="环境光渲染(二)"><!--[--><!--[--><!--]--><!--]-->环境光渲染(二)<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul></li><!--]--></ul></li><li><p tabindex="0" class="vp-sidebar-item collapsible">编程语言 <span class="right arrow"></span></p><ul style="display:none;" class="vp-sidebar-children"><!--[--><li><p tabindex="0" class="vp-sidebar-item collapsible">JavaScript <span class="right arrow"></span></p><ul style="display:none;" class="vp-sidebar-children"><!--[--><li><a class="route-link auto-link vp-sidebar-item" href="/note/language/javascript/helloworld.html" aria-label="环境搭建"><!--[--><!--[--><!--]--><!--]-->环境搭建<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/note/language/javascript/grammar.html" aria-label="基本语法"><!--[--><!--[--><!--]--><!--]-->基本语法<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/note/language/javascript/function.html" aria-label="函数"><!--[--><!--[--><!--]--><!--]-->函数<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/note/language/javascript/object_and_class.html" aria-label="对象和类"><!--[--><!--[--><!--]--><!--]-->对象和类<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul></li><!--]--></ul></li><!--]--></ul></li><!--]--></ul><!--[--><!--]--></aside><!--]--><!--[--><main class="vp-page"><!--[--><!--]--><div vp-content><!--[--><!--]--><div><h2 id="我的文章" tabindex="-1"><a class="header-anchor" href="#我的文章"><span>我的文章</span></a></h2><ul><li>从抛币协议到智能合约 <ul><li><a class="route-link" href="/blog/2025/02/MentalPoker01.html">Part1</a>, <a class="route-link" href="/blog/2025/02/MentalPoker02.html">Part2</a></li></ul></li><li>JPEG算法解密 <ul><li><a class="route-link" href="/blog/2025/02/JPEG001.html">Part1</a>, <a class="route-link" href="/blog/2025/02/JPEG002.html">Part2</a>, <a class="route-link" href="/blog/2025/02/JPEG003.html">Part3</a>, <a class="route-link" href="/blog/2025/02/JPEG004.html">Part4</a>, <a class="route-link" href="/blog/2025/02/JPEG005.html">Part5</a></li><li><a href="http://github.com/thejinchao/jpeg_encoder" target="_blank" rel="noopener noreferrer">Github</a></li></ul></li><li>SPH算法简介 <ul><li><a class="route-link" href="/blog/2025/02/SPH001.html">Part1</a>, <a class="route-link" href="/blog/2025/02/SPH002.html">Part2</a>, <a class="route-link" href="/blog/2025/02/SPH003.html">Part3</a>, <a class="route-link" href="/blog/2025/02/SPH004.html">Part4</a></li><li><a href="https://github.com/thejinchao/fluid" target="_blank" rel="noopener noreferrer">Github</a></li></ul></li><li><a class="route-link" href="/blog/2025/02/Martingle.html">赌博中的数学:Martingle策略</a></li><li><a class="route-link" href="/blog/2025/02/RandRound.html">如何生成一个随机的圆形</a></li><li><a class="route-link" href="/blog/2025/02/DH.html">一个简单的DH密钥协商算法的实现</a>, <a href="https://github.com/thejinchao/dhexchange" target="_blank" rel="noopener noreferrer">Github</a></li><li><a class="route-link" href="/blog/2025/02/SegmentCircle.html">如何计算线段和圆的交点</a></li><li><a class="route-link" href="/blog/2025/02/Ellipse.html">一道数学趣题</a></li><li><a class="route-link" href="/blog/2025/02/Fibonacci.html">斐波那契数列和1/89</a></li><li><a class="route-link" href="/blog/2025/03/BezierLine.html">匀速贝塞尔曲线运动实现</a></li></ul><h2 id="开源项目" tabindex="-1"><a class="header-anchor" href="#开源项目"><span>开源项目</span></a></h2><ul><li><a href="https://github.com/thejinchao/turbolink" target="_blank" rel="noopener noreferrer">Turbolink</a><br> TurboLink 是一个Unreal Engine插件, 能够在Unreal Engine 中通过C++或者蓝图使用Google gRPC.</li><li><a href="https://github.com/thejinchao/TinyEncrypt" target="_blank" rel="noopener noreferrer">TinyEncrypt</a><br> 在UE中实现DH密钥交换和TEA加密,用于实网络通讯加密</li><li><a href="https://github.com/thejinchao/ue5-style-guide" target="_blank" rel="noopener noreferrer">UnrealStyleGuide</a><br> 比较全面的UnrealEngine项目工程规范</li><li><a href="https://github.com/thejinchao/AxTrace" target="_blank" rel="noopener noreferrer">AxTrace</a><br> 实时日志以及数据图形化查看工具</li><li><a href="https://github.com/thejinchao/cyclone" target="_blank" rel="noopener noreferrer">Cyclone</a><br> 一套轻量级的跨平台网络库</li></ul><h2 id="个人笔记" tabindex="-1"><a class="header-anchor" href="#个人笔记"><span>个人笔记</span></a></h2><ul><li>数学相关 <ul><li><a class="route-link" href="/note/math/symbol.html">常用数学符号</a></li><li><a class="route-link" href="/note/math/group.html">群</a></li><li>数论(<a class="route-link" href="/note/math/number_theory_1.html">一</a>, <a class="route-link" href="/note/math/number_theory_2.html">二</a>, <a class="route-link" href="/note/math/number_theory_3.html">三</a>)</li><li><a class="route-link" href="/note/math/probability.html">概率</a></li></ul></li><li>密码学 <ul><li><a class="route-link" href="/note/cryptography/rsa.html">RSA</a></li><li><a class="route-link" href="/note/cryptography/flip_coin.html">抛币协议</a></li><li><a class="route-link" href="/note/cryptography/mental_poker.html">智能扑克</a></li></ul></li><li>图形学 <ul><li><a class="route-link" href="/note/graphics/math/">数学基础</a></li><li><a class="route-link" href="/note/graphics/illumination_model/">光照模型</a></li><li><a class="route-link" href="/note/graphics/image_based_lighting/">环境光渲染</a></li></ul></li><li>编程语言 <ul><li><a class="route-link" href="/note/language/javascript/">JavaScript</a></li></ul></li></ul></div><!--[--><!--]--></div><footer class="vp-page-meta"><div class="vp-meta-item edit-link"><a class="auto-link external-link label" href="https://github.com/thejinchao/thejinchao.github.io/edit/main/index.md" aria-label="Edit this page" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><svg class="edit-icon" viewbox="0 0 1024 1024"><g fill="currentColor"><path d="M430.818 653.65a60.46 60.46 0 0 1-50.96-93.281l71.69-114.012 7.773-10.365L816.038 80.138A60.46 60.46 0 0 1 859.225 62a60.46 60.46 0 0 1 43.186 18.138l43.186 43.186a60.46 60.46 0 0 1 0 86.373L588.879 565.55l-8.637 8.637-117.466 68.234a60.46 60.46 0 0 1-31.958 11.229z"></path><path d="M728.802 962H252.891A190.883 190.883 0 0 1 62.008 771.98V296.934a190.883 190.883 0 0 1 190.883-192.61h267.754a60.46 60.46 0 0 1 0 120.92H252.891a69.962 69.962 0 0 0-69.098 69.099V771.98a69.962 69.962 0 0 0 69.098 69.098h475.911A69.962 69.962 0 0 0 797.9 771.98V503.363a60.46 60.46 0 1 1 120.922 0V771.98A190.883 190.883 0 0 1 728.802 962z"></path></g></svg><!--]--><!--]-->Edit this page<!--[--><!--[--><!--]--><!--]--></a></div><div class="vp-meta-item git-info"><!----><div class="vp-meta-item contributors"><span class="meta-item-label">Contributors: </span><span class="meta-item-info"><!--[--><!--[--><span class="contributor" title="email: thejinchao@gmail.com">thejinchao</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: neochaojin@tencent.com">neochaojin</span><!----><!--]--><!--]--></span></div></div></footer><!----><!--[--><!--]--></main><!--]--></div><!--[--><!----><!--]--><!--]--></div>
<script type="module" src="/assets/app-CdF2Bty1.js" defer></script>
</body>
</html>