{"id":45594,"date":"2026-04-07T14:09:28","date_gmt":"2026-04-07T06:09:28","guid":{"rendered":"https:\/\/www.qiusir.com\/?p=45594"},"modified":"2026-04-07T14:59:11","modified_gmt":"2026-04-07T06:59:11","slug":"qiutopia%e5%bc%80%e6%99%ae%e5%8b%92%e7%ac%ac%e4%b8%89%e5%ae%9a%e5%be%8b","status":"publish","type":"post","link":"https:\/\/www.qiusir.com\/?p=45594","title":{"rendered":"qiutopIA\u5f00\u666e\u52d2\u7b2c\u4e09\u5b9a\u5f8b"},"content":{"rendered":"\r\n<p class=\"wp-block-paragraph\"><\/p>\r\n\r\n\r\n\r\n<div id=\"qiusir-orbit-xiaoyao-display\" style=\"position: relative; width: 100%; height: 650px; background: #010413; overflow: hidden; border-radius: 20px; border: 1px solid rgba(255,255,255,0.1);\">\r\n    <canvas id=\"qiusir-xiaoyao-canvas\" style=\"display: block; width: 100%; height: 100%; cursor: default;\"><\/canvas>\r\n    \r\n    <div style=\"position: absolute; bottom: 20px; right: 25px; color: rgba(255, 255, 255, 0.3); font-family: 'Segoe UI', Roboto, sans-serif; font-size: 14px; letter-spacing: 1px; pointer-events: none; font-style: italic;\">\r\n        @Xiaoyao\r\n    <\/div>\r\n\r\n    <script>\r\n    (function() {\r\n        const container = document.getElementById('qiusir-orbit-xiaoyao-display');\r\n        const canvas = document.getElementById('qiusir-xiaoyao-canvas');\r\n        const ctx = canvas.getContext('2d');\r\n\r\n        let width, height, centerX, centerY;\r\n        let time = 0;\r\n        let stars = [];\r\n        \r\n        const a = 175; \r\n        const mu = 33000; \r\n\r\n        const orbits = [\r\n            { e: 0, color: '#38bdf8', rotation: 0, trail: [] },           \r\n            { e: 0.70, color: '#2dd4bf', rotation: 0, trail: [] },        \r\n            { e: 0.92, color: '#15803d', rotation: 0, trail: [] },        \r\n            { e: 0.82, color: '#a855f7', rotation: Math.PI \/ 2, trail: [] }, \r\n            { e: 0.92, color: '#facc15', rotation: Math.PI \/ 4, trail: [] }, \r\n            { e: 0.88, color: '#ef4444', rotation: Math.PI * 1.75, trail: [] }, \r\n            { e: 0.9995, color: '#22c55e', rotation: 0, isRadial: true, trail: [] } \r\n        ];\r\n\r\n        function initStars() {\r\n            stars = [];\r\n            for(let i = 0; i < 150; i++) {\r\n                stars.push({\r\n                    x: (Math.random() - 0.5) * 2000,\r\n                    y: (Math.random() - 0.5) * 2000,\r\n                    size: Math.random() * 1.3,\r\n                    opacity: Math.random() * 0.6 + 0.4\r\n                });\r\n            }\r\n        }\r\n\r\n        function resize() {\r\n            width = canvas.width = container.offsetWidth;\r\n            height = canvas.height = container.offsetHeight;\r\n            centerX = width * 0.70;\r\n            centerY = height * 0.50;\r\n            initStars();\r\n        }\r\n\r\n        window.addEventListener('resize', resize);\r\n        resize();\r\n\r\n        function solveKepler(M, e) {\r\n            let E = M;\r\n            for (let i = 0; i < 50; i++) {\r\n                let delta = (E - e * Math.sin(E) - M) \/ (1 - e * Math.cos(E));\r\n                E -= delta;\r\n                if (Math.abs(delta) < 1e-10) { i = 100; }\r\n            }\r\n            return E;\r\n        }\r\n\r\n        function draw() {\r\n            const bgGrad = ctx.createRadialGradient(centerX, centerY, 0, centerX, centerY, Math.max(width, height));\r\n            bgGrad.addColorStop(0, '#0f172a');\r\n            bgGrad.addColorStop(1, '#020617');\r\n            ctx.fillStyle = bgGrad;\r\n            ctx.fillRect(0, 0, width, height);\r\n\r\n            ctx.save();\r\n            ctx.translate(centerX, centerY);\r\n            for (let i = 0; i < stars.length; i++) {\r\n                let s = stars[i];\r\n                ctx.globalAlpha = s.opacity;\r\n                ctx.fillStyle = \"white\";\r\n                ctx.beginPath(); ctx.arc(s.x, s.y, s.size, 0, Math.PI * 2); ctx.fill();\r\n            }\r\n            ctx.restore();\r\n            ctx.globalAlpha = 1.0;\r\n\r\n            const n = Math.sqrt(mu \/ Math.pow(a, 3));\r\n            const M = (n * time) % (2 * Math.PI);\r\n\r\n            ctx.save();\r\n            ctx.translate(centerX, centerY);\r\n            const sunGlow = ctx.createRadialGradient(0, 0, 0, 0, 0, 50);\r\n            sunGlow.addColorStop(0, 'rgba(251, 191, 36, 0.4)');\r\n            sunGlow.addColorStop(1, 'transparent');\r\n            ctx.fillStyle = sunGlow;\r\n            ctx.beginPath(); ctx.arc(0, 0, 50, 0, Math.PI * 2); ctx.fill();\r\n            ctx.fillStyle = '#ffffff';\r\n            ctx.shadowBlur = 25; ctx.shadowColor = '#fbbf24';\r\n            ctx.beginPath(); ctx.arc(0, 0, 6, 0, Math.PI * 2); ctx.fill();\r\n            ctx.restore();\r\n\r\n            for (let i = 0; i < orbits.length; i++) {\r\n                let orb = orbits[i];\r\n                const E = solveKepler(M, orb.e);\r\n                \r\n                let x0 = a * (Math.cos(E) - orb.e);\r\n                let y0 = a * Math.sqrt(1 - orb.e * orb.e) * Math.sin(E);\r\n                if (orb.isRadial) { y0 = 0; }\r\n\r\n                const cosR = Math.cos(orb.rotation);\r\n                const sinR = Math.sin(orb.rotation);\r\n                const fx = centerX + x0 * cosR - y0 * sinR;\r\n                const fy = centerY + x0 * sinR + y0 * cosR;\r\n\r\n                orb.trail.push({x: fx, y: fy});\r\n                if (orb.trail.length > 250) { orb.trail.shift(); }\r\n\r\n                ctx.save();\r\n                ctx.translate(centerX, centerY);\r\n                ctx.rotate(orb.rotation);\r\n                ctx.strokeStyle = orb.color;\r\n                ctx.lineWidth = 1;\r\n                ctx.globalAlpha = 0.18;\r\n                ctx.shadowBlur = 5; ctx.shadowColor = orb.color;\r\n                ctx.beginPath();\r\n                if (orb.isRadial) {\r\n                    ctx.moveTo(-2 * a, 0); ctx.lineTo(0, 0);\r\n                } else {\r\n                    let ecc = orb.e;\r\n                    ctx.ellipse(-a * ecc, 0, a, a * Math.sqrt(1 - ecc * ecc), 0, 0, Math.PI * 2);\r\n                }\r\n                ctx.stroke();\r\n                ctx.restore();\r\n\r\n                ctx.save();\r\n                ctx.strokeStyle = orb.color;\r\n                ctx.lineWidth = 0.8;\r\n                ctx.globalAlpha = 0.2;\r\n                ctx.setLineDash([4, 6]);\r\n                ctx.beginPath();\r\n                ctx.moveTo(centerX, centerY);\r\n                ctx.lineTo(fx, fy);\r\n                ctx.stroke();\r\n                ctx.restore();\r\n\r\n                if (orb.trail.length > 1) {\r\n                    ctx.save();\r\n                    for(let j = 1; j < orb.trail.length; j++) {\r\n                        let alp = (j \/ orb.trail.length) * 0.55;\r\n                        ctx.strokeStyle = orb.color;\r\n                        ctx.globalAlpha = alp;\r\n                        ctx.lineWidth = 2.8 * (j \/ orb.trail.length);\r\n                        ctx.beginPath();\r\n                        ctx.moveTo(orb.trail[j-1].x, orb.trail[j-1].y);\r\n                        ctx.lineTo(orb.trail[j].x, orb.trail[j].y);\r\n                        ctx.stroke();\r\n                    }\r\n                    ctx.restore();\r\n                }\r\n\r\n                ctx.save();\r\n                ctx.translate(fx, fy);\r\n                ctx.fillStyle = \"#ffffff\";\r\n                ctx.shadowBlur = 15; ctx.shadowColor = orb.color;\r\n                ctx.beginPath(); ctx.arc(0, 0, 5, 0, Math.PI * 2); ctx.fill();\r\n                ctx.restore();\r\n            }\r\n\r\n            time += 0.4;\r\n            requestAnimationFrame(draw);\r\n        }\r\n\r\n        draw();\r\n    })();\r\n    <\/script>\r\n<\/div>\r\n\r\n\r\n<blockquote class=\"wp-embedded-content\" data-secret=\"Bb1eW7GOPD\"><a href=\"https:\/\/www.qiusir.com\/2026\/03\/qiutopia%e5%8d%ab%e6%98%9f%e8%bd%a8%e9%81%93\/\">qiutopIA\u536b\u661f\u8f68\u9053<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"\u300a qiutopIA\u536b\u661f\u8f68\u9053 \u300b\u2014\u6c42\u5e08\u5f97\u6559\u80b2\u5b9e\u9a8c\u5ba4\" src=\"https:\/\/www.qiusir.com\/2026\/03\/qiutopia%e5%8d%ab%e6%98%9f%e8%bd%a8%e9%81%93\/embed\/#?secret=fbLKqqFtnD#?secret=Bb1eW7GOPD\" data-secret=\"Bb1eW7GOPD\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>","protected":false},"excerpt":{"rendered":"<p>@Xiaoyao qiutopIA\u536b\u661f\u8f68\u9053<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"image","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[5],"tags":[443,460,247],"class_list":["post-45594","post","type-post","status-publish","format-image","hentry","category-physics","tag-ai","tag-jqx","tag-physics","post_format-post-format-image"],"_links":{"self":[{"href":"https:\/\/www.qiusir.com\/index.php?rest_route=\/wp\/v2\/posts\/45594","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.qiusir.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.qiusir.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.qiusir.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.qiusir.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=45594"}],"version-history":[{"count":6,"href":"https:\/\/www.qiusir.com\/index.php?rest_route=\/wp\/v2\/posts\/45594\/revisions"}],"predecessor-version":[{"id":45622,"href":"https:\/\/www.qiusir.com\/index.php?rest_route=\/wp\/v2\/posts\/45594\/revisions\/45622"}],"wp:attachment":[{"href":"https:\/\/www.qiusir.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=45594"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.qiusir.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=45594"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.qiusir.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=45594"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}