• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C# SkeletonFrameReadyEventArgs类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中SkeletonFrameReadyEventArgs的典型用法代码示例。如果您正苦于以下问题:C# SkeletonFrameReadyEventArgs类的具体用法?C# SkeletonFrameReadyEventArgs怎么用?C# SkeletonFrameReadyEventArgs使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



SkeletonFrameReadyEventArgs类属于命名空间,在下文中一共展示了SkeletonFrameReadyEventArgs类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: nui_SkeletonFrameReady

        void nui_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
        {
            SkeletonFrame allSkeletons = e.SkeletonFrame;

            //get the first tracked skeleton
            SkeletonData skeleton = (from s in allSkeletons.Skeletons
                                     where s.TrackingState == SkeletonTrackingState.Tracked
                                     select s).FirstOrDefault();
            if (skeleton != null)
            {
                this._skel = skeleton;
                Joint head = skeleton.Joints[JointID.Head];
                HumanSkeleton hs = new HumanSkeleton(skeleton.Joints);
                NaoSkeleton ns = new NaoSkeleton(hs);
                UpdateTextBoxes(ns, hs);
                controller.update(ns);

                SetLineAngle(RightArmTopDown, Util.radToDeg(hs.RightShoulderYaw));
                SetLineAngle(LeftArmTopDown, Util.radToDeg(hs.LeftShoulderYaw));
                SetLineAngle(RightArmFront, Util.radToDeg(-hs.RightShoulderPitch) + 90);
                SetLineAngle(LeftArmFront, Util.radToDeg(hs.LeftShoulderPitch) - 90);
                SetLineAngle(RightArm, Util.radToDeg(-hs.RightShoulderRoll) + 90);
                SetLineAngle(LeftArm, Util.radToDeg(hs.LeftShoulderRoll) - 90);
            }
        }
开发者ID:omanamos,项目名称:kinect-nao,代码行数:25,代码来源:MainWindow.xaml.cs


示例2: kinectRuntime_SkeletonFrameReady

        void kinectRuntime_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
        {
            SkeletonFrame skeletonFrame = e.SkeletonFrame;

            foreach (SkeletonData data in skeletonFrame.Skeletons)
            {
                if (data.TrackingState != SkeletonTrackingState.Tracked)
                    continue;

                barycenterHelper.Add(data.Position.ToVector3(),data.TrackingID);
                if (!barycenterHelper.IsStable(data.TrackingID))
                    continue;

                foreach (Joint joint in data.Joints)
                {
                    if (joint.Position.W < 0.8f || joint.TrackingState != JointTrackingState.Tracked)
                        continue;

                    if (joint.ID == JointID.HandRight)
                    {
                        rightHandGestureRecognizer.Add(joint.Position, kinectRuntime.SkeletonEngine);
                        Trace.WriteLine(Gesture.Content = "HandRight.Add");
                    }
                }

                // ポーズの検出
                postureRecognizer.TrackPostures(data);
            }

            // スケルトンの描画
            skeletonDisplayManager.Draw(e.SkeletonFrame);

            labelPose.Content = "Pose: " + postureRecognizer.CurrentPosture.ToString();
        }
开发者ID:kaorun55,项目名称:kinect_sdk_sandbox,代码行数:34,代码来源:MainWindow.xaml.cs


示例3: runtime_SkeletonFrameReady

        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void runtime_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
        {
            SkeletonFrame skeletonSet = e.SkeletonFrame;

            SkeletonData data = (from s in skeletonSet.Skeletons
                                 where s.TrackingState == SkeletonTrackingState.Tracked
                                 select s).FirstOrDefault();

            SetEllipsePosition(head, data.Joints[JointID.Head]);
            SetEllipsePosition(leftHand, data.Joints[JointID.HandLeft]);
            SetEllipsePosition(rightHand, data.Joints[JointID.HandRight]);

            // draw joints
            Joint headjoint = data.Joints[JointID.Head];

            Joint leftShoulderJoint = data.Joints[JointID.ShoulderLeft];
            Joint centerShoulderJoint = data.Joints[JointID.ShoulderCenter];
            Joint rightShoulderJoint = data.Joints[JointID.ShoulderRight];

            Joint spineJoint = data.Joints[JointID.Spine];

            Joint leftWristJoint = data.Joints[JointID.WristLeft];
            Joint rightWristJoint = data.Joints[JointID.WristRight];

            Joint leftHandJoint = data.Joints[JointID.HandLeft];
            Joint rightHandJoint = data.Joints[JointID.HandRight];

            // draw skeleton
        }
开发者ID:justzx2011,项目名称:KinectGallery,代码行数:34,代码来源:KinectWindow.xaml.cs


示例4: nui_SkeletonFrameReady

        public void nui_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
        {
            if (!IsRecording) return;

            lock (RecordStream)
            {
                SkeletonFrame skeletonFrame = e.SkeletonFrame;
                int iSkeleton = 0;

                foreach (SkeletonData data in skeletonFrame.Skeletons)
                {
                    if (SkeletonTrackingState.Tracked == data.TrackingState)
                    {
                        //Recording for longer than a day will cause the timer to roll over.  Who would record 24+ hours of Kinect data anyways?
                        TimeSpan elapsedTime = DateTime.Now - StartTime;
                        RecordStream.Write(elapsedTime.Hours.ToString() + ":" + elapsedTime.Minutes.ToString() + ":" + elapsedTime.Seconds.ToString() + ":" + elapsedTime.Milliseconds.ToString() + ",");
                        foreach (Joint joint in data.Joints)
                        {
                            RecordStream.Write(joint.ID.ToString() + "," + (joint.Position.X * 1000).ToString() + "," + (joint.Position.Y * 1000) + "," + (joint.Position.Z * 1000)+",");
                        }
                        RecordStream.WriteLine("");
                     }
                    iSkeleton++;
                } // for each skeleton
            }
        }
开发者ID:Jerdak,项目名称:KinectDaemon,代码行数:26,代码来源:Recorder.cs


示例5: xtion_SkeletonFrameReady

        void xtion_SkeletonFrameReady( object sender, SkeletonFrameReadyEventArgs e )
        {
            this.Dispatcher.BeginInvoke( DispatcherPriority.Background, new Action( () =>
            {
                canvas1.Children.Clear();

                foreach ( var u in e.Users ) {
                    if ( !e.Skeleton.IsTracking( u ) ) {
                        continue;
                    }

                    foreach ( SkeletonJoint s in Enum.GetValues( typeof( SkeletonJoint ) ) ) {
                        if ( !e.Skeleton.IsJointAvailable( s ) || !e.Skeleton.IsJointActive( s ) ) {
                            continue;
                        }

                        var joint = e.Skeleton.GetSkeletonJoint( u, s );
                        var point = e.DepthGenerator.ConvertRealWorldToProjective( joint.Position.Position );
                        point  = point.ScaleTo( e.DepthGenerator, 320, 240 );

                        const int dimeter = 10;
                        const int r = dimeter / 2;
                        canvas1.Children.Add( new Ellipse()
                        {
                            Fill = Brushes.Red,
                            Margin = new Thickness( point.X - r, point.Y - r, point.X + r, point.Y + r ),
                            Height = dimeter,
                            Width = dimeter,
                        } );
                    }
                }
            } ) );
        }
开发者ID:kaorun55,项目名称:OpenNI.Toolkit,代码行数:33,代码来源:MainWindow.xaml.cs


示例6: kinectRuntime_SkeletonFrameReady

 private void kinectRuntime_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
 {
     if (e.SkeletonFrame == null)
         return;
     if (!e.SkeletonFrame.Skeletons.Any(s => s.TrackingState != SkeletonTrackingState.NotTracked))
         return;
     ProcessFrame(e.SkeletonFrame);
 }
开发者ID:geopoulos,项目名称:KinectGestureDectection,代码行数:8,代码来源:MainWindow.xaml.cs


示例7: KinectRuntime_SkeletonFrameReady

        private void KinectRuntime_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
        {
            SkeletonFrame allSkeletons = e.SkeletonFrame;

            // Get the first tracked skeleton.
            skeleton.SkeletonData = (from s in allSkeletons.Skeletons
                                     where s.TrackingState == SkeletonTrackingState.Tracked
                                     select s).FirstOrDefault();
        }
开发者ID:NashDotNet,项目名称:Intro-to-Developing-for-the-Kinect,代码行数:9,代码来源:MainWindow.xaml.cs


示例8: kinectRuntime_SkeletonFrameReady

        void kinectRuntime_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
        {
            if (recorder != null)
                recorder.Record(e.SkeletonFrame);

            if (e.SkeletonFrame.Skeletons.Where(s => s.TrackingState != SkeletonTrackingState.NotTracked).Count() == 0)
                return;

            ProcessFrame(e.SkeletonFrame);
        }
开发者ID:salivian,项目名称:LazyHH,代码行数:10,代码来源:MainWindow.xaml.cs


示例9: runtime_SkeletonFrameReady

        void runtime_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
        {
            var skeleton = e.SkeletonFrame.Skeletons.Where(s => s.TrackingState == SkeletonTrackingState.Tracked).FirstOrDefault();

            if (skeleton != null && this.SkeletonUpdated != null)
            {
                this.SkeletonUpdated(this,
                    new SkeletonUpdatedEventArgs() { HandRightJoint = skeleton.Joints[JointID.HandRight] });
            }
        }
开发者ID:kindohm,项目名称:kinect-level-up,代码行数:10,代码来源:KinectService.cs


示例10: kinectSensor_SkeletonFrameReady

        public void kinectSensor_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
        {
            Console.WriteLine("Hey, listen");
            SkeletonFrame skeletonFrame = e.SkeletonFrame;
            Boolean player1 = true;
            foreach (SkeletonData data in skeletonFrame.Skeletons)
            {
                if (data.TrackingState == SkeletonTrackingState.Tracked)
                    Console.WriteLine("Im watching you");
                {
                    if (player1)
                    {

                        foreach (Joint joint in data.Joints)
                        {
                            if (joint.ID == JointID.HandLeft)
                            {
                                player1LeftHand = joint.Position.ToVector2();
                            }
                            else if (joint.ID == JointID.ElbowLeft)
                            {
                                player1LeftElbow = joint.Position.ToVector2();
                            }
                        }

                        player1Theta = (float)Math.Atan(((player1LeftHand.Y - player1LeftElbow.Y) / (player1LeftHand.X - player1LeftElbow.X)));
                        player1Theta = (player1Theta * 180) / (float)Math.PI;
                        Console.WriteLine(player1Theta + "Is my angle");
                        thisGameIsAwesome.screenManager.input.myArmAngle = player1Theta;

                    }
                    else
                    {

                        foreach (Joint joint in data.Joints)
                        {
                            if (joint.ID == JointID.HandRight)
                            {
                                player2RightHand = joint.Position.ToVector2();
                            }
                            else if (joint.ID == JointID.ElbowRight)
                            {
                                player2RightElbow = joint.Position.ToVector2();
                            }
                        }

                        player2Theta = (float)Math.Atan(((player2RightHand.Y - player2RightElbow.Y) / (player2RightHand.X - player2RightElbow.X)));
                    }
                }
                //player1 = !player1;
                return;
            }
        }
开发者ID:ProjPossibility,项目名称:USC-AccessibleKinect,代码行数:53,代码来源:Mover.cs


示例11: kinectSensor_SkeletonFrameReady

 private void kinectSensor_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
 {
     foreach (SkeletonData s in e.SkeletonFrame.Skeletons)
     {
         if (s.TrackingState == SkeletonTrackingState.Tracked)
         {
             resolution = new Vector2(640, 480);
             skeleton = s;
             rightHandJoint = skeleton.Joints[JointID.HandRight];
             position = new Vector2((((0.5f * rightHandJoint.Position.X) + 0.5f) * (resolution.X)), (((-0.5f * rightHandJoint.Position.Y) + 0.5f) * (resolution.Y)));
         }
     }
 }
开发者ID:thefoofighter,项目名称:KinectTest,代码行数:13,代码来源:LoadKinect.cs


示例12: nui_SkeletonFrameReady

        /// <summary>
        /// the event handler for the skeleton frame ready event 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void nui_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
        {
            SkeletonFrame allskeletons = e.SkeletonFrame;
            SkeletonData skeleton = (from s in allskeletons.Skeletons
                                     where s.TrackingState == SkeletonTrackingState.Tracked
                                     select s).FirstOrDefault();

            setpositionellipse(ellipse1,skeleton.Joints[JointID.Head]);
            setpositionellipse(ellipse2, skeleton.Joints[JointID.HandLeft]);
            setpositionellipse(ellipse3, skeleton.Joints[JointID.HandRight]);
            setpositionellipse(ellipse4, skeleton.Joints[JointID.FootLeft]);
            setpositionellipse(ellipse5, skeleton.Joints[JointID.FootRight]);

            getCoordinates_Playsound(skeleton.Joints[JointID.HandLeft]);
        }
开发者ID:hadyelsahar,项目名称:Kinect-Piano,代码行数:20,代码来源:MainWindow.xaml.cs


示例13: nui_SkeletonFrameReady

        void nui_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
        {
            
            SkeletonFrame allSkeletons = e.SkeletonFrame;

            //get the first tracked skeleton
            SkeletonData skeleton = (from s in allSkeletons.Skeletons
                                     where s.TrackingState == SkeletonTrackingState.Tracked
                                     select s).FirstOrDefault();

            if(skeleton != null)
            {
                gestureController.processSkeletonFrame(skeleton);
            }
        }
开发者ID:guozanhua,项目名称:kinect-earth,代码行数:15,代码来源:MainWindow.xaml.cs


示例14: Nui_SkeletonFrameReady

        void Nui_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
        {
            canvas.Children.Clear();

            foreach (SkeletonData user in e.SkeletonFrame.Skeletons)
            {
                if (user.TrackingState == SkeletonTrackingState.Tracked)
                {
                    foreach (Joint joint in user.Joints)
                    {
                        DrawPoint(joint, Colors.Blue);
                    }
                }
            }
        }
开发者ID:hurns92,项目名称:kinectproject,代码行数:15,代码来源:MainWindow.xaml.cs


示例15: runtime_SkeletonFrameReady

        void runtime_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
        {
            var skeleton =
                           e.SkeletonFrame.Skeletons
                           .Where(s => s.TrackingState == SkeletonTrackingState.Tracked)
                           .FirstOrDefault();

            if (skeleton == null)
            {
                return;
            }

            var position = skeleton.Joints[JointID.HandRight].Position;
            if (this.SkeletonUpdated != null)
            {
                this.SkeletonUpdated(this, new SkeletonEventArgs() { RightHandPosition = position });
            }
        }
开发者ID:kindohm,项目名称:kinect-mvvm,代码行数:18,代码来源:ConcreteKinectService.cs


示例16: nui_SkeletonFrameReady

 void nui_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
 {
     foreach (SkeletonData data in e.SkeletonFrame.Skeletons)
     {
         Gesture.updateJoints(data);
         foreach (Gesture gesture in gestures)
         {
             if (gesture.timeDelayHasPassed())    //check for time delay.
             {
                 if (gesture.isDoingGesture())   //check to see if the gesture is being performed.
                 {
                     //hey, the gesture is being performed. Go do some thing with it in your program...
                     MessageBox.Show(gesture.getDescription());  //In this example I just print the Gesture's description.
                     gesture.updateGesture();
                 }
             }
         }
     }
 }
开发者ID:FRCTeam1073-TheForceTeam,项目名称:KinectGestureLib,代码行数:19,代码来源:ExampleForm.cs


示例17: runtime_SkeletonFrameReady

		void runtime_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
		{
			foreach (SkeletonData data in e.SkeletonFrame.Skeletons)
			{
				if (data.TrackingState == SkeletonTrackingState.Tracked)
				{
					Joint joint = data.Joints[JointID.HandLeft];
					
					if (joint.TrackingState != JointTrackingState.Tracked)
						break;
					
					int handY = (int) joint.ScaleTo(kGameWidth, kGameHeight - kPaddleHeight, 0.6f, 0.4f).Position.Y;
					handY = Math.Max(handY, 0);
					handY = Math.Min(handY, kGameHeight - kPaddleHeight);
					ourPaddleRect.Y = handY;
					
					break;
				}
			}
		}
开发者ID:guozanhua,项目名称:KinectPong,代码行数:20,代码来源:PongGame.cs


示例18: nui_SkeletonFrameReady

        void nui_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
        {
            SkeletonFrame allSkeletons = e.SkeletonFrame;

            //get the first tracked skeleton
            SkeletonData skeleton = (from s in allSkeletons.Skeletons
                                     where s.TrackingState == SkeletonTrackingState.Tracked
                                     select s).FirstOrDefault();

            if(skeleton != null)
            {
                //set positions on our joints of interest (already defined as Ellipse objects in the xaml)
                SetEllipsePosition(headEllipse, skeleton.Joints[JointID.Head]);
                SetEllipsePosition(leftEllipse, skeleton.Joints[JointID.HandLeft]);
                SetEllipsePosition(rightEllipse, skeleton.Joints[JointID.HandRight]);
                SetEllipsePosition(shoulderCenter, skeleton.Joints[JointID.ShoulderCenter]);
                SetEllipsePosition(shoulderRight, skeleton.Joints[JointID.ShoulderRight]);
                SetEllipsePosition(shoulderLeft, skeleton.Joints[JointID.ShoulderLeft]);
                SetEllipsePosition(ankleRight, skeleton.Joints[JointID.AnkleRight]);
                SetEllipsePosition(ankleLeft, skeleton.Joints[JointID.AnkleLeft]);
                SetEllipsePosition(footLeft, skeleton.Joints[JointID.FootLeft]);
                SetEllipsePosition(footRight, skeleton.Joints[JointID.FootRight]);
                SetEllipsePosition(wristLeft, skeleton.Joints[JointID.WristLeft]);
                SetEllipsePosition(wristRight, skeleton.Joints[JointID.WristRight]);
                SetEllipsePosition(elbowLeft, skeleton.Joints[JointID.ElbowLeft]);
                SetEllipsePosition(elbowRight, skeleton.Joints[JointID.ElbowRight]);
                SetEllipsePosition(ankleLeft, skeleton.Joints[JointID.AnkleLeft]);
                SetEllipsePosition(footLeft, skeleton.Joints[JointID.FootLeft]);
                SetEllipsePosition(footRight, skeleton.Joints[JointID.FootRight]);
                SetEllipsePosition(wristLeft, skeleton.Joints[JointID.WristLeft]);
                SetEllipsePosition(wristRight, skeleton.Joints[JointID.WristRight]);
                SetEllipsePosition(kneeLeft, skeleton.Joints[JointID.KneeLeft]);
                SetEllipsePosition(kneeRight, skeleton.Joints[JointID.KneeRight]);
                SetEllipsePosition(hipCenter, skeleton.Joints[JointID.HipCenter]);
                currentController.processSkeletonFrame(skeleton, targets);

            }
        }
开发者ID:nhippenmeyer,项目名称:CS247,代码行数:38,代码来源:MainWindow.xaml.cs


示例19: runtime_SkeletonFrameReady

        void runtime_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
        {
            var skeleton = e.SkeletonFrame.Skeletons
                .Where(s => s.TrackingState == SkeletonTrackingState.Tracked)
                .FirstOrDefault();

            if (skeleton != null)
            {
                if (this.SkeletonUpdated != null)
                {
                    this.swipe.AddSwipePoint(skeleton.Joints[JointID.HandRight].Position);

                    this.SkeletonUpdated(this,
                        new SkeletonUpdatedEventArgs()
                        {
                            HandRight = skeleton.Joints[JointID.HandRight],
                            HipRight = skeleton.Joints[JointID.HipRight],
                            ShoulderRight = skeleton.Joints[JointID.ShoulderRight],
                            Head = skeleton.Joints[JointID.Head]
                        });
                }
            }
        }
开发者ID:kindohm,项目名称:kinect-level-up,代码行数:23,代码来源:KinectService.cs


示例20: SkeletonFrameReady

        void SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
        {
            SkeletonFrame allSkeletons = e.SkeletonFrame;
            if (isRecorder)
            {
                recorder.Record(allSkeletons);
            }

            // Get the first tracked skeleton
            SkeletonData skeleton = (from s in allSkeletons.Skeletons
                                     where s.TrackingState == SkeletonTrackingState.Tracked
                                     select s).FirstOrDefault();

            if (skeleton != null)
            {
                // Set positions on our joints of interest

                Head = GetScaledPosition(skeleton.Joints[JointID.Head]);
                HandLeft = GetScaledPosition(skeleton.Joints[JointID.HandLeft]);
                HandRight = GetScaledPosition(skeleton.Joints[JointID.HandRight]);
                ShoulderCenter = GetScaledPosition(skeleton.Joints[JointID.ShoulderCenter]);
                ShoulderRight = GetScaledPosition(skeleton.Joints[JointID.ShoulderRight]);
                ShoulderLeft = GetScaledPosition(skeleton.Joints[JointID.ShoulderLeft]);
                AnkleRight = GetScaledPosition(skeleton.Joints[JointID.AnkleRight]);
                AnkleLeft = GetScaledPosition(skeleton.Joints[JointID.AnkleLeft]);
                FootLeft = GetScaledPosition(skeleton.Joints[JointID.FootLeft]);
                FootRight = GetScaledPosition(skeleton.Joints[JointID.FootRight]);
                WristLeft = GetScaledPosition(skeleton.Joints[JointID.WristLeft]);
                WristRight = GetScaledPosition(skeleton.Joints[JointID.WristRight]);
                ElbowLeft = GetScaledPosition(skeleton.Joints[JointID.ElbowLeft]);
                ElbowRight = GetScaledPosition(skeleton.Joints[JointID.ElbowRight]);
                KneeLeft = GetScaledPosition(skeleton.Joints[JointID.KneeLeft]);
                KneeRight = GetScaledPosition(skeleton.Joints[JointID.KneeRight]);
                HipCenter = GetScaledPosition(skeleton.Joints[JointID.HipCenter]);
            }
        }
开发者ID:thoschmidt,项目名称:CS247,代码行数:36,代码来源:FreePlayKinectModel.cs



注:本文中的SkeletonFrameReadyEventArgs类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# SkeletonJoint类代码示例发布时间:2022-05-24
下一篇:
C# SkeletonDataAsset类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap