private void Room_Panel_MouseDown(object sender, MouseEventArgs e) { Panel p = (Panel)sender; Point tmp = p.PointToClient(Cursor.Position); if (cell_side == 0 || (tmp.X / cell_side) >= room.cells.GetLength(1) || (tmp.X / cell_side) < 0 || (tmp.Y / cell_side) >= room.cells.GetLength(0) || (tmp.Y / cell_side) < 0) { return; } tmp.X /= cell_side; tmp.Y /= cell_side; //==================================================== if (Heat_Soruce_RadioButton.Checked == true) { room.cells[tmp.Y, tmp.X].update(false, false, ValueToColor.colors[ValueToColor.colors.Length - 1], false, ValueToColor.sMax); room.color_data[tmp.Y, tmp.X] = ValueToColor.sMax; room.normal_cells[tmp.Y, tmp.X] = 0; room.block_cells[tmp.Y, tmp.X] = 0; } else if (Cold_Soruce_RadioButton.Checked == true) { room.cells[tmp.Y, tmp.X].update(false, false, ValueToColor.colors[0], false, ValueToColor.sMin); room.color_data[tmp.Y, tmp.X] = ValueToColor.sMin; room.normal_cells[tmp.Y, tmp.X] = 0; room.block_cells[tmp.Y, tmp.X] = 0; } else if (Block_RadioButton.Checked == true) { room.cells[tmp.Y, tmp.X].update(false, true, Color.Black, false, 0); room.color_data[tmp.Y, tmp.X] = 0; room.normal_cells[tmp.Y, tmp.X] = 0; room.block_cells[tmp.Y, tmp.X] = 1; } else if (Window_RadioButton.Checked == true) { room.cells[tmp.Y, tmp.X].update(false, false, mid_color, true, (ValueToColor.sMax + ValueToColor.sMin) / 2.0); room.color_data[tmp.Y, tmp.X] = (ValueToColor.sMax + ValueToColor.sMin) / 2.0; room.normal_cells[tmp.Y, tmp.X] = 0; room.block_cells[tmp.Y, tmp.X] = 0; } else if (Normal_Cell_RadioButton.Checked == true) { room.cells[tmp.Y, tmp.X].update(true, false, mid_color, false, (ValueToColor.sMax + ValueToColor.sMin) / 2.0); room.color_data[tmp.Y, tmp.X] = (ValueToColor.sMax + ValueToColor.sMin) / 2.0; room.normal_cells[tmp.Y, tmp.X] = 1; room.block_cells[tmp.Y, tmp.X] = 0; } else { hint.SetToolTip(Room_Panel, "(" + tmp.Y * cell_side + "," + tmp.X * cell_side + "), value :" + room.cells[tmp.Y, tmp.X].color_data.ToString()); } room.tmp_data[tmp.Y, tmp.X] = room.color_data[tmp.Y, tmp.X]; room.cells[tmp.Y, tmp.X].color_data_tmp = room.cells[tmp.Y, tmp.X].color_data; //==================================================== mouse_clicked = true; if (simulation_is_running == false)// 34an b3d mbdos start by3ml ivalidate mrten mra bsbb el click w mra bsbb el cells update fa m4 hy3ml invalidate hna 8er abl ma simulation ybd2. { Room_Panel.Invalidate(); } }
private void Start_Button_Click(object sender, EventArgs e) { simulation_is_running = !simulation_is_running; if (simulation_is_running) { Start_Button.Text = "Stop"; } else { Start_Button.Text = "Continue"; stop_pressed = true; Room_Panel.Invalidate(); } while (simulation_is_running) { if (Sequ_RadioButton.Checked) { room.update_cells_sequential(); room.update_tmp_value_sequential(); } else if (Parallel_C_Sharp_RadioButton.Checked) { room.update_cells_c_sharp_parallel(); room.update_tmp_value_c_sharp_parallel(); } else { room.update_cells_c_plus_plus_parallel(); } Room_Panel.Invalidate(); Application.DoEvents(); } }