2011-04-13 106 views
2

我正在嘗試使用XAML的ArcSegment元素的屬性計算圓弧的邊界矩形。計算在XAML中使用<ArcSegment>繪製的圓弧的邊界矩形

的ArcSegment元件採取以下屬性: 1)StartPoint可以:啓動弧 2的點)點:弧 3)尺寸的終點:X和橢圓 4 Y的半徑)RotationAngle:橢圓的旋轉角度定義相對於X軸 5)IsLargeArc電弧:指示橢圓的哪個部分標誌被吸入(即,小弧或大圓弧) 5)SweepDirection:指定順時針或逆時針。

要提及的是,如果不可能使用在大小屬性和旋轉在RotationAngle屬性中指定的角度指定半徑的組合來呈現圓弧橢圓將被縮小。

任何人都可以告訴他們實際上是如何計算上述情況的比例因子。

回答

0

它們實際上是參考半長軸和半短軸,而不是半徑。終點是固定的。這意味着,如果兩個以下的角度是固定的(和它們)秤必須調整:通過電弧和由長軸和x軸對向的角度所對的角度。不能指定所有這些參數,並且仍然自由選擇一個在下文中,這簡直是橢圓的參數形式b [旋轉回到與Y和X軸對準]

X(θ),ÿ(θ)=(一個 COSθ,b罪θ)

這意味着,縮放因子是簡單地將值ç使得

X(φ),ÿ(φ)=(CA cosφ值,CB罪φ)=(X1,Y1)爲φ的初始值

CA cosφ值,CB罪φ)=(X2,Y2)爲φ的最終值。很明顯,這裏給出的解釋僅在橢圓旋轉時纔是正確的。但是關於另一點的旋轉不會導致你太多麻煩。