public static void KernelCpu(double[] positionsx, double[] positionsy, double[] velocitiesx, double[] velocitiesy, double[] accelerationsx, double[] accelerationsy, int width, int height, float mousex, float mousey, int[,] sf, int[] squaresStart, int[] fishInSquare, int squaresInRow, int squaresNumber, int ind, int[] bitmap) { FishFunctions.AlignWithOtherFish(positionsx, positionsy, velocitiesx, velocitiesy, accelerationsx, accelerationsy, ind, sf, squaresStart, fishInSquare, squaresInRow, squaresNumber); FishFunctions.CohesionWithOtherFish(positionsx, positionsy, velocitiesx, velocitiesy, accelerationsx, accelerationsy, ind, squaresStart, sf, fishInSquare, squaresNumber, squaresInRow); FishFunctions.AvoidOtherFish(positionsx, positionsy, velocitiesx, velocitiesy, accelerationsx, accelerationsy, ind, squaresStart, sf, fishInSquare, squaresInRow, squaresNumber); if (mousex >= 0 && mousey >= 0) { FishFunctions.AvoidMouse(positionsx, positionsy, velocitiesx, velocitiesy, accelerationsx, accelerationsy, ind, mousex, mousey); } FishFunctions.UpdateFish(positionsx, positionsy, velocitiesx, velocitiesy, accelerationsx, accelerationsy, ind, width, height, mousex, mousey); FishFunctions.Edges(positionsx, positionsy, ind, width, height); int col = (0 << 24) + (0 << 16) + (255 << 8) + 255; int x = (int)positionsx[ind]; int y = (int)positionsy[ind]; CircleDrawing.CircleBresenham(x, y, 2, bitmap, width, height, col); }
void MainFormLoad(object sender, EventArgs e) { Image intImg = Image.FromFile("diamond.png"); Image tImg = Image.FromFile("table.png"); const int k = 5; Random r = new Random(255); try { for (int i = 0; i < k; i++) { Structure di = new Structure(diagramContainer1, "ITEM" + i.ToString()); di.TitleImage = tImg; Node cols = new Node("Columns", di); cols.AddNode(new Node("id", true, intImg, di)); cols.AddNode(new Node("type", true, intImg, di)); cols.AddNode(new Node("name", di)); cols.AddNode(new Node("surname", di)).AddNode(new Node("child1", di)).AddNode(new Node("child2", di)); cols.AddNode(new Node("key", di)); cols.AddNode(new Node("anotherKey", di)); cols.AddNode(new Node("valid", di)).AddNode(new Node("child3", di)).AddNode(new Node("child4", di)); di.AddNode(cols); di.AddOnDiagram(diagramContainer1, Color.FromArgb(r.Next(255), r.Next(255), r.Next(255))); di.Drawing.Location = new Point(r.Next(300), r.Next(300)); } } catch (Exception ex) { MessageBox.Show(ex.Message); } for (int i = 0; i < k; i++) { Color c = Color.FromArgb(r.Next(255), r.Next(255), r.Next(255)); int x = r.Next(k); int y = r.Next(k); if (x != y) { diagramContainer1.AddLink(diagramContainer1.DiagramItems[x], diagramContainer1.DiagramItems[y]); } } diagramContainer1.Invalidate(); CustomItem customItem = new CustomItem(); customItem.Color = Color.Red; customItem.Name = "CustomItem"; CustomDrawing customDrawing = new CustomDrawing(customItem); customDrawing.Movable = true; customDrawing.Size = new Size(100, 100); customItem.Drawing = customDrawing; Structure stru = (diagramContainer1.DiagramItems[0] as Structure); diagramContainer1.AddLink(stru.Nodes[0].Nodes[3], customItem); diagramContainer1.AddItem(customItem, customDrawing, true, true); diagramContainer1.AddLink(customItem, diagramContainer1.DiagramItems[0]); CircleDrawing customDrawing2 = new CircleDrawing(130, 130); customDrawing2.Movable = true; customDrawing2.Size = new Size(100, 100); diagramContainer1.AddDrawing(customDrawing2, true); diagramContainer1.AddLinkDrawing(customDrawing2, customDrawing); diagramContainer1.Invalidate(); diagramContainer1.DrawableHeight = 705; diagramContainer1.DrawableWidth = 758; }