Example #1
0
        //ピクチャーボックス上のマウスムーブイベント
        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
            if (server_ != null && isDrawing_)
            {
                using (var g = Graphics.FromImage(pintedImg_))
                {
                    switch (pen_color)
                    {
                    case 1:
                        g.DrawLine(pen_black, oldPos_.X, oldPos_.Y, currentPos_.X, currentPos_.Y);
                        break;

                    case 2:
                        g.DrawLine(pen_red, oldPos_.X, oldPos_.Y, currentPos_.X, currentPos_.Y);
                        break;

                    case 3:
                        g.DrawLine(pen_blue, oldPos_.X, oldPos_.Y, currentPos_.X, currentPos_.Y);
                        break;

                    case 4:
                        g.DrawLine(pen_yellow, oldPos_.X, oldPos_.Y, currentPos_.X, currentPos_.Y);
                        break;

                    case 5:
                        g.DrawLine(pen_green, oldPos_.X, oldPos_.Y, currentPos_.X, currentPos_.Y);
                        break;

                    case 6:
                        g.DrawLine(pen_white, oldPos_.X, oldPos_.Y, currentPos_.X, currentPos_.Y);
                        break;
                    }

                    oldPos_           = currentPos_;
                    currentPos_.X     = e.X;
                    currentPos_.Y     = e.Y;
                    pictureBox1.Image = pintedImg_;                     //描画更新

                    server_.sendPaintInfo(startPos_, currentPos_, pen_color);
                    startPos_ = currentPos_;
                }
            }
        }
Example #2
0
        private void SensorSkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
        {
            Skeleton[] skeletons = new Skeleton[0];
            using (SkeletonFrame skeletonFrame = e.OpenSkeletonFrame())
            {
                if (skeletonFrame != null)
                {
                    skeletons = new Skeleton[skeletonFrame.SkeletonArrayLength];
                    skeletonFrame.CopySkeletonDataTo(skeletons);
                }
            }

            if (skeletons.Length != 0)
            {
                foreach (Skeleton skel in skeletons)
                {
                    if (skel.TrackingState == SkeletonTrackingState.Tracked)
                    {
                        Joint jointR = skel.Joints[JointType.HandRight];
                        Joint jointL = skel.Joints[JointType.HandLeft];
                        Joint jointH = skel.Joints[JointType.Head];
                        var   hpoint = SkeletonPointToScreen(jointH.Position);
                        var   rpoint = SkeletonPointToScreen(jointR.Position);
                        var   lpoint = SkeletonPointToScreen(jointL.Position);
                        rpoint.X = (int)(((float)rpoint.X * 1067 / 640));
                        rpoint.Y = (int)(((float)rpoint.Y * 720 / 480));
                        rpoint   = pictureBox1.PointToClient(rpoint);
                        Cpos     = rpoint;

                        //ピクチャーボックス上のマウスダウンイベント
                        if (hpoint.Y < lpoint.Y)
                        {
                            currentPos_.X = rpoint.X;
                            currentPos_.Y = rpoint.Y;
                            oldPos_       = currentPos_;
                            startPos_     = currentPos_;
                            isDrawing_    = true;
                        }


                        //ピクチャーボックス上のマウスムーブイベント

                        if (server_ != null && isDrawing_)
                        {
                            using (var g = Graphics.FromImage(pintedImg_))
                            {
                                if (hpoint.X < lpoint.X)
                                {
                                    flag = 1;
                                }

                                //chenge color
                                if (hpoint.X > lpoint.X)
                                {
                                    if (flag == 1)
                                    {
                                        //chenge color
                                        if (pen_color < 6)
                                        {
                                            pen_color++;
                                        }
                                        else
                                        {
                                            pen_color = 1;
                                        }
                                        flag = 0;
                                        start++;
                                    }
                                }

                                Rectangle clipRect = new Rectangle(50, 15, 520, 395);
                                g.SetClip(clipRect);

                                switch (pen_color)
                                {
                                case 1:
                                    g.DrawLine(pen_black, oldPos_.X, oldPos_.Y, currentPos_.X, currentPos_.Y);
                                    if (start == 1)
                                    {
                                        Black.Location = Cpos;
                                        Black.Parent   = pictureBox1;
                                        break;
                                    }
                                    Green.Location = new Point(647, 414);
                                    Black.Location = Cpos;
                                    Black.Parent   = pictureBox1;
                                    Green.Parent   = textInfo.Parent;
                                    break;

                                case 2:
                                    g.DrawLine(pen_red, oldPos_.X, oldPos_.Y, currentPos_.X, currentPos_.Y);
                                    Black.Location = new Point(647, 533);
                                    Red.Location   = Cpos;
                                    Red.Parent     = pictureBox1;
                                    Black.Parent   = textInfo.Parent;
                                    break;

                                case 3:
                                    g.DrawLine(pen_blue, oldPos_.X, oldPos_.Y, currentPos_.X, currentPos_.Y);
                                    Red.Location  = new Point(647, 57);
                                    Blue.Location = Cpos;
                                    Blue.Parent   = pictureBox1;
                                    Red.Parent    = textInfo.Parent;
                                    break;

                                case 4:
                                    g.DrawLine(pen_yellow, oldPos_.X, oldPos_.Y, currentPos_.X, currentPos_.Y);
                                    Blue.Location   = new Point(647, 176);
                                    Yellow.Location = Cpos;
                                    Yellow.Parent   = pictureBox1;
                                    Blue.Parent     = textInfo.Parent;
                                    break;

                                case 5:
                                    g.DrawLine(pen_green, oldPos_.X, oldPos_.Y, currentPos_.X, currentPos_.Y);
                                    Yellow.Location = new Point(647, 295);
                                    Green.Location  = Cpos;
                                    Green.Parent    = pictureBox1;
                                    Yellow.Parent   = textInfo.Parent;
                                    break;
                                }


                                oldPos_           = currentPos_;
                                currentPos_.X     = rpoint.X;
                                currentPos_.Y     = rpoint.Y;
                                pictureBox1.Image = pintedImg_; //描画更新

                                server_.sendPaintInfo(startPos_, currentPos_, pen_color);
                                startPos_ = currentPos_;
                            }
                        }

                        if (hpoint.Y > lpoint.Y)
                        {
                            isDrawing_ = false;
                        }
                    }
                }
            }
        }