【发布时间】:2009-02-26 22:26:51
【问题描述】:
需要开发一个 .NET 解决方案,以图形方式表示部分座位,在体育场布局视图中绘制,并作为报告输出......座位将有不同的颜色来显示销售状态......
【问题讨论】:
需要开发一个 .NET 解决方案,以图形方式表示部分座位,在体育场布局视图中绘制,并作为报告输出......座位将有不同的颜色来显示销售状态......
【问题讨论】:
确实,乍一看可能很吓人,但 .NET Framework 中的2D drawing 实际上很容易使用。
这是一个小例子,它绘制了几个带有反锯齿边距的彩色圆圈:
using System.Drawing;
...
Font font = new Font(FontFamily.GenericMonospace, 8);
Image reportImage = new Bitmap(270, 45);
using (Graphics graphics = Graphics.FromImage(reportImage))
{
graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
graphics.FillRectangle(Brushes.White,
new Rectangle(new Point(0, 0), reportImage.Size));
for (int i = 0; i != 6; i++)
{
Rectangle r = new Rectangle(20 + i * 40, 15, 25, 15);
graphics.FillEllipse(
i % 2 == 0 ? Brushes.DarkOrange : Brushes.DarkKhaki, r);
graphics.DrawEllipse(Pens.Black, r);
r.Offset(2, 0);
graphics.DrawString(i.ToString(), font, Brushes.Black, r);
}
}
reportImage.Save("C:\\test.bmp");
【讨论】:
看起来很简单,普通的旧 GDI+ 就可以解决问题。
您当然必须设置一个 GUI,其中每个体育场的座位计划都可以 通过点击“映射”。
【讨论】:
Cairo 看起来是个很棒的工具。自己还没有测试过……还没有。不过看起来很称职,支持一堆输出格式
【讨论】: