我只想在C#中绘制简单的2D对象,如圆形,直线,方形等。我怎么做?回到Turbo C ++时代,我记得初始化一些图形库是为了做同样的事情。我需要在.NET中做类似的事情吗? 3D物体有什么不同吗?像DirectX这样的东西会让这更容易吗?任何指向教程或样本的链接都非常赞赏。
答案 0 :(得分:21)
正如其他人所说,请查看System.Drawing。 (我只是为了完整性而重复这一点。)System.Drawing将GDI+ Windows绘图库公开给您的应用程序。
可以在C# Corner找到一个很好的教程,让你快速启动System.Drawing和GDI +。
需要注意的一些重要事项:
using
块中。确保遵循适当的处置惯例;未能处理GDI +对象可能会导致您的应用程序产生非常令人讨厌的副作用。 (.NET中的GDI +对象对应于它们的基础Windows API等价物。)答案 1 :(得分:13)
这是一个简单的代码示例,可以帮助您入门(假设您有一个名为pictureBox1的PictureBox):
Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
using (Graphics g = Graphics.FromImage(bmp))
{
g.DrawLine(new Pen(Color.Red), 0, 0, 10, 10);
}
pictureBox1.Image = bmp;
图形对象有很多其他绘图方法,Intellisense会告诉你如何调用它们。
答案 2 :(得分:3)
阅读GDI,GDI +,System.Drawing命名空间,例如here DirectX不是你用来绘制简单形状的东西,而是渲染复杂的3D东西,同样,在C#下使用DX Api有点棘手(尽管不是那么难)。
答案 3 :(得分:1)
查看System.Drawing命名空间:http://msdn.microsoft.com/en-us/library/system.drawing.aspx
答案 4 :(得分:1)
在C#Windows窗体(也是VB.Net)中实现2D图形的最佳方法是通过JavaScript语言使用CefSharp和Canvas API。画布比笨拙的GDI +更好更快
答案 5 :(得分:0)
查看System.Drawing命名空间
答案 6 :(得分:0)
您需要使用GDI +。
如何做到这一点取决于您想要绘制的内容。您可以在控件或表单上绘图,也可以在图像对象上绘图。无论哪种方式,您需要一个System.Drawing.Graphics对象,我相信它位于System.Drawing.dll中。
您可以实例化一个新的Bitmap类并调用Graphics.FromImage(myImage),然后使用刚刚创建的Graphics对象上的方法进行绘制。如果要在窗体或控件上绘制,只需覆盖OnPaint方法并在EventArgs类中查找Graphics属性。
有关System.Drawing命名空间的更多信息,请访问:http://msdn.microsoft.com/en-us/library/system.drawing.aspx
答案 7 :(得分:0)
在.NET中查找托管Direct3D图形API Source
答案 8 :(得分:0)
GDI + 使用System.Drawing