将 Microsoft EllipticalArcTo 映射到 ECMA-376 arcTo

Mapping Microsoft EllipticalArcTo to ECMA-376 arcTo

提问人:Кobak 提问时间:9/24/2023 最后编辑:Mike 'Pomax' KamermansКobak 更新时间:9/25/2023 访问量:36

问:

我有一个用例,我必须转换表示椭圆弧的参数。我有 、 、 、 和 Office 加载项 EllipticalArcTo 函数,我需要将其转换为 、 、 ,如 Office Open XML v1 规范 (ECMA-376) 中所述。xyABCDhRstAngswAngwR

我试图找到类似的问题,我想这个链接可能会有所帮助。

很高兴看到 JS 中的转换实现。但任何帮助都值得赞赏。我试过这个,但我想我的几何形状很弱。你能帮忙吗?

JavaScript 数学 几何

评论

0赞 MvG 9/24/2023
比较链接的文档,似乎 ECMA-376 只能做轴对齐的椭圆,即 Microsoft 规范中的参数 C 为零的情况。
0赞 Кobak 9/25/2023
你是对的,让我们考虑 C = 0
0赞 MvG 9/25/2023
ECMA-376 在描绘(在某些地方描述)椭圆时谈论的是“圆”。这让我怀疑它所描述的“角度”是实际的角度,还是可能是古怪的异常。以及实现是否同意他们对此的解释。如果这是一个很少使用且有缺陷的功能,我不会感到惊讶,并且将椭圆弧转换为三次贝塞尔曲线的近似值会更加便携。
0赞 Mike 'Pomax' Kamermans 9/25/2023
它。。。不?ECMA-376 将椭圆弧描述为椭圆弧,标准的“绝对起始角和相对结束角”和半径描述为“宽度”和“高度”半径,因为它没有旋转,所有椭圆都是轴对齐的(旋转来自椭圆所在的“盒子”,而不是椭圆本身)。
0赞 Mike 'Pomax' Kamermans 9/25/2023
此外,“唯一”的挑战是将 Office 加载项格式(指定椭圆通过三个点)转换为开始角和结束角的“传统”格式。值得庆幸的是,很多人已经在网络上(很容易找到“椭圆通过三点”)和其他stackexchange网站(如数学网站)上计算出数学。例如 math.stackexchange.com/questions/204364

答: 暂无答案