2011-04-13 115 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)为φ的最终值。很明显,这里给出的解释仅在椭圆旋转时才是正确的。但是关于另一点的旋转不会导致你太多麻烦。