DXライブラリで角丸四角形を描く
要するに某アニメのEDで見た
こういうのがやってみたかっただけという。
作ったのがこれです。ろくなエラー処理してません。正方形前提なので縦横の長さが違うと失敗します。
int DrawRoundBox( int x1 , int y1 , int x2 , int y2 , int Color ) { int result = -1; int r = static_cast<int>(((x2 - x1) * 0.17 )/ 2); if(x2 - x1 != y2 - y1) return result; /* 四隅の円 */ if((result = DrawCircle(x1 + r, y1 + r, r, Color, TRUE)) != 0) return result; if((result = DrawCircle(x2 - r - 1, y1 + r, r, Color, TRUE)) != 0) return result; if((result = DrawCircle(x1 + r, y2 - r - 1, r, Color, TRUE)) != 0) return result; if((result = DrawCircle(x2 - r - 1, y2 - r - 1, r, Color, TRUE)) != 0) return result; /* 円に被らない長方形 */ if((result = DrawBox(x1, y1 + r, x2, y2 - r, Color, TRUE)) != 0) return result; if((result = DrawBox(x1 + r, y1, x2 - r, y2, Color, TRUE)) != 0) return result; return result; }