2016-11-29 3 views
-1

Je tente de dessiner un cercle 2D en C# en utilisant Managed DirectX. (oui, il est obsolète, et non pris en charge, je sais)Dessiner Circle C# Directx

Chaque exemple que je pourrais trouver sur le web est en C++. Ils utilisent des choses comme D3DTLVERTEX, que ma bibliothèque C# ne semble pas avoir. Je n'ai aucune idée de la façon de convertir Directx C++ en Directx C# comme le semble très différent syntaxiquement.

J'utilise cette méthode simple pour dessiner un rectangle en C#

public static void DrawFilledBox(float x, float y, float w, float h, Color Color) 
    { 
     Vector2[] vLine = new Vector2[2]; 

     line.GlLines = true; 

     if (h < 1) 
      h = 1; 
     if (w < 1) 
      w = 1; 

     line.Width = w; 

     vLine[0].X = x + w/2; 
     vLine[0].Y = y; 
     vLine[1].X = x + w/2; 
     vLine[1].Y = y + h; 

     line.Begin(); 
     line.Draw(vLine, Color.ToArgb()); 
     line.End(); 
    } 

J'ai essayé encore et encore pour dessiner un cercle sans succès. Cela ne m'importe pas si le cercle est rempli ou juste un contour de cercle. Merci.

+0

avez-vous pensé à utiliser XNA/C#, ce n'est plus supporté, mais au moins fournit une enveloppe plus méchante derrière ce que vous essayez de faire – maximdumont

Répondre

0

Direct3D n'est pas un bon choix pour "dessiner un cercle" que vous utilisiez un ancien wrapper C# obsolète ou un wrapper plus récent.

Direct2D est beaucoup plus adapté aux graphiques vectoriels tels que les cercles lisses. Vous pouvez utiliser Win2D, SharpDX ou SlimDX pour utiliser Direct2D à partir de C#.