[英]Check for collision between a circle and the perimeter of a circle sector
我正在嘗試創建一個函數來檢查圓與圓扇形的周長之間是否存在碰撞/相交。
我將更詳細地說明我的問題:
1.我有一個由圓心(x1,y1),半徑(r1)和角度(m)定義的圓弧,告訴我圓弧的起點和終點。
2.另一方面,我有一個由中心點(x2,y2),半徑(r2)定義的圓。
3.我正在用HTML5畫布創建一個小游戲,其中這兩個幾何形狀都可以自由移動。
4.問題是我想知道這兩個(綠色圓圈部分和綠色圓圈)是否相互碰撞。
我當前的代碼非常基礎(因為我無法提出可以有效檢查沖突的內容)。 它僅檢查定義該圓扇形的圓與另一個圓之間的碰撞:
this.crashWith = function(otherobj) {
// "this" is the circle
// "otherobj" is the circle sector
var dx = this.x - otherobj.x;
var dy = this.y - otherobj.y;
var distance = Math.sqrt(dx * dx + dy * dy);
var crash = false;
if (distance < this.radius +otherobj.radius) {
crash = true;
}
return crash;
}
注意:圓扇形(綠色)具有線寬(如圖中所示),並且角度m發生變化(因為圓扇形圍繞中心旋轉)。
我認為正確的解決方案是知道圓扇形不變(只是旋轉)而可以計算碰撞的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.