コード例 #1
0
        /**
         * @brief 병합된 상태에서 크기를 조정할 때 비율을 제대로 조정하기 위해서 사용
         * @details 병합된 상태에서 각 Figure의 위치의 비율값을 각 Figure에 저장한다. 병합된 상태에서 확대 축소를 올바르게 작동시키기 위해 사용한다. 각 Figure들에 대해서 현재 MergeFigure에 대한 각 객체의 상대적인 위치를 저장해서 확대 축소 시 그 값을 사용한다.
         * @param merged 비율을 조절하기 위한 mergedFigure
         * @author 방준혁
         * @date 07-24
         */
        public void setRatio(MergedFigure merged)
        {
            Rect r       = (Rect)merged.getVectorElementAt(0);
            int  mLeft   = r.getLeft();
            int  mRight  = r.getRight();
            int  mTop    = r.getTop();
            int  mBottom = r.getBottom();
            int  mWidth  = r.getWidth();
            int  mHeight = r.getHeight();

            for (int i = 0; i < merged.getFigList().Count; i++)
            {
                r = (Rect)((Figure)merged.getFigList()[i]).getVectorElementAt(0);

                r.setRatio(0, (float)(mRight - r.getLeft()) / mWidth);
                r.setRatio(1, (float)(mRight - r.getRight()) / mWidth);
                r.setRatio(2, (float)(mBottom - r.getTop()) / mHeight);
                r.setRatio(3, (float)(mBottom - r.getBottom()) / mHeight);
            }
        }
コード例 #2
0
 /**
  * @brief mergedFigure를 unmerge된 상태의 Figure들로 분리한다.
  */
 public void unmergeFigure()
 {
     if (drawingFigures.Count > 0)
     {
         foreach (Figure f in drawingFigures)
         {
             if (f is MergedFigure)
             {
                 MergedFigure mf          = f as MergedFigure;
                 string       motherGName = f.groupName;
                 mf.deselect();
                 FigureList unmerge = mf.getFigList();
                 foreach (Figure temp in unmerge)
                 {
                     temp.groupName = motherGName;
                 }
                 drawnFigures.Remove(mf);
                 drawnFigures.AddRange(unmerge);
             }
         }
     }
 }