Net]GraphicsでPictureBoxを透過させ、背景に図形を重ねて書く2021/05/27POSTSB!やりたいことお絵かきアプリを作りたい。Graphics.DrawRectangleを使って画像に四角形を描きたいが、そのまま画像に描写すると動きのあるアニメーションを入れた時もとに戻すことができない。オーバーレイ用の透明なPictureBoxを用意し入力が確定されるまでそこに図形を書き入れることにした。写真などを表示する層をpictureBox1とし、その上にpicturebox2を重ねて図形を描く。}}解説GraphicsとbitmapについてGraphicsは、直接PictureBoxに図形や線を書き入れることはできない。overlayというbitmap画像にGraphicsで図形を書き入れ、それをPictureBox.Imageに設定するという少しややこしいことをする。mydraw()では、500x500のBitmapの作成と作図、pictureBox.Imageへの挿入を行っている。透過についてpictureBox1を背景画像として表示させるためには、pictureBox2とoverlay両方の透過が必要になる。Color.Transparentは透明色を表す色の一種。Color.Transparent;graphics.Clear(Color.Transparent);overlayの再描写クリックした場所に四角形を動かしてみる。pictureBox2を選択しカミナリアイコンを押した後、Clickのアクションをダブルクリック。ユーザーがクリックしたときに呼ばれるPictureBox2_MouseClickという関数が作成されているはず。以下のように書き換える。}}背景がサイズの大きい画像の場合でも再描写が発生しないので高速だし、メモリの節約にもなる。Article凸包を求めるC++プログラムとテストケース(Graham)授業のレポートでせっかく作ったので公開する。