我正在为一个客户开发Windows应用程序。 他希望能够输入纸板箱的高度,宽度和长度,然后让应用程序自动在屏幕上绘制纸板箱。 我想知道是否可以用C#完成。 以下是纸箱如何看起来相似的示例:
请让我知道您的意见,以及其他人是否曾做过类似的事情。提前感谢您的帮助。
答案 0 :(得分:0)
我没有做过这样的事情,但在C#中肯定是可能的。看起来您的盒子需要两个宽度*高度和两个长度*高度的侧面,并且襟翼都需要宽度/ 2或长度/ 2(长/高),以较短者为准。绘图所需的一切都应该在System.Drawing
命名空间中,包括Rectangle
和Brush
。
答案 1 :(得分:0)
在Form上绘制矩形的一些代码(UserControl也是如此):
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawRectangle(Pens.Black, 10, 10, 100, 100);
}
}
查看其他e.Graphs.Draw *方法。结合这些来完成你的艺术作品!
答案 2 :(得分:-1)
不确定。您需要System.Drawing命名空间中的方法,以及大多数Winform控件的CreateGraphics()方法。
基本设置是在表单上放置一些控件,如Panel或PictureBox。当绘制框时,您将使用该控件的CreateGraphics()方法获取一个表示空间的对象,屏幕上的对象大小与您可以绘制的对象相同。然后,您将在屏幕上以适当的形状绘制线条和/或矩形(我将告诉您如何计算盒子如何分解成连接的纸板面板)。查找DrawRect的MSDN文档,以及Brush(用于确定行的外观)。
编辑:好的,我会给你数学的。对于长度为X,高度为Y,深度为Z的盒子,面板按如下方式分解: --------- ------------- --------- -------------
| Zx.5Z | Xx.5Z | Zx.5Z | Xx.5Z |
|---------+-------------+---------+-------------+
| | | | |
| ZxY | XxY | ZxY | XxY |
| | | | |
|---------+-------------+---------+-------------+
| Zx.5Z | Xx.5Z | Zx.5Z | Xx.5Z |
--------- ------------- --------- -------------