Como faço para desenhar gráficos simples em C#?

só quero desenhar objectos 2D simples como círculo, linha, quadrado, etc. em C#. Como faço isso? Nos dias Turbo C++ lembro-me de ter iniciado uma biblioteca gráfica para fazer o mesmo. Preciso fazer algo semelhante em. NET? é diferente para objetos 3D? Coisas como o DirectX vão tornar isto mais fácil? Todos os links para tutoriais ou amostras muito apreciados.

Author: msvcyc, 2009-08-19

9 answers

Como outros já disseram, verifique o sistema.Desenho. (Eu só estou repetindo isso para completar.) Sistema.O desenho expõe a biblioteca de desenho das janelas GDI+ à sua aplicação.

Um bom tutorial para começar com o sistema.O desenho e o GDI+ podem ser encontrados em C# Corner .

Alguns pontos importantes a ter em conta:

  1. Muitos objectos GDI + implementam a interface Idisposível, pelo que devem ser embrulhados em using blocos. Certifica-te que siga as Convenções de eliminação apropriadas; não eliminar objetos GDI+ pode resultar em efeitos secundários muito desagradáveis para o seu aplicativo. (GDI+ objects in. net corresponding to their underlying Windows API equivalents.)
  2. APIs como o DirectX são extremamente complexos e por uma boa razão. Eles são projetados não para formas simples, mas sim para aplicações multimídia complexas, altamente executantes e altamente interativas. (Em outras palavras, jogos, tipicamente.) Você pode acessar DirectX através do gerenciado Interfaces DirectX, mas novamente, é provavelmente exagero para os seus propósitos diretos.
  3. Se você está interessado em uma maneira mais fácil de trabalhar com DirectX, XNA é o caminho a seguir. No entanto, esta é uma biblioteca muito específica para jogos, e novamente é provável que seja um exagero. Estou um pouco atrasado para a festa, mas de acordo com os comentários abaixo, isso não é mais suportado de todo. (Isso faz sentido; eu não ouvi nada sobre isso em anos.)
 22
Author: John Rudy, 2017-05-03 23:04:09

Aqui está uma amostra de código simples que o irá iniciar (assume que tem uma caixa de imagens chamada pictureBox1):

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;
O objeto gráfico tem um monte de outros métodos de desenho, e Intellisense vai mostrar-lhe como chamá-los.
 15
Author: MusiGenesis, 2009-08-19 21:42:55

Leia sobre GDI, GDI+, System.Desenhar o espaço de nomes, por exemplo Aqui .
DirectX não é algo que você usaria para desenhar formas simples, em vez de tornar complicado coisas 3D, também, usando DX Api sob C# é um pouco mais complicado (embora não tão difícil).

 3
Author: Marcin Deptuła, 2009-08-19 21:37:12
Olha para o sistema.Desenhar o espaço de nomes: http://msdn.microsoft.com/en-us/library/system.drawing.aspx
 1
Author: Keith, 2009-08-19 21:34:56

A melhor maneira de implementar gráficos 2D em formulários C# Windows (também VB.Net) está usando CefSharp e Canvas API via JavaScript language. A tela é muito melhor e mais rápida que o GDI +

 1
Author: Mohammad, 2020-10-06 22:59:11
Olha para o sistema.Desenhar O Espaço De Nomes
 0
Author: Kevin LaBranche, 2009-08-19 21:35:17

Procura por a API Gráfica Direct3D controlada em. Net Fonte

 0
Author: Myra, 2009-08-19 21:38:17

Tem de usar o GDI+.

Como se faz isso depende ligeiramente daquilo em que se quer desenhar. Você pode desenhar em um controle ou uma forma, ou você pode desenhar em um objeto de imagem. Seja como for, precisas de um sistema.Desenho.Objeto gráfico que acredito estar localizado no sistema.Desenho.dll.

Pode instanciar uma nova classe de imagem e gráficos de chamadas.FromImage( myImage), e então desenhar usando os métodos no objeto gráfico que você acabou de criar. Se você quiser desenhar em um formulário ou controle apenas sobrepor o método OnPaint e procurar a propriedade Gráfica na classe EventArgs.

Mais informação sobre o sistema.Desenhar o espaço de nomes aqui: http://msdn.microsoft.com/en-us/library/system.drawing.aspx

 0
Author: Max Schmeling, 2009-08-20 03:35:40

IDG+ a usar o sistema.Desenho

 0
Author: amy, 2009-09-16 07:35:47