我正在使用Canvas和JS,我有一个简单的物理模拟器,其中一个球被添加到画布并对重力,碰撞和阻力作出反应。
目前它可以通过拖动(如弹性带)来解决。
function drawSlingshot() {
if (mouse.isDown) {
ctx.beginPath();
ctx.moveTo(ball.position.x, ball.position.y);
ctx.lineTo(mouse.x, mouse.y);
ctx.stroke();
ctx.closePath();
}
}
这是我绘制线条的功能,指示球的去向。不幸的是,这与其预期相反。球应该与线一起移动而不是靠在它上面。
目前我获取球的X和Y的位置以及球的X和Y. 光标。如果要通过球镜像线,我正在寻找的点是镜像线的x,y。 (见下图)
我对如何做到这一点有任何想法?
答案 0 :(得分:1)
首先计算光标和球之间的差异。
var difference_x = mouse.x - ball.position.x;
var difference_y = mouse.y - ball.position.y;
然后在球位置和球位置之间画一条线减去差值:
ctx.lineTo(ball.position.x - difference_x, ball.position.y - difference_y);