| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [C#] рисование функции |
| Автор: Randol 24.11.2007, 18:30 |
| дано функция f(x) как мне нарисовать функцию на win форме? с помощю кокого функции или метода можна сделать это? |
| Автор: Walker 26.11.2007, 10:35 |
| Делается это средствами GDI+. Концептуально ничего сложного - у тебя же набор точек есть, раз функция известна. - Задай цикл по области определения функции (меняй значения x). Шаг (дискретизацию) выбираешь в зависимости от нужной тебе точности - вычисляй y и рисуй точку по двум координатам. Только учти - система координат в окошках MS ориентирована по другому - начало координат - верхняя левая точка окна. Ось X направлена стандартно, а Y вниз. Поэтому следи за знаками. Кратко об использовании GDI+. Основа для рисования - объект Graphics, который представлет собой псевдоповерхность для рисования. Он абстрагирует тебя от аппаратной платформы - собираешься ты выводить свой рисунок на экран ли монитора, на принтер или на плоттер. У Graphics определена куча методов, позволяющих строить на нём элементарные геометрические фигуры, точки, прямые, ломаные, сплайны, рисовать битмапы. Получить Graphics для отображения твоего изображения на каком-либо контроле проще всего можно использовав метод CreateGraphics нужного тебе контрола. Подпишись на событие Paint этого контрола и отрисовывай всё, что тебе нужно в нём, так как картинка не запоминается, и при сворачивании окошка или его перекрывании рисунок пропадает, а этот метод вызывается при перерисовке каждый раз. Для принудительной перерисовки при изменений данных используй метод контрола Invalidate(). Удачи! |