« ☆配列のサイズ変更で・・・。 | トップページ | ■Clever Icons »

☆円弧の描画

円弧の描画時に、時計回りなのか、半時計回りなのかを判断して 座標を入れ替えて表示させていましたが、SetArcDirection APIを使うと 処理がすっきりするかも知れませんね。
// SetArcDirectionを使わない処理
if (Enko.m_radEnkoKaku < 0) then
  ACanvas.Arc(P1.X,P1.Y,P2.X,P2.Y,P4.X,P4.Y,P3.X,P3.Y)
else
  ACanvas.Arc(P1.X,P1.Y,P2.X,P2.Y,P3.X,P3.Y,P4.X,P4.Y);


// SetArcDirectionを使った処理
if (Enko.m_radEnkoKaku < 0) then
  SetArcDirection(ACanvas.Handle, AD_CLOCKWISE)          // 時計回り
else
  SetArcDirection(ACanvas.Handle, AD_COUNTERCLOCKWISE);  // 反時計回り

ACanvas.Arc(P1.X,P1.Y,P2.X,P2.Y,P3.X,P3.Y,P4.X,P4.Y)   // 円弧

|

« ☆配列のサイズ変更で・・・。 | トップページ | ■Clever Icons »