コード例 #1
0
        private void UpdatePicBox(bool refresh = true)
        {
            main_graphics.Clear(Color.White);
            mainScene.Draw(main_graphics, compLinesCheckBox.Checked);

            GR_Point p = mainScene.GetPointsCenter(true);

            label2.Text = p.X.ToString();
            label3.Text = p.Y.ToString();
            label4.Text = p.Z.ToString();


            if (refresh)
            {
                MainPicBox.Refresh();
            }
        }
コード例 #2
0
        private void MainPicBox_MouseMove(object sender, MouseEventArgs e)
        {
            endPos = e.Location;
            if (mouseLbutton && action != Action.noAction)
            {
                if (action == Action.connecting)
                {
                    UpdatePicBox(false);
                    main_graphics.DrawLine(new Pen(Color.Black, 2.0F), startPos, endPos);
                    MainPicBox.Refresh();
                    return;
                }
                else if (action == Action.selecting)
                {
                    UpdatePicBox(false);
                    DrawSelectRect(Color.FromArgb(25, Color.Teal), Color.FromArgb(75, Color.Teal), startPos.X, startPos.Y, e.X, e.Y);
                    MainPicBox.Refresh();
                    return;
                }
                else if (action == Action.transformX)
                {
                    if (tool == Tool.move)
                    {
                        mainScene.MovePoints(true, false, false, e.X, startPos.X, e.Y, startPos.Y, true);
                    }
                    else if (tool == Tool.rotate)
                    {
                        mainScene.Temp_Xrotate += e.X - startPos.X;
                    }
                    else if (tool == Tool.resize)
                    {
                        mainScene.Temp_Xresize += (float)(e.X - startPos.X) / 16;
                    }
                }
                else if (action == Action.transformY)
                {
                    if (tool == Tool.move)
                    {
                        mainScene.MovePoints(false, true, false, e.X, startPos.X, e.Y, startPos.Y, true);
                    }
                    else if (tool == Tool.rotate)
                    {
                        mainScene.Temp_Yrotate += e.X - startPos.X;
                    }
                    else if (tool == Tool.resize)
                    {
                        mainScene.Temp_Yresize += (float)(e.X - startPos.X) / 16;
                    }
                }
                else if (action == Action.transformZ)
                {
                    if (tool == Tool.move)
                    {
                        mainScene.MovePoints(false, false, true, e.X, startPos.X, e.Y, startPos.Y, true);
                    }
                    else if (tool == Tool.rotate)
                    {
                        mainScene.Temp_Zrotate += e.X - startPos.X;
                    }
                    else if (tool == Tool.resize)
                    {
                        mainScene.Temp_Zresize += (float)(e.X - startPos.X) / 16;
                    }
                }
                UpdatePicBox(true);
                startPos.X = e.X;
                startPos.Y = e.Y;
                return;
            }

            if (mouseMidbutton && shiftButton)
            {
                mainScene.Camera_HorizontalOffset += (e.X - startPos.X);
                mainScene.Camera_VerticalOffset   += (e.Y - startPos.Y);
                startPos.X = e.X;
                startPos.Y = e.Y;
                UpdatePicBox(true);
                return;
            }
            if (mouseMidbutton)
            {
                mainScene.Camera_HorizontalAngle += (float)(e.X - startPos.X) / 4;
                mainScene.Camera_VerticalAngle   += (float)(e.Y - startPos.Y) / 4;
                startPos.X = e.X;
                startPos.Y = e.Y;
                UpdatePicBox(true);
                return;
            }
        }