Zedgraf pytanie o rysowanie funkcji nieciągłych

0

Witam,
Miał już może ktoś do czynienia z zedgrafem? Mam do narysowania funkcję nieciągłą i ni jak nie wiem jak to wykonać. Przeszperałem internet na tyle na ile potrafiłem i nie natrafiłem na żadny tutorial odnośnie tego problemu. Jakiej komendy użyć?? Próbowałem rysować funkcję od<->do narysować, wyczyścić tablicę x,y od nowa coś policzyć narysować od<->do...jednak to rozwiązanie mi nie pomogło...jak inaczej się do tego zabrać?

0

jeśli chcesz przerwać linię np. pomiędzy x=1 i x=2 to dodaj punkt (1.5, double.NaN) i zainteresuj się także propercją isIgnoreMissing

0

No właśnie o to mi chodzi. Byś może źle się wysłowiłem. Mam przed sobą namespace zedgraph'a i już tego szukam:) Jeśli mi się nie uda samemu jeszcze się tutaj odezwę.

0

Czytałem o tym double.Nan. Chyba to wykorzystam bo nie potrafię ogarnąć tego isMissingValue. Musiałbym widzieć jakiś przykład... U mnie nieciągłość polega na rysowaniu pików dla określonych x'ów (coś ala widmo Furiera).

0

Przepraszam chodziło o isIgnoreMissing a nie isMissingValue jak to napisałem wyżej

0

/// <see cref="PointPairBase.Missing" /> values will cause the line segments of
/// a curve to be discontinuous. If this field is true, then the curves
/// will be plotted as continuous lines as if the Missing values did not
/// exist.
/// Use the public property <see cref="IsIgnoreMissing" /> to access
/// this value. </summary>

To znaczy, że za pomocą IsIgnoreMissing odwołujesz się do pola pointPairBase.Missing. Jeśli więc IsIgnoreMissing jest ustawione na true to będziesz miał ciągłą linię. A jeśli na false to tam w linii gdzie brakuje punktów, lub są nieokreślone (double.NaN) będą występować przerwy.

Chyba, że chodzi ci o sytuację, gdzie jedna linia konczy sie na (2,5) i druga zaczyna na (2,7). W takim wypadku twórz kilka linii, które zaczynają się i kończą na nieciągłościach.

0

No ja rysuję tak jak powiedziałem "piki" czyli np mam dwa punkty (x,0) oraz (x,fod(x)), te punkty mają zostać połączone. Potem rysuję (x+(ih),0) oraz (x+(ih),fod(x+i*h)) i znów te dwa punkty łącze...w ten sposób powstają mi piki ala widmo furiera.

0

No to tak jak powiedziałem wcześniej: podziel sobie wykres na n linii, które zaczynają i kończą się na nieciągłościach (w tym początek i koniec wykresu).

0

Tego nie ogarniam...nie wiem jak wpisać tą nieciągłość początkową i końcową...po prostu wpisuje między każdą z prostych (x+szczątkowa wartość, double.Nan) i tyle a potem daje komendę rysuj:) i tam gdzie jest koniec double.nan poczatek nie ma pociągnięcia (tzn połączenia).

0

Jeszcze jedno małe pytanie. Program skończony ale irytuje mnie to że jak mam wynik bardzo blisko zera to tego nie widać w textbox. Chciałem ograniczyć ilość znaków wyniku jaki jest wpisywany do texboxa ale opcja maxlenght nie pomogła;/ Textbox jest zablokowany przed edycją i za nic nie można w takim momencie przejechać kursorem w lewo żeby pokazać, że jest tam np E^-18

0

MaxLength to liczba znaków, które możesz wpisać w TextBox.
Musisz odpowiednio sformatować wyświetlaną liczbę. Poczytaj tutaj: http://cezarywalenciuk.blogspot.com/2011/07/stringformat-formatowanie-napisow-w-c.html albo tutaj: http://blog.stevex.net/string-formatting-in-csharp/

0

Próbowałem z tymi komendami ale dalej mi nie obcina np do 6 znaków po przecinku (tak żeby było widać to e-18). Swoją drogą kojarzę to z wykładów ale wtedy to przejmowaliśmy się sposobem zapisu a nie obcinaniem w Textbox. A teraz zauważam, że to poważny temat

0

Próbowałem na różne sposoby

                    WynikWzorTrapezow.Text = String.Format("{0:0.00}", WynikNumeryczny);
                    WynikWzorTrapezow.Text = WynikNumeryczny.ToString("{0:0.00}"); 

To np jest przykład...program się uruchamia nie wyrzuca błędów, a mimo to nie robi tego co chcę. Próbowałem też z naukowymi tak jak pisałem wyżej na kilka sposobów i nic. Inni używają tych metod i im to działa (źródło:internet) a mi za cholerkę nie chce

0

Udało mi się to opanować. Teraz działa lecz jeszcze nie tak jak trzeba. Zastosowałem zapis naukowy ale potrzebowałbym coś takiego: Wynik = 12,243029341923E-17 a zapis do textbox 12,24302E-17.

0
facebak napisał(a)

Udało mi się to opanować. Teraz działa lecz jeszcze nie tak jak trzeba. Zastosowałem zapis naukowy ale potrzebowałbym coś takiego: Wynik = 12,243029341923E-17 a zapis do textbox 12,24302E-17.

Po pierwsze, to "12,243029341923" po zaokrągleniu to "12,24303", a nie "12,24302".
A przede wszystkim w zapisie naukowym mantysa musi się być liczbą z przedziału <1; 10), jeśli koniecznie chcesz, żeby wynosiła 12, to sugeruję wniosek do jakiegoś komitetu normalizacyjnego, ale wątpię, żeby został zaakceptowany.

1 użytkowników online, w tym zalogowanych: 0, gości: 1