计算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)。显然,此处给出的解释仅在椭圆旋转之前是正确的。但是,将一个点围绕另一个点旋转可能不会给您带来太多麻烦。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...