Esempio n. 1
0
        private static bool checkOfCoverageOfControlPoint(Gene gene, ControlPointInst point)
        {
            double F = Math.Pow(point.X1 - gene.OX, 2) + Math.Pow(point.Y1 - gene.OY, 2);

            if (F <= Math.Pow(gene.Radius, 2))
            {
                return(true);
            }
            return(false);
        }
Esempio n. 2
0
        /*Метод проверки вхождения точек в область окружноти*/
        private static bool checkOfCoverageOfControlPoint(List <Gene> genes, ControlPointInst point)
        {
            for (int i = 0; i < genes.Count; i++)
            {
                double F = Math.Pow(point.X1 - genes.ElementAt(i).OX, 2) + Math.Pow(point.Y1 - genes.ElementAt(i).OY, 2);

                if (F <= Math.Pow(genes.ElementAt(i).Radius, 2))
                {
                    genes.RemoveAt(i);
                    return(true);
                }
            }
            return(false);
        }
Esempio n. 3
0
        private void InitializeAllObjects()
        {
            SchemeOfBuilding scheme = null;

            try
            {
                scheme = _Context.Schemes.Where(c => c.ProjectNumber.ProjectId.Equals(_projectId)).First();
            }
            catch
            {
                MessageBox.Show("Ошибка загрузки данных из базы данных");
            }
            List <Room> rooms = null;

            if (scheme.Rooms != null)
            {
                if (scheme.Rooms.Count() > 0)
                {
                    rooms = scheme.Rooms;

                    foreach (Room room in rooms)
                    {
                        int coord_X1 = room.Coord_X1;
                        int coord_Y1 = room.Coord_Y1;

                        int coord_X2 = room.Coord_X2;
                        int coord_Y2 = room.Coord_Y2;

                        int coord_X3 = room.Coord_X3;
                        int coord_Y3 = room.Coord_Y3;

                        int coord_X4 = room.Coord_X4;
                        int coord_Y4 = room.Coord_Y4;

                        Line lin = new Line
                        {
                            Stroke          = color,
                            StrokeThickness = SIZE,
                            X1 = coord_X1,
                            Y1 = coord_Y1,
                            X2 = coord_X2,
                            Y2 = coord_Y2,
                            StrokeStartLineCap = PenLineCap.Round,
                            StrokeEndLineCap   = PenLineCap.Round
                        };

                        Line lin2 = new Line
                        {
                            Stroke          = color,
                            StrokeThickness = SIZE,
                            X1 = coord_X1,
                            Y1 = coord_Y1,
                            X2 = coord_X3,
                            Y2 = coord_Y3,
                            StrokeStartLineCap = PenLineCap.Round,
                            StrokeEndLineCap   = PenLineCap.Round
                        };

                        Line lin3 = new Line
                        {
                            Stroke          = color,
                            StrokeThickness = SIZE,
                            X1 = coord_X3,
                            Y1 = coord_Y3,
                            X2 = coord_X4,
                            Y2 = coord_Y4,
                            StrokeStartLineCap = PenLineCap.Round,
                            StrokeEndLineCap   = PenLineCap.Round
                        };

                        Line lin4 = new Line
                        {
                            Stroke          = color,
                            StrokeThickness = SIZE,
                            X1 = coord_X2,
                            Y1 = coord_Y2,
                            X2 = coord_X4,
                            Y2 = coord_Y4,
                            StrokeStartLineCap = PenLineCap.Round,
                            StrokeEndLineCap   = PenLineCap.Round
                        };

                        CanvasAreaForSchemeOfRoom.Children.Add(lin);
                        CanvasAreaForSchemeOfRoom.Children.Add(lin2);
                        CanvasAreaForSchemeOfRoom.Children.Add(lin3);
                        CanvasAreaForSchemeOfRoom.Children.Add(lin4);

                        RectangleRoom rectRoom = new RectangleRoom();
                        rectRoom.X1 = room.Coord_X1;
                        rectRoom.Y1 = room.Coord_Y1;
                        rectRoom.X2 = room.Coord_X2;
                        rectRoom.Y2 = room.Coord_Y2;
                        rectRoom.X3 = room.Coord_X3;
                        rectRoom.Y3 = room.Coord_Y3;
                        rectRoom.X4 = room.Coord_X4;
                        rectRoom.Y4 = room.Coord_Y4;
                        SingleSpaceParams.getInstance().Rooms.Add(rectRoom);
                    }
                }
            }

            if (scheme.Point != null)
            {
                List <ControlPoint> points = null;
                if (scheme.Point.Count > 0)
                {
                    points = scheme.Point;

                    foreach (ControlPoint point in points)
                    {
                        pointLine = new Line
                        {
                            Stroke = new SolidColorBrush
                            {
                                Color = Colors.Red,
                            },
                            StrokeThickness = 10,
                            X1 = point.Coord_X,
                            Y1 = point.Coord_Y,
                            X2 = point.Coord_X + 1,
                            Y2 = point.Coord_Y + 1,
                            StrokeStartLineCap = PenLineCap.Round,
                            StrokeEndLineCap   = PenLineCap.Round,
                        };
                        CanvasAreaForSchemeOfRoom.Children.Add(pointLine);

                        ControlPointInst controlPoint = new ControlPointInst(
                            Convert.ToInt32(point.Coord_X),
                            Convert.ToInt32(point.Coord_Y));

                        SingleSpaceParams.getInstance().ControlPoints.Add(controlPoint);
                    }
                }
            }

            if (scheme.Positions != null)
            {
                try
                {
                    List <InstallationPosition> positions = scheme.Positions;

                    foreach (InstallationPosition pos in positions)
                    {
                        PlacmentOfModules placement = pos.Placment.First();
                        ModelsOfModules   model     = _Context.Models.Where(mod => mod.ModuleId == placement.ModelId).First();

                        EllipseGeometry el = new EllipseGeometry
                        {
                            Center  = new Point(pos.Coord_X, pos.Coord_Y),
                            RadiusX = double.Parse(model.ModelRadius),
                            RadiusY = double.Parse(model.ModelRadius)
                        };
                        Path path = new Path();
                        path.Data            = el;
                        path.StrokeThickness = 2;
                        path.Opacity         = 0.5;
                        path.Fill            = new SolidColorBrush
                        {
                            Color   = Colors.LightBlue,
                            Opacity = 0.7
                        };
                        path.Stroke = new SolidColorBrush
                        {
                            Color = Colors.Red
                        };
                        CanvasAreaForSchemeOfRoom.Children.Add(path);
                    }
                }
                catch
                {
                    MessageBox.Show("Ошибка загрузки данных из базы данных");
                }
            }
            _Models = _Context.Models.ToList();
        }
Esempio n. 4
0
        private void Window_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            if (_IsRoom)
            {
                widthRoomTextBlock.Visibility      = Visibility.Collapsed;
                widthRoomTextBox.Visibility        = Visibility.Collapsed;
                lengthRoomTextBlock.Visibility     = Visibility.Collapsed;
                lengthRoomTextBox.Visibility       = Visibility.Collapsed;
                setLengthAndWidthButton.Visibility = Visibility.Collapsed;

                if (line != null && line2 != null)
                {
                    RectangleRoom room = new RectangleRoom
                    {
                        X1 = Convert.ToInt32(line.X1),
                        Y1 = Convert.ToInt32(line.Y1),

                        X2 = Convert.ToInt32(line.X2),
                        Y2 = Convert.ToInt32(line.Y2),

                        X3 = Convert.ToInt32(line2.X2),
                        Y3 = Convert.ToInt32(line2.Y2),

                        X4 = Convert.ToInt32(line4.X2),
                        Y4 = Convert.ToInt32(line4.Y2)
                    };
                    // SingleSpaceParams.getInstance().Rooms.Add(room);
                }

                line    = null;
                line2   = null;
                line3   = null;
                line4   = null;
                isPaint = false;
            }

            if (_IsPoint)
            {
                var point = Mouse.GetPosition(CanvasAreaForSchemeOfRoom);
                pointLine = new Line
                {
                    Stroke = new SolidColorBrush
                    {
                        Color = Colors.Red,
                    },
                    StrokeThickness = 10,
                    X1 = point.X,
                    Y1 = point.Y,
                    X2 = point.X + 1,
                    Y2 = point.Y + 1,
                    StrokeStartLineCap = PenLineCap.Round,
                    StrokeEndLineCap   = PenLineCap.Round,
                };
                ControlPointInst controlPoint = new ControlPointInst(
                    Convert.ToInt32(pointLine.X1),
                    Convert.ToInt32(pointLine.Y1));

                SingleSpaceParams.getInstance().ControlPoints.Add(controlPoint);
                CanvasAreaForSchemeOfRoom.Children.Add(pointLine);
            }
        }