全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2020-2025年材料员之材料员基础知识每日一练试卷A卷含答案
- 2025年二级注册建筑师之法律法规经济与施工押题练习试卷B卷附答案
- 《制造执行系统实施与应用》 课件 1.2 MES的定义与认知维度
- 大脑中动脉综合征的护理
- 雨课堂学堂在线学堂云《编译原理(西安科大 )》单元测试考核答案
- 2025吉林吉林市舒兰市总工会招聘工会社会工作者8人笔试模拟试卷带答案解析
- 2025广东河源连平县政务数据服务中心招聘就业见习人员2人备考题库带答案解析
- 2026年质量员之设备安装质量专业管理实务考试题库附参考答案【轻巧夺冠】
- 2025中核南方新材料有限公司社会招聘2人笔试模拟试卷带答案解析
- 2026年社会工作者职业水平《社会工作实务》考试题库附答案解析
- 2025年(安全工程)安全人机工程试题及答案
- 国家级零碳园区建设咨询服务方案投标文件(技术方案)
- 2025年青海省辅警招聘考试题题库(含参考答案)
- 储能行业安全知识培训课件
- 农民财务与税收知识培训课件
- 2025年河北工会社会工作者招聘考试工会基础知识经典试题及答案
- 行政领导学-形考任务二-国开-参考资料
- 门卫安全工作培训课件
- 椎管造影术课件
- 大学生职业规划大赛《特警专业》生涯发展展示
- 中药农业课题申报书模板
评论
0/150
提交评论