Ottimizzare le funzioni draw

mercoledì 12 novembre 2008 - 17.04

willy_80 Profilo | Senior Member

Ciao a tutti,
Sto facendo una specie di cad-cam con VB2008, in pratica leggo un dxf, lo visualizzo e creo i percorsi utensile.
Matematicamente tutto funziona, ora vorrei migliorare l'aspetto grafico.
Io dichiaro un metodo grafico e disegno su una picturebox utilizzando i comandi drawline, drawarc ecc.
Per disegnare gli archi esiste solo il sistema drawarc assegnando le coordinate del punto in alto a sx del rettangolo che contiene l'arco, le dimensioni del rettangolo e gli angoli dell'arco o esiste un altro sistema? questo non mi piace molto anche perchè devo calcolare dei dati che al fine del mio programma non servono.

Altro quesito in altra applicazione leggo una nuvola di punti da un file e in una bmp coloro i pixel corrispondenti in x e y col colore adeguato alla z.
tutto ok, l'unica limitazione che ho trovato è data dalle dimensioni della bmp che creo da codice:
"dim immaginemia as bitmap (A,B)" non riesco a creare una bmp che superi i 4000pxl x 4000pxl a me servirebbe la possibilità di crearne una da 30000x25000 è possibile in qualche modo?

Grazie

tonyexpo Profilo | Senior Member

Ciao

io riesco a fare con VS2008 al max una bitmap come questa:

Dim b As New Bitmap(18000, 18000) Dim g As Graphics = Graphics.FromImage(b) g.Clear(Color.White) g.DrawLine(New Pen(Color.Black, 22), 0, 0, 15000, 15000) b.Save(My.Computer.FileSystem.SpecialDirectories.Desktop & "\out.bmp")


Antonio Esposito
MCP, MCTS .NET 2.0 Distributed applications

willy_80 Profilo | Senior Member

ok grazie ora provo anch'io.
per quanto riguarda il discorso del drawarc:
siccome nel marasma dei calcoli i decimali li arrotondo un po utilizzando il sistema classico drawarc quando faccio lo zoom vedo che l'inizio del mio arco non sempre corrisponde esattamente alla fine del segmento precedente e non voglio usare il sistema drawpath.
esiste un sistema grafico per disegnare gli archi dando come coordinate il punto di inizio, quello di fine e qualche altro parametro?

willy_80 Profilo | Senior Member

Altro problemino:
Se inserisco una picturebox nel form e disegno su quella o disegno su una bmp e poi la carico, come posso ottenere direttamente la posizione del mouse riferita al controllo picturebox ?

tonyexpo Profilo | Senior Member

>esiste un sistema grafico per disegnare gli archi dando come coordinate il punto di inizio, quello di fine e >qualche altro parametro?

la classe Graphics offre vari metodi per il disegno... puoi provarne qualcuno per vedere se è migliore per quello che devi fare.... oltre il DrawArc prova anche DrawCurve, DrawClosedCurve.... mi dispiace ma di più non so dirti sul disegno.

>Altro problemino:
>Se inserisco una picturebox nel form e disegno su quella o disegno su una bmp e poi la carico, come posso >ottenere direttamente la posizione del mouse riferita al controllo picturebox ?

io lo catturo per test in una textbox così :)

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
Antonio Esposito
MCP, MCTS .NET 2.0 Distributed applications

willy_80 Profilo | Senior Member

Gia che ci siamo ti posto anche un problema che ho riscontrato un po di tempo fa ma a cui non ho ancora trovato una soluzione:
Dovrei creare un rendering da nuvola di punti.
Mi sono scaricato PovRay che è free e opensource ma fatto in C.
Ho provato a creare una bmp e ho colorato i pxl corrispondenti alle quote di x e y in scala di grigi in rapporto alla quota di z ottenendo quindi l'immagine vista dall'alto della nuvola e più la z si alza più il grigio si schiarisce.
poi con povray creo il rendering, una volta creato il file per povray se da windows faccio tasto dx col mouse nella finestrella appaiono oltre ai comandi standard i comandi "Edit","Render","Render and Exit", come si può simulare il comando "Render and Exit"?.
Tale comando lancia pov, crea il render, salva l'immagine del render in un path prestabilito e si chiude. Se riuscissi a fare cio potrei poi prendere l'immagine creata e visualizzarla nel mio sfw.
Altrimenti conosci qualche sistema SEMPLICE per creare un rendering della nuvola?

tonyexpo Profilo | Senior Member


>Altrimenti conosci qualche sistema SEMPLICE per creare un rendering
>della nuvola?

spiacente... non ho esperienze in merito...


Antonio Esposito
MCP, MCTS .NET 2.0 Distributed applications

willy_80 Profilo | Senior Member

Ho testato tutti i tuoi consigli e si sono rivelati molto utili.
Magari mi sapresti dire come gestire la "rotellina" del mouse? come faccio a sapere quando ruoto in avanti e in dietro? e quanto ho ruotato?

tonyexpo Profilo | Senior Member

>Ho testato tutti i tuoi consigli e si sono rivelati molto utili.

:)

>Magari mi sapresti dire come gestire la "rotellina" del mouse?
>come faccio a sapere quando ruoto in avanti e in dietro? e quanto
>ho ruotato?

prova così:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
Antonio Esposito
MCP, MCTS .NET 2.0 Distributed applications
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5