用c#绘制线条/正方形

时间:2011-03-03 15:52:02

标签: c# winforms math drawing

我正在为一个客户开发Windows应用程序。 他希望能够输入纸板箱的高度,宽度和长度,然后让应用程序自动在屏幕上绘制纸板箱。 我想知道是否可以用C#完成。 以下是纸箱如何看起来相似的示例:

enter image description here

请让我知道您的意见,以及其他人是否曾做过类似的事情。提前感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

我没有做过这样的事情,但在C#中肯定是可能的。看起来您的盒子需要两个宽度*高度和两个长度*高度的侧面,并且襟翼都需要宽度/ 2或长度/ 2(长/高),以较短者为准。绘图所需的一切都应该在System.Drawing命名空间中,包括RectangleBrush

答案 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    |
 --------- ------------- --------- -------------