你必須計算出物體距中心點的距離:你的情況y0
distance = sqrt((y1-y0)^2 + (x1-x0)^2)
和x0 = 0
所以distance = sqrt((y1)^2 + (x1)^2)
然後你必須弄清楚x
變化的比例第二y
改變該距離,讓我們說,從產地爲對象的距離是100,它的座標是(x, y)
後來我們知道,在每一個時間間隔,在x
位置需要增加需求((x-0)/100)*velocity
和y
由((y-0)/100)*velocity
遞增,如果我們想讓對象沿着一條直線。
你應該速度屬性添加到得到,當你接近黑洞其絕對值增加每個對象:
var point = {
x: 615,
x0: 615,
y: 215,
y0: 215,
radius: 2,
velocity: -5, /* maybe make the initial value of this a function of intitialDistance to mimick black hole gravitational pull */
intitialDistance: Math.sqrt(Math.Pow(this.x0,2) + Math.pow(this.y0,2)),
deltaX: this.x0/this.initialDistance,
deltaY: this.y0/this.initialDistance
}
var move = setInterval(function() {
point.x += point.velocity * point.deltaX;
point.y += point.velocity * point.deltaY;
point.velocity -= 4;
}, 40);
你的每秒幀數是多少? – KpTheConstructor
setInterval(this.draw,1000/60); –
您需要計算當前點與原點之間的直線斜率,然後每次重繪時調整座標以使點仍然在(或靠近)直線上。 –