如何在picturebox上实现画直线和弧
时间: 2023-11-27 16:49:11 浏览: 29
你可以使用PictureBox的Paint事件来在其上面绘制直线和弧。在Paint事件中,使用Graphics对象的DrawLine()和DrawArc()方法来绘制直线和弧。
以下是一个简单的示例代码,演示如何在PictureBox上绘制一条直线和一段弧:
```csharp
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
// 绘制一条直线
Pen pen = new Pen(Color.Red, 2);
e.Graphics.DrawLine(pen, new Point(10, 10), new Point(100, 100));
// 绘制一段弧
Rectangle rect = new Rectangle(150, 50, 100, 100);
e.Graphics.DrawArc(pen, rect, 0, 180);
}
```
在此示例中,我们在PictureBox的Paint事件中创建了一个Pen对象来指定线条颜色和宽度。然后,我们使用Graphics对象的DrawLine()方法来绘制一条从(10,10)到(100,100)的直线。接着,我们使用DrawArc()方法来绘制一个位于矩形(150,50,100,100)内的弧,其起始角度为0度,终止角度为180度。最后,我们在Form的Load事件中添加了对pictureBox1的Invalidate()方法的调用,以便触发其Paint事件并绘制直线和弧。
相关问题
在picturebox上画图是怎样实现的
在 C# 中,可以通过使用 `System.Drawing` 命名空间中的 `Graphics` 对象来在 `PictureBox` 控件上绘制图像。下面是一个简单的示例代码,演示了如何在 `PictureBox` 上绘制一个矩形:
```csharp
using System.Drawing;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
// 创建一个 Graphics 对象
Graphics g = e.Graphics;
// 定义一个矩形
Rectangle rect = new Rectangle(10, 10, 100, 100);
// 使用黑色画刷填充矩形
Brush brush = new SolidBrush(Color.Black);
g.FillRectangle(brush, rect);
// 释放资源
brush.Dispose();
g.Dispose();
}
}
}
```
在该示例代码中,当 `PictureBox` 控件进行重绘(即 `Paint` 事件被触发)时,会创建一个 `Graphics` 对象,然后使用 `FillRectangle` 方法在 `PictureBox` 上绘制一个矩形。最后,释放使用的资源。
在控件 picturebox 中画直线 然后已图片形式保存至本地 vb.net
以下是在控件PictureBox中画直线,并将其保存为图片的VB.NET代码:
```
Private Sub DrawLineAndSave()
' 创建一个位图对象
Dim bmp As New Bitmap(PictureBox1.Width, PictureBox1.Height)
' 创建一个画笔对象
Dim pen As New Pen(Color.Red)
' 创建一个Graphics对象
Dim g As Graphics = Graphics.FromImage(bmp)
' 画直线
g.DrawLine(pen, 0, 0, PictureBox1.Width, PictureBox1.Height)
' 保存图片
bmp.Save("C:\Temp\line.png")
' 显示图片
PictureBox1.Image = bmp
End Sub
```
在这个例子中,我们首先创建了一个位图对象,并使用该对象的宽度和高度创建了一个Graphics对象。然后,我们使用Graphics对象的DrawLine方法在位图上画了一条红色直线。最后,我们使用Bitmap对象的Save方法将位图保存为名为“line.png”的文件。最后,我们将该位图设置为PictureBox的Image属性,以在控件中显示它。