0
我一直在試圖製作一個程序,其中一個球從一個旋轉的矩形反彈出來,我必須學習一些基本的三角函數,但是我注意到當我跑時這是它是半不準確的。就像每當球擊中矩形只是離開中心一點點時,它就會直接穿過它,或者沿着它沒有想到的方向反彈。爲了更好地理解我的問題,如果您去檢查了my fiddle,我將不勝感激。三角函數的問題:圓角與矩形相交
我認爲這是一個數學問題,(考慮到我的成績直到10或11年級纔會學到),但它可能更多。
這裏的數學funcions:
function getNormal(a) {
return {
x: Math.sin(a),
y: Math.cos(a)
}
}
function reflect(n, v) {
let d = 2 * dot(v, n);
v.x -= d * n.x;
v.y -= d * n.y;
return v;
}
function dot(v1, v2) {
return v1.x * v2.x + v1.y * v2.y;
}
您錯過了OP代碼的主要問題。第102行讀取'let normal = getNormal(padAngle);''padAngle'爲'undefined'並且行應該讀爲'let normal = getNormal(pad.angle);'並且我看不到deg和rad之間的任何單位轉換所以除了旋轉的規模之外,所使用的單位應該沒有問題。 – Blindman67