计算使用XAML </arcsegment>中的<arcsegment>绘制的圆弧的边界矩形

时间:2011-04-13 06:51:55

标签: xaml math

我正在尝试使用XAML的ArcSegment元素的属性来计算弧的边界矩形。

ArcSegment元素具有以下属性: 1)StartPoint:弧的起点 2)点:弧的终点 3)尺寸:椭圆的X和Y半径 4)RotationAngle:椭圆的旋转角度,相对于X轴定义弧 5)IsLargeArc:表示要绘制椭圆的哪个部分的标志(即小弧或大弧) 5)SweepDirection:指定顺时针或逆时针。

如果使用Size属性中指定的半径和RotationAngle属性中指定的旋转角度组合无法渲染弧,则会提到缩放椭圆。

任何人都可以告诉他们实际上是如何计算上述案例的比例因子。

1 个答案:

答案 0 :(得分:0)

它们实际上是参考半长轴和半短轴,而不是半径。终点是固定的。这意味着如果以下两个角度都是固定的(并且它们是),则必须调整比例:弧所对应的角度以及长轴和x轴所对应的角度。您无法指定所有这些参数,仍然可以在下面自由选择 a b ,这只是椭圆的参数形式[旋转回与Y对齐和X轴]

x (θ), y (θ)=( a cosθ, b sinθ)

这意味着缩放因子只是 c 的值

x (φ), y (φ)=( ca cosφ, cb sinφ) =(x1,y1)表示φ

的初始值

ca cosφ, cb sinφ)=(x2,y2)为φ的最终值。显然,这里给出的解释仅在椭圆旋转时才是正确的。但关于另一点的旋转可能不会给你带来太多麻烦。