Как нарисовать прямоугольную волну с помощью ZedGraph? - PullRequest
2 голосов
/ 26 октября 2009

Как нарисовать прямоугольную волну, используя ZedGraph ?

Я думаю о чем-то вроде этого:

альтернативный текст http://www.zsee.bytom.pl/sciaga/prad/grafika/okr%20prosto.jpg

Моя формула:

y =  amplitude, if sin(x) >=0

y = -amplitude, if sin(x) < 0

В теории это должно дать прямоугольную волну, но дает мне:

альтернативный текст http://img27.imageshack.us/img27/9813/xxxmy.png

Ответы [ 2 ]

4 голосов
/ 28 октября 2009

Вы должны изменить тип шага вашей кривой. Использование:

line.Line.StepType = StepType.ForwardStep;

конечно line ваш LineItem объект

2 голосов
/ 27 октября 2009

Похоже, что он шагает по дискретным значениям вдоль оси X (что на самом деле почти неизбежно), и рисует крутую (но все же заметно не вертикальную) линию от последней точки, в которой он взял положительный грех (x) через sin (x) = 0 до следующей точки, в которой он выбирает отрицательный грех (x).

Очевидное лекарство состоит в том, чтобы сказать ему, чтобы он выполнял выборку функции с меньшими интервалами - в частности, достаточно маленькими, чтобы переход от +1 к -1 (или наоборот) происходил меньше ширины пикселя, так как в конечном итоге отображать его.

...