イメージ画像ありがとうございます、恐らく理解できたと思います
直接裏画面に描画するのではなく、一度仮画面に円と、円同士を
結ぶ領域を描画した後、裏画面にアルファブレンドで仮画面を描画すれば
初心者Aさんの希望される処理が実現できると思います
サンプルを作成してみましたので、よろしければご覧ください m(_ _)m
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
int TempScreen ;
int Alpha = 255, AlphaAdd = -4 ;
// ウインドウモードで起動
ChangeWindowMode( TRUE ) ;
// DXライブラリの初期化
if( DxLib_Init() < 0 ) return -1 ;
// 仮画面の作成
TempScreen = MakeScreen( 640, 480, TRUE ) ;
while( ProcessMessage() == 0 )
{
// アルファ値を変化させる
Alpha += AlphaAdd ;
if( Alpha <= 0 || Alpha >= 255 )
{
AlphaAdd = -AlphaAdd ;
}
// 仮画面を描画先に変更
SetDrawScreen( TempScreen ) ;
// 仮画面をクリア
ClearDrawScreen() ;
// 円と台形を描画
DrawCircle( 100, 240, 50, GetColor( 255,255,0 ), TRUE ) ;
DrawCircle( 490, 240, 100, GetColor( 255,255,0 ), TRUE ) ;
DrawQuadrangle( 100, 190, 490, 140, 490, 341, 100, 291, GetColor( 255,255,0 ), TRUE ) ;
// 描画先を裏画面に変更
SetDrawScreen( DX_SCREEN_BACK ) ;
// 裏画面をグレーで塗りつぶす
DrawBox( 0, 0, 640, 480, GetColor( 128,128,128 ), TRUE ) ;
// 仮画面をアルファブレンドで描画
SetDrawBlendMode( DX_BLENDMODE_ALPHA, Alpha ) ;
DrawGraph( 0, 0, TempScreen, TRUE ) ;
SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 255 ) ;
// 裏画面の内容を表画面に反映
ScreenFlip() ;
}
// DXライブラリの後始末
DxLib_End() ;
// ソフトの終了
return 0 ;
}
上記のプログラムではまず仮画面に2つの円を DrawCircle で描画して、
円同士の間の部分を DrawQuadrangle で描画しています
その後描画先を裏画面に切り替え、仮画面をアルファブレンドで描画しています
上記プログラムの DrawQuadrangle で指定する 4頂点の座標を共通外接線の接点にすれば
良いのではないかと思います
よろしければお試しください m(_ _)m