首页 文章

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

提问于
浏览
2

我试图使用XAML的ArcSegment元素的属性来计算弧的边界矩形 .

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

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

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

1 回答

  • 0

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

    x(θ),y(θ)=(cosθ,bsinθ)

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

    对于φ的初始值,x(φ),y(φ)=(cacosφ,cbsinφ)=(x1,y1)

    (cacosφ,cbsinφ)=(x2,y2)表示φ的最终值 . 显然,这里给出的解释仅在椭圆旋转时才是正确的 . 但关于另一点的旋转点不太可能给你带来太多麻烦 .

相关问题