実現したいこと
MFC(C++)で作成した円弧を描画するプログラムを、C#に移植したい。
前提
MFC(C++)で作成した円弧を描画するプログラムを、C#に移植しているのですが、引数の違いで問題が発生しました。MFCでは外接する四角形の開始地点と終了地点を座標で渡すのですが、C#では角度で渡します。移植するのに、どのように変換したらよいかがわかりません。
発生している問題・エラーメッセージ
MFC(C++)での円弧の描画
BOOL Arc(
int x1,
int y1,
int x2,
int y2,
int x3,
int y3,
int x4,
int y4);
x1
外接する四角形の左上隅の x 座標を指定します (論理単位)。
y1
外接する四角形の左上隅の y 座標を指定します (論理単位)。
x2
外接する四角形の右下隅の x 座標を指定します (論理単位)。
y2
外接する四角形の右下隅の y 座標を指定します (論理単位)。
x3
円弧の始点を定義する点の x 座標を指定します (論理単位)。 この点は、円弧上に正確に配置する必要はありません。
y3
円弧の始点を定義する点の y 座標を指定します (論理単位)。 この点は、円弧上に正確に配置する必要はありません。
x4
円弧の終点を定義する点の x 座標を指定します (論理単位)。 この点は、円弧上に正確に配置する必要はありません。
y4
円弧の終点を定義する点の y 座標を指定します (論理単位)。 この点は、円弧上に正確に配置する必要はありません。
C#での円弧の描画
public void DrawArc (System.Drawing.Pen pen, int x, int y, int width, int height, int startAngle, int sweepAngle);
Pen
円弧の色、幅、およびスタイルを決定する Pen。
x
Int32
楕円を定義する四角形の左上隅の x 座標。
y
Int32
楕円を定義する四角形の左上隅の y 座標。
width
Int32
楕円を定義する四角形の幅。
height
Int32
楕円を定義する四角形の高さ。
startAngle
Int32
x 軸から円弧の開始点まで、時計回りに測定した角度 (度単位)。
sweepAngle
Int32
startAngle パラメーターから円弧の終了点まで、時計回りに測定した角度 (度単位)。
x,y,width,heightは下記のように変換できますが、sweepAngle,startAngle はどのように計算したらよいでしょうか。
x:x1
y:y1
width:x2-x1
height:y2-y1
