Пример #1
0
        //  Обновление визуального отображения геометрической фигуры при изменении положения контрола
        public override void UpdateShapeGeometryByControl(string controlName, Point endLocation)
        {
            string[] str = controlName.Split('_');

            if (str[1].Substring(0, 5) != "Point")
            {
                MessageBox.Show("The name of the control is unknown in UpdateGeometryShapeByControl()!");
                return;
            }

            int controlPointNumber = int.Parse(str[1].Substring(5, str[1].Length - 5));

            if (controlPointNumber < 1 || controlPointNumber > GeometricParams.Count)
            {
                MessageBox.Show("Control has an incorrect index in UpdateGeometryShapeByControl()!");
                return;
            }

            controlPointNumber--;

            ((PolyLineSegment)((PathFigure)((PathGeometry)((Path)shapeBase).Data).Figures[0]).Segments[0]).Points[controlPointNumber] = endLocation;
            if (controlPointNumber == 0)
            {
                ((PathFigure)((PathGeometry)((Path)shapeBase).Data).Figures[0]).StartPoint = endLocation;
            }

            GeometricParams.RemoveAt(controlPointNumber);
            namedParameter param = new namedParameter();

            param.ParamName  = paramNames[controlPointNumber];
            param.ParamValue = endLocation;
            GeometricParams.Insert(controlPointNumber, param);

            _List_tBox[controlPointNumber].Text = endLocation.X.ToString() + " " + endLocation.Y.ToString();
        }
Пример #2
0
        // Обновление визуального отображения геометрической фигуры при изменении положения контрола
        public override void UpdateShapeGeometryByControl(string controlName, Point endLocation)
        {
            string[] str = controlName.Split('_');
            string   controlPointType = str[1];

            switch (controlPointType)
            {
            case "StartPoint":
                ((LineGeometry)((Path)shapeBase).Data).StartPoint = endLocation;

                GeometricParams.RemoveAt(0);
                namedParameter param1 = new namedParameter();
                param1.ParamName  = paramNames[0];
                param1.ParamValue = endLocation;
                GeometricParams.Insert(0, param1);

                _List_tBox[0].Text = endLocation.X.ToString() + " " + endLocation.Y.ToString();
                break;

            case "EndPoint":
                ((LineGeometry)((Path)shapeBase).Data).EndPoint = endLocation;

                GeometricParams.RemoveAt(1);
                namedParameter param2 = new namedParameter();
                param2.ParamName  = paramNames[1];
                param2.ParamValue = endLocation;
                GeometricParams.Insert(1, param2);

                _List_tBox[1].Text = endLocation.X.ToString() + " " + endLocation.Y.ToString();
                break;

            default:
                throw new System.ApplicationException("Error: Incorrect controlpoint type, '" + controlPointType + "' in UpdateGeometryShapeByControl()");
            }
        }
Пример #3
0
 // Обновление визуального отображения фигуры при изменении положения на заданный вектор
 public override void UpdateShapeGeometryByVector(Vector locationChange)
 {
     for (int i = 0; i < GeometricParams.Count; i++)
     {
         namedParameter param = new namedParameter();
         Point          p     = new Point();
         p.X = ((Point)GeometricParams[i].ParamValue).X + locationChange.X;
         p.Y = ((Point)GeometricParams[i].ParamValue).Y + locationChange.Y;
         param.ParamValue = p;
         param.ParamName  = GeometricParams[i].ParamName;
         GeometricParams.RemoveAt(i);
         GeometricParams.Insert(i, param);
     }
     ((Path)shapeBase).Data = CreateShapeGeometry();                                                     //  Создадим геометрию фигуры
     visualControler.UpdateAllControlsCoords();
     UpdateTextCoords();
 }
Пример #4
0
        // Обновление визуального отображения геометрической фигуры при изменении положения контрола
        public override void UpdateShapeGeometryByControl(string controlName, Point endLocation)
        {
            string[] str = controlName.Split('_');
            string   controlPointType = str[1];

            switch (controlPointType)
            {
            case "Center":
                ((EllipseGeometry)((Path)shapeBase).Data).Center = endLocation;

                GeometricParams.RemoveAt(0);
                namedParameter param = new namedParameter();
                param.ParamName  = paramNames[0];
                param.ParamValue = endLocation;
                GeometricParams.Insert(0, param);

                //shapeBase.ToolTip = shapeBase.Name + " {" + endLocation.ToString() + "}";
                _List_tBox[0].Text = endLocation.X.ToString() + " " + endLocation.Y.ToString();
                break;

            default:
                throw new System.ApplicationException("Error: Incorrect controlpoint type, '" + controlPointType + "' in UpdateGeometryShapeByControl()");
            }
        }
Пример #5
0
 //  Добавление новой вершины в фигуру
 public void RemoveLastGeometryPoint()
 {
     GeometricParams.RemoveAt(GeometricParams.Count - 1);
     paramNames.RemoveAt(GeometricParams.Count - 1);
     paramTypes.RemoveAt(GeometricParams.Count - 1);
 }