blob: 2f002b74e06959094d3b329f15434176feca7363 [file] [log] [blame]
// Copyright (c) 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
part of newton;
class GravitySimulation extends Simulation {
final double _x;
final double _v;
final double _a;
final double _end;
GravitySimulation(
double acceleration, double distance, double endDistance, double velocity)
: _a = acceleration,
_x = distance,
_v = velocity,
_end = endDistance;
double x(double time) => _x + _v * time + 0.5 * _a * time * time;
double dx(double time) => _v + time * _a;
@override
bool isDone(double time) => x(time).abs() >= _end;
}