Beispiel #1
0
        private void BeziersBox_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            switch (newType)
            {
            case MainWindow.ImageType.Line:
                drawingList.Add(new DPLine(newPoint.StartP, newPoint.EndP, Color.Black, style, scap, ecap));
                break;

            case MainWindow.ImageType.Rectangle:
                drawingList.Add(new DPRectangle(newPoint.Rect, Color.Blue, style));
                break;

            case MainWindow.ImageType.CircleAt:
                if (starCount == 10)
                {
                    pointChange = true;
                    starCount   = 0;
                    tempPoint   = new DShapeList();
                }
                break;

            case MainWindow.ImageType.Set:
                pointChange = false;
                break;
            }
            BeziersBox.Invalidate();
        }
Beispiel #2
0
 private void Clear_Click(object sender, System.EventArgs e)
 {
     beziersList           = new DShapeList();
     pointList             = new DShapeList();
     tpointCollection      = new PointCollection();
     pointCollection       = new PointCollection();
     regionCollection      = new NewRegion();
     beziersPoint          = 0;
     BezierIndex           = 0;
     pointNumber           = new Number();
     pointSum              = new Number();
     drawingList           = new DShapeList();
     pointChange           = false;
     star                  = new Point[10];
     starCount             = 0;
     tempPoint             = new DShapeList();
     newType               = MainWindow.ImageType.Empty;
     this.BeziersBox.Image = null;
     BeziersBox.Invalidate();
 }
 private void Clear_Click(object sender, System.EventArgs e)
 {
     beziersList = new DShapeList();
     pointList = new DShapeList();
     tpointCollection = new PointCollection();
     pointCollection = new PointCollection();
     regionCollection = new NewRegion();
     beziersPoint = 0;
     BezierIndex = 0;
     pointNumber = new Number();
     pointSum = new Number();
     drawingList = new DShapeList();
     pointChange = false;
     star = new Point[10];
     starCount = 0;
     tempPoint = new DShapeList();
     newType = MainWindow.ImageType.Empty;
     this.BeziersBox.Image=null;
     BeziersBox.Invalidate();
 }
 private void BeziersBox_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
 {
     switch(newType)
     {
         case MainWindow.ImageType.Line:
             drawingList.Add(new DPLine(newPoint.StartP,newPoint.EndP,Color.Black,style,scap,ecap));
             break;
         case MainWindow.ImageType.Rectangle:
             drawingList.Add(new DPRectangle(newPoint.Rect,Color.Blue,style));
             break;
         case MainWindow.ImageType.CircleAt:
             if(starCount ==10)
             {
                 pointChange = true;
                 starCount=0;
                 tempPoint = new DShapeList();
             }
             break;
         case MainWindow.ImageType.Set:
             pointChange = false;
             break;
     }
     BeziersBox.Invalidate();
 }
 /// <summary>
 /// ����¼�
 /// </summary>		
 private void Drawing_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
 {
     if (e.Button != MouseButtons.Left)
         return;
     newPoint = new MousePoint(e.X, e.Y);
     switch(newType)
     {
         case ImageType.Path:
             mousePath = new GraphicsPath();
             mousePath.AddLine(e.X,e.Y,e.X,e.Y);
             break;
         case ImageType.Eraser:
             eraser = true;
             newPoint.EndX = e.X;
             newPoint.EndY = e.Y;
             Point p = newPoint.StartP;
             p.Offset(-2,-2);
             newRegion = new Region(new Rectangle(p, new Size(4,4)));
             break;
         case ImageType.Text:
             newForm.Show();
             break;
         case ImageType.Polygon:
             pointCollection.Add(newPoint.StartP);
             tempPoint.Add(new DPoint(new Point[1]{newPoint.StartP}, newColor,lineWidth));
             Drawing.Invalidate();
             break;
         case ImageType.Curve:
             pointCollection.Add(newPoint.StartP);
             tempPoint.Add(new DPoint(new Point[1]{newPoint.StartP}, newColor,lineWidth));
             Drawing.Invalidate();
             break;
         case ImageType.ClosedCurve:
             pointCollection.Add(newPoint.StartP);
             tempPoint.Add(new DPoint(new Point[1]{newPoint.StartP}, newColor,lineWidth));
             Drawing.Invalidate();
             break;
         case ImageType.Pick:
             if(picked == true)
             {
                 for(int k=0;k<regionArrayCollection[regionIndex].Length;k++)
                 {
                     if(regionArrayCollection[regionIndex][k].IsVisible(newPoint.StartP))
                     {
                         pointIndex = k;
                         changed = true;
                         break;
                     }
                     else
                         changed = false;
                 }
                 if(changed == true)
                     break;
             }
             int m = regionIndex;
             if(picked == true)
                 m = (regionIndex+1)%regionCollection.Count;		//ѭ����һ�ʼ
             int n = 0;
             for(;n<regionCollection.Count;n++)
             {
                 if(m >= regionCollection.Count)
                     m = 0;
                 if(regionCollection[m++].IsVisible(newPoint.StartP))
                 {
                     pointViewList = new DShapeList();
                     regionIndex = m-1;
                     tempMovePoint = new Point[pointArray[regionIndex].Length];
                     for(int j=0;j<pointArray[regionIndex].Length;j++)
                     {
                         tempMovePoint[j] = pointArray[regionIndex][j];
                     }
                     PointView(regionIndex);
                     Drawing.Invalidate();
                     picked = true;
                     if(drawImageType[regionIndex]==(int)ImageType.Path)
                     {
                         mousePath = drawingList[regionIndex].pathChange(mousePath,true);
                     }
                     changed = false;
                     break;
                 }
                 else
                 {
                     pointViewList = new DShapeList();
                     Drawing.Invalidate();
                     picked = false;
                 }
             }
             break;
     }
 }
        private void menuOpen_Click(object sender, System.EventArgs e)
        {
            if(openFileDialog.ShowDialog() == DialogResult.OK)
            {
                fileName = openFileDialog.FileName;
                try
                {
                    FileStream newStream = (FileStream)openFileDialog.OpenFile();
                    newImage = new Bitmap(newStream);
                    drawingList = new DShapeList();
                    newType = ImageType.Empty;
                    Point p = new Point(0,0);

                    notchangeList.Add(new DImage(p,newImage));
                    eraser = true;

                    Drawing.Invalidate();
                    newStream.Close();
                    SetFormTitle();
                }
                catch(IOException err)
                {
                    MessageBox.Show(err.Message,"myPGS",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
                }
            }
        }
        /// <summary>
        /// ͼ�δ洢���ϵȡ�
        /// </summary>		
        private void menuNew_Click(object sender, System.EventArgs e)
        {
            drawingList = new DShapeList();
            drawingListUndo = new DShapeList();
            tempPoint = new DShapeList();
            pointViewList = new DShapeList();
            notchangeList = new DShapeList();
            notchangeListUndo = new DShapeList();

            newForm = new NewForm();
            newCircle = new CircleForm();

            pointCollection = new ArrayList();

            regionCollection = new NewRegion();
            regionCollectionUndo = new NewRegion();
            pointArray = new PointArrayCollection();
            pointArrayUndo = new PointArrayCollection();

            regionArrayCollection = new NewRegionArray();
            regionArrayCollectionUndo = new NewRegionArray();
            drawImageType = new Type();
            drawImageTypeUndo = new Type();
            newType = ImageType.Empty;

            picked = false;
            changed = false;
            mouseMove = false;
            eraser = false;
            regionIndex = 0;

            Drawing.Invalidate();

            fileName = "NewFile";
            SetFormTitle();
        }
        private void menuItemClose_Click(object sender, System.EventArgs e)
        {
            if(pointCollection.Count==0)
                return;
            tempPointArray = new Point[pointCollection.Count];
            byte[] tempByte = new byte[pointCollection.Count];
            int i = 0;
            foreach(Point newP in pointCollection)
            {
                tempPointArray[i] = newP;
                if(i==0)
                    tempByte[i++] = (byte)PathPointType.Start;
                else
                    tempByte[i++] = (byte)PathPointType.Line;
            }
            pointArray.Add(tempPointArray);
            Point2Region(tempPointArray);
            regionArrayCollection.Add(tempRegion);

            regionPath = new GraphicsPath(tempPointArray, tempByte);
            regionPath.CloseFigure();
            regionCollection.Add(new Region(regionPath));
            switch(newType)
            {
                case ImageType.Polygon:
                    drawingList.Add(new DPolygon(tempPointArray, newColor,lineWidth));
                    drawImageType.Add(ImageType.Polygon);
                    break;
                case ImageType.Curve:
                    drawingList.Add(new DCurve(tempPointArray, newColor,lineWidth));
                    drawImageType.Add(ImageType.Curve);
                    break;
                case ImageType.ClosedCurve:
                    drawingList.Add(new DClosedCurve(tempPointArray, newColor,lineWidth));
                    drawImageType.Add(ImageType.ClosedCurve);
                    break;
            }
            Drawing.Invalidate();
            pointCollection.RemoveRange(0,pointCollection.Count);
            tempPoint = new DShapeList();
        }