Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Рисуем оси
Добавим в классе переменные для хранения отступов от краев холста (они нам еще понадобятся не один раз). //Отступы от краев холста private int viDeltaaxisL = 50; private int viDeltaaxisR = 50; private int viDeltaaxisH = 20; Добавим функцию рисования осей и функции запоминания цвета и толщины осей. Функция выполняет простую задачу - рисует две линии и при необходимости стрелочки на конце осей: #region Рисование Осей //Параметры вызоыва: отступы слева - deltaaxisL, справа - deltaaxisR, //сверху(снизу) - deltaaxisH, Цвет осей - colorpenaxis, толщина пера - widthpen, //нужны ли стрелки - fArrow (true - да) public void vDravAxis(int deltaaxisL, int deltaaxisR, int deltaaxisH, Color colorpenaxis, int widthpen, bool fArrow) { //Запоминаем отступы viDeltaaxisL = deltaaxisL; viDeltaaxisR = deltaaxisR; viDeltaaxisH = deltaaxisH; //Запоминаем цвет осей и толщину vSetPenColorLine(colorpenaxis); if (widthpen > 0) vSetPenWidthLine(widthpen); //Точка начала рисования по х и y int x = deltaaxisL; int y = viY - deltaaxisH; int x1 = viX - deltaaxisR; int y1 = deltaaxisH; //Переменная определения длины стрелок int d = 0; if(fArrow) d = widthpen * 10; //Оси на d пикселей длинней для стрелок graph.DrawLine(objPenLine, x, y, x1 + d, y); graph.DrawLine(objPenLine, x, y, x, y1 - d); //Надо рисовать стрелки if (fArrow) { int a = 10 * (int)objPenLine.Width; int b = 2 * (int)objPenLine.Width; int x2 = x1 - a; int y2 = y + b; //Стрелки graph.DrawLine(objPenLine, x1 + 20, y, x2 + d, y2); y2 = y - b; graph.DrawLine(objPenLine, x1 + 20, y, x2 + d, y2); x2 = x - b; y2 = y1 + a; graph.DrawLine(objPenLine, x, y1 - d, x2, y2 - d); x2 = x + b; graph.DrawLine(objPenLine, x, y1 - d, x2, y2 - d); } } #endregion
#region Карандаш, шрифт, кисть //Цвет карандаша public void vSetPenColorLine(Color pcl) { if (objPenLine == null) { objPenLine = new Pen(Color.Black, 1); } objPenLine.Color = pcl; } //Установка толщина карандаша public void vSetPenWidthLine(int penwidth) { if (objPenLine == null) { objPenLine = new Pen(Color.Black, 1); } objPenLine.Width = penwidth; } #endregion Осталось добавить вызов функции рисования осей: private void vCreateLinGr() { //Создаем массив значений для вывода на графике vCreateRg(); //Создаем класс и передаем ему размер холсты PaintCl clPaint = new PaintCl(pictureBox1.Width, pictureBox1.Height); //Фон холста clPaint.vSetBackground(Color.White); //Параметры вызоыва: отступы слева, справа, сверху(снизу), //Цвет осей, толщина пера, необходимость стрелок clPaint.vDravAxis(50, 50, 20, Color.Red, 2,true); //Принимаем нарисованное в pictureBox pictureBox1.Image = clPaint.Bmp; } В функции vDravAxis мы задали параметры непосредственно. Отметим еще раз, что все величины целесообразно иметь настраиваемыми и их значения хранить в реестре. Рис.7 Рисование осей линейного графика Date: 2015-09-02; view: 532; Нарушение авторских прав |