ZedGraph怎样在生成曲线时随机生成不一样的颜色
生活随笔
收集整理的這篇文章主要介紹了
ZedGraph怎样在生成曲线时随机生成不一样的颜色
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
場景
在使用ZedGraph生成多條曲線時為了能區分曲線顏色,要求隨機設置曲線顏色。
首先從System.Drawing.Color中獲取所有顏色的對象的數組,然后將其順序打亂隨機排序,然后在生成曲線時從Color數組中取Color并賦值。
效果
?
注:
博客主頁:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。
實現
單純生成曲線的代碼
LineItem myCurve = myPane.AddCurve(yList[i].Title, list, curveColor, SymbolType.None);第一個參數:圖例標題
第二個參數:坐標點的list
第三個參數:顏色Color對象
第四個參數:曲線節點符號
所以在生成曲線時就要在第三個參數上進行修改
首先獲取Color的所有顏色對象
//用于存取取出的顏色對象 List<Color> colorList = new List<Color>(); //通過GetMember獲取所有的公共成員 foreach (var item in typeof(Color).GetMembers()){//只取屬性且為屬性中的已知Color,剔除byte屬性以及一些布爾屬性等(A B G R IsKnownColor Name等)if (item.MemberType == System.Reflection.MemberTypes.Property && System.Drawing.Color.FromName(item.Name).IsKnownColor == true){Color color = System.Drawing.Color.FromName(item.Name);colorList.Add(color);}} //轉成數組 Color[] colors = colorList.ToArray();然后將Color數組的順序進行打亂
colors = GetDisruptedItems(colors);調用亂序方法
private static Color[] GetDisruptedItems(Color[] colors){//生成一個新數組:用于在之上計算和返回Color[] temp;temp = new Color[colors.Length];for (int i = 0; i < temp.Length; i++){temp[i] = colors[i];}//打亂數組中元素順序Random rand = new Random(DateTime.Now.Millisecond);for (int i = 0; i < temp.Length; i++){int x, y; Color t;x = rand.Next(0, temp.Length);do{y = rand.Next(0, temp.Length);} while (y == x);t = temp[x];temp[x] = temp[y];temp[y] = t;}return temp;}然后在循環生成曲線時,循環條件為要生成的曲線數量與顏色數組的長度進行對比判斷。
int index = 0; //循環添加曲線 foreach(DataTreeNode node in Global.Instance.PrepareCompareDataInOne){list = SetCurveTextInOne(yList[i].TitleKey,record);//如果要生成的曲線數量 < 顏色數組長度 那么就從顏色數組中去按索引取Color curveColor = new Color();if (Global.Instance.PrepareCompareDataInOne.Count < colors.Length){curveColor = colors[index];}//否則要生成的曲線數量 > 顏色數組長度else{//當索引達到顏色數組的長度時 索引置0if (index >= colors.Length){index = 0;}curveColor = colors[index];}LineItem myCurve = myPane.AddCurve(yList[i].Title, list, curveColor, SymbolType.None);index++;}其中Global.Instance.PrepareCompareDataInOne就是要生成的曲線的數據,其Count就是要生成的曲線數量。
?
?
?
總結
以上是生活随笔為你收集整理的ZedGraph怎样在生成曲线时随机生成不一样的颜色的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#中怎样将数组的顺序打乱随机排序
- 下一篇: Java开发中模拟接口工具moco的使用