1<!doctype html><html lang=en-us dir=ltr data-wc-theme-default=dark><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=generator content="Hugo Blox Builder 0.10.0"><meta name=author content="Boding Ouyang"><meta name=description content="2024å¹´æ¥ãèªå¤©å¨è½¨éå¨åå¦ãè¯¾ç¨æ´ççç¬è®°ï¼2026å¹´4æ5æ¥å¯¼åºè³æ¤ã"><link rel=alternate hreflang=en-us href=https://www.oybdooo.top/post/orbit-dyn/><link rel=stylesheet href=/css/themes/cyan.min.css> 2 3 4 5 6 7 8 9 10 11 12 13 <link rel="stylesheet" href="/css/_entry.3f663481e33504855ea6a15bd254dbc69760c915b964a48eaceb075c5caaad44.css" integrity="sha256-P2Y0geM1BIVepqFb0lTbxpdgyRW5ZKSOrOsHXFyqrUQ=" crossorigin="anonymous"> 14 15 16 17 18 19
20<script src=/js/hb-head.min.01cd73a09512f0fc45bed2c68f9f9a23041c57dafb87c91cf91373611031bd84.js integrity="sha256-Ac1zoJUS8PxFvtLGj5+aIwQcV9r7h8kc+RNzYRAxvYQ=" crossorigin=anonymous></script>
20<link rel=icon type=image/png href=/media/icon_hu_d2801d2ef9a4d96b.png><link rel=apple-touch-icon type=image/png href=/media/icon_hu_6085244891af1178.png><link rel=canonical href=https://www.oybdooo.top/post/orbit-dyn/><meta property="twitter:card" content="summary_large_image"><meta property="twitter:site" content="@GetResearchDev"><meta property="twitter:creator" content="@GetResearchDev"><meta property="og:site_name" content="Boding Ouyang's Homepage"><meta property="og:url" content="https://www.oybdooo.top/post/orbit-dyn/"><meta property="og:title" content="èªå¤©å¨è½¨éå¨åå¦å¦ä¹ ç¬è®° | Boding Ouyang's Homepage"><meta property="og:description" content="2024å¹´æ¥ãèªå¤©å¨è½¨éå¨åå¦ãè¯¾ç¨æ´ççç¬è®°ï¼2026å¹´4æ5æ¥å¯¼åºè³æ¤ã"><meta property="og:image" content="https://www.oybdooo.top/post/orbit-dyn/featured.jpg"><meta property="twitter:image" content="https://www.oybdooo.top/post/orbit-dyn/featured.jpg"><meta property="og:locale" content="en-us"><meta property="article:published_time" content="2026-04-05T00:00:00+00:00"><meta property="article:modified_time" content="2026-04-05T00:00:00+00:00"><title>èªå¤©å¨è½¨éå¨åå¦å¦ä¹ ç¬è®° | Boding Ouyang's Homepage</title><style>@font-face{font-family:inter var;font-style:normal;font-weight:100 900;font-display:swap;src:url(/dist/font/Inter.var.woff2)format(woff2)}</style>
20<script defer src=/js/hugo-blox-en.min.65b31b94cb4f09cfd8f827efdb711400b677b90781e4aee753207d95de698687.js integrity="sha256-ZbMblMtPCc/Y+Cfv23EUALZ3uQeB5K7nUyB9ld5phoc="></script>
20<script>console.log("â Alpine.js loading on demand")</script>
20<script src=/dist/lib/alpinejs/cdn.min.e041f1b639d1e6b2fc2736d8d7638a409afcd444a6ec90446f8f4e44fa36f406.js integrity="sha256-4EHxtjnR5rL8JzbY12OKQJr81ESm7JBEb49ORPo29AY=" defer></script>
20<script defer src=/js/hb-search.min.135366008264b9d452ff89aad28374bc7e4b40d2c047098318511786419873b0.js integrity="sha256-E1NmAIJkudRS/4mq0oN0vH5LQNLARwmDGFEXhkGYc7A="></script>
20<link type=text/css rel=stylesheet href=/dist/lib/katex/katex.min.19095127357ed6d29fe0a63a6b000c913a89f7f1963b765dd3715e97c9852e75.css integrity="sha256-GQlRJzV+1tKf4KY6awAMkTqJ9/GWO3Zd03Fel8mFLnU=">
20<script defer src=/dist/lib/katex/katex.min.e8d885505949f3a5f4abdd5dd0d53696bd1371ad26ffbf4f310dcd77c8cdae89.js integrity="sha256-6NiFUFlJ86X0q91d0NU2lr0Tca0m/79PMQ3Nd8jNrok="></script>
20<script defer src=/js/katex-renderer.7bdcf3f3f669a04734c54d2fe7c91a2d07b44e4ec8f1ea72384893db11a740eb.js integrity="sha256-e9zz8/ZpoEc0xU0v58kaLQe0Tk7I8epyOEiT2xGnQOs="></script>
20<script async defer src=https://buttons.github.io/buttons.js></script>
20<script>document.addEventListener("DOMContentLoaded",function(){if(window.location.pathname.startsWith("/post/")&&document.body.classList.add("is-post-page"),window.location.pathname==="/"){var e=document.createElement("video");e.id="bg-video",e.autoplay=!0,e.muted=!0,e.loop=!0,e.playsInline=!0,e.setAttribute("playsinline",""),e.src="/media/neptune-bg.mp4",document.body.prepend(e)}})</script>
20<link rel=preconnect href=https://fonts.googleapis.com><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&family=Inter:wght@300;400;500;600;700&display=swap" rel=stylesheet><style>:root{--glow-cyan:0 188 212;--glow-blue:59 130 246;--glow-purple:139 92 246;--glass-bg:rgba(15, 23, 42, 0.6);--glass-border:rgba(0, 188, 212, 0.15);--gradient-primary:linear-gradient(135deg, #06b6d4, #3b82f6, #8b5cf6);--gradient-subtle:linear-gradient(135deg, rgba(6,182,212,0.1), rgba(139,92,246,0.1))}.bio-grid{grid-template-columns:1fr}@media(min-width:768px){.bio-grid{grid-template-columns:30% 1fr}}.dark h1,.dark h2,.dark h3,.dark h4,h1,h2,h3,h4{font-family:space grotesk,system-ui,sans-serif!important;letter-spacing:-.02em}body{font-family:inter,system-ui,-apple-system,sans-serif!important}code,pre,.font-mono{font-family:jetbrains mono,fira code,monospace!important}.dark h2.font-bold.tracking-tight,.dark h3.font-bold.tracking-tight{background:var(--gradient-primary)!important;-webkit-background-clip:text!important;-webkit-text-fill-color:transparent!important;background-clip:text!important}.dark .page-body article.prose>h1{background:var(--gradient-primary)!important;-webkit-background-clip:text!important;-webkit-text-fill-color:transparent!important;background-clip:text!important}.dark .page-body h3.text-3xl,.dark .page-body .text-3xl.font-bold{background:var(--gradient-primary)!important;-webkit-background-clip:text!important;-webkit-text-fill-color:transparent!important;background-clip:text!important}.dark .page-body>.prose h1,.dark .page-body>.prose h2,.dark .page-body article>main h1,.dark .page-body article>main h2{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.dark .page-body article h2 .relative{-webkit-text-fill-color:inherit!important}.dark section:not(:first-child) .text-3xl,.dark section:not(:first-child) .text-2xl{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.dark header{background:rgba(2,6,23,.8)!important;backdrop-filter:blur(24px)saturate(180%)!important;-webkit-backdrop-filter:blur(24px)saturate(180%)!important;border-bottom:1px solid rgba(0,188,212,.12)!important;box-shadow:0 1px 30px rgba(0,188,212,6%)!important}.dark header .navbar-brand{font-family:space grotesk,system-ui,sans-serif!important;font-weight:700!important;letter-spacing:.02em;background:linear-gradient(135deg,#22d3ee,#a78bfa)!important;-webkit-background-clip:text!important;-webkit-text-fill-color:transparent!important;background-clip:text!important;transition:all .3s ease!important}.dark header .navbar-brand:hover{filter:brightness(1.2);text-shadow:none}.dark .nav-link{color:rgba(203,213,225,.85)!important;font-family:space grotesk,system-ui,sans-serif!important;font-weight:500!important;font-size:.9rem!important;letter-spacing:.04em;text-transform:uppercase;position:relative;padding:.5rem .75rem!important;transition:all .3s cubic-bezier(.4,0,.2,1)!important}.dark .nav-link.active{color:#22d3ee!important}.dark .nav-link.active::after{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:60%;height:2px;background:linear-gradient(90deg,transparent,#06b6d4,transparent);border-radius:1px}.dark .nav-link:hover{color:#22d3ee!important;text-shadow:0 0 12px rgba(0,188,212,.5),0 0 24px rgba(0,188,212,.2)!important;-webkit-text-fill-color:#22d3ee!important}.dark .nav-link::before{content:'';position:absolute;bottom:0;left:50%;width:0;height:1px;background:linear-gradient(90deg,#06b6d4,#8b5cf6);transition:all .3s cubic-bezier(.4,0,.2,1);transform:translateX(-50%);box-shadow:0 0 8px rgba(0,188,212,.3)}.dark .nav-link:hover::before{width:80%}.nav-link:hover{color:#0891b2!important;-webkit-text-fill-color:#0891b2!important}.dark header button,.dark header [data-search-toggle]{color:rgba(203,213,225,.7)!important;transition:all .3s ease!important}.dark header button:hover,.dark header [data-search-toggle]:hover{color:#22d3ee!important;filter:drop-shadow(0 0 6px rgba(0,188,212,.4))}#bg-video{position:fixed;top:0;left:0;width:100vw;height:100vh;object-fit:cover;z-index:-2;opacity:.35;pointer-events:none;filter:brightness(.6)saturate(1.2)}.dark body{background:#050510!important}.dark .page-body::before{content:'';position:fixed;top:0;left:0;width:100%;height:100%;background-image:radial-gradient(rgba(0,188,212,6%) 1px,transparent 1px);background-size:30px 30px;pointer-events:none;z-index:-1}.dark .card,.dark [class*=bg-neutral],.dark .rounded-lg[class*=shadow],.dar
20k article.bg-white\/70,.dark .bg-white\/70{background:rgba(15,23,42,.5)!important;backdrop-filter:blur(12px)!important;-webkit-backdrop-filter:blur(12px)!important;border:1px solid rgba(0,188,212,8%)!important;transition:all .4s cubic-bezier(.4,0,.2,1)!important}.dark .card:hover,.dark article.bg-white\/70:hover,.dark .bg-white\/70:hover{border-color:rgba(0,188,212,.25)!important;box-shadow:0 0 30px rgba(0,188,212,8%),0 8px 32px rgba(0,0,0,.3)!important;transform:translateY(-2px)!important}.dark .hb-article-grid-item{background:rgba(15,23,42,.4)!important;border:1px solid rgba(0,188,212,8%)!important;border-radius:12px!important;transition:transform .6s cubic-bezier(.25,.46,.45,.94),border-color .4s ease,box-shadow .4s ease!important;overflow:hidden}.dark .hb-article-grid-item:hover{border-color:rgba(0,188,212,.3)!important;box-shadow:0 0 40px rgba(0,188,212,.1),inset 0 0 20px rgba(0,188,212,2%)!important;transform:scale(1.03)!important}.dark .btn-primary,.dark a[class*=btn][class*=primary],.dark .bg-primary-700{position:relative;overflow:hidden;box-shadow:0 0 15px rgba(0,188,212,.2)!important;transition:all .3s ease!important}.dark .btn-primary:hover,.dark a[class*=btn][class*=primary]:hover{box-shadow:0 0 25px rgba(0,188,212,.4),0 0 60px rgba(0,188,212,.15)!important}.dark a:not([class*=btn]):not(header a):not(footer a){transition:color .3s ease,text-shadow .3s ease}.dark .page-body a:not([class*=btn]):hover{text-shadow:0 0 8px rgba(0,188,212,.3)}.dark .group[class*=from-gray-800][class*=rounded-lg]{border:1px solid rgba(0,188,212,.1)!important;transition:all .4s cubic-bezier(.4,0,.2,1)!important}.dark .group[class*=from-gray-800][class*=rounded-lg]:hover{border-color:rgba(0,188,212,.45)!important;box-shadow:0 0 20px rgba(0,188,212,.1),0 4px 16px rgba(0,0,0,.2)!important}.dark section:first-child .dark{position:relative}.dark section:first-child .dark::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(0,188,212,.3),rgba(139,92,246,.3),transparent)}.dark .page-body>section+section::before{content:'';display:block;height:1px;margin:0 auto 3rem;max-width:200px;background:linear-gradient(90deg,transparent,rgba(0,188,212,.25),transparent)}@keyframes fadeInUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.dark section{animation:fadeInUp .6s ease-out both}.dark section:nth-child(2){animation-delay:.1s}.dark section:nth-child(3){animation-delay:.2s}.dark section:nth-child(4){animation-delay:.3s}.dark section:nth-child(5){animation-delay:.4s}.dark section:nth-child(6){animation-delay:.5s}.dark .badge,.dark [class*=tag],.dark span[class*=rounded-full]{border:1px solid rgba(0,188,212,.15)!important;background:rgba(0,188,212,6%)!important;color:rgba(165,243,252,.9)!important;transition:all .3s ease!important}.dark .badge:hover,.dark [class*=tag]:hover,.dark span[class*=rounded-full]:hover{background:rgba(0,188,212,.12)!important;border-color:rgba(0,188,212,.4)!important;color:#22d3ee!important;text-shadow:0 0 8px rgba(0,188,212,.3);box-shadow:0 0 12px rgba(0,188,212,.15)!important;box-shadow:0 0 10px rgba(0,188,212,.15)!important}.dark pre{background:rgba(10,15,30,.8)!important;border:1px solid rgba(0,188,212,.1)!important;border-radius:8px!important}.dark footer{border-top:1px solid rgba(0,188,212,.1)!important;background:rgba(2,6,23,.8)!important}.dark ::-webkit-scrollbar{width:8px}.dark ::-webkit-scrollbar-track{background:#0a0a1a}.dark ::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#06b6d4,#8b5cf6);border-radius:4px}.dark ::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#22d3ee,#a78bfa)}.dark [class*=pagefind],.dark .pagefind-ui{background:rgba(15,23,42,.95)!important;backdrop-filter:blur(20px)!important}.dark ::selection{background:rgba(0,188,212,.25);color:#e2e8f0}.dark section:first-child{position:relative}.dark section:first-child::before{content:'';position:absolute;top:0;right:0;width:150px;height:150px;background:radial-gradient(circle at top right,rgba(0,188,212,8%) 0%,transparent 70%);pointer-events:none;z-index:0}.dark img[class*=avatar],.dark .rounded-full[class*=shadow]{box-shadow:0 0 20px rgba(0,188,212,.15),0 0 40px rgba(139,92,246,8%)!important;border:2px solid rgba(0,188,212,.15)!important;transition:all .4s ease!important}.dark img[class*=avatar]:hover,.dark .rounded-full[class*=shadow]:hover{box-shadow:0 0 30px rgba(0,188,212,.25),0 0 60px rgba(139,92,246,.12)!important;border-color:rgba(0,188,212,.3)!important}@media(min-width:1024px){body.is-post-page .page-body article>main>.prose,body.is-post-page .page-body article>main>.container.prose{font-size:.9375rem;line-height:1.75}}*{transition-property:background-color,border-color,box-shadow;transition-duration:.3s;transition-timing-function:ease}a,button,input,img,video,svg,pre,code{transition-property:none}a{transition:color .3s ease,text-shadow .3s ease!important}:root{--orbit-void:#030712;--orbit-ink:#071120;--orbit-panel:rgba(8, 23, 42, 0.72);--orbit-panel-strong:rgba(9, 28, 52, 0.9);--orbit-line:rgba(116, 220, 255, 0.24);--orbit-line-soft:rgba(116, 220, 255, 0.1);--orbit-cyan:#69dcff;--orbit-cyan-bright:#b7f1ff;--orbit-violet:#a78bfa;--orbit-text:#edf8ff;--orbit-muted:#a8bdcf}.dark body{color:var(--orbit-text);background:#050510!important}#bg-video{opacity:.42;filter:none!important}.dark .page-body{isolation:isolate}.dark .page-body::before{display:none!important}.dark header{position:relative;background:linear-gradient(90deg,rgba(3,8,19,.94),rgba(7,20,37,.9),rgba(3,8,19,.94))!important;border-bottom-color:var(--orbit-line)!important;box-shadow:0 14px 40px rgba(0,0,0,.22),inset 0 -1px rgba(183,241,255,4%)!important}.dark header::after{content:'';position:absolute;bottom:-1px;left:50%;width:min(56vw,44rem);height:1px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,var(--orbit-cyan),var(--orbit-violet),transparent);box-shadow:0 0 18px rgba(105,220,255,.42);pointer-events:none}.dark header .navbar-brand{letter-spacing:.045em;background:linear-gradient(105deg,#dff9ff 10%,var(--orbit-cyan) 52%,#bba8ff 92%)!important;-webkit-background-clip:text!important;-webkit-text-fill-color:transparent!important;background-clip:text!important}.dark .nav-link{font-size:1rem!important;font-weight:600!important;letter-spacing:.11em;color:rgba(223,240,249,.72)!important}.dark .nav-link.active,.dark .nav-link:hover{color:var(--orbit-cyan)!important;text-shadow:0 0 14px rgba(105,220,255,.38)!important}.dark #section-resume-biography-3{isolation:isolate;overflow:hidden;padding-top:clamp(2.75rem,3.2vw,3rem)!important}.dark #section-resume-biography-3 .home-section-bg{background:0 0!important}.dark #section-resume-biography-3::before{display:none}.dark #section-resume-biography-3::after{display:none}.dark #section-resume-biography-3 .resume-biography{position:relative;z-index:1;padding-top:clamp(3.25rem,4vw,4rem);padding-bottom:clamp(3.5rem,8vw,6.5rem)}.dark #section-resume-biography-3 .avatar-wrapper{position:relative}.dark #section-resume-biography-3 .avatar-wrapper::after{display:none}.dark #section-resume-biography-3 img.avatar{border-color:#071221!important;box-shadow:none!important;transition:transform .28s ease,filter .28s ease!important}.dark #section-resume-biography-3 .flex.flex-wrap.justify-center.gap-3>a{border-color:transparent!important;background:rgba(4,18,34,.38)!important;box-shadow:none!important;transition:background-color .22s ease,color .22s ease,transform .22s ease,box-shadow .22s ease!important}.dark #section-resume-biography-3 .flex.flex-wrap.justify-center.gap-3>a:hover{border-color:transparent!important;background:rgba(17,57,84,.58)!important}.dark #section-resume-biography-3 a[href*="resume.pdf"]{border:0!important;border-radius:.5rem!important;background:linear-gradient(112deg,rgba(14,83,126,.9) 0%,rgba(14,83,126,.9) 38%,rgba(90,216,255,.94) 50%,rgba(76,127,202,.92) 62%,rgba(14,83,126,.9) 76%)!important;background-size:240% 100%!important;background-position:100%!important;box-shadow:none!important;letter-spacing:.025em;transition:background-position .42s cubic-bezier(.22,.61,.36,1),color .2s ease,transform .22s ease,box-shadow .22s ease!important}@media(hover:hover) and (prefers-reduced-motion:no-preference){.dark .nav-link{transition:color .2s ease,text-shadow .2s ease,opacity .2s ease!important}.dark .nav-link:hover::before{transition-duration:.24s}.dark #section-resume-biography-3 .avatar-wrapper:hover img.avatar{transform:scale(1.018);
20filter:brightness(1.06)saturate(1.08)}.dark #section-resume-biography-3 .flex.flex-wrap.justify-center.gap-3>a:hover{color:var(--orbit-cyan-bright)!important;transform:translateY(-2px)scale(1.035)!important;box-shadow:0 9px 20px rgba(31,182,231,.16)!important}.dark #section-resume-biography-3 a[href*="resume.pdf"]:hover{background-position:0!important;transform:translateY(-1px)!important;box-shadow:0 10px 24px rgba(39,186,236,.2)!important}}.dark .page-body>section+section::before{max-width:min(72vw,48rem);margin:0 auto clamp(2.5rem,5vw,4rem);background:linear-gradient(90deg,transparent,rgba(105,220,255,.18),rgba(167,139,250,.34),rgba(105,220,255,.18),transparent)!important;box-shadow:0 0 16px rgba(105,220,255,.1)}.dark .page-body>section:not(#section-resume-biography-3) .text-3xl.font-bold{letter-spacing:-.035em;text-shadow:0 12px 30px rgba(0,0,0,.24)}.dark .page-body>section:not(#section-resume-biography-3) .text-3xl.font-bold::after{content:'';display:block;width:4.5rem;height:1px;margin:.9rem auto 0;background:linear-gradient(90deg,transparent,var(--orbit-cyan),transparent);box-shadow:0 0 12px rgba(105,220,255,.52)}.dark .page-body [role=article],.dark .page-body .hb-article-grid-item{border:0!important;border-radius:.45rem!important;background:rgba(5,14,28,.42)!important;box-shadow:none!important}.dark .page-body [role=article]>div:first-child{border-bottom:0}.dark .page-body [role=article]:hover,.dark .page-body .hb-article-grid-item:hover{border-color:transparent!important;box-shadow:none!important;transform:none!important}.dark .pub-list-item.view-citation{padding:1rem 1.15rem;border:0;border-radius:0;background:0 0;transition:none}.dark .pub-list-item.view-citation:hover{border-color:transparent;transform:none;background:0 0}.dark .blox-resume-experience ol{border-color:rgba(105,220,255,.24)!important}.dark .blox-resume-experience ol li{margin-bottom:1.45rem;padding:.2rem 0 .55rem;border:0;border-radius:0;background:0 0;box-shadow:none;transition:none}.dark .blox-resume-experience ol li:hover{border-color:transparent;transform:none;background:0 0}.dark .blox-resume-experience li>span.absolute{border:0!important;background:rgba(7,36,58,.74)!important;box-shadow:none!important}.dark .blox-resume-experience li>span.absolute svg{color:var(--orbit-cyan-bright)!important}.dark .blox-resume-experience time{font-family:jetbrains mono,fira code,monospace;font-size:.74rem;letter-spacing:.035em;color:var(--orbit-cyan)!important}.dark .blox-resume-experience li>span:not(.absolute){color:rgba(225,243,250,.76)!important}.dark .page-body .prose,.dark .page-body .text-gray-600,.dark .page-body .text-gray-500{color:var(--orbit-muted)!important}.dark .page-body a:not(header a):not(footer a):hover{color:var(--orbit-cyan-bright)!important}.dark section{animation:none!important}.dark .blox-resume-experience,.dark .blox-resume-experience *,.dark .blox-resume-experience *::before,.dark .blox-resume-experience *::after{transition:none!important;will-change:auto}.dark #section-resume-biography-3 .group[class*=from-gray-800][class*=rounded-lg]{border-color:transparent!important;background:0 0!important;box-shadow:none!important}.dark footer{background:linear-gradient(180deg,rgba(3,9,19,.72),rgba(3,7,18,.98))!important;border-top-color:var(--orbit-line)!important}.dark :focus-visible{outline:2px solid var(--orbit-cyan);outline-offset:3px}@media(max-width:767px){.dark #section-resume-biography-3 .max-w-7xl>div[style*=grid-template-columns]{grid-template-columns:1fr!important;gap:2.25rem!important}.dark #section-resume-biography-3 .resume-biography{padding-top:3.25rem;padding-bottom:4.5rem}.dark #section-resume-biography-3::before{top:-21rem;right:-31rem}.dark .page-body>section+section::before{max-width:68vw}.dark .blox-resume-experience ol li{padding:.9rem .9rem .25rem}}@media(prefers-reduced-motion:reduce){.dark *,.dark *::before,.dark *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}</style></head><body class="dark:bg-hb-dark dark:text-white page-wrapper" id=top><div id=page-bg></div><div class="page-header sticky top-0 z-30"><header id=site-header class=header><nav class="navbar px-3 flex justify-start"><div class="order-0 h-full"><a class=navbar-brand href=/ title="Boding Ouyang's Homepage">Boding Ouyang</a></div>
20<input id=nav-toggle type=checkbox class=hidden> 21<label for=nav-toggle class="order-3 cursor-pointer flex items-center lg:hidden text-dark dark:text-white lg:order-1"><svg id="show-button" class="h-6 fill-current block" viewBox="0 0 20 20"><title>Open Menu</title><path d="M0 3h20v2H0V3zm0 6h20v2H0V9zm0 6h20v2H0V0z"/></svg> 22<svg id="hide-button" class="h-6 fill-current hidden" viewBox="0 0 20 20"><title>Close Menu</title><polygon points="11 9 22 9 22 11 11 11 11 22 9 22 9 11 -2 11 -2 9 9 9 9 -2 11 -2" transform="rotate(45 10 10)"/></svg></label><ul id=nav-menu class="navbar-nav order-3 hidden lg:flex w-full pb-6 lg:order-1 lg:w-auto lg:space-x-2 lg:pb-0 xl:space-x-8 justify-start"><li class=nav-item><a class=nav-link href=/>Bio</a></li><li class=nav-item><a class=nav-link href=/#papers>Papers</a></li><li class=nav-item><a class=nav-link href=/#talks>Talks</a></li><li class=nav-item><a class=nav-link href=/#blogs>Blogs</a></li><li class=nav-item><a class=nav-link href=/experience/>Experience</a></li><li class=nav-item><a class=nav-link href=/projects/>Projects</a></li><li class=nav-item><a class=nav-link href=/teaching/>Teaching</a></li></ul><div class="order-1 ml-auto flex items-center md:order-2 lg:ml-0"><button aria-label="toggle search" class="text-black hover:text-primary inline-block px-3 text-xl dark:text-white cursor-pointer" data-search-toggle>
23<svg height="16" width="16" viewBox="0 0 512 512" fill="currentColor"><path d="M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8.0 45.3s-32.8 12.5-45.3.0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9.0 208S93.1.0 208 0 416 93.1 416 208zM208 352a144 144 0 100-288 144 144 0 100 288z"/></svg></button></div></nav></header><div x-data=searchModal() x-show=$store.search.open @keydown.escape.window="$store.search.open = false" @keydown.cmd.k.window.prevent="$store.search.open = !$store.search.open" @keydown.ctrl.k.window.prevent="$store.search.open = !$store.search.open" x-cloak class="fixed inset-0 z-[100] bg-black/50 backdrop-blur-sm" style=display:none><div class="absolute inset-0" @click="$store.search.open = false"></div><div class="relative mx-auto mt-[10vh] max-w-3xl" x-show=$store.search.open x-transition:enter="transition ease-out duration-200" x-transition:enter-start="opacity-0 translate-y-4 scale-95" x-transition:enter-end="opacity-100 translate-y-0 scale-100" x-transition:leave="transition ease-in duration-150" x-transition:leave-start="opacity-100 translate-y-0 scale-100" x-transition:leave-end="opacity-0 translate-y-4 scale-95"><div class="mx-4 overflow-hidden rounded-2xl bg-white dark:bg-gray-900 shadow-2xl ring-1 ring-gray-900/10 dark:ring-white/10"><div class="border-b border-gray-200 dark:border-gray-800"><div class="flex items-center gap-3 px-4 py-3"><svg class="h-5 w-5 flex-shrink-0 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5A7 7 0 113 10a7 7 0 0114 0z"/></svg> 24<input x-ref=searchInput x-model=query @input="loading = query.trim() !== ''" @input.debounce.300ms=search() type=text placeholder="Search for answers..." class="flex-1 bg-transparent text-lg outline-none text-gray-900 dark:text-gray-100 placeholder-gray-400" autocomplete=off autofocus><div x-show=loading class=flex-shrink-0><svg class="animate-spin h-5 w-5 text-primary-600" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"/><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373.0.0 5.373.0 12h4zm2 5.291A7.962 7.962.0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"/></svg></div><kbd class="hidden sm:block flex-shrink-0 rounded bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-600 dark:bg-gray-800 dark:text-gray-400">ESC</kbd> 25<button @click="$store.search.open = false" class="flex-shrink-0 rounded-lg p-1 text-gray-400 hover:bg-gray-100 hover:text-gray-600 dark:hover:bg-gray-800 dark:hover:text-gray-300 cursor-pointer"> 26<svg class="h-5 w-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18 18 6M6 6l12 12"/></svg></button></div><div x-show="query && availableFilters.length > 0" x-transition class="border-t border-gray-100 dark:border-gray-800 px-4 py-2"><div class="flex flex-wrap gap-2"><button @click="activeFilter = null; search()" :class="activeFilter === null ? 'bg-primary-100 text-primary-700 dark:bg-primary-900 dark:text-primary-300' : 'bg-gray-100 text-gray-600 hover:bg-gray-200 dark:bg-gray-800 dark:text-gray-400'" class="rounded-full px-3 py-1 text-xs font-medium transition-colors cursor-pointer"> 27All Results 28</button> 29<template x-for="filter in availableFilters" :key=filter.filterKey><button @click="activeFilter = filter.filterKey; search()" :class="activeFilter === filter.filterKey ? 'bg-primary-100 text-primary-700 dark:bg-primary-900 dark:text-primary-300' : 'bg-gray-100 text-gray-600 hover:bg-gray-200 dark:bg-gray-800 dark:text-gray-400'" class="rounded-full px-3 py-1 text-xs font-medium transition-colors cursor-pointer" x-text="filter.label + ' (' + filter.count + ')'"></button></template></div></div></div><div class="max-h-[60vh] overflow-y-auto"><div x-show="!query && results.length === 0" class=p-6></div><div x-show="query && results.length > 0" class="divide-y divide-gray-200 dark:divide-gray-800"><template x-for="(result, index) in results" :key=result.id><a :href=result.url @mouseenter="selectedIndex = index" @click="$store.search.open = false" :class="selectedIndex === index ? 'bg-primary-50 dark:bg-primary-900/20 border-l-2 border-primary-600' : ''" class="block px-6 py-4 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors group search-result"><div class="flex items-center gap-2 mb-2 flex-wrap"><span x-show="result.filters && result.filters.type" :class="{ 30 'bg-primary-100 text-primary-700 dark:bg-primary-900 dark:text-primary-300': result.filters.type && result.filters.type[0] === 'questions', 31 'bg-green-100 text-green-700 dark:bg-green-900 dark:text-green-300': result.filters.type && result.filters.type[0] === 'faq', 32 'bg-blue-100 text-blue-700 dark:bg-blue-900 dark:text-blue-300': result.filters.type && result.filters.type[0] === 'docs' 33 }" class="inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium" x-text="result.filters.type ? (typeLabels[result.filters.type[0]] || result.filters.type[0]) : ''"></span> 34<span x-show="result.filters && result.filters.category" class="inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-300" x-text="result.filters.category ? result.filters.category[0] : ''"></span> 35<span x-show="result.filters && result.filters.difficulty" class="inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium bg-amber-100 text-amber-700 dark:bg-amber-900 dark:text-amber-300" x-text="result.filters.difficulty ? result.filters.difficulty[0] : ''"></span></div><h3 class="text-lg font-semibold text-gray-900 dark:text-white group-hover:text-primary-600 dark:group-hover:text-primary-400 transition-colors mb-2" x-html="result.meta.title || 'Untitled'"></h3><p class="text-sm text-gray-600 dark:text-gray-400 line-clamp-2" x-html=result.excerpt></p></a></template></div><div x-show="query && loading" class="px-6 py-16 text-center"><div class="inline-flex items-center gap-3"><svg class="animate-spin h-8 w-8 text-primary-600" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"/><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373.0.0 5.373.0 12h4zm2 5.291A7.962 7.962.0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"/></svg><div class=text-left><p class="text-lg font-medium text-gray-900 dark:text-white">Searching...</p><p class="text-sm text-gray-500 dark:text-gray-400" x-text="'Finding results for "' + query + '"'"></p></div></div></div><div x-show="query && results.length === 0 && !loading && hasSearched" class="px-6 py-12 text-center"><svg class="mx-auto h-12 w-12 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
35<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.172 16.172a4 4 0 015.656.0M9 10h.01M15 10h.01M21 12A9 9 0 113 12a9 9 0 0118 0z"/></svg><h3 class="mt-4 text-lg font-semibold text-gray-900 dark:text-white">No results found</h3><p class="mt-2 text-gray-600 dark:text-gray-400" x-text="'No results for "' + query + '"'"></p><button @click="query = ''; $refs.searchInput.focus()" class="mt-4 text-primary-600 hover:text-primary-700 dark:text-primary-400 dark:hover:text-primary-300 font-medium"> 36Clear search</button></div></div><div class="border-t border-gray-200 dark:border-gray-800 px-4 py-3 bg-gray-50 dark:bg-gray-900/50"><div class="flex items-center justify-between text-xs text-gray-500 dark:text-gray-400"><div class="flex items-center gap-3"><span class="flex items-center gap-1"><kbd class="rounded bg-white dark:bg-gray-800 px-1.5 py-0.5 font-mono text-[10px] font-semibold border border-gray-300 dark:border-gray-700">ââ</kbd> 37Navigate 38</span><span class="flex items-center gap-1"><kbd class="rounded bg-white dark:bg-gray-800 px-1.5 py-0.5 font-mono text-[10px] font-semibold border border-gray-300 dark:border-gray-700">âµ</kbd> 39Select 40</span><span x-show="availableFilters.length > 0" class="flex items-center gap-1"><svg class="h-3 w-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z"/></svg> 41<span x-text="availableFilters.length + ' filters'"></span></span></div><a href=https://hugoblox.com target=_blank rel=noopener class="flex items-center gap-1 hover:text-primary-600 dark:hover:text-primary-400 transition-colors"><svg class="h-3 w-3" fill="currentColor" viewBox="0 0 24 24"><path d="M13 10V3L4 14h7v7l9-11h-7z"/></svg> 42Powered by Hugo Blox</a></div></div></div></div></div>
42<script>function searchModal(){return{query:"",results:[],loading:!1,hasSearched:!1,selectedIndex:-1,activeFilter:null,availableFilters:[],trendingSearches:'["Search term 1","Search term 2"]',pagefind:null,typeLabels:{questions:'"Questions"',faq:'"FAQ"',docs:'"Documentation"'},async init(){try{this.pagefind=await import("/pagefind/pagefind.js"),await this.pagefind.init(),console.log("â Pagefind initialized"),await this.loadFilters()}catch(e){console.error("Failed to initialize Pagefind:",e)}this.$watch("$store.search.open",e=>{e?(this.$nextTick(()=>this.$refs.searchInput?.focus()),document.body.style.overflow="hidden"):(document.body.style.overflow="",this.query="",this.results=[],this.selectedIndex=-1,this.hasSearched=!1)}),window.addEventListener("keydown",e=>{if(!this.$store.search.open||this.results.length===0)return;if(e.key==="ArrowDown")e.preventDefault(),this.selectedIndex=this.selectedIndex<this.results.length-1?this.selectedIndex+1:0,this.scrollToSelected();else if(e.key==="ArrowUp")e.preventDefault(),this.selectedIndex=this.selectedIndex>0?this.selectedIndex-1:this.results.length-1,this.scrollToSelected();else if(e.key==="Enter"&&this.selectedIndex>=0){e.preventDefault();const t=this.results[this.selectedIndex];t&&(window.location.href=t.url,this.$store.search.open=!1)}})},scrollToSelected(){this.$nextTick(()=>{const e=document.querySelector(".search-result:nth-child("+(this.selectedIndex+1)+")");e&&e.scrollIntoView({block:"nearest",behavior:"smooth"})})},async search(){if(!this.query.trim()){this.results=[],this.hasSearched=!1;return}this.loading=!0,this.hasSearched=!1;try{const s={};if(this.activeFilter){const[e,t]=this.activeFilter.split(":");s.filters={[e]:t}}const n=await this.pagefind.search(this.query,s);console.log("Search results:",n),console.log("Search filters:",n.filters),this.results=await Promise.all(n.results.slice(0,10).map(async e=>{const t=await e.data();return console.log("Result data:",t),{id:t.url,url:t.url,meta:t.meta,excerpt:t.excerpt,filters:t.filters||{}}}));const e={type:{},category:{},difficulty:{}};this.results.forEach(t=>{t.filters&&(t.filters.type&&t.filters.type.forEach(t=>{e.type[t]=(e.type[t]||0)+1}),t.filters.category&&t.filters.category.forEach(t=>{e.category[t]=(e.category[t]||0)+1}),t.filters.difficulty&&t.filters.difficulty.forEach(t=>{e.difficulty[t]=(e.difficulty[t]||0)+1}))}
42),console.log("Extracted filter counts from results:",e);const t=[];Object.entries(e.type).forEach(([e,n])=>{t.push({category:"type",value:e,label:this.typeLabels[e]||e.charAt(0).toUpperCase()+e.slice(1),count:n,filterKey:`type:${e}`})}),Object.entries(e.category).forEach(([e,n])=>{t.push({category:"category",value:e,label:e,count:n,filterKey:`category:${e}`})}),Object.entries(e.difficulty).forEach(([e,n])=>{t.push({category:"difficulty",value:e,label:e,count:n,filterKey:`difficulty:${e}`})}),this.availableFilters=t,console.log("Final availableFilters array:",this.availableFilters),this.results.length>0&&(this.selectedIndex=0)}catch(e){console.error("Search error:",e),this.results=[]}finally{this.loading=!1,this.hasSearched=!0}},async loadFilters(){try{const e=await this.pagefind.search("");console.log("Available Pagefind filters:",e.filters);const t=[];e.filters&&e.filters.type&&Object.entries(e.filters.type).forEach(([e,n])=>{t.push({category:"type",value:e,label:e.charAt(0).toUpperCase()+e.slice(1),count:n,filterKey:`type:${e}`})}),e.filters&&e.filters.category&&Object.entries(e.filters.category).forEach(([e,n])=>{t.push({category:"category",value:e,label:e,count:n,filterKey:`category:${e}`})}),e.filters&&e.filters.difficulty&&Object.entries(e.filters.difficulty).forEach(([e,n])=>{t.push({category:"difficulty",value:e,label:e,count:n,filterKey:`difficulty:${e}`})}),this.availableFilters=t,console.log("Processed filters:",this.availableFilters)}catch(e){console.error("Failed to load filters:",e)}}}}document.addEventListener("alpine:init",()=>{Alpine.store("search",{open:!1})})</script>
42<style>[x-cloak]{display:none!important}</style></div><div class="page-body my-10"><div class="mx-auto flex max-w-screen-xl"><aside class="hb-sidebar-container max-lg:[transform:translate3d(0,-100%,0)] lg:hidden xl:block"><div class="px-4 pt-4 lg:hidden"></div><div class="hb-scrollbar lg:h-[calc(100vh-var(--navbar-height))]"><ul class="flex flex-col gap-1 lg:hidden"><li><a class="hb-sidebar-custom-link 43text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/teaching/>Teaching 44<span data-hb-sidebar-toggle><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="h-[18px] min-w-[18px] rounded-sm p-0.5 hover:bg-gray-800/5 dark:hover:bg-gray-100/5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" class="origin-center transition-transform rtl:-rotate-180"/></svg></span></a><div class="ltr:pr-0 overflow-hidden"><ul class=hb-sidebar-list><li class="flex flex-col"><a class="hb-sidebar-custom-link 45text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/teaching/ai_program/>AIæ¶ä»£çè®¡ç®æºç¨åºè®¾è®¡è¯¾ï¼2026ï¼</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 46text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/teaching/cplusplus_noip/>ä¿¡æ¯å¦å¥¥æå¹å ç«èµå¹è®</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 47text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/teaching/cplusplus_pre/>大å¦C/C++ç¨åºè®¾è®¡ææè¡æ¥è¯¾ï¼2025ï¼</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 48text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/teaching/js/>Learn JavaScript</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 49text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/teaching/python/>Learn Python</a></li></ul></div></li><li class=open><a class="hb-sidebar-custom-link 50text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/post/>Blog 51<span data-hb-sidebar-toggle><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="h-[18px] min-w-[18px] rounded-sm p-0.5 hover:bg-gray-800/5 dark:hover:bg-gray-100/5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" class="origin-center transition-transform rtl:-rotate-180"/></svg></span></a><div class="ltr:pr-0 overflow-hidden"><ul class=hb-sidebar-list><li class="flex flex-col open"><a class="hb-sidebar-custom-link 52sidebar-active-item bg-primary-100 font-semibold text-primary-800 dark:bg-primary-300 dark:text-primary-900" href=/post/orbit-dyn/>èªå¤©å¨è½¨éå¨åå¦å¦ä¹ ç¬è®°</a><ul class=hb-sidebar-mobile-toc><li><a href=# class=hb-docs-link></a></li></ul></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 53text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/post/atmo-ocean-dyn/>大æ°-æµ·æ´è¦åå¨åå¦å¦ä¹ ç¬è®°</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 54text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/post/atmo-spec-rs/>大æ°å è°±é¥æå¦ä¹ ç¬è®°</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 55text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/post/pae/>è¡æå¤§æ°æ¼åç¬è®°</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 56text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/post/planetprofile/>Local Setup & Quick Start of PlanetProfile</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 57text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/post/my2025/>MY2025</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 58text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/post/occ/>ææºåå¦ä¸çä¸äºè®¡æ°é®é¢</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 59text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/post/psw/>è¡æç©ºé´å¤©æ°ç¬è®°</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 60text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/post/solid-angle/>
60ç«ä½è§å¦ä¹ ç¬è®°</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 61text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/post/driver-licence-kemu1/>æçç§ç®ä¸èè¯ä½éª</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 62text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/post/bs-graduation/>欧é³åä¸çæ¬ç§æ¯ä¸è®ºæè´è°¢</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 63text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/post/my2024/>MY2024</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 64text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/post/my2023/>MY2023</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 65text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/post/2023-summerholiday/>å¤§äºæåpart2ï¼æ²é³ï¼</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 66text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/post/moheharbin/>å¤§äºæåpart1ï¼æ¼ æ²³ãåå°æ»¨ï¼</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 67text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/post/return-to-nansheng-river/>
67é訪åèæ²³</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 68text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/post/probability-and-stat/>æ¦çè®ºä¸æ°çç»è®¡ç¬è®°</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 69text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/post/my2022/>MY2022</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 70text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/post/csps-noip-2020/>CSPS&NOIP2020游记</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 71text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/post/2020-autumn-midterm/>2020ç§å£æä¸èè¯æ»ç»</a></li></ul></div></li><li><a class="hb-sidebar-custom-link 72text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/event/>Recent & Upcoming Talks 73<span data-hb-sidebar-toggle><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="h-[18px] min-w-[18px] rounded-sm p-0.5 hover:bg-gray-800/5 dark:hover:bg-gray-100/5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" class="origin-center transition-transform rtl:-rotate-180"/></svg></span></a><div class="ltr:pr-0 overflow-hidden"><ul class=hb-sidebar-list><li class="flex flex-col"><a class="hb-sidebar-custom-link 74text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/event/planetorgchem/>Final Presentation for Organic Chemistry on Planets</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 75text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/event/geobio/>Final Presentation for Geobiology</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 76text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/event/tujp/>ãããã TUJP ã§åºä¼ã£ããã®</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 77text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/event/computera/>è®¡ç®æºç¨åºè®¾è®¡Aä¹ é¢è¯¾</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 78text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/event/movieart/>çµå½±é³ä¹èºæ¯ææ«æ¥å</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 79text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/event/mohe/>ç©ºé´æ¢æµåºç¡å®ä¹ ï¼æ¼ æ²³ï¼æ±æ¥</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 80text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/event/planetspace/>å°çç³»ç»ç§å¦å¯¼è®ºï¼è¡æç©ºé´ï¼ææ«æ¥å</a></li></ul></div></li><li><a class="hb-sidebar-custom-link 81text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/projects/>Projects</a></li><li><a class="hb-sidebar-custom-link 82text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/project/>Projects 83<span data-hb-sidebar-toggle><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="h-[18px] min-w-[18px] rounded-sm p-0.5 hover:bg-gray-800/5 dark:hover:bg-gray-100/5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" class="origin-center transition-transform rtl:-rotate-180"/></svg></span></a><div class="ltr:pr-0 overflow-hidden"><ul class=hb-sidebar-list><li class="flex flex-col"><a class="hb-sidebar-custom-link 84text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/project/pandas/>Pandas</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 85text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/project/pytorch/>PyTorch</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 86text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/project/scikit/>scikit-learn</a></li></ul></div></li><li><a class="hb-sidebar-custom-link 87text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/experience/>Experience</a></li><li><a class="hb-sidebar-custom-link 88text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/publication/>Publications 89<span data-hb-sidebar-toggle><svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="h-[18px] min-w-[18px] rounded-sm p-0.5 hover:bg-gray-800/5 dark:hover:bg-gray-100/5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" class="origin-center transition-transform rtl:-rotate-180"/></svg></span></a><div class="ltr:pr-0 overflow-hidden"><ul class=hb-sidebar-list><li class="flex flex-col"><a class="hb-sidebar-custom-link 90text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/publication/preprint/>An example preprint / working paper</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 91text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/publication/journal-article/>An example journal article</a></li><li class="flex flex-col"><a class="hb-sidebar-custom-link 92text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href=/publication/conference-paper/>An example conference paper</a></li></ul></div></li></ul><div class="max-xl:hidden h-0 w-64 shrink-0"></div></div></aside><nav class="hb-toc order-last hidden w-64 shrink-0 xl:block print:hidden px-4" aria-label="table of contents"><div class="hb-scrollbar text-sm [hyphens:auto] sticky top-16 overflow-y-auto pr-4 pt-6 max-h-[calc(100vh-var(--navbar-height)-env(safe-area-inset-bottom))] -mr-4 rtl:-ml-4"><p class="mb-4 font-semibold tracking-tight">On this page</p><ul><li class="my-2 scroll-my-6 scroll-py-6"><a class="pl-8 rtl:pr-8 inline-block text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300 w-full break-words" href=#%e7%ac%ac1%e7%ab%a0-%e8%88%aa%e5%a4%a9%e5%99%a8%e8%bf%90%e5%8a%a8%e7%9a%84%e7%a1%ae%e5%ae%9a>第1ç« èªå¤©å¨è¿å¨çç¡®å®</a></li><li class="my-2 scroll-my-6 scroll-py-6"><a class="pl-8 rtl:pr-8 inline-block text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300 w-full break-words" href=#%e7%ac%ac2%e7%ab%a0-%e8%88%aa%e5%a4%a9%e5%99%a8%e7%9a%84%e5%9f%ba%e6%9c%ac%e8%bd%a8%e9%81%93>第2ç« èªå¤©å¨çåºæ¬è½¨é</a></li><li class="my-2 scroll-my-6 scroll-py-6"><a class="pl-8 rtl:pr-8 inline-block text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300 w-full break-words" href=#%e7%ac%ac3%e7%ab%a0-%e8%bd%a8%e9%81%93%e5%bb%ba%e7%ab%8b%e4%b8%8e%e7%a1%ae%e5%ae%9a>第3ç« è½¨é建ç«ä¸ç¡®å®</a></li><li class="my-2 scroll-my-6 scroll-py-6"><a class="pl-8 rtl:pr-8 inline-block text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300 w-full break-words" href=#%e7%ac%ac4%e7%ab%a0-%e8%88%aa%e5%a4%a9%e5%99%a8%e8%bd%a8%e9%81%93%e7%89%b9%e6%80%a7%e4%b8%8e%e5%88%86%e6%9e%90>第4ç« èªå¤©å¨è½¨éç¹æ§ä¸åæ</a></li><li class="my-2 scroll-my-6 scroll-py-6"><a class="pl-8 rtl:pr-8 inline-block text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300 w-full break-words" href=#%e7%ac%ac5%e7%ab%a0-%e8%88%aa%e5%a4%a9%e5%99%a8%e7%9a%84%e6%91%84%e5%8a%a8%e7%90%86%e8%ae%ba>第5ç« èªå¤©å¨çæå¨ç论</a></li><li class="my-2 scroll-my-6 scroll-py-6"><a class="pl-8 rtl:pr-8 inline-block text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300 w-full break-words" href=#%e7%ac%ac6%e7%ab%a0-%e8%88%aa%e5%a4%a9%e5%99%a8%e8%bd%a8%e9%81%93%e6%9c%ba%e5%8a%a8>第6ç« èªå¤©å¨è½¨éæºå¨</a></li><li class="my-2 scroll-my-6 scroll-py-6"><a class="pl-8 rtl:pr-8 inline-block text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300 w-full break-words" href=#%e7%ac%ac7%e7%ab%a0-%e8%88%aa%e5%a4%a9%e5%99%a8%e7%9a%84%e7%9b%b8%e5%af%b9%e8%bf%90%e5%8a%a8>第7ç« èªå¤©å¨çç¸å¯¹è¿å¨</a></li><li class="my-2 scroll-my-6 scroll-py-6"><a class="pl-8 rtl:pr-8 inline-block text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300 w-full break-words" href=#%e7%ac%ac8%e7%ab%a0-%e5%a4%9a%e4%bd%93%e9%97%ae%e9
92%a2%98>第8ç« å¤ä½é®é¢</a></li><li class="my-2 scroll-my-6 scroll-py-6"><a class="pl-8 rtl:pr-8 inline-block text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300 w-full break-words" href=#%e7%ac%ac9%e7%ab%a0-%e8%a1%8c%e6%98%9f%e6%8e%a2%e6%b5%8b%e8%bd%a8%e9%81%93%e8%ae%be%e8%ae%a1>第9ç« è¡ææ¢æµè½¨é设计</a></li></ul> 93 94 95 </div></nav><article class="w-full break-words flex min-h-[calc(100vh-var(--navbar-height))] min-w-0 justify-center pb-8 pr-[calc(env(safe-area-inset-right)-1.5rem)]"><main class="w-full min-w-0 max-w-6xl px-6 pt-4 md:px-12"><h1 class="mt-2 text-4xl font-bold tracking-tight text-slate-900 dark:text-slate-100">èªå¤©å¨è½¨éå¨åå¦å¦ä¹ ç¬è®°</h1><div class="mt-4 mb-16"><div class="text-gray-500 dark:text-gray-300 text-sm flex items-center flex-wrap gap-y-2"><span class=mr-1>Apr 5, 2026</span><span class=mx-1>·</span><div class="group inline-flex items-center text-current gap-x-1.5 mx-1"><div>Boding Ouyang</div></div><span class=mx-1>·</span> 96<span class=mx-1>1 min read</span></div><div class=mt-3></div></div><div class="article-header article-container featured-image-wrapper mt-4 mb-16" style=max-width:720px;max-height:480px><div style=position:relative><img srcset="/post/orbit-dyn/featured_hu_55cac29feb1b8ab3.webp 320w, /post/orbit-dyn/featured_hu_7cdb9e3ab0628709.webp 480w, /post/orbit-dyn/featured_hu_db72e61d4a46feca.webp 640w, /post/orbit-dyn/featured_hu_b32208089393adc5.webp 720w, /post/orbit-dyn/featured_hu_9fef24d4f391b85d.webp 720w" sizes="(max-width: 480px) 100vw, (max-width: 640px) 90vw, (max-width: 720px) 80vw, 720px" src=/post/orbit-dyn/featured_hu_55cac29feb1b8ab3.webp width=720 height=480 alt class=featured-image fetchpriority=high></div></div><div class="prose prose-slate lg:prose-xl dark:prose-invert"><p>è¿ä¸ªæ¯æå¨2024å¹´æ¥<a href=https://dang-tong.github.io/ target=_blank rel=noopener>å ç«¥</a>ã<a href=https://faculty.ustc.edu.cn/leijiuhou/en/index.htm target=_blank rel=noopener>é·ä¹ 侯</a>èå¸ãèªå¤©å¨è½¨éå¨åå¦ãè¯¾ç¨æ´ççç¬è®°ãç±äºæå¨ãç©ºé´æ¢æµææ¯åºç¡ã课ç¨åæ ·è®²äºè¿é¨åçç¥è¯ç¹ï¼äºæ¯æå¨2026å¹´4æ5æ¥å¯¼åºå¹¶æ´çäºæä¹åçç¬è®°ï¼ä» ä¾ä¸ªäººä½¿ç¨ï¼é½æå¯ç ï¼ãæ¶é两年ï¼å¥½å¤ä¸è¥¿é½å¿æäºï¼ä½æ¯æä¸ä¸ªæµ æµ çå°è±¡ã</p><h4 id=第1ç« -èªå¤©å¨è¿å¨çç¡®å®><a href=https://cdn.jsdelivr.net/gh/OYBDOOO/oss@master/pdf/%e7%ac%ac1%e7%ab%a0%20%e8%88%aa%e5%a4%a9%e5%99%a8%e8%bf%90%e5%8a%a8%e7%9a%84%e7%a1%ae%e5%ae%9a.pdf target=_blank rel=noopener>第1ç« èªå¤©å¨è¿å¨çç¡®å®</a></h4><h4 id=第2ç« -èªå¤©å¨çåºæ¬è½¨é><a href=https://cdn.jsdelivr.net/gh/OYBDOOO/oss@master/pdf/%e7%ac%ac2%e7%ab%a0%20%e8%88%aa%e5%a4%a9%e5%99%a8%e7%9a%84%e5%9f%ba%e6%9c%ac%e8%bd%a8%e9%81%93.pdf target=_blank rel=noopener>第2ç« èªå¤©å¨çåºæ¬è½¨é</a></h4><h4 id=第3ç« -轨é建ç«ä¸ç¡®å®><a href=https://cdn.jsdelivr.net/gh/OYBDOOO/oss@master/pdf/%e7%ac%ac3%e7%ab%a0%20%e8%bd%a8%e9%81%93%e5%bb%ba%e7%ab%8b%e4%b8%8e%e7%a1%ae%e5%ae%9a.pdf target=_blank rel=noopener>第3ç« è½¨é建ç«ä¸ç¡®å®</a></h4><h4 id=第4ç« -èªå¤©å¨è½¨éç¹æ§ä¸åæ><a href=https://cdn.jsdelivr.net/gh/OYBDOOO/oss@master/pdf/%e7%ac%ac4%e7%ab%a0%20%e8%88%aa%e5%a4%a9%e5%99%a8%e8%bd%a8%e9%81%93%e7%89%b9%e6%80%a7%e4%b8%8e%e5%88%86%e6%9e%90.pdf target=_blank rel=noopener>第4ç« èªå¤©å¨è½¨éç¹æ§ä¸åæ</a></h4><h4 id=第5ç« -èªå¤©å¨çæå¨ç论><a href=https://cdn.jsdelivr.net/gh/OYBDOOO/oss@master/pdf/%e7%ac%ac5%e7%ab%a0%20%e8%88%aa%e5%a4%a9%e5%99%a8%e7%9a%84%e6%91%84%e5%8a%a8%e7%90%86%e8%ae%ba.pdf target=_blank rel=noopener>第5ç« èªå¤©å¨çæå¨ç论</a></h4><h4 id=第6ç« -èªå¤©å¨è½¨éæºå¨><a href=https://cdn.jsdelivr.net/gh/OYBDOOO/oss@master/pdf/%e7%ac%ac6%e7%ab%a0%20%e8%88%aa%e5%a4%a9%e5%99%a8%e8%bd%a8%e9%81%93%e6%9c%ba%e5%8a%a8.pdf target=_blank rel=noopener>第6ç« èªå¤©å¨è½¨éæºå¨</a></h4><h4 id=第7ç« -èªå¤©å¨çç¸å¯¹è¿å¨><a href=https://cdn.jsdelivr.net/gh/OYBDOOO/oss@master/pdf/%e7%ac%ac7%e7%ab%a0%20%e8%88%aa%e5%a4%a9%e5%99%a8%e7%9a%84%e7%9b%b8%e5%af%b9%e8%bf%90%e5%8a%a8.pdf target=_blank rel=noopener>第7ç« èªå¤©å¨çç¸å¯¹è¿å¨</a></h4><h4 id=第8ç« -å¤ä½é®é¢><a href=https://cdn.jsdelivr.net/gh/OYBDOOO/oss@master/pdf/%e7%ac%ac8%e7%ab%a0%20%e5%a4%9a%e4%bd%93%e9%97%ae%e9
96%a2%98.pdf target=_blank rel=noopener>第8ç« å¤ä½é®é¢</a></h4><h4 id=第9ç« -è¡ææ¢æµè½¨é设计><a href=https://cdn.jsdelivr.net/gh/OYBDOOO/oss@master/pdf/%e7%ac%ac9%e7%ab%a0%20%e8%a1%8c%e6%98%9f%e6%8e%a2%e6%b5%8b%e8%bd%a8%e9%81%93%e8%ae%be%e8%ae%a1.pdf target=_blank rel=noopener>第9ç« è¡ææ¢æµè½¨é设计</a></h4></div><time class="mt-12 mb-8 block text-xs text-gray-500 ltr:text-right rtl:text-left dark:text-gray-400" datetime=2026-04-05T00:00:00.000Z><span>Last updated on</span> 97Apr 5, 2026</time><div class="container mx-auto prose prose-slate lg:prose-xl dark:prose-invert mt-5"><div class="max-w-prose print:hidden"><div class="flex justify-center"><a class="no-underline bg-primary-100 hover:bg-primary-300 text-primary-800 text-xs font-medium mr-2 px-2.5 py-0.5 lg:px-5 lg:py-2 rounded dark:bg-primary-900 dark:hover:bg-primary-700 dark:text-primary-300" href=/tags/orbital-dynamics/>Orbital Dynamics</a></div><section class="flex flex-row flex-wrap justify-center pt-4 text-xl"><a target=_blank rel=noopener class="m-1 rounded-md bg-neutral-300 p-1.5 text-neutral-700 hover:bg-primary-500 hover:text-neutral-300 dark:bg-neutral-700 dark:text-neutral-300 dark:hover:bg-primary-400 dark:hover:text-neutral-800" href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.oybdooo.top%2Fpost%2Forbit-dyn%2F&text=%E8%88%AA%E5%A4%A9%E5%99%A8%E8%BD%A8%E9%81%93%E5%8A%A8%E5%8A%9B%E5%AD%A6%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0" title=X aria-label=X id=share-link-x><svg style="height:1em" viewBox="0 0 512 512"><path fill="currentColor" d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"/></svg> 98</a><a target=_blank rel=noopener class="m-1 rounded-md bg-neutral-300 p-1.5 text-neutral-700 hover:bg-primary-500 hover:text-neutral-300 dark:bg-neutral-700 dark:text-neutral-300 dark:hover:bg-primary-400 dark:hover:text-neutral-800" href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fwww.oybdooo.top%2Fpost%2Forbit-dyn%2F&t=%E8%88%AA%E5%A4%A9%E5%99%A8%E8%BD%A8%E9%81%93%E5%8A%A8%E5%8A%9B%E5%AD%A6%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0" title=Facebook aria-label=Facebook id=share-link-facebook><svg style="height:1em" viewBox="0 0 24 24"><path fill="currentColor" d="M22 12c0-5.52-4.48-10-10-10S2 6.48 2 12c0 4.84 3.44 8.87 8 9.8V15H8v-3h2V9.5C10 7.57 11.57 6 13.5 6H16v3h-2c-.55.0-1 .45-1 1v2h3v3h-3v6.95c5.05-.5 9-4.76 9-9.95z"/></svg> 99</a><a target=_blank rel=noopener class="m-1 rounded-md bg-neutral-300 p-1.5 text-neutral-700 hover:bg-primary-500 hover:text-neutral-300 dark:bg-neutral-700 dark:text-neutral-300 dark:hover:bg-primary-400 dark:hover:text-neutral-800" href="mailto:?subject=%E8%88%AA%E5%A4%A9%E5%99%A8%E8%BD%A8%E9%81%93%E5%8A%A8%E5%8A%9B%E5%AD%A6%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0&body=https%3A%2F%2Fwww.oybdooo.top%2Fpost%2Forbit-dyn%2F" title=Email aria-label=Email id=share-link-email><svg style="height:1em" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-width="1.5" d="M16.5 12a4.5 4.5.0 11-9 0 4.5 4.5.0 019 0zm0 0c0 1.657 1.007 3 2.25 3S21 13.657 21 12a9 9 0 10-2.636 6.364M16.5 12V8.25"/></svg> 100</a><a target=_blank rel=noopener class="m-1 rounded-md bg-neutral-300 p-1.5 text-neutral-700 hover:bg-primary-500 hover:text-neutral-300 dark:bg-neutral-700 dark:text-neutral-300 dark:hover:bg-primary-400 dark:hover:text-neutral-800" href="https://www.linkedin.com/shareArticle?url=https%3A%2F%2Fwww.oybdooo.top%2Fpost%2Forbit-dyn%2F&title=%E8%88%AA%E5%A4%A9%E5%99%A8%E8%BD%A8%E9%81%93%E5%8A%A8%E5%8A%9B%E5%AD%A6%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0" title=LinkedIn aria-label=LinkedIn id=share-link-linkedin><svg style="height:1em" height="1em" viewBox="0 0 448 512"><path fill="currentColor" d="M416 32H31.9C14.3 32 0 46.5.0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6.0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3.0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2.0 38.5 17.3 38.5 38.5.0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6.0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2.0 79.7 44.3 79.7 101.9V416z"/></svg> 101</a><a target=_blank rel=noopener class="m-1 rounded-md bg-neutral-300 p-1.5 text-neutral-700 hover:bg-primary-500 hover:text-neutral-300 dark:bg-neutral-700 dark:text-neutral-300 dark:hover:bg-primary-400 dark:hover:text-neutral-800" href="whatsapp://send?text=%E8%88%AA%E5%A4%A9%E5%99%A8%E8%BD%A8%E9%81%93%E5%8A%A8%E5%8A%9B%E5%AD%A6%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%20https%3A%2F%2Fwww.oybdooo.top%2Fpost%2Forbit-dyn%2F" title=WhatsApp aria-label=WhatsApp id=share-link-whatsapp><svg style="height:1em" viewBox="0 0 256 256" fill="currentColor"><path d="m187.58 144.84-32-16a8 8 0 00-8 .5l-14.69 9.8a40.55 40.55.0 01-16-16l9.8-14.69a8 8 0 00.5-8l-16-32A8 8 0 00104 64a40 40 0 00-40 40 88.1 88.1.0 0088 88 40 40 0 0040-40 8 8 0 00-4.42-7.16zM152 176a72.08 72.08.0 01-72-72 24 24 0 0119.29-23.54l11.48 23L101 118a8 8 0 00-.73 7.51 56.47 56.47.0 0030.15 30.15A8 8 0 00138 155l14.61-9.74 23 11.48A24 24 0 01152 176zM128 24A104 104 0 0036.18 176.88l-11.35 34.05a16 16 0 0020.24 20.24l34.05-11.35A104 104 0 10128 24zm0 192a87.87 87.87.0 01-44.06-11.81 8 8 0 00-6.54-.67L40 216l12.47-37.4a8 8 0 00-.66-6.54A88 88 0 11128 216z"/></svg></a></section><div class="pt-1 no-prose w-full"><hr class="border-dotted border-neutral-300 dark:border-neutral-600"><div class="flex flex-col md:flex-row flex-nowrap justify-between gap-5 pt-2"><div></div><div><a class="group flex text-right no-underline" href=/post/atmo-ocean-dyn/><span class="flex flex-col"><span class="mt-[0.1rem] leading-6 group-hover:underline group-hover:decoration-primary-500">
101大æ°-æµ·æ´è¦åå¨åå¦å¦ä¹ ç¬è®°</span> 102<span class="mt-[0.1rem] text-xs text-neutral-500 dark:text-neutral-400">Apr 3, 2026 103</span></span><span class="mt-[-0.3rem] ms-2 text-neutral-700 transition-transform group-hover:-translate-x-[2px] group-hover:text-primary-600 dark:text-neutral dark:group-hover:text-primary-400"><span class=ltr:inline>→</span></span></a></div></div></div></div></div></main></article></div></div><div class=page-footer><footer class="container mx-auto flex flex-col justify-items-center text-sm leading-6 mt-24 mb-4 text-slate-700 dark:text-slate-200"><p class="powered-by text-center">© 2026 Boding Ouyang. This work is licensed under <a href=https://creativecommons.org/licenses/by-nc-nd/4.0 rel="noopener noreferrer" target=_blank>CC BY NC ND 4.0</a></p><p class="powered-by footer-license-icons"><a href=https://creativecommons.org/licenses/by-nc-nd/4.0 rel="noopener noreferrer" target=_blank aria-label="Creative Commons"><i class="fab fa-creative-commons fa-2x" aria-hidden=true></i> 104<i class="fab fa-creative-commons-by fa-2x" aria-hidden=true></i> 105<i class="fab fa-creative-commons-nc fa-2x" aria-hidden=true></i> 106<i class="fab fa-creative-commons-nd fa-2x" aria-hidden=true></i></a></p></footer></div><div id=hb-notification-container class="fixed top-20 right-4 z-[9999] pointer-events-none" aria-live=polite aria-atomic=true></div></body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.