永发信息网

C#旋转矩形

答案:4  悬赏:0  手机版
解决时间 2021-02-13 17:47
  • 提问者网友:愿为果
  • 2021-02-13 14:51
C#旋转矩形
最佳答案
  • 五星知识达人网友:你可爱的野爹
  • 2021-02-13 15:01
Graphics g = pictureBox1.CreateGraphics();

g.DrawRectangle(new Pen(Color.Red), 100, 50, 100, 50);

g.TranslateTransform(100, 50);
g.RotateTransform(30);
g.TranslateTransform(-100, -50);

g.DrawRectangle(new Pen(Color.Blue), 100, 50, 100, 50);

// 补充
晕死,你就不知道改一下吗?

Graphics g = awArgs.Graphics;

g.DrawRectangle(new Pen(Color.Red), 100, 50, 100, 50);

g.TranslateTransform(100, 50);
g.RotateTransform(30);
g.TranslateTransform(-100, -50);

g.DrawRectangle(new Pen(Color.Blue), 100, 50, 100, 50);
全部回答
  • 1楼网友:英雄的欲望
  • 2021-02-13 17:41
不太清楚
  • 2楼网友:污到你湿
  • 2021-02-13 16:39
楼主可以把他放到PictureBox中啊,借助控件内部绘图从而达到定位效果。
private float angle = 0;
private void Form1_Load(object sender, EventArgs e)
{
pictureBox1.BackColor = Color.White;
pictureBox1.Dock = DockStyle.Fill;
}
//绘图方法
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
int width = 20;
int height = 40;
int x = (pictureBox1.Width - width) / 2;
int y = (pictureBox1.Height - height) / 2;
e.Graphics.TranslateTransform(x, y);
e.Graphics.RotateTransform(angle);
e.Graphics.DrawRectangle(new Pen(Color.Black, 1), new Rectangle(0 - width/2, 0 - height/2, width, height));
}
这样就会在pictureBox1中央绘出一个矩形,改变私有变量angle的大小,在调用代码:
pictureBox1.Invalidate();
pictureBox1.Update();
就可以实现围绕一点的旋转了。
呵呵,期待加分!
不知道楼主的展示控件是什么控件?
  • 3楼网友:人類模型
  • 2021-02-13 15:35
向负方向平移 旋转过后再平移回去
drawArgs.Graphics.TranslateTransform(-m_Point[0].X, -m_Point[0].Y, MatrixOrder.Append);
drawArgs.Graphics.RotateTransform(30, MatrixOrder.Append);
drawArgs.Graphics.TranslateTransform(m_Point[0].X, m_Point[0].Y, MatrixOrder.Append);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯