マウスをクリックした時など、任意の座標がある領域の範囲内にあるか?どうか?調べたい場合があります。
これを調べるには、四角形の領域の場合、Rectangleクラス(名前空間:System.Drawing)のContainsメソッドを用います。
さらに複雑な形状の領域の場合、GraphicsPath(名前空間:System.Drawing.Drawing2D)のIsVisibleメソッドを用います。
四角形領域の場合のコード例
bool insideFlg;
var rect = new Rectangle(2, 2, 8, 8);
for (int i = 0; i < 12; i++)
{
insideFlg = rect.Contains(i, i);
System.Diagnostics.Debug.WriteLine($"四角の場合:{i}, {insideFlg}");
}
実行結果
四角の場合:0, False 四角の場合:1, False 四角の場合:2, True 四角の場合:3, True 四角の場合:4, True 四角の場合:5, True 四角の場合:6, True 四角の場合:7, True 四角の場合:8, True 四角の場合:9, True 四角の場合:10, False 四角の場合:11, False |
丸領域の場合のコード例
bool insideFlg;
var path = new System.Drawing.Drawing2D.GraphicsPath();
path.AddEllipse(2, 2, 8, 8);
for (int i = 0; i < 12; i++)
{
insideFlg = path.IsVisible(i, i);
System.Diagnostics.Debug.WriteLine($"丸の場合:{i}, {insideFlg}");
}
実行結果
丸の場合:0, False
丸の場合:1, False
丸の場合:2, False
丸の場合:3, False
丸の場合:4, True
丸の場合:5, True
丸の場合:6, True
丸の場合:7, True
丸の場合:8, True
丸の場合:9, False
丸の場合:10, False
丸の場合:11, False
←画像処理のためのC#へ戻る