计算椭圆弧终点

时间:2015-12-16 13:50:46

标签: svg

我需要在图像上画圆弧,我知道半径(r),中心点(x0,y0),起点(x1,y1)和角度(a,b => y)。我需要计算终点(x2,y2)的位置。我想这是用椭圆弧完成的,但我还没有成功。

我已从评论中提到的链接(How to calculate the SVG Path for an arc (of a circle))中获取示例,我的代码如下:

  1. 获得圆心(如下图所示为橙色圆点)
  2. 计算半径(从左角到中心点) var radius = Math.sqrt(Math.pow(circleCenter.getY() - corner.getY(), 2) + Math.pow(circleCenter.getX() - corner.getX(), 2));
  3. 计算上述opsb示例中的点数

    var start = this.polarToCartesian(circleCenter, radius, angleB);
    var end = this.polarToCartesian(circleCenter, radius, angleA);
    polarToCartesian(center: Coordinate, radius: number, angle: number): Coordinate {
        // zero angle is in 9 o'clock, angle in radian
        var xDiff = radius * Math.cos(angle - Math.PI / 2)
        var yDiff = radius * Math.sin(angle - Math.PI / 2)
        var x = center.getX() + xDiff;
        var y = center.getY() + yDiff;
    
        return new Coordinate(x, y);
    }
    
  4. 我最终得到的是,这里(箭头点不符合线条):

    enter image description here

    我也尝试过wdebeaum的例子并且非常接近,但并非一直如此。终点很少。

0 个答案:

没有答案