Рисование графика (Паскаль)
Моя задача - нарисовать график 2*(sqr(sin(2*x))).
Пробовал это сделать с помощью PutPixel(x,y,color), но не судьба, потому как у меня ведь x т у получаются не Integer, а это процедура требует Integer.
Кто виноват и что делать?
Если можно, приложите фрагмент кода.
Заранее спасибо.
Все дело в том, что в единицу деления по оси ординат и оси абсцисс заклыдывается определенное число пикселей. А это число всегда целое.
Поэтому при рисовании графика нужно задать количество пикселей по горизонтали и вертикали, на которых будет рисоваться график (это целое число), а также минимальное и максимальное значения по оси абсцисс и оси ординат (это число может быть вещественным). При этом т.к. одно деление по оси абсцисс и оси ординат содержит одинаковое кол-во пикселей, то
shirina / (xMax-xMin)=visota / (yMax-yMin), где
shirina,visota - ширина,высота поля вывода в пикселах (целое)
xMax,xMin - макс./мин. деления по оси абсцисс (веществ)
yMax,yMin -----------------//------------ординат (веществ.)
Есть класс на Си++, можно посмотреть, но он не доделан.
*Для перехода от вещественного типа (real) к целочисленному (integer) используй функцию Round (integer:=Round(real));
*Для того чтобы график получился сплошным, приращение по Х должно быть достаточно небольшим;