如何解决计算XAML中使用<ArcSegment>绘制的圆弧的边界矩形
| 我正在尝试使用XAML的ArcSegment元素的属性来计算弧的边界矩形。 ArcSegment元素具有以下属性: 1)起点:弧的起点 2)点:圆弧的终点 3)大小:椭圆的X和Y半径 4)RotationAngle:定义圆弧相对于X轴的椭圆的旋转角 5)IsLargeArc:标记,指示要绘制椭圆的哪一部分(即小圆弧或大圆弧) 5)SweepDirection:指定顺时针或逆时针。 提到如果无法使用Size属性中指定的半径和RotationAngle属性中指定的旋转角度的组合渲染圆弧,则将缩放椭圆。 谁能说出他们实际上是如何计算上述情况的比例因子的。解决方法
他们实际上是在参考半长轴和半短轴,而不是半径。端点是固定的。这意味着如果以下两个角度都固定(并且都是固定的),则必须调整比例尺:圆弧对角和长轴与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)。显然,此处给出的解释仅在椭圆旋转之前是正确的。但是,将一个点围绕另一个点旋转可能不会给您带来太多麻烦。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。