System.Drawing.Graphics [英] System.Drawing.Graphics

查看:179
本文介绍了System.Drawing.Graphics的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个问题涉及到通过给定中心旋转椭圆,
假设我有一个椭圆,应该是由用户给出的点旋转椭圆,椭圆应该围绕给定点旋转。
我已经试过了

pre $ g $ RotateTransform
g.TranslateTransform

代码:

  Graphics g = this.GetGraphics(); 
g.RotateTransform((float)degreeArg); //旋转对象的度数
g.DrawEllipse(Pens.Red,300,300,100,200);

这工作正常,但我们怎样才能让我们的中心旋转椭圆....



怎么可能请任何好友建议......
谢谢......。

解决方案

RotateTransform始终围绕原点旋转。所以你需要首先将你的旋转中心翻译成原点,然后旋转,然后将其翻译回来。



类似这样:

  Graphics g = this.GetGraphics(); 
g.TranslateTransform(300,300);
g.RotateTransform((float)degreeArg); //旋转对象的度数
g.TranslateTransform(-300,-300);
g.DrawEllipse(Pens.Red,300,300,100,200);


I have one problem relating to rotate ellipse by given Center, Suppose I have one ellipse and what should be is to rotate that ellipse by point given by user and ellipse should be rotate around that given point. I have tried

g.RotateTransform(…)
g.TranslateTransform(…)

Code:

Graphics g = this.GetGraphics(); 
g.RotateTransform((float)degreeArg); //degree to rotate object 
g.DrawEllipse(Pens.Red, 300, 300, 100, 200);

this works fine but how can we give our out center to rotate ellipse....

How could it be possible please any buddy can suggest…… Thanks…….

解决方案

RotateTransform always rotates about the origin. So you need to first translate your centre of rotation to the origin, then rotate, then translate it back.

Something like this:

Graphics g = this.GetGraphics(); 
g.TranslateTransform(300,300);
g.RotateTransform((float)degreeArg); //degree to rotate object 
g.TranslateTransform(-300,-300);
g.DrawEllipse(Pens.Red, 300, 300, 100, 200);

这篇关于System.Drawing.Graphics的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆