1.使用System.Drawing绘制一个正方形
using System;
using System.Drawing;
using System.Windows.Forms;
public partial class MyForm : Form
{
public MyForm()
{
// 你可以在这里设置Form的双缓冲,以避免绘制时出现的闪烁
this.DoubleBuffered = true;
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
// 创建一个Pen对象,用于绘制正方形
using (Pen pen = new Pen(Color.Black, 2)) // 你可以更改颜色和线条宽度
{
// 设置正方形的位置和大小
// 在这个例子中,我们从(50, 50)开始,大小为100x100
Rectangle rect = new Rectangle(50, 50, 100, 100);
// 使用Graphics对象的DrawRectangle方法来绘制正方形
e.Graphics.DrawRectangle(pen, rect);
}
}
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MyForm());
}
}
2. 使用System.Drawing绘制一个长方形
using System;
using System.Drawing;
using System.Windows.Forms;
public partial class MyForm : Form
{
public MyForm()
{
// 你可以在这里设置Form的双缓冲,以避免绘制时出现的闪烁
this.DoubleBuffered = true;
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
// 创建一个Pen对象,用于绘制长方形
using (Pen pen = new Pen(Color.Black, 2)) // 你可以更改颜色和线条宽度
{
// 设置长方形的位置和大小
// 在这个例子中,我们从(50, 50)开始,宽度为200,高度为100
Rectangle rect = new Rectangle(50, 50, 200, 100);
// 使用Graphics对象的DrawRectangle方法来绘制长方形
e.Graphics.DrawRectangle(pen, rect);
}
}
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MyForm());
}
}
3.使用System.Drawing绘制一个圆形
using System;
using System.Drawing;
using System.Windows.Forms;
public partial class MyForm : Form
{
public MyForm()
{
// 你可以在这里设置Form的双缓冲,以避免绘制时出现的闪烁
this.DoubleBuffered = true;
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
// 创建一个Pen对象,用于绘制圆形的边框
using (Pen pen = new Pen(Color.Black, 2)) // 你可以更改颜色和线条宽度
{
// 创建一个Brush对象,用于填充圆形(如果需要的话)
using (Brush brush = new SolidBrush(Color.LightBlue)) // 你可以更改填充颜色
{
// 设置圆形的位置和大小
// 在这个例子中,圆心在(100, 100),半径为50
int centerX = 100;
int centerY = 100;
int radius = 50;
// 绘制圆形的边框(使用DrawEllipse方法)
e.Graphics.DrawEllipse(pen, centerX - radius, centerY - radius, 2 * radius, 2 * radius);
// 如果你想要填充圆形,可以使用FillEllipse方法
// e.Graphics.FillEllipse(brush, centerX - radius, centerY - radius, 2 * radius, 2 * radius);
}
}
}
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MyForm());
}
}
4.使用System.Drawing绘制一个三角形
using System;
using System.Drawing;
using System.Windows.Forms;
public partial class MyForm : Form
{
public MyForm()
{
// 你可以在这里设置Form的双缓冲,以避免绘制时出现的闪烁
this.DoubleBuffered = true;
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
// 创建一个Pen对象,用于绘制三角形的边
using (Pen pen = new Pen(Color.Black, 2)) // 你可以更改颜色和线条宽度
{
// 设置三角形的三个顶点
Point point1 = new Point(50, 50);
Point point2 = new Point(150, 50);
Point point3 = new Point(100, 150);
// 绘制三条线以构成三角形
e.Graphics.DrawLine(pen, point1, point2);
e.Graphics.DrawLine(pen, point2, point3);
e.Graphics.DrawLine(pen, point3, point1);
}
}
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MyForm());
}
}
5.使用System.Drawing绘制一个五角星
using System;
using System.Drawing;
using System.Windows.Forms;
public partial class MyForm : Form
{
public MyForm()
{
// 你可以在这里设置Form的双缓冲,以避免绘制时出现的闪烁
this.DoubleBuffered = true;
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
// 创建一个Pen对象,用于绘制五角星
using (Pen pen = new Pen(Color.Black, 2)) // 你可以更改颜色和线条宽度
{
// 设定五角星的中心点
int centerX = 100;
int centerY = 100;
// 设定五角星的外接圆半径
int radius = 50;
// 设定五角星的旋转角度(如果需要)
double rotateAngle = Math.PI / 2; // 从上顶点开始
// 计算五角星的五个顶点
PointF[] starPoints = CalculateStarPoints(centerX, centerY, radius, 5, rotateAngle);
// 绘制五角星
for (int i = 0; i < starPoints.Length; i++)
{
int nextIndex = (i + 1) % starPoints.Length;
e.Graphics.DrawLine(pen, starPoints[i], starPoints[nextIndex]);
}
}
}
// 计算五角星的顶点
private PointF[] CalculateStarPoints(float centerX, float centerY, float radius, int spikes, double rotation)
{
PointF[] result = new PointF[spikes];
double outerRadius = radius; // 外接圆半径
double innerRadius = radius * 0.5f * Math.Sqrt(3); // 内接圆半径(五角星的特殊值)
double angle = Math.PI / 2 * 3 - spikes * Math.PI / spikes; // 第一个顶点的角度
for (int i = 0; i < spikes; i++)
{
result[i].X = (float)(centerX + Math.Cos(angle + rotation) * outerRadius);
if (i % 2 == 0)
{
result[i].Y = (float)(centerY + Math.Sin(angle + rotation) * outerRadius);
}
else
{
result[i].Y = (float)(centerY + Math.Sin(angle + rotation) * innerRadius);
}
angle += Math.PI / spikes;
}
return result;
}
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MyForm());
}
}
6.使用System.Drawing绘制一个圆外切三角形
using System;
using System.Drawing;
using System.Windows.Forms;
public partial class MyForm : Form
{
public MyForm()
{
// 你可以在这里设置Form的双缓冲,以避免绘制时出现的闪烁
this.DoubleBuffered = true;
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
// 定义三角形的边长
int sideLength = 100;
// 计算外接圆的半径
double radius = sideLength / (2 * Math.Sqrt(3));
// 设定外接圆的中心点和三角形的中心点
int centerX = this.ClientSize.Width / 2;
int centerY = this.ClientSize.Height / 2;
// 计算三角形的顶点
PointF[] trianglePoints = CalculateEquilateralTrianglePoints(centerX, centerY, sideLength);
// 绘制外接圆
using (Pen circlePen = new Pen(Color.Blue, 2))
{
e.Graphics.DrawEllipse(circlePen, centerX - (int)radius, centerY - (int)radius, (int)(radius * 2), (int)(radius * 2));
}
// 绘制三角形
using (Pen trianglePen = new Pen(Color.Black, 2))
{
e.Graphics.DrawLines(trianglePen, trianglePoints);
}
}
// 计算等边三角形的三个顶点
private PointF[] CalculateEquilateralTrianglePoints(int centerX, int centerY, int sideLength)
{
PointF[] points = new PointF[3];
double angle = Math.PI / 3; // 等边三角形内角的一半
// 第一个顶点(上方)
points[0] = new PointF(centerX, centerY - sideLength / 2);
// 第二个顶点(右侧)
points[1] = new PointF(
(float)(centerX + sideLength / 2 * Math.Cos(angle)),
(float)(centerY + sideLength / 2 * Math.Sin(angle))
);
// 第三个顶点(左侧)
points[2] = new PointF(
(float)(centerX + sideLength / 2 * Math.Cos(-angle)),
(float)(centerY + sideLength / 2 * Math.Sin(-angle))
);
return points;
}
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MyForm());
}
}
7.使用System.Drawing绘制一个圆内接三角形