運動を記述する式をたくさん作ってみた 色んな本を参考にして、運動を記述する式を色々と作ってみました。 argon forked:0favorite:0lines:159license : MIT License modified : 2012-06-10 14:54:53 Embed Tweet package { import flash.display.Sprite; import flash.events.Event; /** * ... * @author argon */ public class Main extends Sprite { public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point var _a:DisplacementNumber = new DisplacementNumber(); var a:Number = _a.getVerticalTime(0, -50, -9.8); var _ans:MathRound = new MathRound(); var ans:Number = _ans.getMathRound(a); var answer:AddTextField=new AddTextField(ans,10,50); addChild(answer); } } } class Acceleration { public function Acceleration() { } public function getAcceleration(_firstSpeed:Number, _lastSpeed:Number, _afterSec:Number):Number { var displacementAnswer:Number = _lastSpeed - _firstSpeed; var changeMeters:Transformation = new Transformation(); var changeSec:Number = changeMeters.getTransformation(displacementAnswer); var acceleration:Number = changeSec / _afterSec; var roundAcceleration:Number = Math.round(acceleration * 100) / 100; return roundAcceleration; } } class AccelerationTime { public function AccelerationTime() { } public function getAccelerationTime(_firstSpeed:Number, _lastSpeed:Number, _acceleration:Number):Number { var chg:Transformation = new Transformation(); var chgNum:Number = chg.getTransformation(_lastSpeed - _firstSpeed); var sol:Number = Math.round((chgNum / _acceleration) * 10) / 10; return sol; } } class AverageSpeed { public function AverageSpeed() { } public function getAverageSpeed(_firstSpeed:Number, _lastSpeed:Number):Number { var solution:Number = (_firstSpeed + _lastSpeed) / 2; return solution; } } class MathRound { public function MathRound() { } public function getMathRound(_a:Number):Number { var sol:Number = Math.round(_a * 100) / 100; return sol; } } class DisplacementNumber { public function DisplacementNumber() { } public function getDisplacementNumber(_firstSpeed:Number, _lastSpeed:Number, _time:Number):Number { var trans:Transformation = new Transformation(); var _trans:Number = trans.getTransformation(_firstSpeed + _lastSpeed); var solution:Number = (_trans) / 2 * _time; return solution; } public function getCustomDspNum(_firstSpeed:Number, _lastSpeed:Number, _time:Number):Number { var accelNum:Acceleration = new Acceleration(); var _accelNum:Number = accelNum.getAcceleration(_firstSpeed, _lastSpeed, _time); var solution:Number = _firstSpeed * _time + (.5 * _accelNum * Math.pow(_time, 2)); return solution; } public function getCustomLastNum(_firstSpeed:Number, _lastSpeed:Number, _acceleration:Number ):Number { var solution:Number = (Math.pow(_lastSpeed, 2) - Math.pow(_firstSpeed, 2)) / (2*_acceleration); return solution; } public function getAcceleTime(_firstSpeed:Number, _acceleSpeed:Number, _displacementNumber:Number):Number { var _vf:Number = Math.pow(_firstSpeed, 2) + (2 * _acceleSpeed * _displacementNumber); _vf = Math.sqrt(_vf); _vf = Math.round(_vf * 100) / 100; var t:Number = (_vf - _firstSpeed) / _displacementNumber; return t; } public function getVerticalTime(_firstSpeed:Number, _displacementNumber:Number, _acceleration:Number):Number { var _t:Number = _displacementNumber / (_firstSpeed + _acceleration / 2); var t:Number = Math.sqrt(_t); return t; } } class LastSpeed { public function LastSpeed() { } public function getLastSpeed(_firstSpeed:Number, _acceleration:Number, _time:Number):Number { var solution:Number = _firstSpeed + _acceleration * _time; return solution; } public function getCustomLastSpeed(_firstSpeed:Number,_lastSpeed:Number,_time:Number):Number { var accelNum:Acceleration = new Acceleration(); var _accelNum:Number = accelNum.getAcceleration(_firstSpeed, _lastSpeed, _time); var solution:Number = .5 * (_firstSpeed + _lastSpeed) * ((_lastSpeed - _firstSpeed) / _accelNum); return solution; } } class Transformation { public function Transformation() { } public function getTransformation(_a:Number):Number { var transSec:Number = _a * 1.609 * 1000 / 3600; var sol:Number = Math.round(transSec * 100) / 100; return sol; } } import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.TextFormat; class AddTextField extends Sprite { public function AddTextField(_num:Number, _x:Number, _y:Number ):void { var tf:TextFormat = new TextFormat("arial", 10, 0x000000, false, true); //tf.size = TextFieldAutoSize.LEFT; var txt:TextField = new TextField(); txt.defaultTextFormat = tf; txt.text = String(_num); txt.x = _x; txt.y = _y; addChild(txt); } } Code Fullscreen Preview Fullscreen Math.round Math.pow Event.ADDED_TO_STAGE Math.sqrt TextFormat stage removeEventListener addChild addEventListener text Event String Sprite Number