我无法弄清楚如何模拟这个。红色箭头处于静止位置。背景,有一条弯曲的路径。我只是移动背景位置,使箭头似乎沿着弯曲的路径移动。
Red Arrow http://img829.imageshack.us/img829/6636/redarrowe.png
我现在所拥有的是箭头以45度角移动到目的地。但我想要实现的是箭头在虚线路径上移动。
var interval = 100;
var currX = -82; // Current x position
var currY = -342; // Current y position
var destX = -750; // Destination x position
var destY = -850; // Destination y position
var currentDuration = 0;
var duration = 1800 * 1000; // Duration
var $bg = $('#flight-wrapper');
var intbg = window.setInterval(function(){
currentDuration += interval;
var leftX = destX - currX; // X pixels left
var leftY = destY - currY; // Y pixels left
var leftDuration = duration - currentDuration; // Duration left
var tickX = leftX / leftDuration * interval; // Pixel to offset
var tickY = leftY / leftDuration * interval; // Pixel to offset
var newX = currX + tickX;
var newY = currY + tickY;
// Prevent it going further than the destination X & Y pixel
currX = newX <= destX ? destX : newX;
currY = newY <= destY ? destY : newY;
if ( currX <= destX && currY <= destY ) {
window.clearTimeout(intbg);
}
$bg.css({
backgroundPosition: Math.floor(currX) + 'px ' + Math.floor(currY) + 'px'
});
}, interval);
希望有人能帮助我。
答案 0 :(得分:0)
鉴于箭头在任何给定时间p = (x_t, y_t)
处的点t
,您需要找出tangent to your curve at the point p
numerically的内容,它将告诉您箭头应该指向的确切位置。