2016-05-12 9 views
0

私はcgmファイル入力に基づいて形状を描くプログラムを開発中です。私は楕円弧を描画しようとしており、弧の中心から始点と終点のベクトルで開口部を与えます。私は描くことができるようにベクトルに対する角度を計算するのに助けが必要です。2つのベクトルを与えた楕円弧の開始角度と終了角度を計算する

私は標準atan2(y/x)を使用しようとしていますが、円と楕円には有効であることがわかりました。

この画像は私がしようとしているものの例です。私は角度AとBを探しています。

編集:これは私の他の質問hereに関連しています。 (また、この質問は私の問題の背後にある数学に基づいていますが、もう1つの質問はQtでプログラミングヘルプのためです)。それを実装する方法を確認してください。あなたが実際にあなたの絵に描いた

Elliptical Angle Example

+0

AとBの期待値は?楕円のサイズは与えられていますか? – kennytm

+0

@kennytm私は正確な値が何であるか分かりません。はい、楕円のサイズが与えられます。私は元の質問を、これが構築されている他の質問へのリンクで更新します。 – Gene

答えて

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を追加して角度で表現すると、上記と同じ結果になります。

+0

これは私が元来試みたものですが、drawArc関数[qpainter](https://doc.qt.io/qt-4.8/qpainter.html)クラスを使用して、結果をqtに描画するために使用しています。これらの答えを使用すると、円弧が正しく描画されません。 – Gene

関連する問題