perfetto credo che dovrebeb andare , ora nella funzione dle grafico nella parte del confronto reale teorico metti qusto codice
il grfico assume i dati da una tabella di dati creata a runtime , noi dobbiamo prima creare in memoria questa tabella impostando i campi che ci servono e dopo la dobbiamo alimentare per darla in pasto al grafico.
Quali sono i valori che ci servono ? per la coordinata X andremo ad usare l'indice dell'estrazione , per la coordunata y avremmo bisogno di 2 valori
perche devono esserre create2 linee,
Il primo valore è il valore reale di uscite , il secondo quello teorico.
Ora tu nella formazione hai l'array delle uscite , per ogni elemento hai l'id dell'estrazione di uscita , le presenze fino a quel momento , la quantita di estrazioni eseminata in quel momento
quindi con l'id dell'estrazione hai la X m con le presenze hai la y del valore reale , dividendo le estrazioni esaminate per il ritardo naturale avrai l a y teorica.
Quindi con un ciclo si alimentano tutti questi valori nella tabella dopo di che si prepara il grafico.
Innanzitutto dobbiamo istanziare una chartharea nelal quale iseriremo le nostrte serie che sono 2 quella reale e quelal teorica , impostiamo alcuni proprietà del grafico che in verità non ci interessano molto e poi andiamo ad istanziare due nuove serie impostandone le proprietà , e le aggiungiamo alla collezione delle serie , poi impostando le opportune proprietà andiamo ad associare i valori alle serie e infine impostiamo i ldatasouce del grafco con la nostra tabella.
prova ad inserire questo codice nella sub che disegna il grafico del confrono reale teorico
Codice:
nRitNat = RitardoNaturale(frz.GetQuantitaNumeri, frz.Sorte, frz.GetQuantitaPosUsate, frz.GetQuantitaRuoteUsate)
Dim table As New DataTable
table.Columns.Add("x", GetType(Integer))
table.Columns.Add("yPres", GetType(Integer))
table.Columns.Add("yTeo", GetType(Integer))
For k = 0 To UBound(frz.aUscite)
table.Rows.Add(frz.aUscite(k).IdEstr, frz.aUscite(k).Presenze, frz.aUscite(k).EstrEsam / nRitNat)
Next
Dim ChartArea1 As ChartArea = New ChartArea()
Dim Legend1 As Legend = New Legend()
Dim Series1 As Series = New Series()
Dim Series2 As Series = New Series()
Chart1.ChartAreas.Clear()
Chart1.Legends.Clear()
Chart1.Series.Clear()
ChartArea1.Name = "ChartArea1"
ChartArea1.AxisX.IsMarginVisible = False
Chart1.ChartAreas.Add(ChartArea1)
Legend1.Name = "Legend1"
Chart1.Legends.Add(Legend1)
Chart1.Name = "Chart1"
Series1.ChartArea = "ChartArea1"
Series1.Legend = "Legend1"
Series1.Name = "Reali"
Series1.ChartType = SeriesChartType.Line
Series1.Color = Color.Red
Series1.BorderWidth = 2
Series2.ChartArea = "ChartArea1"
Series2.Legend = "Legend1"
Series2.Name = "Teoriche"
Series2.ChartType = SeriesChartType.Line
Series2.Color = Color.Green
Series2.BorderWidth = 2
Chart1.Series.Add(Series1)
Chart1.Series.Add(Series2)
Chart1.Text = "Confronto presenze reali/teoriche RN " & Math.Round(nRitNat, 2)
Chart1.Series("Reali").XValueMember = "x"
Chart1.Series("Reali").YValueMembers = "yPres"
Chart1.Series("Teoriche").XValueMember = "x"
Chart1.Series("Teoriche").YValueMembers = "yTeo"
Chart1.Titles.Add(Chart1.Text)
Chart1.DataSource = table