如何通过两点和半径大小计算椭圆的中心

问题描述 投票:19回答:5

[在基于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中,弧为...

math geometry svg vml ellipse
5个回答
24
投票

所以解决方案在这里:


6
投票

您发布的椭圆曲线弧链接包括link to elliptical arc implementation notes


3
投票

椭圆不能仅由两个点定义。甚至一个圆(特殊情况下的椭圆形)也由三个点定义。


1
投票

中间问题相当简单...您不知道。您可以从边界框算出椭圆的中心(即,只要椭圆在框中居中,框的中心就是椭圆的中心)。


0
投票

基于Rikki的答案的TypeScript实现。

© www.soinside.com 2019 - 2024. All rights reserved.