日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#位图算法

發(fā)布時間:2023/12/10 C# 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#位图算法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在處理表格合并等問題時,可以考慮采用位圖算法實現(xiàn)二維存儲對象的處理
通過Map.Set設(shè)置點值或Map.Fill填充區(qū)域。 判斷各點值時通過Map.Get獲取
擴展Point屬性可以改成3維或更多維實現(xiàn)多維存儲對象的處理
/// <summary> /// 二維圖形算法 /// 王洪岐 121226 /// </summary> /// <typeparam name="T"></typeparam> public class Map<T> { private Dictionary<Point, T> _map; /// <summary> /// 構(gòu)建圖 /// </summary> /// <param name="x"></param> /// <param name="y"></param> public Map() { _map = new Dictionary<Point, T>(); } /// <summary> /// 填充圖 /// </summary> /// <param name="a"></param> /// <param name="b"></param> public void Fill(Point a, Point b, T value) { for (int x = Math.Min(a.X, b.X); x <= Math.Max(a.X, b.X); x++) { for (int y = Math.Min(a.Y, b.Y); y <= Math.Max(a.Y, b.Y); y++) { _map[new Point(x, y)] = value; } } } /// <summary> /// 設(shè)置單點值 /// </summary> /// <param name="a"></param> /// <param name="value"></param> public void Set(Point p, T value) { _map[p] = value; } /// <summary> /// 獲取單點值 /// </summary> /// <param name="p"></param> /// <returns></returns> public T Get(Point p) { return _map.ContainsKey(p) ? _map[p] : default(T); } /// <summary> /// 顯示點 /// </summary> /// <returns></returns> public string ShowPoint() { int intMaxX= _map.Keys.Max(p=>p.X); int intMaxY= _map.Keys.Max(p=>p.Y); StringBuilder sbReturn = new StringBuilder(); for (int y = 0; y <= intMaxY; y++) { for (int x = 0; x <= intMaxX; x++) { sbReturn.Append(_map.ContainsKey(new Point(x, y))?"1":"0"); } sbReturn.Append("\n"); } return sbReturn.ToString(); } } /// <summary> /// 點坐標(biāo) /// </summary> public struct Point { private int _X; private int _Y; /// <summary> ///? /// </summary> /// <param name="x"></param> /// <param name="y"></param> public Point(int x, int y) { _X = x; _Y = y; } /// <summary> /// X /// </summary> public int X { get { return _X; } set { _X = value; } } /// <summary> /// Y /// </summary> public int Y { get { return _Y; } set { _Y = value; } } }

總結(jié)

以上是生活随笔為你收集整理的C#位图算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。