27. november 2006 - 08:54Der er
9 kommentarer og 1 løsning
Tegne egne grafer
Hej!
Jeg sidder og skal lave noget live visning af forskellige ting, til dette kunne jeg godt tænke mig at tegne grafer som indikere de enkelte niveauer.
Grafen skal tegnes live, dvs. opdateres hvert ½ sekund, jeg har kigget lidt på e.Graphics.DrawLines og det fungere da også, bortset fra at den altid tegner fra 0,0 og ud til punktet.
Hvordan undgår jeg denne ting, få så vil jeg være tilfreds med DrawLines og et array af Points.
Det skal bruges virksomhedsmæssigt, og er ikke interesseret i at købe komponenter som kan dette.
Er ved et spm om at undlade de første punkter hvis der er gået mere end ex tid, og der ikke er plads mere ... hvis du altså tegner fra venstre mod højre
// ouT
Er ikke helt med på hvad du mener med at flytte et område .....
det jeg gerne vil er at man f.eks. kan se grafer for en 5 min periode, når der så er gået 5 minut, smider den det første 1 minut væk, sådan at der er plads til at tegne de næste minut osv.
Derfor forestillede jeg mig at man skulle flytte området, men man kan måske bare smide data væk og så opdatere det resterende data.
Jeg ville nok lave en klasse der håndtere en datacollection som du så kan flytte... på den kan du så bare have en "AddValue" metode... og så en række metoder der kan hente data ud for givne intervaler "GetData" eller noget, der så kunne have en række passende overloads.... i dit tilfælde skal du bare have en der tger en parameter for hvor langt til bage den skal kigge... men kunne være godt at forberede den til at kigge på et interval fra og til...
Oven på det laver du så en CustomControl hvor du tegner din graf, her kan du sætte et update interval (Benytte Timers, foretrække selv den i System.Threading, men ellers ligger der også en under System.Windows.Forms), eller du kan lade et event fra din collection fortælle din kontrol hver gang der er nye data... kommer lidt an på hvordan det helt skal fungere... hvad skal der fx ske hvis der ikke kommer nye data i 2 min?...
Jeg har taget det op til overvejelse og der ser fornuftigt ud, det du foreslår! Samtidig stiller du spørgsmålet hvad der skal ske, hvis der ikke er data i et tidsrum! ja, så vil y værdien bare være 0 og forsætte som hidtil, hvis systemet ikke er startet, vil timeren heller ikke tælle og derfor ikke vise noget
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.