如何实现图形的翻转?

wangji666666 2010-08-30 12:21:48
如何实现图形的翻转?
四种翻转:无翻转,水平对称翻转,垂直对称翻转,水平垂直都翻转
我在做个画图工具,在调整图形大小的时候顺便也能对图形做翻转,怎么翻转就看如何调整图形了。请大家给个思路,我该如何实现这样的功能?要求所有的图形都能有这样的功能。
...全文
594 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
大师赵 2011-07-12
  • 打赏
  • 举报
回复
楼主最后的方法是旋转,但是不是翻转吧?
Fly_Wolf 2010-08-30
  • 打赏
  • 举报
回复
取源图的像素点,然后重新放到想放的地方,想怎么旋转怎么旋转。
loveslj 2010-08-30
  • 打赏
  • 举报
回复
怎么实现?
孟子E章 2010-08-30
  • 打赏
  • 举报
回复
例子
http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/a1e62e03-d732-444d-bb3d-6e7907fd5e16
孟子E章 2010-08-30
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/zh-cn/library/system.drawing.image.rotateflip.aspx

http://msdn.microsoft.com/en-us/library/system.drawing.rotatefliptype.aspx
云瑀 2010-08-30
  • 打赏
  • 举报
回复
image.RotateFlip(RotateFlipType.Rotate90FlipX);
遍历你的全部Image....
下达这个....
RotateFlipType请参照MSDN
wangji666666 2010-08-30
  • 打赏
  • 举报
回复
谢谢大家,我已经解决问题了,也就是用的坐标轴翻转

this.m_Start = this.m_MoveStart;
this.m_End = this.m_MoveEnd;
Rectangle rect = this.GetBound();
PointF pf = new PointF();
pf.X = this.m_Start.X - (this.m_Start.X - this.m_End.X) / 2;
pf.Y = this.m_Start.Y - (this.m_Start.Y - this.m_End.Y) / 2;
int angle = 0;
if (this.m_Start.X > this.m_End.X)
{
angle += 180;
}
else if (this.m_Start.Y > this.m_End.Y)
{
angle += 90;
}
angle = angle % 360;
g.TranslateTransform(pf.X, pf.Y);
g.RotateTransform(angle);
g.TranslateTransform(-pf.X, -pf.Y);

using (Pen pen = new Pen(Color.Black))
{
g.DrawRectangle(new Pen(Color.Black), rect);
LinearGradientBrush brush = new LinearGradientBrush(rect, Color.SkyBlue, Color.White, LinearGradientMode.BackwardDiagonal);
rect.Inflate(-1, -1);
g.FillRectangle(new LinearGradientBrush(rect, Color.SkyBlue, Color.White, LinearGradientMode.BackwardDiagonal), rect);
brush.Dispose();
}
g.ResetTransform();
云瑀 2010-08-30
  • 打赏
  • 举报
回复
e.Graphics.TranslateTransform(Pcenter.X, Pcenter.Y);
e.Graphics.RotateTransform(-m_i4Angle);
e.Graphics.TranslateTransform(-Pcenter.X, -Pcenter.Y);
.....//绘图
e.Graphics.ResetTransform();

这段代码是做图片绘制时的翻转.......
前二句是重点,指定翻转的座标,然后翻转角度.....
云瑀 2010-08-30
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 wangji666666 的回复:]
引用 14 楼 cloudhsu 的回复:
http://blog.csdn.net/cloudhsu/archive/2010/08/30/5849809.aspx
像这样??

从那个图片看好像没有翻转嘛
[/Quote]
那是已经翻转60度后的截图....
您提醒我才发现我没放翻转前的截图...
感谢
wangji666666 2010-08-30
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 cloudhsu 的回复:]
http://blog.csdn.net/cloudhsu/archive/2010/08/30/5849809.aspx
像这样??
[/Quote]
从那个图片看好像没有翻转嘛
云瑀 2010-08-30
  • 打赏
  • 举报
回复
Devillyd 2010-08-30
  • 打赏
  • 举报
回复
正在找类似的东西,关注一下,顺便帮顶
wangji666666 2010-08-30
  • 打赏
  • 举报
回复
就像镜子一样,翻一下
wangji666666 2010-08-30
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 yuwenge 的回复:]
引用 9 楼 wangji666666 的回复:
谢谢上面的回答,但是怎么都是图片的翻转啊,我要的是绘图的时候的翻转,不是图片翻转。
是不是只要翻转坐标系就可以了?

绘图的时候翻转是什么意思啊?
[/Quote]
比如绘个矩形,从左到右渐变色,现在根据Y轴翻转后,变成从右往左渐变
卧_槽 2010-08-30
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wangji666666 的回复:]
谢谢上面的回答,但是怎么都是图片的翻转啊,我要的是绘图的时候的翻转,不是图片翻转。
是不是只要翻转坐标系就可以了?
[/Quote]
绘图的时候翻转是什么意思啊?
wangji666666 2010-08-30
  • 打赏
  • 举报
回复
谢谢上面的回答,但是怎么都是图片的翻转啊,我要的是绘图的时候的翻转,不是图片翻转。
是不是只要翻转坐标系就可以了?
兔子-顾问 2010-08-30
  • 打赏
  • 举报
回复
c# GDI+ 完整例子,各种特效,非常完整的范例
http://download.csdn.net/source/2090762
wuyq11 2010-08-30
  • 打赏
  • 举报
回复
Graphics.TranslateTransform
string filePath =@"C:\a.jpg";
using (Bitmap bm = new Bitmap(500,500))
{
using (Graphics g = Graphics.FromImage(bm))
{
g.Clear(Color.Wheat);
g.TranslateTransform(0, 0, MatrixOrder.Prepend);
g.RotateTransform(45);
FontFamily ff = new FontFamily("宋体");
Font f =new Font(ff,10);
Brush b = new SolidBrush(Color.Black);
StringFormat sf = new StringFormat();
g.DrawString("", f, b, new PointF(10, 10), sf);
g.DrawString("", f, b, new PointF(10, 10 + 30 + 10), sf);
}
bm.Save(filePath, ImageFormat.Jpeg);
}
http://www.codeproject.com/KB/graphics/RotatePictureBox.aspx

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧