全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 玉溪师范学院《社会政策》2023-2024学年第一学期期末试卷
- 玉溪师范学院《美国社会与文化》2022-2023学年第一学期期末试卷
- 函数定义域求法教案
- 人力培训 -绩效面谈沟通技巧及改进方案
- 2019粤教版 高中美术 选择性必修6 现代媒体艺术《第三单元 中期的设定与拍摄》大单元整体教学设计2020课标
- 2024届河北省衡水中学高三下学期三校五测数学试题试卷
- 2024届贵州省都匀一中高考原创信息试卷数学试题(三)
- 财务咨询商业计划书合同
- 被褥购买协议书范本
- 高血压病的健康指导
- 六年级上册数学总复习看图列式计算题
- 常用的氮肥硫酸铵课件
- 凤凰大桥坍塌事故分析课件
- 2022版义务教育(科学)课程标准(含2022年新增和修订部分)
- 土石方报告模板
- JC01基础心理学单科作业题汇总(含解析)
- 三级整形外科医院标准
- 养老院院内感染防控员课件
- 财政与金融基础知识全套教学课件(中职)
- 2022小学新课程标准《道德与法治》
- 施工进度计划及确保施工进度的措施
评论
0/150
提交评论