這是我創建的JSFiddle。點擊開始框,然後點擊結束框。希望這會幫助你開始。
var start = false;
var start_time,end_time;
var points = [];
$("#start").click(function() {
start = true;
points = [];
start_time = Date.now();
});
$("#finish").click(function() {
start = false;
distance = travelledDistance();
time = (Date.now() - start_time)/1000;
var center_x_start = $("#start").offset().left + $("#start").width()/2;
var center_y_start = $("#start").offset().top + $("#start").height()/2;
var center_x_finish = $("#finish").offset().left + $("#finish").width()/2;
var center_y_finish = $("#finish").offset().top + $("#finish").height()/2;
var straight_distance = Math.round(Math.sqrt(Math.pow(center_x_finish - center_x_start, 2) + Math.pow(center_y_finish - center_y_start, 2)));
$("#time").text(+time+"s");
$("#distance").text(distance+"px");
$("#straight_distance").text(straight_distance+"px");
});
$(document).mousemove(function(event) {
if(!start)
return;
points.push(event.pageX + "," + event.pageY);
});
function travelledDistance(){
var distance = 0;
for (i = 0; i < points.length - 1; i++) {
start_point = points[i].split(",");
end_point = points[i+1].split(",");
distance += Math.round(Math.sqrt(Math.pow(end_point[0] - start_point[0], 2) + Math.pow(end_point[1] - start_point[1], 2)));
}
return distance;
}
UPDATE
我做了一個new version here。現在您可以拖動目標來檢查不同的結果。
我想你是在要求我們設計一個在你腦海中還不清楚的算法。這個網站適用於你有算法的時候,你試圖實現它,並且你正面臨一個技術問題。 –