【发布时间】:2019-03-04 12:51:43
【问题描述】:
我需要找到二维变换椭圆弧的确切边界。
条目数据为:
- a - 椭圆半径 x
- b - 椭圆半径 y
- transform - 0 平移(a、b、c、d、tx、ty)的 2D 变换
- startAngle - 圆弧起始角度
- endAngle - 圆弧结束角度
我已使用此主题答案来查找变换椭圆的边界 https://math.stackexchange.com/questions/91132/how-to-get-the-limits-of-rotated-ellipse
它工作正常。
我现在拥有的东西
const rx2 = radiusX * radiusX;
const ry2 = radiusY * radiusY;
let maxX = Math.sqrt(rx2 * transform.a * transform.a + ry2 * transform.c * transform.c);
let maxY = Math.sqrt(rx2 * transform.b * transform.b + ry2 * transform.d * transform.d);
let minX = -maxX;
let minY = -maxY;
下一步是找到点p1,p2,p3,p4(见图) 那么我可以检查哪些点在 startAngle 和 endAngle 内。
椭圆方程为: simple equation
变换椭圆的方程应为: transformed equation
为了找到所需的点,必须求解最后一个方程的 x 和 y
【问题讨论】:
标签: automatic-ref-counting bounds ellipse