news 2026/5/8 21:44:52

根据自创公式模拟的弹簧系统

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
根据自创公式模拟的弹簧系统

<!DOCTYPE html>

<html lang="zh-CN">

<head>

    <meta charset="UTF-8">

    <meta content="width=device-width, initial-scale=1.0">

    <title>轮图弹簧系统能量守恒模拟</title>

    <style>

        * {margin: 0; padding: 0; box-sizing: border-box;}

        body {display: flex; flex-direction: column; align-items: center; background: #f0f0f0; font-family: Arial; gap: 10px; padding: 10px;}

        #controls {padding: 12px; background: #fff; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); display: flex; flex-wrap: wrap; gap: 8px; align-items: center;}

        #controls input {width: 100px; padding: 5px; border: 1px solid #ddd; border-radius: 4px;}

        #controls button {padding: 6px 12px; cursor: pointer; border: none; border-radius: 4px; color: #fff;}

        #startBtn {background: #4285f4;}

        #resetBtn {background: #f44336;}

        #connectBtn {background: #4caf50;}

        #energyPanel {padding: 10px 15px; background: #fff; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); min-width: 300px; text-align: left; font-size: 14px;}

        #energyPanel div {margin: 4px 0;}

        #energyPanel span {font-weight: bold; color: #4285f4;}

        #canvas {background: #ffffff; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.1); touch-action: none;}

        .mode-tip {font-size: 12px; color: #666; margin-top: 5px;}

    </style>

</head>

<body>

    <div>

        节点数: <input type="number" value="6" min="3" max="20">

        最短长度: <input type="number" value="50" min="20" max="200">

        最长长度: <input type="number" value="150" min="50" max="300">

        弹性系数: <input type="number" value="0.05" step="0.01" min="0.01" max="0.5">

        <button>开始/暂停</button>

        <button>重置系统</button>

        <button>开启自定义连接</button>

        <div>当前模式: 正常模拟</div>

    </div>

    <div>

        <div>全局修正能量 H: <span>0.00</span></div>

        <div>能量跳变总和 ΣΦ: <span>0.00</span></div>

        <div>节点平均动能: <span>0.00</span></div>

        <div>节点平均势能修正: <span>0.00</span></div>

    </div>

    <canvas></canvas>

    <script>

        // 1. 初始化画布与参数

        const canvas = document.getElementById('canvas');

        const ctx = canvas.getContext('2d');

        let nodes = [], springs = [];

        let isRunning = false, selectedNode = null, connectMode = false;

        let nodeCount, minLen, maxLen, kVal, centerX, centerY;

        let connectStartNode = null; // 自定义连接起始节点

        // 能量显示DOM

        const totalHElem = document.getElementById('totalH');

        const phiSumElem = document.getElementById('phiSum');

        const avgEkElem = document.getElementById('avgEk');

        const avgVkElem = document.getElementById('avgVk');

        const modeTipElem = document.getElementById('modeTip');

        // 自适应屏幕尺寸

        function resizeCanvas() {

            canvas.width = Math.min(window.innerWidth - 40, 900);

            canvas.height = Math.min(window.innerHeight - 200, 600);

            centerX = canvas.width / 2;

            centerY = canvas.height / 2;

        }

        window.addEventListener('resize', () => {resizeCanvas(); initSystem();});

        // 2. 节点类(优化能量计算稳定性)

        class Node {

            constructor(x, y, id) {

                this.x = x;

                this.y = y;

                this.vx = (Math.random() - 0.5) * 1.5; // 降低初始速度,减少能量波动

                this.vy = (Math.random() - 0.5) * 1.5;

                this.radius = 12;

                this.id = id; // 节点ID,用于自定义连接

                this.Ek = 0; // 局部动能 E(k)

                this.Vk = 0; // 势能修正 V(k)

                this.mass = 2.0; // 引入质量,使能量数值更合理

            }

 

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/5 1:25:08

1400万部,iPhone17奠定了它的王者之位,还有谁敢挑战它?

有分析人士指出截至2025年第50周&#xff0c;iPhone17在中国市场的销量已突破1400万部&#xff0c;奠定了它在国内旗舰手机的王者之位&#xff0c;到了此时恐怕已没有任何国产旗舰手机可以挑战它的市场地位了&#xff0c;四季度苹果夺下国内手机市场王座也没啥疑问了。iPhone17…

作者头像 李华
网站建设 2026/5/7 20:04:01

Unity游戏翻译神器:XUnity.AutoTranslator终极配置指南

Unity游戏翻译神器&#xff1a;XUnity.AutoTranslator终极配置指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 想要轻松实现Unity游戏的自动翻译吗&#xff1f;XUnity.AutoTranslator这款强大的Unity…

作者头像 李华
网站建设 2026/5/7 20:03:59

SillyTavern桌面应用:跨平台一键启动完整指南

SillyTavern桌面应用&#xff1a;跨平台一键启动完整指南 【免费下载链接】SillyTavern LLM Frontend for Power Users. 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern 还在为每次启动AI聊天工具都要打开命令行而烦恼吗&#xff1f;你是否渴望像使用普…

作者头像 李华
网站建设 2026/5/4 10:18:45

哔哩下载姬深度解析:从入门到精通的B站视频收藏全攻略

哔哩下载姬深度解析&#xff1a;从入门到精通的B站视频收藏全攻略 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#…

作者头像 李华
网站建设 2026/5/4 12:01:38

纪念币预约神器:告别手速不够的烦恼,轻松搞定限量收藏

还记得那些守在电脑前&#xff0c;手指颤抖着等待纪念币预约开始的时刻吗&#xff1f;眼看着心仪的纪念币在几秒内被抢光&#xff0c;那种失落感简直让人崩溃。但现在&#xff0c;这一切都将成为过去&#xff01;让我分享一个真实的使用故事&#xff0c;看看这个智能工具如何改…

作者头像 李华