PhysicsII
by Simon Raper
JavaScript
//constants
var g = 0.981;
var initXVel = 5;
var initYVel = 30;
var t = 0,
x = 0,
y = 0;
//Set up svg
var svg = d3.select("body").append("svg").attr("width", 800)
.attr("height", 500);
//Create adaptable scales
var xScale = d3.scale.linear()
.domain([0, 300])
.range([10, 480]);
var yScale = d3.scale.linear()
.domain([0, 500])
.range([480, 10]);
//Set up projectile
svg.append("circle").attr("class", "ball")
.attr("cx", function () {
return xScale(x);
})
.attr("cy", function () {
return yScale(y);
})
.attr("r", 3);
//Loop for time
tt = d3.select(".ball");
while (y >= 0) {
x = t * initXVel;
y = t * initYVel - 0.5 * g * t * t;
tt = tt.transition().duration(150).ease("linear").attr("cx", function () {
//console.log(xScale(x));
return xScale(x);
})
.attr("cy", function () {
//console.log(yScale(y));
return yScale(y);
});
t = t + 2;
}