我正在爲2D幾何數據寫一個轉換器。我必須轉換的一個元素是弧。在源系統中,弧用兩個軸對齊的矩形來描述。第一個矩形是圓弧所在圓的邊界框。第二個矩形是弧本身的邊界框。約束條件是,弧的邊界框必須與圓的邊界框的兩條邊相交。我知道每個矩形的左上角和右下角的座標。圓和軸對齊的矩形之間的交點
目標系統描述如下的圓弧:矩形是圓弧所在圓弧的一個邊界框。到目前爲止,它與上述相同。然後我有兩個點指定弧的起點和終點。兩個點必須完全位於該圓的「邊緣」上。
問題是:您是否看到一種簡單的方法來計算弧的起點和終點?我已經看到this question,但它似乎很複雜。或許有這樣做的更簡單的方法...
我的想法至今:
看來我必須計算出圓弧與圓外接矩形框的邊緣的交叉點。有兩種情況是可能的(由於上述限制):只有一條邊與圓相交,或者兩條邊與圓相交。另外所有其他邊緣總是在圓外。
更新:開始點和結束點將圓切成兩部分。這兩個部分中的哪一個被繪製爲弧,由起點和終點的順序決定。始終從起點到終點逆時針繪製圓弧。
「只有一條邊與圓相交」時是這種情況嗎? – 2011-03-11 13:05:09
另外,圓的邊界框是一個正方形,不是嗎? (也許我錯過了一些重要的東西!) – 2011-03-11 13:06:35
@belisarius:你說得對,圓圈的邊框是方形的。但是第二個邊界框可以在大多數情況下是一個矩形。 「只有一條邊與圓相交」的情況是邊與圓相交兩次。圓弧終點將具有相同的x或y座標。 – McNumber 2011-03-11 18:54:58