Beispiel #1
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (label_X.Text == "" || label_Y.Text == "" ||
                label_length.Text == "" || label_height.Text == "" || label_width.Text == "" ||
                label_range.Text == "" || label_batteryCharge.Text == "" /*|| label_numSensors.Text == ""*/)
            {
                MessageBox.Show("Заповніть усі дані");
                return;
            }

            //створення нового вузла і додавання його в існуючу мережу
            Node node = new Node();

            node.set_X(Convert.ToInt32(label_X.Text));
            node.set_Y(Convert.ToInt32(label_Y.Text));

            if (network.get_3D())
            {
                node.set_Z(Convert.ToInt32(label_Z.Text));
            }

            node.setLength(Convert.ToInt32(label_length.Text));
            node.setWidth(Convert.ToInt32(label_width.Text));
            node.setHeight(Convert.ToInt32(label_height.Text));

            node.setRandeOfAction(Convert.ToInt32(label_range.Text));
            node.setBatteryCharge(Convert.ToInt32(label_batteryCharge.Text));

            network.addNode(node);

            this.Close();
        }
        public void generate()
        {
            //для рандомного генерування
            Random rand = new Random();

            //генерування наявності 3D (генеруємо число до 100, якщо менше 50 - має 3D, якщо більше - не має
            network.set_3D((rand.Next(100) < 50) ? true : false);

            //створення модульного класу для збереження меж генерування
            RangeOfRandomNode range = new RangeOfRandomNode();

            //відкриття форми для заповнення меж
            Form generationRange = new SetRangeOfRandomNode(range);

            generationRange.ShowDialog();

            //кількість майбутніх вузлів
            int num = rand.Next(range.get_minNumNodes(), range.get_maxNumNodes());

            //цикл генерування вузлів
            for (int counter = 0; counter < num; counter++)
            {
                //створення нового вузла
                Node newNode = new Node();

                //встановлення рандомно-згенерованих параметрів вузла
                {
                    //встановлення координат
                    newNode.set_X(rand.Next(range.get_minX(), range.get_maxX()));
                    newNode.set_Y(rand.Next(range.get_minY(), range.get_maxY()));
                    newNode.set_Z(rand.Next(range.get_minZ(), range.get_maxZ()));

                    //встановлення наявності GPS у вузлі
                    newNode.setGPS((rand.Next(100) < 50) ? true : false);

                    //встановлення розмірів вузла
                    newNode.setHeight(rand.Next(range.get_minHeight(), range.get_maxHeight()));
                    newNode.setLength(rand.Next(range.get_minLength(), range.get_maxLength()));
                    newNode.setWidth(rand.Next(range.get_minWidth(), range.get_maxWidth()));

                    //встановлення списку сенсорів, радіусу дії та часу заряду акумулятора
                    for (int numCurrentSensor = 0; numCurrentSensor < 0; numCurrentSensor++)
                    {
                        ;
                    }

                    int rangeOfAction = rand.Next(range.get_minRange(), range.get_maxRange());
                    newNode.setRandeOfAction(rangeOfAction - rangeOfAction % 100);

                    newNode.setBatteryCharge(rand.Next(range.get_minBatteryCharge(), range.get_maxBatteryCharge()));
                }

                //додавання сформованого вузла в мережу
                network.addNode(newNode);
            }

            network.calculateSize();
        }
Beispiel #3
0
        private void button_Create_Click(object sender, EventArgs e)
        {
            Random rand = new Random();

            int x = 0, y = 0, z = 0;

            int height = Convert.ToInt32(comboBox_Height.Text),
                width  = Convert.ToInt32(comboBox_Width.Text),
                depth  = 0;

            network.set_height(height);
            network.set_width(width);

            if (radioButton_3D.Checked == true)
            {
                depth = Convert.ToInt32(comboBox_Depth.Text);
                network.set_depth(depth);
                network.set_3D(true);
            }
            //////////////////////////////////////////////////////////////
            //головний вузол

            Node node = new Node();

            node.setBatteryCharge(Convert.ToInt32(comboBox_BatteryCharge.Text));
            node.setRandeOfAction(Convert.ToInt32(comboBox_Range.Text));

            if (comboBox_Head_X.Text == "Rand")
            {
                node.set_X(rand.Next(width));
            }
            else
            {
                node.set_X(Convert.ToInt32(comboBox_Head_X.Text));
            }

            if (comboBox_Head_Y.Text == "Rand")
            {
                node.set_Y(rand.Next(height));
            }
            else
            {
                node.set_Y(Convert.ToInt32(comboBox_Head_Y.Text));
            }

            if (radioButton_3D.Checked == true)
            {
                if (comboBox_Head_Z.Text == "Rand")
                {
                    node.set_Z(rand.Next(depth));
                }
                else
                {
                    node.set_Z(Convert.ToInt32(comboBox_Head_Z.Text));
                }
            }

            node.setType(3);

            network.addNode(node);

            //////////////////////////////////////////////////////////////
            ///створення та побудова інших вузлів
            ///
            int num;

            if (comboBox_Num.Text == "Rand")
            {
                num = rand.Next(500);
            }
            else
            {
                num = Convert.ToInt32(comboBox_Num.Text);
            }

            for (int i = 1; i < num; i++)
            {
                //Створення вузла
                node = new Node();

                node.setBatteryCharge(Convert.ToInt32(comboBox_BatteryCharge.Text));
                node.setRandeOfAction(Convert.ToInt32(comboBox_Range.Text));

                x = rand.Next(width);
                y = rand.Next(height);
                z = rand.Next(depth);

                node.set_X(x);
                node.set_Y(y);

                if (radioButton_3D.Checked == true)
                {
                    node.set_Z(z);
                }

                node.setType(1);

                network.addNode(node);
            }


            //Малювання вузла
            draw();
        }