惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Privacy & Cybersecurity Law Blog
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
B
Blog RSS Feed
罗磊的独立博客
V
V2EX
V
Visual Studio Blog
博客园 - 叶小钗
W
WeLiveSecurity
小众软件
小众软件
K
Kaspersky official blog
美团技术团队
雷峰网
雷峰网
阮一峰的网络日志
阮一峰的网络日志
Martin Fowler
Martin Fowler
Recorded Future
Recorded Future
Project Zero
Project Zero
Hugging Face - Blog
Hugging Face - Blog
Engineering at Meta
Engineering at Meta
Security Latest
Security Latest
Microsoft Azure Blog
Microsoft Azure Blog
V
Vulnerabilities – Threatpost
月光博客
月光博客
博客园 - 三生石上(FineUI控件)
Help Net Security
Help Net Security
博客园 - Franky
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
F
Fortinet All Blogs
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Forbes - Security
Forbes - Security
M
MIT News - Artificial intelligence
H
Hacker News: Front Page
大猫的无限游戏
大猫的无限游戏
Vercel News
Vercel News
Spread Privacy
Spread Privacy
The Register - Security
The Register - Security
H
Hackread – Cybersecurity News, Data Breaches, AI and More
量子位
Google Online Security Blog
Google Online Security Blog
PCI Perspectives
PCI Perspectives
The Last Watchdog
The Last Watchdog
AI
AI
N
News | PayPal Newsroom
D
DataBreaches.Net
Cloudbric
Cloudbric
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 司徒正美
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog

博客园 - kingBook

git patch git 修改最后一次提交的日期 Win10 修改特定格式文件的右键快捷菜单 TypeScript async、 await、Promise LayaAir3.x 侦听程序退出 旋转力学公式 凹多边形碰撞检测 LayaAir3.x 侦听键盘事件 URP 阴影 TypeScript 里的 override TypeScript 类的自身类型 Unity 二维数组序列化 C# 匿名对象、动态属性 Cocos Creator 安卓模拟器中无法运行 Unity Editor 保存图片、缩放纹理 LayaAir3.2.0-beta.2 设置2d刚体线性速度,在不同设备(分辨率)下,表现不一致的问题 LayaAir3.x 物理2D碰撞事件 TypeScirpt 声明Map类型变量 TypeScript 声明函数类型变量
旋转力学例子
kingBook · 2025-03-15 · via 博客园 - kingBook
package {
    import flash.display.Shape;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.utils.getTimer;

    public class RotationExample extends Sprite {

        private var rotatingObject: Shape; // 要旋转的对象
        private var rotateSpeed: Number = 0;
        private var time: Number = getTimer();

        public function RotationExample() {
            createRotatingObject();
            addEventListener(Event.ENTER_FRAME, update);
        }

        // 创建旋转对象
        private function createRotatingObject(): void {
            rotatingObject = new Shape();

            // 绘制一个矩形(注册点在中心)
            rotatingObject.graphics.beginFill(0xFF0000);
            rotatingObject.graphics.drawRect(-50, -30, 100, 60); // 中心在 (0,0)
            rotatingObject.graphics.endFill();

            // 设置初始位置
            rotatingObject.x = stage.stageWidth / 2;
            rotatingObject.y = stage.stageHeight / 2;

            addChild(rotatingObject);
        }

        // 更新旋转
        private function update(event: Event): void {
            // t=FL
            // 其中 t 是力矩,F 是作用力,L 是力臂(即力的作用点到旋转轴的垂直距离)
            const F: Number = 10;
            const L: Number = 1;
            const t: Number = F * L;

            // t=mr^2a
            // 其中 t 是力矩,m 是质量, r 是质心到旋转轴的距离,a 是角加速度

            // t=Ia
            // 其中 t 是力矩,旋转惯量 I=mr^2, a 是角加速度
            const m: Number = 10;
            const r: Number = 1000;
            const I: Number = m * r * r;


            var dt = getTimer() - time;
            time = getTimer();

            var a: Number = t / I * (dt * dt);
            a *= 180 / Math.PI;

            rotateSpeed += a;
            trace("a:" + a);
            rotatingObject.rotation += rotateSpeed;
        }
    }
}