Quindi sto scrivendo una calcolatrice grafica. Finora ho un grapher semi-funzionale, tuttavia, sto attraversando un periodo difficile per ottenere un buon equilibrio tra grafici accurati e curve dall'aspetto lineare.Come implementare un grapher in C#
L'implementazione corrente (-pseudo-codice semi) simile a questa:
for (float i = GraphXMin; i <= GraphXMax; i++)
{
PointF P = new PointF(i, EvaluateFunction(Function, i)
ListOfPoints.Add(P)
}
Graphics.DrawCurve(ListOfPoints)
Il problema è dato che aggiunge solo un punto ad ogni valore intero, grafici finiscono distorta quando i loro punti di svolta non cadere su numeri interi (es. sin (x)^2).
ho cercato incrementando i da qualcosa di più piccolo (come 0.1), che funziona, ma il grafico sembra molto agitato.
Sto usando C# e GDI +. Ho SmoothingMethod impostato su AntiAlias, quindi non è questo il problema, come puoi vedere dal primo grafico. C'è qualche tipo di problema con le curve di disegno con molti punti? I punti potrebbero essere posizionati esattamente sui pixel?
Sono sicuro che alcuni di voi hanno già lavorato su qualcosa di molto simile, quindi qualche suggerimento? Mentre ci sei, hai qualche suggerimento per le funzioni grafiche con gli asintoti? per esempio. 1/x^2
P.S. Non sto cercando una libreria che faccia tutto questo, voglio scriverlo da solo.
cosa intendi con "il grafico sembra molto approssimativo"? aumentare il numero di punti è la strada da percorrere, per farlo apparire più liscio. E rendendo più piccoli gli X-steps (1 -> 0.1) * li * aumentano. – user492238
Inoltre non so, cosa intendi con "suggerimenti per la rappresentazione grafica delle funzioni con gli asintoti". Cosa ti aspetti? Come si gestiscono in modo diverso rispetto ad altri grafici? Non sono. – user492238
Ho modificato per renderlo più chiaro. – ian93