Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 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; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию