Esempio n. 1
0
        private void dragX_Changed(DragListener drag)
        {
            Point  currentPoint = Mouse.GetPosition(this.parent);
            Vector deltaVector  = Point.Subtract(currentPoint, this.startPoint);

            var destAngle = (-0.5 * deltaVector.X) + skewX;

            if (destAngle == 0 && skewY == 0)
            {
                this.ExtendedItem.Properties.GetProperty(FrameworkElement.RenderTransformProperty).Reset();
                rtTransform   = null;
                skewTransform = null;
            }
            else
            {
                if ((rtTransform == null) || !(rtTransform.Component is SkewTransform))
                {
                    if (!this.ExtendedItem.Properties.GetProperty(FrameworkElement.RenderTransformOriginProperty).IsSet)
                    {
                        this.ExtendedItem.Properties.GetProperty(FrameworkElement.RenderTransformOriginProperty).SetValue(new Point(0.5, 0.5));
                    }

                    if (this.skewTransform == null)
                    {
                        this.skewTransform = new SkewTransform(0, 0);
                    }
                    this.ExtendedItem.Properties.GetProperty(FrameworkElement.RenderTransformProperty).SetValue(skewTransform);
                    rtTransform = this.ExtendedItem.Properties[FrameworkElement.RenderTransformProperty].Value;
                }
                rtTransform.Properties["AngleX"].SetValue(destAngle);
            }

            _adornerLayer.UpdateAdornersForElement(this.ExtendedItem.View, true);
        }
        private void ArrangeChild()
        {
            int count = 0;

            if (double.IsNaN(this.Width))
            {
                this.Width = 200;
            }
            if (double.IsNaN(this.Height))
            {
                this.Height = 200;
            }
            int l          = Children.Count * CentralAngle;
            int startAngle = -10;

            foreach (FrameworkElement element in this.Children)
            {
                element.RenderTransformOrigin = new Point(1, 1);
                TransformGroup  tg = new TransformGroup();
                RotateTransform r  = new RotateTransform();
                r.Angle = startAngle + CentralAngle * count++;
                SkewTransform s = new SkewTransform();
                s.AngleX = 90 - CentralAngle;
                tg.Children.Add(s);
                tg.Children.Add(r);

                element.RenderTransform = tg;

                if (!(double.IsNaN(this.Width)) && !(double.IsNaN(this.Height)) && !(double.IsNaN(element.DesiredSize.Width)) && !(double.IsNaN(element.DesiredSize.Height)))
                {
                    element.Arrange(new Rect(Width / 2 - element.DesiredSize.Width, Height / 2 - element.DesiredSize.Height, element.DesiredSize.Width, element.DesiredSize.Height));
                }
            }
        }
Esempio n. 3
0
        private void InitializeTransformGroup()
        {
            Transform[]    transformArray = new Transform[4];
            ScaleTransform scaleTransform = new ScaleTransform(this.decomposition.ScaleX, this.decomposition.ScaleY);

            transformArray[0] = (Transform)scaleTransform;
            SkewTransform skewTransform = new SkewTransform(this.decomposition.SkewX, this.decomposition.SkewY);

            transformArray[1] = (Transform)skewTransform;
            RotateTransform rotateTransform = new RotateTransform(this.decomposition.RotationAngle);

            transformArray[2] = (Transform)rotateTransform;
            if (this.decomposition.Center.X != 0.0 || this.decomposition.Center.Y != 0.0)
            {
                Point center = this.decomposition.Center;
                scaleTransform.CenterX  = center.X;
                scaleTransform.CenterY  = center.Y;
                skewTransform.CenterX   = center.X;
                skewTransform.CenterY   = center.Y;
                rotateTransform.CenterX = center.X;
                rotateTransform.CenterY = center.Y;
            }
            transformArray[3]            = (Transform) new TranslateTransform(this.decomposition.TranslationX, this.decomposition.TranslationY);
            this.transformGroup          = new TransformGroup();
            this.transformGroup.Children = new TransformCollection((IEnumerable <Transform>)transformArray);
        }
        public void CreateLines()
        {
            double opacityVal = 0.0;


            for (double i = 0; i < 360; i += 0.5)
            {
                Line sweepLine = new Line();
                sweepLine.X1                    = 197.0;
                sweepLine.Y1                    = 186.0;
                sweepLine.X2                    = 120.0;
                sweepLine.Y2                    = 120.0;
                sweepLine.Stroke                = new SolidColorBrush(Colors.Black);
                sweepLine.StrokeThickness       = 1.0;
                sweepLine.RenderTransformOrigin = new Point(0.5, 0.5);
                sweepLine.Opacity               = opacityVal;
                opacityVal += 0.00138;

                TransformGroup     xformGroup     = new TransformGroup();
                RotateTransform    rotateXform    = new RotateTransform(i);
                ScaleTransform     scaleXform     = new ScaleTransform();
                SkewTransform      skewXform      = new SkewTransform();
                TranslateTransform translateXform = new TranslateTransform();

                xformGroup.Children.Add(scaleXform);
                xformGroup.Children.Add(skewXform);
                xformGroup.Children.Add(rotateXform);
                xformGroup.Children.Add(translateXform);

                sweepLine.RenderTransform = xformGroup;

                appGrid.Children.Add(sweepLine);
            }
        }
Esempio n. 5
0
        public CompositeTransform()
        {
            var scaleTransform     = new ScaleTransform();
            var rotateTransform    = new RotateTransform();
            var translateTransform = new TranslateTransform();
            var skewTransform      = new SkewTransform();

            scaleTransform.BindProperties(ScaleTransform.CenterXProperty, this, CenterXProperty);
            scaleTransform.BindProperties(ScaleTransform.CenterYProperty, this, CenterYProperty);
            scaleTransform.BindProperties(ScaleTransform.ScaleXProperty, this, ScaleXProperty);
            scaleTransform.BindProperties(ScaleTransform.ScaleYProperty, this, ScaleYProperty);

            rotateTransform.BindProperties(RotateTransform.CenterXProperty, this, CenterXProperty);
            rotateTransform.BindProperties(RotateTransform.CenterYProperty, this, CenterYProperty);
            rotateTransform.BindProperties(RotateTransform.AngleProperty, this, RotationProperty);

            translateTransform.BindProperties(TranslateTransform.XProperty, this, TranslateXProperty);
            translateTransform.BindProperties(TranslateTransform.YProperty, this, TranslateYProperty);

            skewTransform.BindProperties(SkewTransform.CenterXProperty, this, CenterXProperty);
            skewTransform.BindProperties(SkewTransform.CenterYProperty, this, CenterYProperty);
            skewTransform.BindProperties(SkewTransform.AngleXProperty, this, SkewXProperty);
            skewTransform.BindProperties(SkewTransform.AngleYProperty, this, SkewYProperty);

            _transform = new TransformGroup
            {
                Children =
                {
                    scaleTransform,
                    skewTransform,
                    rotateTransform,
                    translateTransform
                }
            };
        }
        /// <summary>
        /// Gets the matrix that represents this transform.
        /// Implements WPF's SkewTransform.Value.
        /// </summary>
        /// <param name="transform">Extended SkewTranform.</param>
        /// <returns>Matrix representing transform.</returns>
        public static Matrix GetMatrix(this SkewTransform transform)
        {
            Matrix matrix = Matrix.Identity;

            var angleX  = transform.AngleX;
            var angleY  = transform.AngleY;
            var centerX = transform.CenterX;
            var centerY = transform.CenterY;

            bool hasCenter = centerX != 0 || centerY != 0;

            if (hasCenter)
            {
                // If we have a center, translate matrix before/after skewing.
                matrix = matrix.Translate(-centerX, -centerY);
                matrix = matrix.Skew(angleX, angleY);
                matrix = matrix.Translate(centerX, centerY);
            }
            else
            {
                matrix = matrix.Skew(angleX, angleY);
            }

            return(matrix);
        }
Esempio n. 7
0
        /// <summary>
        /// 根据数值,返回TransformGroup对象
        /// </summary>
        public static TransformGroup GetTransformGroupForXYOffset(double X, double Y, double scaleX, double scaleY)
        {
            ScaleTransform scaleTrans = new ScaleTransform()
            {
                ScaleX = scaleX, ScaleY = scaleY
            };
            RotateTransform rotateTrans = new RotateTransform()
            {
                Angle = 0.00D
            };
            TranslateTransform translateTrans = new TranslateTransform()
            {
                X = X, Y = Y
            };
            SkewTransform skewTrans = new SkewTransform();

            TransformGroup transGroup = new TransformGroup();

            transGroup.Children.Add(scaleTrans);
            transGroup.Children.Add(skewTrans);
            transGroup.Children.Add(rotateTrans);
            transGroup.Children.Add(translateTrans);

            return(transGroup);
        }
        /// <summary>
        /// Walks the Transform(Group) and returns the corresponding Matrix.
        /// </summary>
        /// <param name="transform">Transform(Group) to walk.</param>
        /// <returns>Computed Matrix.</returns>
        private Matrix GetTransformMatrix(Transform transform)
        {
            if (null != transform)
            {
                // Process the TransformGroup
                TransformGroup transformGroup = transform as TransformGroup;
                if (null != transformGroup)
                {
                    Matrix groupMatrix = Matrix.Identity;
                    foreach (Transform child in transformGroup.Children)
                    {
                        groupMatrix = MatrixMultiply(groupMatrix, GetTransformMatrix(child));
                    }
                    return(groupMatrix);
                }

                // Process the RotateTransform
                RotateTransform rotateTransform = transform as RotateTransform;
                if (null != rotateTransform)
                {
                    double angle        = rotateTransform.Angle;
                    double angleRadians = (2 * Math.PI * angle) / 360;
                    double sine         = Math.Sin(angleRadians);
                    double cosine       = Math.Cos(angleRadians);
                    return(new Matrix(cosine, sine, -sine, cosine, 0, 0));
                }

                // Process the ScaleTransform
                ScaleTransform scaleTransform = transform as ScaleTransform;
                if (null != scaleTransform)
                {
                    double scaleX = scaleTransform.ScaleX;
                    double scaleY = scaleTransform.ScaleY;
                    return(new Matrix(scaleX, 0, 0, scaleY, 0, 0));
                }

                // Process the SkewTransform
                SkewTransform skewTransform = transform as SkewTransform;
                if (null != skewTransform)
                {
                    double angleX        = skewTransform.AngleX;
                    double angleY        = skewTransform.AngleY;
                    double angleXRadians = (2 * Math.PI * angleX) / 360;
                    double angleYRadians = (2 * Math.PI * angleY) / 360;
                    return(new Matrix(1, angleYRadians, angleXRadians, 1, 0, 0));
                }

                // Process the MatrixTransform
                MatrixTransform matrixTransform = transform as MatrixTransform;
                if (null != matrixTransform)
                {
                    return(matrixTransform.Matrix);
                }

                // TranslateTransform has no effect in LayoutTransform
            }

            // Fall back to no-op transformation
            return(Matrix.Identity);
        }
 public Manager(TabControl tabs, StackPanel Background, StackPanel Edit)
 {
     // TODO: Complete member initialization
     this.tabs       = tabs;
     this.Background = Background;
     this.Edit       = Edit;
     trSkw           = new SkewTransform(0, 0);
     trRot           = new RotateTransform(0);
     trTns           = new TranslateTransform(0, 0);
     trScl           = new ScaleTransform(1, 1);
     trSkw2          = new SkewTransform(0, 0);
     trRot2          = new RotateTransform(0);
     trTns2          = new TranslateTransform(0, 0);
     trScl2          = new ScaleTransform(1, 1);
     trGrp2          = new TransformGroup();
     trGrp2.Children.Add(trSkw2);
     trGrp2.Children.Add(trRot2);
     trGrp2.Children.Add(trTns2);
     trGrp2.Children.Add(trScl2);
     trGrp = new TransformGroup();
     trGrp.Children.Add(trSkw);
     trGrp.Children.Add(trRot);
     trGrp.Children.Add(trTns);
     trGrp.Children.Add(trScl);
 }
Esempio n. 10
0
        public WindowBase()
        {
            this.WindowStyle           = WindowStyle.None;
            this.AllowsTransparency    = true;
            this.WindowStartupLocation = WindowStartupLocation.CenterScreen;

            // Todo :初始化动画变量
            TransformGroup     group     = new TransformGroup();
            ScaleTransform     scale     = new ScaleTransform();
            SkewTransform      skew      = new SkewTransform();
            RotateTransform    rotate    = new RotateTransform();
            TranslateTransform translate = new TranslateTransform();

            group.Children.Add(scale);
            group.Children.Add(skew);
            group.Children.Add(rotate);
            group.Children.Add(translate);
            this.RenderTransform = group;


            // Todo :初始化淡出初始效果
            this.OpacityMask = this.FindResource("WindowOpMack") as Brush;

            //this.Style = this.FindResource("DefaultWindowStyle") as Style;
            //this.Icon = Images.CreateImageSourceFromImage(Properties.Resources.logo);
            //12=6+6//Margin=6,Border.Effect.BlueRadius=6
            this.MaxHeight = SystemParameters.WorkArea.Height + 12 + 2;
            //bind command
            this.CloseWindowCommand    = new RoutedUICommand();
            this.MaximizeWindowCommand = new RoutedUICommand();
            this.MinimizeWindowCommand = new RoutedUICommand();
            this.BindCommand(CloseWindowCommand, this.CloseCommand_Execute);
            this.BindCommand(MaximizeWindowCommand, this.MaxCommand_Execute);
            this.BindCommand(MinimizeWindowCommand, this.MinCommand_Execute);
        }
Esempio n. 11
0
        //Skew Animation
        private void skew(Node Snow)
        {
            DoubleAnimation skewA = new DoubleAnimation(0, 180, new TimeSpan(0, 0, 0, 0, 3000));
            DoubleAnimation skewB = new DoubleAnimation(0, 180, new TimeSpan(0, 0, 0, 0, 3000));

            skewA.AutoReverse    = true;
            skewA.RepeatBehavior = RepeatBehavior.Forever;
            TransformGroup tg  = new TransformGroup();
            SkewTransform  xst = new SkewTransform();

            xst.CenterX = 25;
            xst.CenterY = 25;
            SkewTransform yst = new SkewTransform();

            yst.CenterX = 25;
            yst.CenterY = 25;

            tg.Children.Add(xst);
            tg.Children.Add(yst);

            Snow.AllowResize     = false;
            Snow.RenderTransform = tg;
            xst.BeginAnimation(SkewTransform.AngleXProperty, skewA);
            yst.BeginAnimation(SkewTransform.AngleYProperty, skewB);
        }
Esempio n. 12
0
        public void Inverses_sl2()
        {
            GeneralTransform inverse;

            RotateTransform rotate = new RotateTransform {
                Angle = 10.0
            };

            inverse = rotate.Inverse;
            Assert.IsNull(inverse, "#0");

            ScaleTransform scale = new ScaleTransform {
                ScaleX = 2.0, ScaleY = 2.0
            };

            inverse = scale.Inverse;
            Assert.IsNull(inverse, "#1");

            SkewTransform skew = new SkewTransform {
                AngleX = 1.0, AngleY = 1.0
            };

            inverse = skew.Inverse;
            Assert.IsNull(inverse, "#2");

            TranslateTransform translate = new TranslateTransform {
                X = 5.0, Y = 5.0
            };

            inverse = translate.Inverse;
            Assert.IsNull(inverse, "#3");
        }
Esempio n. 13
0
        public void OnPositionUpdated_SkewTransform_TransformIsCloned()
        {
            SkewTransform skewTransform    = CreateSkewTransform(1, 0);
            Transform     draggedTransform = VerifyTransformIsClonedOnDrag(skewTransform);

            Assert.AreNotSame(draggedTransform, skewTransform, "Skew transform should not be identical after a drag.");
        }
Esempio n. 14
0
        private void ApplyCSSChanges(SkewTransform skewTransform, double angleX, double angleY)
        {
            CSSEquivalent angleXcssEquivalent = AngleXProperty.GetTypeMetaData(typeof(SkewTransform)).GetCSSEquivalent(skewTransform);

            if (angleXcssEquivalent != null)
            {
                object domElementX = angleXcssEquivalent.DomElement;
                if (angleX != _appliedCssAngleX || (_domElementToWhichTheCssAngleXWasApplied != null && domElementX != _domElementToWhichTheCssAngleXWasApplied)) // Optimization to avoid setting the transform if the value is (0,0) or if it is the same as the last time.
                {
                    INTERNAL_HtmlDomManager.SetDomElementStylePropertyUsingVelocity(angleXcssEquivalent.DomElement, angleXcssEquivalent.Name, angleXcssEquivalent.Value(skewTransform, angleX));
                    _appliedCssAngleX = angleX;
                    _domElementToWhichTheCssAngleXWasApplied = domElementX;
                }
            }

            CSSEquivalent angleYcssEquivalent = AngleYProperty.GetTypeMetaData(typeof(SkewTransform)).GetCSSEquivalent(skewTransform);

            if (angleYcssEquivalent != null)
            {
                object domElementY = angleYcssEquivalent.DomElement;
                if (angleY != _appliedCssAngleY || (_domElementToWhichTheCssAngleYWasApplied != null && domElementY != _domElementToWhichTheCssAngleYWasApplied)) // Optimization to avoid setting the transform if the value is (0,0) or if it is the same as the last time.
                {
                    INTERNAL_HtmlDomManager.SetDomElementStylePropertyUsingVelocity(angleYcssEquivalent.DomElement, angleYcssEquivalent.Name, angleYcssEquivalent.Value(skewTransform, angleY));
                    _appliedCssAngleY = angleY;
                    _domElementToWhichTheCssAngleYWasApplied = domElementY;
                }
            }
        }
Esempio n. 15
0
        private void Prepare(FrameworkElement element)
        {
            // https://docs.microsoft.com/en-us/dotnet/framework/wpf/graphics-multimedia/how-to-set-a-property-after-animating-it-with-a-storyboard
            element.BeginAnimation(UIElement.OpacityProperty, null);
            element.BeginAnimation(UIElement.RenderTransformProperty, null);
            element.Opacity = 1.0;

            scaleTransform     = new ScaleTransform();
            skewTransform      = new SkewTransform();
            rotateTransform    = new RotateTransform();
            translateTransform = new TranslateTransform();
            var transformGroup = new TransformGroup
            {
                Children =
                {
                    scaleTransform,
                    skewTransform,
                    rotateTransform,
                    translateTransform
                }
            };

            element.RenderTransform = transformGroup;
            if (RenderTransformOrigin.HasValue)
            {
                element.RenderTransformOrigin = RenderTransformOrigin.Value;
            }
        }
Esempio n. 16
0
        public override void OnApplyTemplate()
        {
            _matrixTransform    = GetTemplateChild(MatrixTransformPartName) as MatrixTransform;
            _rotateTransform    = GetTemplateChild(RotateTransformPartName) as RotateTransform;
            _scaleTransform     = GetTemplateChild(ScaleTransformPartName) as ScaleTransform;
            _skewTransform      = GetTemplateChild(SkewTransformPartName) as SkewTransform;
            _translateTransform = GetTemplateChild(TranslateTransformPartName) as TranslateTransform;

            UnregisterNames(MatrixTransformPartName, RotateTransformPartName, ScaleTransformPartName, SkewTransformPartName, TranslateTransformPartName);
            if (_matrixTransform != null)
            {
                RegisterName(MatrixTransformPartName, _matrixTransform);
            }
            if (_rotateTransform != null)
            {
                RegisterName(RotateTransformPartName, _rotateTransform);
            }
            if (_scaleTransform != null)
            {
                RegisterName(ScaleTransformPartName, _scaleTransform);
            }
            if (_skewTransform != null)
            {
                RegisterName(SkewTransformPartName, _skewTransform);
            }
            if (_translateTransform != null)
            {
                RegisterName(TranslateTransformPartName, _translateTransform);
            }

            base.OnApplyTemplate();

            RunOpeningEffects();
        }
Esempio n. 17
0
        private bool ReadCanonicalForm(Transform transform, bool useIfChangeable)
        {
            bool flag = false;

            if (CanonicalTransform.IsCanonical(transform))
            {
                TransformGroup     transformGroup     = (TransformGroup)transform;
                ScaleTransform     scaleTransform     = transformGroup.Children[0] as ScaleTransform;
                SkewTransform      skewTransform      = transformGroup.Children[1] as SkewTransform;
                RotateTransform    rotateTransform    = transformGroup.Children[2] as RotateTransform;
                TranslateTransform translateTransform = transformGroup.Children[3] as TranslateTransform;
                this.decomposition.Center        = new Point(scaleTransform.CenterX, scaleTransform.CenterY);
                this.decomposition.Scale         = new Vector(scaleTransform.ScaleX, scaleTransform.ScaleY);
                this.decomposition.Skew          = new Vector(skewTransform.AngleX, skewTransform.AngleY);
                this.decomposition.RotationAngle = rotateTransform.Angle;
                this.decomposition.Translation   = new Vector(translateTransform.X, translateTransform.Y);
                if (useIfChangeable && !transformGroup.IsFrozen)
                {
                    this.transformGroup = transformGroup;
                }
                else
                {
                    this.InitializeTransformGroup();
                }
                flag = true;
            }
            return(flag);
        }
Esempio n. 18
0
        private static void RTSkewYAnimation(FrameworkElement Item, DoubleAnimation Ani, Action OnCompleted, SetExtentAnimationTimelineDelegate SetExtentValue)
        {
            SkewTransform Transform = CuxAnimation1.GetRTInstance <SkewTransform>(Item);

            if (Transform != null)
            {
                if (SetExtentValue != null)
                {
                    SetExtentValue(Ani);
                }
                Ani.Completed += new EventHandler(
                    delegate(object sender, EventArgs e)
                {
                    if (!Ani.AutoReverse)
                    {
                        Transform.AngleY = Ani.To.Value;
                        if (OnCompleted != null && Transform.AngleY == Ani.To.Value)
                        {
                            OnCompleted();
                        }
                    }
                    else
                    {
                        if (OnCompleted != null)
                        {
                            OnCompleted();
                        }
                    }
                });
                Transform.BeginAnimation(SkewTransform.AngleYProperty, Ani);
            }
        }
Esempio n. 19
0
        /// <summary>
        /// Draw the Kinect Objects onto a Body within a canvas
        /// </summary>
        /// <param name="canvas">The Canvas to paint images on</param>
        /// <param name="sensor">The Kinect sensor</param>
        /// <param name="body">The body to locate the images on</param>
        /// <param name="kinectObjects">The Kinect Object</param>
        public static void DrawKinectObjects(this Canvas canvas, KinectSensor sensor, Body body, List <KinectObject> kinectObjects)
        {
            if (kinectObjects == null)
            {
                return;
            }

            foreach (KinectObject kinectObject in kinectObjects)
            {
                Joint firstJoint = body.Joints[(JointType)kinectObject.FirstJoint],
                                  secondJoint = body.Joints[(JointType)kinectObject.SecondJoint];


                if (firstJoint.TrackingState == TrackingState.Tracked && secondJoint.TrackingState == TrackingState.Tracked)
                {
                    CameraSpacePoint firstJointPos  = firstJoint.Position,
                                     secondJointPos = secondJoint.Position;

                    Point firstPoint  = new Point(),
                          secondPoint = new Point();

                    ColorSpacePoint firstColorPoint  = sensor.CoordinateMapper.MapCameraPointToColorSpace(firstJointPos),
                                    secondColorPoint = sensor.CoordinateMapper.MapCameraPointToColorSpace(secondJointPos);

                    firstPoint.X = float.IsInfinity(firstColorPoint.X) ? 0 : firstColorPoint.X;
                    firstPoint.Y = float.IsInfinity(firstColorPoint.Y) ? 0 : firstColorPoint.Y;

                    secondPoint.X = float.IsInfinity(secondColorPoint.X) ? 0 : secondColorPoint.X;
                    secondPoint.Y = float.IsInfinity(secondColorPoint.Y) ? 0 : secondColorPoint.Y;

                    firstJoint  = firstJoint.ScaleTo(canvas.ActualWidth, canvas.ActualHeight);
                    secondJoint = secondJoint.ScaleTo(canvas.ActualWidth, canvas.ActualHeight);

                    Image bmp = new Image()
                    {
                        Width  = KinectUtils.DistanceBetween(firstJoint, secondJoint) * 1.5,
                        Height = KinectUtils.DistanceBetween(firstJoint, secondJoint) * 1.5
                    };

                    Canvas.SetTop(bmp, (firstPoint.Y + (secondPoint.Y - firstPoint.Y) / 2 - kinectObject.OffsetY) - bmp.Height / 2);
                    Canvas.SetLeft(bmp, (firstPoint.X + (secondPoint.X - firstPoint.X) / 2 + kinectObject.OffsetX) - bmp.Width / 2);

                    bmp.RenderTransformOrigin = new Point(0.5f, 0.5f);

                    var rotateT = new RotateTransform(KinectUtils.AngleBetween(firstJoint, secondJoint) + 90);
                    var skewT   = new SkewTransform(KinectUtils.YAngleBetween(firstJoint, secondJoint), KinectUtils.YAngleBetween(firstJoint, secondJoint));

                    var transformGroup = new TransformGroup();
                    transformGroup.Children.Add(rotateT);
                    transformGroup.Children.Add(skewT);
                    bmp.RenderTransform = transformGroup;

                    //Load the image
                    bmp.Source = kinectObject.Image;
                    canvas.Children.Add(bmp);
                }
            }
        }
Esempio n. 20
0
        private void ApplyCSSChanges(SkewTransform skewTransform, double angleX, double angleY)
        {
            CSSEquivalent angleXcssEquivalent = AngleXProperty.GetTypeMetaData(typeof(SkewTransform)).GetCSSEquivalent(skewTransform);

            INTERNAL_HtmlDomManager.SetDomElementStylePropertyUsingVelocity(angleXcssEquivalent.DomElement, angleXcssEquivalent.Name, angleXcssEquivalent.Value(skewTransform, angleX));
            CSSEquivalent angleYcssEquivalent = AngleYProperty.GetTypeMetaData(typeof(SkewTransform)).GetCSSEquivalent(skewTransform);

            INTERNAL_HtmlDomManager.SetDomElementStylePropertyUsingVelocity(angleYcssEquivalent.DomElement, angleYcssEquivalent.Name, angleYcssEquivalent.Value(skewTransform, angleY));
        }
Esempio n. 21
0
        //倾斜
        public void SetDigitSkewTransform(double anglex)
        {
            SkewTransform stf = new SkewTransform(anglex, 0);

            for (int i = 0; i < 10; i++)
            {
                Path0_9[i].RenderTransform = stf;
            }
        }
Esempio n. 22
0
        private void InitializeTransformGroup()
        {
            Transform[]    transformArray = new Transform[CanonicalTransformOrder.TransformCount];
            ScaleTransform scaleTransform = new ScaleTransform();

            if (this.decomposition.ScaleX != 1.0)
            {
                scaleTransform.ScaleX = this.decomposition.ScaleX;
            }
            if (this.decomposition.ScaleY != 1.0)
            {
                scaleTransform.ScaleY = this.decomposition.ScaleY;
            }
            transformArray[CanonicalTransformOrder.ScaleIndex] = (Transform)scaleTransform;
            SkewTransform skewTransform = new SkewTransform();

            if (this.decomposition.SkewX != 0.0)
            {
                skewTransform.AngleX = this.decomposition.SkewX;
            }
            if (this.decomposition.SkewY != 0.0)
            {
                skewTransform.AngleY = this.decomposition.SkewY;
            }
            transformArray[CanonicalTransformOrder.SkewIndex] = (Transform)skewTransform;
            RotateTransform rotateTransform = new RotateTransform();

            if (this.decomposition.RotationAngle != 0.0)
            {
                rotateTransform.Angle = this.decomposition.RotationAngle;
            }
            transformArray[CanonicalTransformOrder.RotateIndex] = (Transform)rotateTransform;
            if (this.decomposition.Center.X != 0.0 || this.decomposition.Center.Y != 0.0)
            {
                Point center = this.decomposition.Center;
                scaleTransform.CenterX  = center.X;
                scaleTransform.CenterY  = center.Y;
                skewTransform.CenterX   = center.X;
                skewTransform.CenterY   = center.Y;
                rotateTransform.CenterX = center.X;
                rotateTransform.CenterY = center.Y;
            }
            TranslateTransform translateTransform = new TranslateTransform();

            if (this.decomposition.TranslationX != 0.0)
            {
                translateTransform.X = this.decomposition.TranslationX;
            }
            if (this.decomposition.TranslationY != 0.0)
            {
                translateTransform.Y = this.decomposition.TranslationY;
            }
            transformArray[CanonicalTransformOrder.TranslateIndex] = (Transform)translateTransform;
            this.transformGroup          = new TransformGroup();
            this.transformGroup.Children = new TransformCollection((IEnumerable <Transform>)transformArray);
        }
 public SpawnerPortal()
 {
     InitializeComponent();
     Scale        = new ScaleTransform();
     Scale.ScaleX = scaleStart;
     Scale.ScaleY = scaleStart;
     Skew         = new SkewTransform();
     StartRoutine(ShowSpawner, () => TimeSpan.FromSeconds(rnd.Next(30, 50)));
     StartRoutine(SpawnerUpdate, () => TimeSpan.FromMilliseconds(16.666));
     currentAnimation = IncreaseScaleAnimation;
 }
Esempio n. 24
0
        public void Inverse_When_Not_Invertible()
        {
            // Angle of 45° so that we end up with the a singular matrix
            // ( because tan(45°) = tan(Math.PI / 4) = 1 )
            var transform = new SkewTransform {
                AngleX = 45, AngleY = 45
            };
            var invertedTransform = transform.Inverse;

            invertedTransform.Should().BeNull();
        }
        protected Transform GetTopTransformation()
        {
            double angle = Math.Atan((CellWidth / CellHeight) * SIZE_FACTOR_3_D) * 180 / Math.PI;
            var    skt   = new SkewTransform(-angle, 0);
            var    sct   = new ScaleTransform(1, SIZE_FACTOR_3_D, 0, 0);
            var    tg    = new TransformGroup();

            tg.Children.Add(skt);
            tg.Children.Add(sct);
            return(tg);
        }
Esempio n. 26
0
        public void TryTransform()
        {
            var point     = new Point(2, 3);
            var transform = new SkewTransform {
                AngleX = 20, AngleY = -20
            };
            var result = transform.TryTransform(point, out var outPoint);

            result.Should().BeTrue();
            outPoint.X.Should().BeInRange(3.091910, 3.091911);
            outPoint.Y.Should().BeInRange(2.272059, 2.272060);
        }
Esempio n. 27
0
        public void UpdateImage(string url)
        {
            var stackPanel = new StackPanel()
            {
                Orientation = Orientation.Horizontal
            };
            var transformGroup = new TransformGroup();

            var skewTransform   = new SkewTransform(0, 0, 0, 0);
            var rotateTransform = new RotateTransform(0);
            var scale           = new ScaleTransform(-1, 1);
            var origin          = new Point(0.4, 0.3);

            transformGroup.Children.Add(rotateTransform);
            transformGroup.Children.Add(skewTransform);
            transformGroup.Children.Add(scale);
            var packIconMaterial = new PackIconMaterial()
            {
                Kind   = PackIconMaterialKind.ThumbDownOutline,
                Width  = 36,
                Height = 36,
                RenderTransformOrigin = origin,
                RenderTransform       = transformGroup,
            };



            stackPanel.Children.Add(packIconMaterial);
            var textBlock = new TextBlock()
            {
                Text = "Dislike",
                VerticalAlignment = VerticalAlignment.Top,
                FontSize          = 24,
            };

            stackPanel.Children.Add(textBlock);
            this.DislikeButton.Content = stackPanel;
            var packIcon = new PackIconMaterial()
            {
                Kind   = PackIconMaterialKind.HeartOutline,
                Height = 23,
                Width  = 23
            };

            HeartIcon.IconResource = packIcon;
            BitmapImage bitmap = new BitmapImage();

            bitmap.BeginInit();
            bitmap.UriSource = new Uri(url, UriKind.Absolute);
            bitmap.EndInit();
            image.Source = bitmap;
        }
Esempio n. 28
0
        public void TransformBounds()
        {
            var rect      = new Rect(-5, 5, 100, 100);
            var transform = new SkewTransform {
                AngleX = 400, AngleY = 20
            };
            var result = transform.TransformBounds(rect);

            result.X.Should().BeInRange(-0.804502, -0.804501);
            result.Y.Should().BeInRange(3.180148, 3.180149);
            result.Width.Should().BeInRange(183.909963, 183.909964);
            result.Height.Should().BeInRange(136.397023, 136.397024);
        }
Esempio n. 29
0
        private void DislikeButton_Click(object sender, RoutedEventArgs e)
        {
            reacted = !reacted;
            string  _path        = Directory.GetCurrentDirectory() + "\\usersettings.json";
            string  jsonFromFile = File.ReadAllText(_path);
            dynamic jsonObj      = JsonConvert.DeserializeObject(jsonFromFile);

            jsonObj["jokeCategory"][currentCategory] -= 1;

            string output = JsonConvert.SerializeObject(jsonObj, Formatting.Indented);

            File.WriteAllText(_path, output);
            var stackPanel = new StackPanel()
            {
                Orientation = Orientation.Horizontal
            };
            var transformGroup = new TransformGroup();

            var skewTransform   = new SkewTransform(0, 0, 0, 0);
            var rotateTransform = new RotateTransform(0);
            var scale           = new ScaleTransform(-1, 1);
            var origin          = new Point(0.4, 0.3);

            transformGroup.Children.Add(rotateTransform);
            transformGroup.Children.Add(skewTransform);
            transformGroup.Children.Add(scale);
            var packIconMaterial = new PackIconMaterial()
            {
                Kind   = PackIconMaterialKind.ThumbDown,
                Width  = 36,
                Height = 36,
                RenderTransformOrigin = origin,
                RenderTransform       = transformGroup,
            };



            stackPanel.Children.Add(packIconMaterial);
            var textBlock = new TextBlock()
            {
                Text = "Dislike",
                VerticalAlignment = VerticalAlignment.Top,
                FontSize          = 24,
            };

            stackPanel.Children.Add(textBlock);
            this.DislikeButton.Content = stackPanel;

            //HeartIcon.Background = new SolidColorBrush(Colors.Transparent);
            //DislikeIcon.Background = new SolidColorBrush(Colors.Blue);
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            /*
             * var skewGrass = new DoubleAnimation
             * {
             *  From = -15.0f,
             *  To = 0.0f,
             *  Duration = new Duration(TimeSpan.FromMilliseconds(2000)),
             *  //RepeatBehavior = RepeatBehavior.,
             *  //EasingFunction = new BackEase(),
             *  //AutoReverse = true
             * };
             */

            DoubleAnimation skewGrassX;
            DoubleAnimation skewGrassY;
            DoubleAnimation rotate;

            if ((explorerGrid.Tag == null) || (explorerGrid.Tag == "0"))
            {
                skewGrassX       = new DoubleAnimation(-15.0f, 0.0f, new Duration(TimeSpan.FromMilliseconds(2000)));
                skewGrassY       = new DoubleAnimation(-10.0f, 0.0f, new Duration(TimeSpan.FromMilliseconds(2000)));
                rotate           = new DoubleAnimation(17.0f, 0.0f, new Duration(TimeSpan.FromMilliseconds(2000)));
                explorerGrid.Tag = "1";
            }
            else
            {
                skewGrassX       = new DoubleAnimation(-15.0f, new Duration(TimeSpan.FromMilliseconds(2000)));
                skewGrassY       = new DoubleAnimation(-10.0f, new Duration(TimeSpan.FromMilliseconds(2000)));
                rotate           = new DoubleAnimation(17.0f, new Duration(TimeSpan.FromMilliseconds(2000)));
                explorerGrid.Tag = "0";
            }


            SkewTransform   skewTransformX  = new SkewTransform();
            SkewTransform   skewTransformY  = new SkewTransform();
            RotateTransform rotateTransform = new RotateTransform();

            TransformGroup transformGroup = new TransformGroup();

            transformGroup.Children.Add(skewTransformX);
            transformGroup.Children.Add(skewTransformY);
            transformGroup.Children.Add(rotateTransform);

            explorerGrid.LayoutTransform = transformGroup;

            skewTransformX.BeginAnimation(SkewTransform.AngleXProperty, skewGrassX);
            skewTransformY.BeginAnimation(SkewTransform.AngleYProperty, skewGrassY);
            rotateTransform.BeginAnimation(RotateTransform.AngleProperty, rotate);
        }