[在基于Internet Explorer自身的VML格式进行Internet Explorer的SVG实现时,我遇到了将SVG椭圆弧转换为VML椭圆弧的问题。
在VML中,圆弧由以下形式给出:椭圆上两个点的两个角度和半径的长度,在SVG中,圆弧由以下方式给出:椭圆上两个点的两对坐标和椭圆边界框的大小
因此,问题是:如何将椭圆上的两个点的角度表达为其两对坐标。一个中间问题可能是:如何通过其曲线上的一对点的坐标来找到椭圆的中心。
Update:让我们有一个先决条件,即通常放置一个椭圆(其半径平行于线性坐标系轴),因此不应用旋转。
Update:此问题与svg:ellipse元素无关,而是与svg:path元素(SVG Paths: The elliptical arc curve commands)]中的“ a”椭圆弧命令有关
[在将Internet Explorer基于其自身的VML格式进行SVG实现时,我遇到了将SVG椭圆弧转换为VML椭圆弧的问题。在VML中,弧为...
所以解决方案在这里:
您发布的椭圆曲线弧链接包括link to elliptical arc implementation notes。
椭圆不能仅由两个点定义。甚至一个圆(特殊情况下的椭圆形)也由三个点定义。
中间问题相当简单...您不知道。您可以从边界框算出椭圆的中心(即,只要椭圆在框中居中,框的中心就是椭圆的中心)。
基于Rikki的答案的TypeScript实现。