news 2026/5/14 3:33:35

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

作者头像

张小明

前端开发工程师

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/12 12:35:54

PaddlePaddle镜像中的DataLoader性能优化建议

PaddlePaddle镜像中的DataLoader性能优化实践 在深度学习项目中&#xff0c;我们常常会发现&#xff1a;明明配备了顶级GPU&#xff0c;训练速度却迟迟上不去。监控显示GPU利用率长期徘徊在30%以下&#xff0c;而CPU某个核心却持续满载——这背后大概率是数据加载环节出了问题。…

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

ContextMenuManager终极指南:5步彻底解决Windows右键菜单冲突

ContextMenuManager终极指南&#xff1a;5步彻底解决Windows右键菜单冲突 【免费下载链接】ContextMenuManager &#x1f5b1;️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 还在为混乱的右键菜单烦恼吗&#xff1…

作者头像 李华
网站建设 2026/4/21 0:03:18

3步掌握DownKyi:B站视频下载终极解决方案

3步掌握DownKyi&#xff1a;B站视频下载终极解决方案 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xff09;。 项…

作者头像 李华
网站建设 2026/4/29 7:31:05

工业5.0的技术底座与范式革新

低延时高可靠等核心特征&#xff1a;工业5.0的技术底座与范式革新摘要&#xff1a;工业革命的演进始终以技术突破为核心驱动力&#xff0c;从工业4.0的物联网应用到工业5.0的价值重构&#xff0c;标志着制造业从“效率优先”向“人机协同、可持续、高韧性”的深度转型。本文通过…

作者头像 李华
网站建设 2026/5/7 17:52:56

哔哩下载姬全功能实战:从零掌握高清视频无损处理

哔哩下载姬全功能实战&#xff1a;从零掌握高清视频无损处理 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xff09…

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

Screen Translator终极指南:零基础快速掌握屏幕翻译神器

还在为阅读外文内容而烦恼吗&#xff1f;Screen Translator作为一款强大的屏幕捕获、OCR识别和智能翻译工具&#xff0c;能够将屏幕上的任何文字即时翻译成你需要的语言&#xff0c;彻底告别繁琐的复制粘贴过程。这款免费开源工具集成了多种翻译引擎&#xff0c;支持100多种语言…

作者头像 李华