c# 画一个外圆在原中心画一个内圆 在内圆中心画直线直线的长度为外圆的半径
时间: 2024-09-19 08:05:16 浏览: 25
在C#中,我们可以使用System.Drawing命名空间下的基本图形类来绘制这种形状。假设我们已经有了一个名为`Form1`的Windows Forms应用程序,并有一个PictureBox控件来作为绘图区域。以下是如何实现这个需求的简单步骤:
```csharp
using System;
using System.Drawing;
using System.Windows.Forms;
public partial class Form1 : Form
{
private Pen outerPen = new Pen(Color.Black, 5); // 外圆笔
private Pen innerPen = new Pen(Color.Blue, 3); // 内圆笔
private Pen linePen = new Pen(Color.Red, 2); // 直线笔
public Form1()
{
InitializeComponent();
// 创建圆形区域
int outerRadius = pictureBox1.Width / 4; // 假设外圆直径占PictureBox宽度的四分之一
int innerRadius = outerRadius / 2; // 内圆半径为外圆的一半
// 绘制外圆和内圆
DrawCircle(pictureBox1.ClientRectangle.Center, outerRadius, outerPen);
DrawCircle(pictureBox1.ClientRectangle.Center, innerRadius, innerPen);
// 在内圆中心绘制直线
DrawLine(pictureBox1.ClientRectangle.Center, outerRadius, innerPen);
}
private void DrawCircle(Point center, int radius, Pen pen)
{
Graphics graphics = pictureBox1.CreateGraphics();
graphics.DrawEllipse(pen, center.X - radius, center.Y - radius, radius * 2, radius * 2);
}
private void DrawLine(Point center, int radius, Pen pen)
{
graphics.DrawLine(pen, center, new Point(center.X, center.Y + radius));
}
// 窗口关闭前清理图形资源
protected override void OnFormClosing(FormClosingEventArgs e)
{
graphics.Dispose();
base.OnFormClosing(e);
}
}
```
这段代码首先创建了两个圆(一个外圆,一个内圆)和一条从内圆中心垂直于y轴的直线。`DrawCircle`方法负责绘制圆形,`DrawLine`方法绘制直线。注意,直线是从内圆中心向上的。