如何使用两个坐标用javascript绘制一个椭圆?

时间:2016-08-23 10:12:30

标签: javascript algorithm graphics 2d ellipse

就像图片展示一样,我有两个坐标,我想绘制一个椭圆,主轴边缘与这两个点相匹配。

enter image description here

我尝试过这两个坐标之间的中间点并在这一个坐标上绘制一个椭圆。像这些代码,下面的函数返回我想要的椭圆点数组:

public boolean isEmpty(String... fields)
    {
        for (String string : fields)
        {
            if (null == string || string.trim().length() == 0)
            {
                // return true of filed is blank
                return true;
            }
        }
        return false;
    }

但问题是,这些只能绘制一个水平椭圆,我不知道如何改变角度。

有人知道如何解决我的问题吗?

1 个答案:

答案 0 :(得分:3)

<强>提示

如果javascript中没有旋转的椭圆特征,则解决方法是使用Bezier三次近似。请参阅帖子How to create circle with Bézier curves?,了解如何使用四个贝塞尔曲线近似圆。然后椭圆只是一个拉伸的圆圈,它足以以相同的方式拉伸控制点。

从单位圆开始,按轴长度缩放控制点,应用所需的旋转并平移到所需的中心。缩放和旋转参数可以从给定的主轴(加上镜头的长度)中绘制。

另一种方法是使用椭圆的参数方程并将其绘制为折线。