Информатика. 10 класс. Базовый уровень. Угринович Н.Д.

Учебное издание ориентировано на преподавание информатики на базовом уровне в 10 классах общеобразовательных организаций. Рассматриваются такие темы, как информация и информационные процессы, информационные и коммуникационные технологии, основы алгоритмизации и программирования. Большое внимание уделяется формированию умений и навыков в процессе выполнения практических компьютерных работ. Учебное издание входит в учебно-методический комплект по информатике для 10-11 классов Н. Д. Угриновича наряду с учебным изданием для 11 класса, примерной рабочей программой и методическим пособием для учителя.

Информатика. 10 класс. Базовый уровень. Угринович Н.Д.

Информатика. 10 класс. Базовый уровень. Угринович Н.Д.

РАБОТА С ГРАФИКОЙ В DELPHI

1. Графические возможности Delphi. В Delphi имеют широкие возможности для работы с графикой. У ряда объектов есть свойство

Canvas (полотно, поверхность), которое само считается объектом. Используя его методы и свойства, можно рисовать различные фигуры.

Например, для того, чтобы нарисовать прямоугольник в окне приложения, используем оператор Forml. Canvas. Rectangle (10, 20, 200, 100);. A List boxl .Canvas .Ellips (0, 10, 60, 50); в ListBox 1 рисует эллипс, расположенный внутри прямоугольника, полуоси которого равны 30 и 20, а концы расположены в точках (0, 10) и (60, 50).

Для просмотра данных форм на экране создадим ещё одно приложение. Вставим в него объекты Button и ListBox. Дважды нажав на кнопку Buttonl, на место курсора введём два оператора: Forml.Canvas.Rectangle(10, 20, 200, 100); ListBoxl.Canvas.Ellips(0, 10, 60, 50); Если открыть приложение и нажать на кнопку, то на экране появится прямоугольник и эллипс. Как видно из рисунка, начало отсчета находится в левом верхнем углу объекта. Указываются сначала координата горизонтальная, затем вертикальная:

2. Объекты Image и Shape. В Delphi для работы с графикой имеются специаль­ные объекты управления. Это Image (рисунок, снимок) и Shape (форма), которые расположены в томе Additional (дополнительной) панели объектов:

В объектах Canvas (полотно) создаётся графиком с помощью свойств, способов и объектов предшественников. Основными рабочими инструментами Canvas являются Реп (карандаш) и Brush (кисть). С помощью Реп рисуются линии. A Brush используется для покраски полей.

Основными свойствами Pen (карандаш) являются Width (ширина), Style (стиль) и Color (цвет). Оператор Imagel.Canvas.Pen.Width:=5; устанавливает величину ширины линии, равную 5 пикселям.

Свойство Style изменяет вид рисуемых линий. Он может быть равным заранее известным значениям следующих постоянных:

1. psSolid — непрерывный (заданный).

2.  psDash — штрих.

3.  psDot -точки.

4.  psDashDot — тире и точка.

5.  psDashDotDot — тире, точка и точка.

6.  psClear — скрытый.

Оператор, меняющий стиль карандаша, может быть вида

Imagel.Canvas.Pen.Style:=psDash;.

Свойство Color (цвет) объекта Pen (карандаш) устанавливает цвет рисуемой линии. И в этом свойстве тоже можно пользоваться заданными постоянными. К примеру, clBlack (чёрный, задано), clWhite (белый), clBlue (синий), clGreen (зелёный), clRed (красный), clYellow ( ), clGrey (серый), clSilver (серебрянный, clAqua (голубой) и еще более десятка постоянных.

Оператор Imagel. Canvas . Pen. color: =clRed; меняет цвет рисуемой линии на красный. В Delphi можно использовать более 16 миллионов цветов. Все эти цвета получаются путём смешивания трёх основных цветов: красного, зеленого и синего.

Для каждого из основных цветов выделяется один байт. В этих трёх байтах можно хранить 224=16777216 цветов. Порядковый номер цветов удобно писать в 16-ной системе счисления. В данной системе счисления трём байтам соответствует шестизначное число. Здесь последние две ячейки соответствуют красному цвету, две ячейки посередине — зелёному и левые две ячейки — синему цвету: $BBGGRR (здесь ВВ числа, соответствующие синему цвету, GG -зелёному, RR — красному.

Например, синий цвет — $FF0000, зелёный $00FF00, красный — $0000FF,      — $00FFFF,     цвет — $FF00FF. Если работать с шестнадцатиричными числами неудобно, то можно использовать стандартную функцию RGB(RR, GG, ВВ).

У этой функции три аргумента, первый из них соответствует красному, второй — зелёному, третий — синему. Значения этих аргументов могут быть от 0 до 255. Например, RGB (0, 0, 0) выдаёт черный цвет, RGB(255, 255, 255) — белый, RGB(0, 255, 255) — голубой,

RGB(127, 0, 0) — красный, RGB (0, 127, 0) — зелёный, RGB(200, 200, 0)

Цвет объекта Brush (кисть) также определяется таким образом. Его стили можно можно изменить следующими постоянными:

       bsSolid — гладкий (сплошной).

        bsClear — скрытый.

        bsBDiagonal — по боковой диагонали.

        bsFDiagonal — по главной диагонали.

        bsCross — решётчатый.

        bsDiagCross — решётка по диагонали.

        bsHorizontal — горизонтальный.

        bsVertical — вертикальный.

3.     Свойство Pixels (пикселей). С помощью свойства Pixels Canvas можно управлять цветом любой точки в области рисунка. В данном свойстве пиксели образуют двухмерный массив. Для обращения к пикселю, расположенному в 100 столбце на 50 строке, достаточно показать его индекс Pixels [100,50]. Если мы хотим поменять цвет данного пикселя на красный, используем оператор Imagel.Canvas.Pixels[100, 50] :=RGB(255, 0, 0);.

А оператор PC :=Imagel. Canvas . Pixels [100, 50] ; даёт возможность сохранить цвет пикселя в переменной PC.

4.    Методы MoveTo va LineTo. В процессе рисования чертежа часто используется отрезок прямой. Какими возможностями обладает Delphi? Методы MoveTo (перейти к…) и LineTo (рисовать до…) оъекта Canvas служат для рисования линий. Они оба имеют по два аргумента с целыми значениями. С помощью этих аргументов указываются координаты точек на рисунке.

Для того, чтобы начертить отрезок, концы которого расположены в точках (xl, yl) и (х2, у2), используется метод MoveTo(xl, yl), который совершает переход к первому концу отрезка, затем методом Lineto(x2,y2) прочерчивается отрезок до второго конца. Графический курсор переходит к точке (х2, у2). Если ещё раз применить метод Lineto(x3,y3), прочерчивается линия с концами в точках (х2, у2) и (хЗ, уЗ) и графический курсор переходит к точке (хЗ, уЗ).

Практическое использование этих методов мы рассмотрим на примере приложения под названием Диагонали правильного N угольника. Создадим в Delphi новое приложение и вставим в него по одному объекту Image, SpinEdit и Button.

Заголовок Button меняем на Рисовать, а заголовок SpinEdit на N. Наибольшим значением SpinEdit (MaxValue) берём число 40, наименьшим значением (MiriValue) — число 3, текущим значением (Value) число 7. Высотой Image (Height) и шириной (Width) берем число 500.

Дважды нажав на кнопку Button, введём в него команду diagonal. Такой команды пока нет, именно поэтому данную процедуру введём прежде процедуры TForml.Buttonl Click:

В эту процедуру ввели шесть переменных. Переменные і и j используются для управления циклом. В переменной п хранится количество углов многоугольника, в переменной г хранится радиус круга, нарисованного вокруг правильного многоугольника. В массивах х и у хранятся координаты вершин многоугольника.

Операторов в теле процедуры можно разделить на три части. В первой части четыре оператора, первый из которых получает радиус круга, равный половине высоты рисунка. Второй оператор обеспечивает рисование линий красным цветом. Третий оператор до рисования очищает рисунок. Четвертый оператор определяет количество углов многоугольника.

Во второй части есть только один оператор цикла. В нём определяются координаты вершин многоугольника: x[i] и у[і].

В третьей части тоже имеется один оператор цикла, который рисует стороны и диагонали многоугольника. Загрузим приложение. Нарисуем сначала правильный семиугольник, затем правильный 28 угольник. Они приведены ниже:

ЗАПОМНИТЕ !

Элемент Canvas имеется во многих объектах и в нем можно рисовать.

5. Создайте приложение, которое нарисует на экране три эллипса синего, серебряного и жёлтого цветов.

ДОМАШНЕЕ ЗАДАНИЕ

1.  Перечислите основные свойства объекта Карандаш.

2.   Какими свойствами обладает объект Щётка?

[свернуть]

Предложения интернет-магазинов.