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);
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();
就可以实现围绕一点的旋转了。
呵呵,期待加分!
不知道楼主的展示控件是什么控件?
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);
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);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯