Domanda

Il titolo parla da solo ... Ho provato a trovare un'altra domanda simile, ma devo essermela persa se esiste. Sto cercando qualsiasi cosa, da una libreria di base che sostituisce GAPI a un wrapper .net ... È per la creazione di una bella interfaccia utente, quindi non è necessario il 3D ...

È stato utile?

Soluzione

Le classi System.Drawing in .NET sono molto più potenti di quanto si pensi. L'unica cosa che manca (che in realtà è davvero importante nella grafica 2D) è la capacità di leggere e scrivere singoli pixel. Ciò è tecnicamente possibile utilizzando i metodi GetPixel e SetPixel sull'oggetto Bitmap, ma questi metodi sono inimmaginabilmente lenti.

Fortunatamente, esiste un'alternativa superveloce che è possibile implementare chiamando LockBits su una bitmap e quindi accedendo direttamente ai dati byte della bitmap. L'ho usato con buoni risultati. In effetti, ho trascorso l'ultima settimana a creare un effetto obiettivo fisheye interamente in .NET (senza librerie o chiamate PInvoke).

Questo JPEG è un po 'schifoso, ma mostra cosa è possibile usare solo .NET:

alt text http://www.freeimagehosting.net/uploads/5fdd250b21.jpg

Altri suggerimenti

IMO Suggerirei di ottenere il frame buffer in qualche modo e di disegnarlo direttamente se possibile o usando D3DM o usare i servizi di disegno forniti dalla piattaforma nativa (GDI) attraverso API come DrawGradient () ecc da coredll.dll e da allora sei su WM potresti essere in grado di sfruttare aygshell.dll per disegnare widget.

Ecco alcuni link ...

1) Uso del riempimento sfumato da dot net
2) Uso diretto del riempimento sfumato
3) Altre funzioni GDI native

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top