2016-05-12 51 views
0

我正在研究基于cgm文件输入绘制形状的程序。我试图绘制椭圆弧,并以圆弧中心的开始和结束矢量为开头部分。我需要帮助计算角度的矢量,所以我可以绘制。计算给定两个向量的椭圆弧开始和结束角度

我一直在尝试使用标准atan2(y/x),但后来我发现它对于圆形而不是椭圆有效。

这张图片给出了我想要做的一个例子。我正在寻找角度A和B.

编辑:这与我的其他问题here有关。 (另外请注意,这个问题是基于我的问题背后的数学问题,而另一个问题是用qt编程帮助。)

ellipses上的维基页显示数学为什么不起作用,但我不是确定如何实施它。

Elliptical Angle Example

+0

A和B的期望值是多少?椭圆的大小是给定的吗? – kennytm

+0

@kennytm我不确定具体值是什么。是的,给出了椭圆的大小。我更新了原始问题,并链接到我的另一个问题上,这个问题就是建立在这个问题上的。 – Gene

回答

0

角度A和B你在你的照片其实画什么都没有做的椭圆形。

只需计算x轴与从原点到点(75,50)的直线之间的角度即可。这由arctan(50/75) = 33.69°给出。并且通过对称性,它与角度(75,-50)相同。

然后,通过简单的三角函数,对角AA = 360° - 33.69°,而对于BB= 180° + 33.69°

考虑到A,这与atan2(-50, 75)获得的信息相同。但是,atan2的结果在(i)中以弧度表示,(ii)在[-pi, pi]的范围内。您可以添加2*pi并以角度表示,并获得与上述相同的结果。

+0

这就是我最初尝试过的,但我使用结果在qt中使用drawArc函数[qpainter](https://doc.qt.io/qt-4.8/qpainter.html)类绘制角度。如果我使用这些答案,弧​​线绘制不正确。 – Gene