2014-12-04 23 views
5

Ho 4 punti flottanti (posizioni in 2D) e voglio disegnare e riempire un poligono (con i vertici in quelle 4 posizioni) in 2D usando sharpdx. Qualcuno può guidarmi per favore? Mi sono perso. un codice di esempio sarebbe meglio per me come newbee Grazie in anticipoDisegno e riempimento poligono con 4 vertici (posizioni in 2D) tramite sharpdx API

+0

non vieni d'aiuto! – smoothumut

+3

Come è stato chiuso questo perché non è chiaro? Questo è perfettamente chiaro. Ho capito senza il minimo sforzo quindi se hai votato per chiudere la domanda come non chiara, forse dovresti rivederti come programmatore. O forse non hai familiarità con la programmazione grafica? In tal caso, ancora una volta, nessun motivo per votare per chiudere questo non è chiaro se non hai familiarità con termini come disegnare, riempire e poligono. –

+0

Sono d'accordo con M.B.Neron; Ho modificato per rendere il titolo e la domanda più chiari agli altri. – ToolmakerSteve

risposta

6

Ho trovato come disegnare e riempire un poligono. Ho usato i metodi drawGeometry e fillGeometry dell'oggetto RenderTarget.

non lo vorrei citare come inizializzare DirectX

PathGeometry geo1; 
    GeometrySink sink1; 

     FactoryD2D factory = new FactoryD2D(); 
     var dpi = factory.DesktopDpi; 
     RenderTarget renderTarget; 

     renderTarget = new RenderTarget(factory, backBuffer, new RenderTargetProperties() 
     { 
      DpiX = dpi.Width, 
      DpiY = dpi.Height, 
      MinLevel = SharpDX.Direct2D1.FeatureLevel.Level_DEFAULT, 
      PixelFormat = new SharpDX.Direct2D1.PixelFormat(Format.Unknown, AlphaMode.Ignore), 
      Type = RenderTargetType.Hardware, 
      Usage = RenderTargetUsage.None 
     }); 

     // and after all initialization 

      pta[0] = new SharpDX.Vector2(pts[4].X, pts[4].Y); 
      pta[1] = new SharpDX.Vector2(pts[5].X, pts[5].Y); 
      pta[2] = new SharpDX.Vector2(pts[6].X, pts[6].Y); 
      pta[3] = new SharpDX.Vector2(pts[7].X, pts[7].Y); 

      geo1 = new PathGeometry(factory); 
      sink1 = geo1.Open(); 
      sink1.BeginFigure(pta[0], new FigureBegin()); 
      sink1.AddLines(new SharpDX.Vector2[] { pta[1], pta[2], pta[3] }); 
      sink1.EndFigure(new FigureEnd()); 
      sink1.Close(); 

     Color penColor = Color.Black; 
     SolidColorBrush penBrush = new SolidColorBrush(g, new SharpDX.Color(penColor.R, penColor.G, penColor.B)); 
     Color color = AddColor(pt, zmin, zmax); 
     SolidColorBrush aBrush = new SolidColorBrush(g, new SharpDX.Color(color.R, color.G, color.B)); 

      renderTarget.DrawGeometry(geo1, penBrush); 
      renderTarget.FillGeometry(geo1, aBrush); 
      geo1.Dispose(); 
      sink1.Dispose(); 

È possibile aggiungere altri GEOS e lavelli, al fine di aggiungere ulteriori forme su di esso

Spero che questo aiuto a qualcuno che si è perso e cercando di trova disperatamente una risposta come me

+0

Grazie mille !!! – bboyle1234