



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
package import flash.display.Shape;import flash.display.Sprite;import flash.events.Event;/* * . * author Maxim Sprey */public class stick extends Sprite / Stick propertiesvar mass:Number = 6;/总质量var len:Number = 3;/总长度var div:Number = 50;var massDiv:Number = mass / div;/每一节的质量var lenDiv:Number = len / div;/每一节的长度0.06米 / Circle propertiesvar cX:Number = 300;var cY:Number = 200;var cR:Number = 50;/ World Characteristicsvar g:Number = 9.81;/重力加速度var pm:Number = 100; / Pixels/meter/像素相对 米的长度比例总长度为3米 有50节 那么每节相当于1.5个像素var dt:Number = 1 / 60;/时间单位帧频为60的画 dt 相当于一帧的时间 这是时间单位/var itr:uint = 3; / Number of rigid body iterations/ Program Characteristicsvar pX:Array = ;var pY:Array = ;var oX:Array = ;var oY:Array = ;var aX:Array = ;var aY:Array = ;var mS:Shape = new Shape();/每一个点的形状 我在这里 只是当他为一个空点 然后每2个点之间用直线连接public function stick():void /初始化 速度 加速度 位移for (var i:uint = 0; i = div; i+) / 初始化运动后坐标pXi = 10 + (lenDiv * pm * i);pYi = 10;/初始化运动前的坐标oXi = 10 + (lenDiv * pm * i);oYi = 10;/初始化加速度aXi = 0;aYi = 0;addChild(mS);addEventListener(Event.ENTER_FRAME, frame);public function frame(evt:Event):void /固定开始点pX0 =300 ;pY0 = 200;/最后一个点跟随鼠标运动pXpX.length - 1 = stage.mouseX;pYpY.length - 1 = stage.mouseY;/设置重力加速度accForces(); verlet();/判断是否碰到圆 然后做什么处理/checkColl();for (var j:uint = 0; j = div-1;j+)satConstraints();/ Draw linemS.graphics.clear();mS.graphics.lineStyle(1, 0x000000, 2);mS.graphics.moveTo(0,0);mS.graphics.drawCircle(cX, cY, cR);mS.graphics.moveTo(0, 0);mS.graphics.moveTo(pX0, pY0);pX0 =300 ;pY0 = 200;pXpX.length - 1 = stage.mouseX;pYpY.length - 1 = stage.mouseY;/画圆或者 矩形for (var i:uint = 0; i = div; i+) mS.graphics.lineTo(pXi, pYi);/mS.graphics.drawRect(pXi, pYi, 0,0);public function verlet():void for (var i:uint = 0; i = div; i+) var tempX:Number = pXi;pXi += (0.99*pXi - 0.99*oXi) + (aXi * pm * dt * dt);var tempY:Number = pYi;pYi += (0.99*pYi - 0.99*oYi) + (aYi * pm * dt * dt);oXi = tempX;oYi = tempY;public function accForces():void for (var i:uint = 1; i = div; i+) aYi = g;public function satConstraints():void for (var i:uint = 1; i = div; i+) var dx:Number = (pXi - pXi - 1) / pm;var dy:Number = (pYi - pYi - 1) / pm;var d:Number = Math.sqrt(dx * dx) + (dy * dy);var diff:Number = d - lenDiv;pXi -= (dx / d) * 0.5 *pm* diff;pYi -= (dy / d) * 0.5 *pm* diff;pXi - 1 += (dx / d) * 0.5 *pm* diff;pYi - 1 += (dy / d) * 0.5 *pm* diff;public function checkColl():void for (var i:uint = 0; i = div; i+) var dx:Number = pXi - cX;var dy:Number = pYi - cY;var r:Number =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 低温仓储投资环境分析考核试卷
- 表面贴装技术成本控制考核试卷
- 中药材种植保险产品设计考核试卷
- 基层社会治理典型经验材料
- 组胚英语单词表
- 人事介绍信范文
- 惠阳时代广场营销推广操作方案
- 欢庆十九活动方案
- 武馆续费活动方案
- 汽车避震活动方案
- 国家开放大学汉语言文学本科《中国现代文学专题》期末纸质考试第三大题分析题库2025春期版
- 全国职业院校技能大赛高职组(生产事故应急救援赛项)选拔赛考试题库500题(含答案)
- DBJ50-T-098-2019 城市绿化养护质量标准
- 陕西省榆林市神木市2024-2025学年八年级上学期1月期末道德与法治试题(含答案)
- 《骨盆骨折的急救》课件
- 2025年拍卖师职业技能知识考试题库与答案(含各题型)
- 《物流英语仓储专题》课件
- 原理图审核报告
- 使用灭火器培训
- 浙江省绍兴市2024年6月普通高中学业水平适应性考试数学试题2
- 第一章 地球(考点串讲课件)七年级地理上学期期中考点大串讲(人教版2024)
评论
0/150
提交评论