我正在开发一个基于cgm文件输入绘制形状的程序。我试图绘制椭圆弧,并根据弧的中心给出开始和结束向量的开口部分。我需要帮助计算矢量的角度,以便绘制。
我一直在尝试使用标准atan2(y / x),但后来我发现它对圆而不是省略号有效。
此图片举例说明了我正在尝试做的事情。我正在寻找角度A和B.
编辑:这与我的其他问题here有关。 (另请注意,这个问题是基于我的问题背后的数学,而另一个问题是关于qt的编程帮助。)
ellipses上的wiki页面显示了数学不起作用的原因,但我不确定如何实现它。
答案 0 :(得分:0)
您在图片中绘制的角度A和B实际上与椭圆无关。
只需计算x轴与从原点到点的线之间的角度(75,50)。这由arctan(50/75) = 33.69°
给出。并且通过对称性,它与指向角度(75,-50)相同。
然后,通过简单的三角学,对于角度A
,您得到A = 360° - 33.69°
,而对于B
,您得到B= 180° + 33.69°
。
考虑A
,这与atan2(-50, 75)
获得的信息相同。但是,atan2
的结果是(i)以弧度表示,(ii)在[-pi, pi]
范围内。你可以添加2*pi
并以角度表达它,你会得到与上面相同的结果。