TranslateTransform() public method

public TranslateTransform ( float dx, float dy ) : void
dx float
dy float
return void
示例#1
0
        public static byte[] CreateShadowImage(
            ShadowImageType imageType,
            int Width,
            int Height,
            Color ShadowColor,
            Color BackColor,
            ImageFormat Format)
        {
            MemoryStream memStream = new MemoryStream();
            Bitmap bmpPaint = new Bitmap(Width,Height);
            Graphics grph = Graphics.FromImage(bmpPaint);

            if ( imageType == ShadowImageType.Blank )
            {
                SolidBrush brush;
                brush = new SolidBrush(BackColor);
                grph.FillRectangle(brush,0,0,Width,Height);
            }
            else if ( imageType == ShadowImageType.Top || imageType == ShadowImageType.Bottom ||
                      imageType == ShadowImageType.Left || imageType == ShadowImageType.Right )
            {
                int angle=0;
                switch( imageType )
                {
                    case ShadowImageType.Top:
                        angle = 270; break;
                    case ShadowImageType.Right:
                        angle = 0; break;
                    case ShadowImageType.Bottom:
                        angle = 90; break;
                    case ShadowImageType.Left:
                        angle = 180; break;
                }
                LinearGradientBrush brush;
                brush = new LinearGradientBrush(
                    new Rectangle(0,0,Width,Height),
                    ShadowColor,
                    BackColor,
                    angle,true);
                brush.Blend = shadowBlendScaleLinear;
                grph.FillRectangle(brush,0,0,Width,Height);
            }
            else
            {
                GraphicsPath path = new GraphicsPath();
                path.AddEllipse(0, 0, Width*2,Height*2);
                PathGradientBrush brush = new PathGradientBrush(path);
                brush.CenterColor = ShadowColor;
                Color[] colors = {BackColor};
                brush.SurroundColors = colors;
                if ( imageType == ShadowImageType.BottomRight )
                {
                    brush.TranslateTransform(-Width,-Height);
                }
                else if ( imageType == ShadowImageType.TopRight )
                {
                    brush.TranslateTransform(-Width,0);
                }
                else if ( imageType == ShadowImageType.BottomLeft )
                {
                    brush.TranslateTransform(0,-Height);
                }
                brush.CenterPoint=new PointF(Width,Height);
                brush.Blend = shadowBlendScaleRadial;
                grph.FillRectangle(new SolidBrush(BackColor),0, 0, Width, Height);
                grph.FillRectangle(brush, 0, 0, Width, Height);
            }

            bmpPaint.Save(memStream,Format);
            return memStream.GetBuffer();
        }
示例#2
0
		public void Transform_Operations ()
		{
			using (PathGradientBrush pgb = new PathGradientBrush (pts_2f, WrapMode.Clamp)) {
				Matrix clone = pgb.Transform.Clone ();
				Matrix mul = clone.Clone ();

				clone.Multiply (mul, MatrixOrder.Append);
				pgb.MultiplyTransform (mul, MatrixOrder.Append);
				Assert.AreEqual (pgb.Transform, clone, "Multiply/Append");

				clone.Multiply (mul, MatrixOrder.Prepend);
				pgb.MultiplyTransform (mul, MatrixOrder.Prepend);
				Assert.AreEqual (pgb.Transform, clone, "Multiply/Prepend");

				clone.Rotate (45, MatrixOrder.Append);
				pgb.RotateTransform (45, MatrixOrder.Append);
				Assert.AreEqual (pgb.Transform, clone, "Rotate/Append");

				clone.Rotate (45, MatrixOrder.Prepend);
				pgb.RotateTransform (45, MatrixOrder.Prepend);
				Assert.AreEqual (pgb.Transform, clone, "Rotate/Prepend");

				clone.Scale (0.25f, 2, MatrixOrder.Append);
				pgb.ScaleTransform (0.25f, 2, MatrixOrder.Append);
				Assert.AreEqual (pgb.Transform, clone, "Scale/Append");

				clone.Scale (0.25f, 2, MatrixOrder.Prepend);
				pgb.ScaleTransform (0.25f, 2, MatrixOrder.Prepend);
				Assert.AreEqual (pgb.Transform, clone, "Scale/Prepend");

				clone.Translate (10, 20, MatrixOrder.Append);
				pgb.TranslateTransform (10, 20, MatrixOrder.Append);
				Assert.AreEqual (pgb.Transform, clone, "Translate/Append");

				clone.Translate (30, 40, MatrixOrder.Prepend);
				pgb.TranslateTransform (30, 40, MatrixOrder.Prepend);
				Assert.AreEqual (pgb.Transform, clone, "Translate/Prepend");

				clone.Reset ();
				pgb.ResetTransform ();
				Assert.AreEqual (pgb.Transform, clone, "Reset");
			}
		}
示例#3
0
		public void TranslateTransform ()
		{
			using (PathGradientBrush pgb = new PathGradientBrush (pts_2f, WrapMode.Clamp)) {
				pgb.TranslateTransform (1, 1);
				float[] elements = pgb.Transform.Elements;
				Assert.AreEqual (1, elements[0], 0.1, "matrix.0");
				Assert.AreEqual (0, elements[1], 0.1, "matrix.1");
				Assert.AreEqual (0, elements[2], 0.1, "matrix.2");
				Assert.AreEqual (1, elements[3], 0.1, "matrix.3");
				Assert.AreEqual (1, elements[4], 0.1, "matrix.4");
				Assert.AreEqual (1, elements[5], 0.1, "matrix.5");

				pgb.TranslateTransform (-1, -1);
				// strangely lgb.Transform.IsIdentity is false
				elements = pgb.Transform.Elements;
				Assert.AreEqual (1, elements[0], 0.1, "revert.matrix.0");
				Assert.AreEqual (0, elements[1], 0.1, "revert.matrix.1");
				Assert.AreEqual (0, elements[2], 0.1, "revert.matrix.2");
				Assert.AreEqual (1, elements[3], 0.1, "revert.matrix.3");
				Assert.AreEqual (0, elements[4], 0.1, "revert.matrix.4");
				Assert.AreEqual (0, elements[5], 0.1, "revert.matrix.5");
			}
		}
示例#4
0
		public void TranslateTransform_InvalidOrder ()
		{
			using (PathGradientBrush pgb = new PathGradientBrush (pts_2f, WrapMode.Clamp)) {
				pgb.TranslateTransform (1, 1, (MatrixOrder) Int32.MinValue);
			}
		}
示例#5
0
		public void Rectangle ()
		{
			using (PathGradientBrush pgb = new PathGradientBrush (pts_2f, WrapMode.TileFlipXY)) {
				CheckDefaultRectangle ("Original", pgb.Rectangle);
				pgb.MultiplyTransform (new Matrix (2, 0, 0, 2, 2, 2));
				CheckDefaultRectangle ("Multiply", pgb.Rectangle);
				pgb.ResetTransform ();
				CheckDefaultRectangle ("Reset", pgb.Rectangle);
				pgb.RotateTransform (90);
				CheckDefaultRectangle ("Rotate", pgb.Rectangle);
				pgb.ScaleTransform (4, 0.25f);
				CheckDefaultRectangle ("Scale", pgb.Rectangle);
				pgb.TranslateTransform (-10, -20);
				CheckDefaultRectangle ("Translate", pgb.Rectangle);

				pgb.SetBlendTriangularShape (0.5f);
				CheckDefaultRectangle ("SetBlendTriangularShape", pgb.Rectangle);
				pgb.SetSigmaBellShape (0.5f);
				CheckDefaultRectangle ("SetSigmaBellShape", pgb.Rectangle);
			}
		}