アンチエイリアス付きでDrawCircleGaugeを実行させる方法

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Hme

アンチエイリアス付きでDrawCircleGaugeを実行させる方法

#1

投稿記事 by Hme » 6年前

DXライブラリには画像を扇形を描画するDrawCircleGaugeという隠し関数があるようなのですが、扇形の半径の部分がギザギザしてしまいます。
そこでアンチエイリアスを掛けてこの関数を実行したいのですが方法はあるのでしょうか?
DrawCircleGaugeAAという関数は存在しないようでした。

Math

Re: アンチエイリアス付きでDrawCircleGaugeを実行させる方法

#2

投稿記事 by Math » 6年前

DrawCircleGaugeを使ってみました。C++Bulder10.2(BCC5.5後継)+DXライブラリ
g1.cpp

コード:

#include "DxLib.h"

int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){

        //ウィンドウモード変更と初期化と裏画面設定

        ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK ); 
        int i = 0;
        int Handle;     // 画像格納用ハンドル
        Handle = LoadGraph( "Test.png" ); // 画像のロード

        // while( 裏画面を表画面に反映, メッセージ処理, 画面クリア )
        while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 ){

                // 円グラフ的な描画を行う( GrHandle の画像の上下左右の端は透過色にしておく必要があります )
                // int DrawCircleGauge( int CenterX, int CenterY, double Percent, int GrHandle, double StartPercent = 0.0 ) ;

                // Percent で描画する円の終点角度を%で指定します( 0.0 = 0度 50.0 = 180度 100.0 = 360度 )
                // 0度の角度は、時計の12時の位置で、指定できる%の範囲は -100.0 ~ 200.0 です

                DrawCircleGauge( 200, 200, i, Handle, 0);

                if( i < 101 ) ++i ; // iを増やす

        }
        
        DxLib_End(); // DXライブラリ終了処理
        return 0;
} 
bcc55w.bat

コード:

bcc32 -tW -Id:\dxlib_x -Ld:\dxlib_x g1.cpp

g1.exe

pause
実行結果
http://www2.koyoen.birdview.co.jp/~abcxyz/x0414.png

扇形から円をえがきます。

DrawCircle と異なり描画する円の画像を用意するので元の画像がアンチエイリアス加工されているひつようがありますね(^^;

返信

“C言語何でも質問掲示板” へ戻る