2014-10-14 8 views
5

Ho bisogno di disegnare un contorno morbido per il mio GDI + GraphicsPath. Qualcosa del genere: A path edge (red) drawn with a smooth penEsiste un equivalente di penna morbida in GDI +?

Un bordo del percorso è mostrato in rosso. Mi piacerebbe usare una penna ampia che sia liscia. Ho anche bisogno di un'abilità per controllare la levigatezza della penna.

Ho provato a utilizzare un pennello sfumato con la penna ma non sono riuscito a trovare una soluzione che funzioni.

È possibile ottenere il risultato desiderato disegnando un contorno con una penna nera solida e applicando un filtro di uniformità gaussiano sopra l'immagine del risultato, ma voglio evitare questo perché è lento quando devo elaborare l'intera immagine che potrebbe essere abbastanza grande

C'è un modo per disegnare un contorno del percorso regolare?

risposta

2

Non esiste un modo standard in GDI + che fornisce questa funzionalità, quindi è necessario crearlo.

È possibile tracciare i segmenti di linea e disegnare un cerchio sfocato e pieno lungo i segmenti. Tracciando il cerchio fuzzy una volta su una bitmap dovrebbe essere abbastanza facile e veloce da blittare continuamente. Mescolandolo lentamente nel tempo sulla tela puoi anche creare un effetto molto bello e permetterebbe all'utente di controllare l'intensità e forse la dimensione del cerchio.

+0

C'è un modo semplice per disegnare una bitmap su ogni pixel lungo un percorso di forma GDI +? Potrebbe essere difficile calcolare le coordinate per i pixel lungo una curva. – Lev

+0

@Lev - La penna GDI supporta solo un singolo colore, nessuna texture. Quindi ho paura di no. Per la maggior parte delle forme GDI le formule sono ben conosciute in modo da poterle calcolare e fare il disegno. Forse c'è una biblioteca che già fa questo. –

+0

@lev - a proposito, stai usando C/C++ o C#? (Nel caso avessi il tempo di creare una demo) –