Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Проект «Смешивание цветов»




Составить программу, в ходе выполнения которой цвет фона текстового окна будет изменяться на один из 24-битового цвета

 

namespace PrRGB

{

public partial class frmRGB: Form

{

void DoColor()

{

txtColor.BackColor = Color.FromArgb(hsbRed.Value, hsbGreen.Value, hsbBlue.Value);

}

public frmRGB()

{

InitializeComponent();

}

 

private void btnExit_Click(object sender, EventArgs e)

{

Close();

}

 

private void hsbRed_Scroll(object sender, ScrollEventArgs e)

{

DoColor();

}

 

private void frmRGB_Load(object sender, EventArgs e)

{

DoColor();

}

 

private void hsbGreen_Scroll(object sender, ScrollEventArgs e)

{

DoColor();

}

 

private void hsbBlue_Scroll(object sender, ScrollEventArgs e)

{

DoColor();

}

}

}


 

Проект «Объем конуса»

 

namespace PrKonus

{

public partial class frmKonus: Form

{

public frmKonus()

{

InitializeComponent();

}

 

private void btnExit_Click(object sender, EventArgs e)

{

Close();

}

 

double SKruga(double R)

{

return R * R * Math.PI;

}

 

private void btnRun_Click(object sender, EventArgs e)

{

double Radius = Convert.ToDouble(txtR.Text),

Visota=Convert.ToDouble(txtH.Text),

V=Visota*SKruga(Radius)/3;

lblV.Text = "V=" + Convert.ToString(V);

}

}

}


Графические объекты и методы

При создании компонента, т. е. объекта класса Component, автоматически формируется его графический контекст (graphics context). В контексте размещается область рисования и вывода текста и изображений. Контекст содержит текущий и альтернативный цвет рисования и цвет фона — объекты класса color, текущий шрифт для вывода текста — объект класса Font.

В контексте определена система координат, начало которой с координатами (0, 0) расположено в верхнем левом углу области рисования, ось Ох направлена вправо, ось Оу — вниз. Точки координат находятся между пикселами.

Управляет контекстом класс Graphics.

Методы класса Graphics

При создании контекста в нем задается текущий цвет для рисования, обычно черный, и цвет фона области рисования — белый или серый. Изменить текущий цвет можно методом setcolor (Color new Color), аргумент new Color которого — объект класса Color. Узнать текущий цвет можно методом getcolor (), возвращающим объект класса color.

Как задать цвет

Цвет, как и все в C#, — объект определенного класса, а именно, класса color. Цвет бывает стандартный и пользовательский.

Стандартный цвет выбирается один из 141: Например,

Color pureRed = new Color.Red; (красный цвет).

Пользовательский цвет задается: Color(int red, int green, int blue) создает цвет, получающийся как смесь красной red, зеленой green и синей blue составляющих. Эта цветовая модель называется RGB. Каждая составляющая меняется от 0 (отсутствие составляющей) до 255 (полная интенсивность этой составляющей). Например:

Color pureRed = new Color(255, 0, 0);

Color pureGreen = new Color(0, 255, 0);

определяют чистый ярко-красный pureRed и чистый ярко-зеленый pureGreen цвета.

Второй вариант Color pureC = new Color(int rgb) задает все три составляющие в одном целом числе. В битах 16—23 записывается красная составляющая, в битах 8—15 — зеленая, а в битах 0—7 — синяя составляющая цвета. Например:

Color с = new Color(OXFF8F48FF);

Здесь красная составляющая задана с интенсивностью 0x8F, зеленая — 0x48, синяя — 0xFF.

Третьим конструктором Color(int alpha, int red, int green, int blue,) вводят четвертую составляющую цвета, так называемую "альфу", определяющую прозрачность цвета. Эта составляющая проявляет себя при наложении одного цвета на другой. Если альфа равна 255, то цвет совершенно непрозрачен, предыдущий цвет не просвечивает сквозь него. Если альфа равна 0, то цвет абсолютно прозрачен, для каждого пиксела виден только предыдущий цвет.

Создав цвет, можно рисовать им в графическом контексте.

Как нарисовать чертеж

Рисовать можно карандашом. Новый экземпляр карандаша задается

Pen myPen = new Pen(Color.Green);

Для рисования необходимо создать холст на объекте, например picDraw:

Graphics picGraf = picDraw.CreateGraphics();

Основной метод рисования

picGraf.DrawLine(myPen,int xl, int yl, int х2, int y2);

вычерчивает текущим цветом отрезок прямой между точками с координатами (xl, yl) и (х2, у2).

Одного этого метода достаточно, чтобы, нарисовать любую картину по точкам, вычерчивая каждую точку с координатами (х, у) методом drawLine (x, у, х, у) и меняя цвета от точки к точке.

Можно задать последовательность точек следующим образом

Point[] points ={

new Point(x1,y1),

new Point(x2,y2),

new Point(x3,y3)};

picGraf.DrawLines(pen, points);

Другие графические методы:

DrawRectangle(pen, int x, int у, int width, int height); — чертит прямоугольник со сторонами, параллельными краям экрана, задаваемый координатами верхнего левого угла (х, у), шириной width пикселов и высотой height пикселов;

DrawPolygon(pen, points); — чертит замкнутый многоугольник, последняя точка соединяется с первой;

DrawEllipse(pen, int x, int у, int width, int height) — чертит овал, вписанный в прямоугольник, заданный аргументами метода. Если width == height, то получится окружность;

DrawArc(pen, int x, int у, int width, int height, int startAngle, int arc); — чертит дугу овала, вписанного в прямоугольник, заданный первыми четырьмя аргументами. Дуга имеет величину arc градусов и отсчитывается от угла startAngle. Угол отсчитывается в градусах от оси Ох. Положительный угол отсчитывается по часовой стрелке, отрицательный — против часовой стрелки;

DrawPie(pen, int x, int у, int width, int height, int startAngle, int arc); — чертит сектор овала, вписанного в прямоугольник, заданный первыми четырьмя аргументами. Сектор имеет величину arc градусов и отсчитывается от угла startAngle. Угол отсчитывается в градусах от оси Ох. Положительный угол отсчитывается по часовой стрелке, отрицательный — против часовой стрелки.

Метод Fill задает закрашенные фигуры. Закраска производится кистью:

SolidBrush redBrush = new SolidBrush(Color.Red);

Графические методы с закраской

FillRectangle(brush, int x, int у, int width, int height); — чертит закрашенный прямоугольник со сторонами, параллельными краям экрана, задаваемый координатами верхнего левого угла (х, у), шириной width пикселов и высотой height пикселов;

FillPolygon(brush, points); — чертит замкнутый закрашенный многоугольник, последняя точка соединяется с первой;

FillEllipse(brush, int x, int у, int width, int height); — чертит закрашенный овал, вписанный в прямоугольник, заданный аргументами метода. Если width == height, то получится окружность;

FillPie(brush, int x, int у, int width, int height, int startAngle, int arc); — чертит закрашенный сектор овала, вписанного в прямоугольник, заданный первыми четырьмя аргументами. Сектор имеет величину arc градусов и отсчитывается от угла startAngle. Угол отсчитывается в градусах от оси Ох. Положительный угол отсчитывается по часовой стрелке, отрицательный — против часовой стрелки.

Как вывести текст

Для вывода текста в область рисования цветом Brush и шрифтом Font, начиная с точки (х, у), в классе Graphics существует следующий метод:

DrawString(String S, Font, Brush, int X, int Y); — выводит строку s. Точка (х, у) — это левая верхняя точка первой буквы текста на базовой линии (baseline) вывода шрифта.

Как установить шрифт

Метод setFont(Font newFont) класса Graphics устанавливает текущий шрифт для вывода текста. Шрифт — это объект класса Font.

Font drawFont = new Font("Arial", A/10);

 

Пример

Проект Домик

 

namespace PrDomik

{

public partial class frmDomik: Form

{

Graphics picGraf;

public frmDomik()

{

InitializeComponent();

}

 

private void btnExit_Click(object sender, EventArgs e)

{

Close();

}

 

private void frmDomik_Load(object sender, EventArgs e)

{

picGraf = picDomik.CreateGraphics();

}

 

private void btnClear_Click(object sender, EventArgs e)

{

SolidBrush whiteBrush = new SolidBrush(Color.White);

picGraf.FillRectangle(whiteBrush, 0, 0, picDomik.Width, picDomik.Height);

}

 

private void btnDraw_Click(object sender, EventArgs e)

{

int X = Convert.ToInt16(txtX.Text);

int Y = Convert.ToInt16(txtY.Text);

int A = Convert.ToInt16(txtA.Text);

Pen greenPen = new Pen(Color.Green);

SolidBrush yellowBrush = new SolidBrush(Color.Yellow);

Point[] pointsOsnova ={

new Point(X,Y),

new Point(X+A,Y),

new Point(X+A,Y-A),

new Point(X,Y-A),

new Point(X,Y)};

picGraf.FillPolygon(yellowBrush, pointsOsnova);

picGraf.DrawLines(greenPen, pointsOsnova);

Point[] pointsKrisha ={

new Point(X+Convert.ToInt16(-A/10),Y-A),

new Point(X+Convert.ToInt16(A/2),Y-2*A),

new Point(X+Convert.ToInt16(1.1*A),Y-A),

new Point(X+Convert.ToInt16(-A/10),Y-A)};

picGraf.FillPolygon(yellowBrush, pointsKrisha);

picGraf.DrawLines(greenPen, pointsKrisha);

SolidBrush blueBrush = new SolidBrush(Color.Blue);

picGraf.FillRectangle(blueBrush, X + Convert.ToInt16(A / 4), Y - Convert.ToInt16(3 * A / 4), Convert.ToInt16(A / 2), Convert.ToInt16(A / 2));

SolidBrush redBrush = new SolidBrush(Color.Red);

picGraf.FillEllipse(redBrush, X + Convert.ToInt16(0.4 * A), Y - Convert.ToInt16(1.5 * A), Convert.ToInt16(0.2*A), Convert.ToInt16(0.2*A));

Font drawFont = new Font("Arial", A/10);

string Nadpis = "X=" + Convert.ToString(X) + ", Y=" + Convert.ToString(Y);

picGraf.DrawString(Nadpis, drawFont, blueBrush, X, Y);

}

 

 

}

}


АЛГОРИТМЫ

Алгоритм – это точно определенная последовательность действий для некоторого исполнителя, выполняемых по строго определенным правилам и приводящих через некоторое количество шагов к решению задачи.

Исполнитель алгоритмов определяет элементарные действия, из которых формируется алгоритм. Отдельные действия, составляющие алгоритм, называются операциями. При этом под операцией понимается как какое-то единичное действие, например, сложение, так и группа взаимосвязанных действий.

Свойства алгоритма:

Определенность – выполнив очередное действие, исполнитель должен точно знать, что ему делать дальше.

Дискретность – прежде, чем выполнить определенное действие, надо выполнить предыдущее.

Массовость – по одному и тому же алгоритму решаются однотипные задачи и неоднократно.

Понятность – алгоритм строится для конкретного исполнителя человеком и должен быть ему понятен. Это облегчает его проверку и модификацию при необходимости.

Результативность – алгоритм всегда должен приводить к результату.

Процесс составления алгоритмов называют алгоритмизацией.

Алгоритм, реализующий решение задачи, можно представить различными способами: с помощью графического или текстового описания, в виде таблицы значений. Графический способ представления алгоритмов имеет ряд преимуществ благодаря визуальности и явному отображению процесса решения задачи. Алгоритмы, представленные графическими средствами, получили название визуальные алгоритмы.


Разветвленные алгоритмы в своем составе содержат блок условия и различные конструкции ветвления. Ветвление - это структура, обеспечивающая выбор между альтернативами.

 
 

Альтернатива - это нелинейная управляющая конструкция, не содержащая повторений. Она предназначена для описания различных процессов обработки информации, выбор которых зависит от значений входных данных.

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...