[VB2008] Simil paint

Stato
Discussione chiusa ad ulteriori risposte.

jacoboss

Utente Silver
18 Novembre 2007
63
9
0
72
allora avrei bisogno di realizzare un piccolo e semplice editor grafico simil paint che scriva solo bianco o nero, che supporti lettere linee cerchi e "matita pixel per pixel" ed una gomma per la mia tesina, il risultato lo devo mandare ad una slitta micrometrica che comanda un piccolo laser che incide su una lastra piatta (di qualsiasi cosa a seconda della potenza...)
adesso per la parte slitta com ecc non ho problemi però avevo bisogno di una mano con la parte di front end ovvero non saprei che controlli utilizzare per avere un'area di disegno che si rifletta su di una matrice in memoria....
ne tantomeno cosa usare per disegnarci sopra o cancellare
qualcuno di voi ha idea di che controlli dovrei usare per realizzarlo in VB([ 6-.NET ] non importa) ?

poi me li studio da solo

EDIT:
fermi tutti ho trovato qualcosa di utile è allegato
ora me lo studio per bene
se avete apporti utili sono sempre graditi
 
io per divertimento avevo fatto un programma che seguiva il mouse e disegnava sopra il form come una matita.... ma non sono riuscito con le funzioni del .net a ottenre il colore e la posizione dopo....
teoricamente basterebbe trasformarla in bmp e da li .net ti da una funzione che te la converte già in matrice....
altrimenti ti salvi i punti tu...
 
Usi le classi contenute in System.Drawing.
#edit visto che ci sono ti faccio anche l'esempio.
Codice:
Imports System.Drawing


Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim rr As Graphics = Graphics.FromHwnd(Me.Handle)
        rr.DrawEllipse(Pens.DarkGreen, New RectangleF(10, 50, 100, 200))
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim rr As Graphics = Graphics.FromHwnd(Me.Handle)
        rr.DrawRectangle(Pens.Blue, New Rectangle(50, 50, 100, 100))
    End Sub

End Class
Un form, due bottoni, click e vedi il risultato.
 
a parte che puoi usare una variabile di classe, invece che locali, ma è così che si fa....
il problema è poi ottenere la matrice con i pixel.... si può usare l'api getpixel, ma non è il massimo....
 
Scrivi direttamente su un file bmp (o quello che ti pare) se ti serve, la classe Graphics lo permette, da lì poi ottenere la matrice è un attimo.
 
adesso sorge un problema anche sulla parte che comanda il plotter...
io pensavo di fare una scansione delle matrice e quando mi trovo un punto nero spostare il plotter e annerire...
il mio prof me l'ha bocciata e vorrebbe che realizzassi un algoritmo che callcoli la traiettoria minima...
ora io pensavo ad un albero binario ordinato o per righe o per colonne
però non saprei come fagli trovare i neri adiacenti...
ci vedo qualche analogia con il campo minato....
voi cosa suggerite?
 
stoner ha detto:
Scrivi direttamente su un file bmp (o quello che ti pare) se ti serve, la classe Graphics lo permette, da lì poi ottenere la matrice è un attimo.

giusto... non ci avevo pensato

Jacoboss ha detto:
adesso sorge un problema anche sulla parte che comanda il plotter...
io pensavo di fare una scansione delle matrice e quando mi trovo un punto nero spostare il plotter e annerire...
il mio prof me l'ha bocciata e vorrebbe che realizzassi un algoritmo che callcoli la traiettoria minima...
ora io pensavo ad un albero binario ordinato o per righe o per colonne
però non saprei come fagli trovare i neri adiacenti...
ci vedo qualche analogia con il campo minato....
voi cosa suggerite?
premetto che non so come funziona il plotter, ma l'idea di fare la scansione di ogni riga e annerire è efficace.... tra l'altro calcolare un percorso minimo non è semplice....

ma che plotter è?
 
Quest'applicazione è davvero bellina...
È la base per creare un'applicazione simile a paint, come dice il titolo di questa discussione...
Io provo a lavorarci...
 
Whivel ha detto:
stoner ha detto:
Scrivi direttamente su un file bmp (o quello che ti pare) se ti serve, la classe Graphics lo permette, da lì poi ottenere la matrice è un attimo.

giusto... non ci avevo pensato

Jacoboss ha detto:
adesso sorge un problema anche sulla parte che comanda il plotter...
io pensavo di fare una scansione delle matrice e quando mi trovo un punto nero spostare il plotter e annerire...
il mio prof me l'ha bocciata e vorrebbe che realizzassi un algoritmo che callcoli la traiettoria minima...
ora io pensavo ad un albero binario ordinato o per righe o per colonne
però non saprei come fagli trovare i neri adiacenti...
ci vedo qualche analogia con il campo minato....
voi cosa suggerite?
premetto che non so come funziona il plotter, ma l'idea di fare la scansione di ogni riga e annerire è efficace.... tra l'altro calcolare un percorso minimo non è semplice....

ma che plotter è?



è sono due assi micrometrici con spostamento minimo di tipo 12,5 micron che montano un laser che incidesu quello che gli pare seguendo il movimento degli assi che scorrono in 2 dimensioni

per capirci
[align=center]origine:

|.......................
|.......................
|.......................
|.......................
|.......................
|.......................
|.......................
+--------------o-

spostamento y:

|.......................
|.......................
+--------------o-
|.......................
|.......................
|.......................


spostamento x,y:

..........|..........
..........|..........
..........|..........
-------+-----o-
..........|..........
..........|..........
..........|..........
..........|..........
[/align]
 
Stato
Discussione chiusa ad ulteriori risposte.