Newsgroup: it.comp.lang.visual-basic
Titolo: Cerco esempi di uso metodi grafici vb per fare grafici XY

Chiunque potesse mi farebbe un grandissima cortesia se , riuscisse a
mandarmi qualcosa  (intendo codice )  riguardo all'uso di tali metodi
grafici,e rel.proprietà, in modo che possa trarre spunto de questo ,per
lo sviluppo di garfici 2D con asse x e almeno 2 funzioni da graficare
sull' asse y ,con scale differenziate (se possibile)
1000 grazie
Distinti saluti.Simone


...copia e incolla in una form.
L'esempio č banale e privo dei necessari controlli:
Private Sub Form_Resize()
Dim client_x As Single, client_y As Single
Dim x0 As Single, y0 As Single, Max_Serie1 As Single, Max_Serie2 As Single
Dim serie1(3) As Single, serie2(3) As Single, i As Integer
Dim N_Serie1 As Integer, N_Serie2 As Integer
x0 = TextWidth("ZZZZ")
y0 = Abs(TextHeight("Z"))
client_x = ScaleWidth - 2 * x0
client_y = ScaleHeight - 2 * y0
serie1(0) = 10
serie1(1) = 25
serie1(2) = 12
serie1(3) = 30 '<--- valore max
N_Serie1 = 4 'numero dati serie1
Max_Serie1 = 30
serie2(0) = 600
serie2(1) = 250
serie2(2) = 1300
serie2(3) = 400 '<--- valore max
N_Serie2 = 4 'numero dati serie2
Max_Serie2 = 1300
AutoRedraw = True
Cls
ForeColor = vbBlack
Line (x0, ScaleHeight - y0)-(x0, y0)
Line (x0, ScaleHeight - y0)-(ScaleWidth - x0, ScaleHeight - y0)
ForeColor = vbGreen
For i = 0 To N_Serie1 - 2
  Line (x0 + i * client_x / (N_Serie1 - 1), ScaleHeight - y0 - serie1(i) *
client_y / Max_Serie1)-(x0 + (i + 1) * client_x / (N_Serie1 - 1),
ScaleHeight - y0 - serie1(i + 1) * client_y / Max_Serie1)
Next i
ForeColor = vbRed
For i = 0 To N_Serie2 - 2
  Line (x0 + i * client_x / (N_Serie2 - 1), ScaleHeight - y0 - serie2(i) *
client_y / Max_Serie2)-(x0 + (i + 1) * client_x / (N_Serie2 - 1),
ScaleHeight - y0 - serie2(i + 1) * client_y / Max_Serie2)
Next i
AutoRedraw = False
End Sub
ciao marco

 grafici,e rel.proprietà, in modo che possa trarre spunto de questo ,per


L'esempio č banale e privo dei necessari controlli:
Ciao Marco,
il tuo esempio e' molto interessante.
Io sono appena agli inizi con VB e avrei un problema con i grafici.
A quanto ho capito il controllo MS Chart si puo' collegare solo a una
Data Grid e quest'ultima non mi sembra che possa essere popolata con
valori presi da un array a 2 dimensioni. Sapresti consigliarmi un modo
per compilare un qualunque tipo di grid e poi prendere i valori e
calcolarci un grafico con MS Chart? In alternativa, che tipo di codice
potrei inserire per un grafico "fatto a mano" che sia un attimino piu'
completo e personalizzabile di quello utilissimo da te proposto?
Conosci qualche ocx (magari freeware) alternativo a MS Chart?
Grazie
Carlo.

Carlo Di Bennardo ha scritto nel messaggio ...

Generalmente utilizzo una dbgrid collegata ad un data. Al momento di
graficare i valori, carico questi in un vettore.
In pratica definisco la struttura
Type COORD
        x as long
        y as long
end Type
e poi definisco
Dim MyVett() as COORD
In MyVett caricherň i miei punti e successivamente andrň a disegnare sulla
picture. Se hai bisogno di cose sofisticate vengono in aiuto le funzioni
api.
Ti ricordo comunque che con il controllo picture box (e un po' di funzioni
dell'api) riesci a ottenere risultati migliori del controllo mschart. Se hai
bisogno di informazioni chiedi.
Ciao Marco