Научная статья на тему 'Использования Java для проверки компетенций по геометрическому моделированию'

Использования Java для проверки компетенций по геометрическому моделированию Текст научной статьи по специальности «Математика»

CC BY
417
107
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ГЕОМЕТРИЧЕСКОЕ МОДЕЛИРОВАНИЕ / GEOMETRIC MODELING / ЭЛЕКТРОННОЕ ОБУЧЕНИЕ / ELECTRONIC EDUCATION / JAVA / АФФИННОЕ ОТОБРАЖЕНИЕ / AFFINE TRANSFORM

Аннотация научной статьи по математике, автор научной работы — Макаров Евгений Маратович

Описывается способ использования языка Java в курсе «Компьютерная геометрия и геометрическое моделирование» для проверки компетенции ОПК-4: «Способность находить, анализировать, реализовывать программно и использовать на практике математические алгоритмы, в том числе с применением современных вычислительных систем». Приводятся примеры задач для оценки уровня этой компетенции, и обсуждается, как программирование на Java может использоваться для проверки решений этих задач.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Макаров Евгений Маратович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The article describes the use of Java programming language in teaching the course “Computer geometry and geometric modeling” and assessing the following competence: “The ability to find, analyze, implement and use in practice mathematical algorithms, in particular, using modern computing systems.” Examples of problems for evaluating the level of this competence are given, and using Java programming for checking solutions to these problems is discussed.

Текст научной работы на тему «Использования Java для проверки компетенций по геометрическому моделированию»

Использования Java для проверки компетенций по геометрическому моделированию

Макаров Евгений Маратович Ph.D., старший преподаватель кафедры алгебры, геометрии и дискретной математики Института информационных технологий, математики и механики, Нижегородский государственный университет им. Н.И. Лобачевского, пр. Гагарина, 23, г. Нижний Новгород, 603950, (831)4623361 evgeny.makarov@,itmm.unn.ru

Аннотация

Описывается способ использования языка Java в курсе «Компьютерная геометрия и геометрическое моделирование» для проверки компетенции ОПК-4: «Способность находить, анализировать, реализовывать программно и использовать на практике математические алгоритмы, в том числе с применением современных вычислительных систем». Приводятся примеры задач для оценки уровня этой компетенции, и обсуждается, как программирование на Java может использоваться для проверки решений этих задач.

The article describes the use of Java programming language in teaching the course "Computer geometry and geometric modeling" and assessing the following competence: "The ability to find, analyze, implement and use in practice mathematical algorithms, in particular, using modern computing systems." Examples of problems for evaluating the level of this competence are given, and using Java programming for checking solutions to these problems is discussed.

Ключевые слова

геометрическое моделирование, электронное обучение, java, аффинное отображение

geometric modeling, electronic education, java, affine transform

Введение

В 2011 году в рамках реализации Болонского процесса в России были введены новые федеральные государственные стандарты (ФГОС), важнейшей частью которых является компетентностный подход. Он предусматривает перенос фокуса образования с преподавания и проверки знаний на выработку взаимосвязанных характеристик: знаний, умений, навыков, способностей и личностных качеств [1-4]. Таким образом, результатом обучения должна явиться способность свободно ориентироваться в предметной области, решать профессиональные задачи на основании опыта и при необходимости находить дополнительную информацию.

Компетенции для каждого направления обучения зафиксированы в ФГОС. Для каждой дисциплины формулировки компетенций, вырабатываемых этой дисциплиной, записываются в рабочую учебную программу (РПД). Вместе с ними записывается наполнение компетенции в контексте конкретной дисциплины в виде показателей (индикаторов), а также критерии оценки сформированности компетенции. К РПД прилагается фонд оценочных средств, состоящий из заданий, таких как контрольные работы, тесты, собеседование и проекты, которые служат для проверки всех аспектов формирования компетенции.

В стандарте по направлению бакалавриата 02.03.01 «Математика и компьютерные науки»1 имеется компетенция ОПК-4: «Способность находить, анализировать, реализовывать программно и использовать на практике математические алгоритмы, в том числе с применением современных вычислительных систем». В данной статье описывается предложения по обучению этой компетенции в дисциплине «Компьютерная геометрия и геометрическое моделирование», преподаваемой на третьем курсе в Институте информационных технологий, математики и механики Нижегородского государственного университета им. Н.И. Лобачевского. В рамках этой дисциплины рассматриваются как теоретические вопросы компьютерного моделирования, такие как аффинные и проективные отображения, кривые Безье, и сплайны, так и использование этих понятий при программировании на языке Java. Мы рассмотрим всего лишь одну задачу, умение решать которую можно отнести к ОПК-4: использование аффинных отображений для построения изображений на экране компьютера. В рамках этой задачи к компетенции ОПК-4 можно отнести следующие показатели:

знать определения и основные свойства линейных, аффинных и проективных отображений, формулы наиболее важных отображений;

уметь находить матрицы линейных и аффинных отображений; уметь переводить мировые координаты двумерной фигуры в экранные; владеть навыками построения изображения двумерных и трёхмерных фигур на экране компьютера.

В статье показано, что для овладения этой компетенцией недостаточно знать факты об аффинных отображениях: нужно также уметь использовать их на практике и обладать навыками выбора способа решения практических задач.

Поскольку курс читается на направлении «Математика и компьютерные науки», он в большей степени, чем, скажем, курсы по компьютерной графике на более прикладных направлениях, ориентирован на изучение математических понятий и теорем, лежащих в основе способов изображения объектов. Сделана попытка не просто решить задачу, а связать её с материалом из более ранних курсов по аналитической геометрии и линейной алгебре и строго доказать корректность используемых методов изображения. С другой стороны, знание теоретических основ должно не остаться абстрактным, а послужить обоснованием тех практических соображений, которые используются программистами при использовании графической библиотеки Java.

В следующем разделе содержится напоминание понятий, связанных с аффинными преобразованиями и вводятся необходимые обозначения. Затем мы кратко перечисляем средства векторной графики, имеющиеся в языке Java, и описываем, как заготовки программ, выданные студентам, могут использоваться для проверки решения задач построения изображений. Часть материала ниже основана на учебно-методическом пособии автора [5].

Аффинные преобразования

Будем обозначать реперы на плоскости фигурными буквами, такими как Т, а координаты точки Р в репере Т — через [Р]?. Координаты обычно рассматриваются в виде вектора-столбца.

Как известно, [Р]^ = ^т'^Р^' + \0'\Т, где через обозначена матрица перехода из базиса, входящего в репер Т, в базис репера Т'. Если перейти к

1 Приказ Минобрнауки России от 07.08.2014 №949.

однородным координатам и матрицам размера на единицу больше, то это равенство

можно записать как [-^Ч^7 = , где есть блочная матрица V ^ ^ / ,

называемая матрицей перехода из Т в Т'.

г Dт f

Если J — аффинное преобразование, то Я-П называется матрицей j в

репере Т и обозначается

В более общем случае можно рассмотреть матрицу преобразования по отношению к двум реперам Т и Т'; тогда матрицей / называется

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

матрицы последовательных преобразований записываются справа налево, причём все преобразования рассматриваются в одном

репере. Во втором случае матрицы последовательных переходов

записываются слева направо, но при этом матрица каждого следующего преобразования берётся в предыдущем репере. Для развития навыка построения изображения на экране компьютера имеет большое значение умение выбрать наиболее удобный взгляд на матрицу в конкретной задаче и умение строго объяснить, как происходит преобразование координат из одной системы в другую.

Введём обозначения для стандартных преобразований. Если = (^>еъе2) — ортонормированный репер, то поворот вокруг О на угол а, масштабирование вдоль и е2 с коэффициентами А и Д, соответственно, а также параллельный перенос на вектор с координатами

(х, у)

являются аффинными отображениями со следующими

матрицами в J-.

(cosa -sina 0\ /А 0 0\ /10 х\

sina cosa 0 ,5(А,д)= 0 ¿t 0 , Т(х,у) = 0 1 у (1) 0 0 1/ \0 0 1/ \0 0 1/

Если А или А4 в

S( A,/i)

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

Все задачи, которые рассматриваются в данной статье и используются для развития компетенции ОПК-4, имеют целью перевод координат фигуры в одной системе координат в координаты образа этой фигуры в, возможно, другой системе координат. В качестве важного примера рассмотрим перевод фигуры из мировой системы координат в экранную (window to viewport transformation) [6-8]. Как обычно, начало экранной системы координат расположено в левом верхнем углу экрана или окна, ось х направлена вправо, а ось У — вниз.

Пример 1.

В мировой системе координат, где единицами измерения служат метры, задана фигура, показанная на рис. 1. Требуется изобразить её в окне, имеющем высоту К пикселей, границу шириной Р пикселей и разрешение г пикселей на сантиметр. Изображение должно быть выполнено в масштабе то метров в одном сантиметре и располагаться в левом нижнем углу окна, то есть левый нижний угол фигуры с мировыми координатами (хш,Ут) = (3,1) должен иметь экранные координаты Описанное расположение изображено на рис. 2.

12 10

6 4 2

8 10 12 14 16 18 20

О'

О

Гв2

Рис. 1. Фигура в мировых координатах

re 1

е2

те 1

S = (0,е i,e2) W = (0',ei)ei) Ji = (Р,еье2) J-2 = (P,e'l!e'2)

re2

Рис. 2. Преобразование координат из мировых в экранные

Пусть W и = (0,еье2) — реперы, задающие мировую и экранную системы координат, соответственно. Тогда длины векторов rei и ге2 равны 1 см. Далее, пусть Р— точка с экранными координатами {xs,Vs). Рассмотрим репер W = (0',е'1;е2), где leil = 1^21 = 1/то см и = {xw,yw). Тогда аффинное преобразование /,

переводящее W в W, переводит исходную фигуру в требуемое изображение в окне,

поэтому задача сводится к отысканию

Рассмотрим два дополнительных репера _ (-Р;еъе2) и — (Р, е^е^); ПЙ _ пв г)-^1 г>Ъ

тогда И''. Эти матрицы переходов удобно рассматривать как

матрицы преобразований: ^ и есть матрицы параллельных переносов на векторы {ха,Уа) и (~хт>~Уги), соответственно, поскольку координаты векторов переноса определяются в реперах 5 и

Преобразование, переводящее есть

масштабирование с центром в точке Р и коэффициентами г/т и _т/т. Общая матрица перехода есть

О^, = Т(х„ увЩг/т, -г/т)Г(-®,0, -уш). (2)

Векторная графика в Java

В курсе «Компьютерная геометрия и геометрическое моделирование» язык программирования Java используется как для решения и оценки задач, так и для написания программных проектов. Язык Java является хорошим выбором для работы с графикой по следующим причинам:

он очень популярен;

он обладает собственной библиотека Swing для создания графического интерфейса, которая одинаково работает в разных операционных системах;

Java часто используется во вводных курсах программирования, а если в таких курсах используется C++, то с него достаточно просто перейти на Java;

компилятор, библиотеки и средства разработки на Java являются бесплатными.

Согласно нашему опыту, для того, чтобы дать студентам, изучавшим C++ на младших курсах, достаточно информации для написания программ с графическим интерфейсом на Java, достаточно трёх лекций и трёх практических занятий.

Поскольку студенты все равно должны выучить Java, чтобы писать проекты (используя заготовки преподавателя), написание маленьких программ можно использовать для решения теоретических задач.

К сожалению, даже самые простые программы на Java, использующие графику, содержат немало конструкций, объяснение которых требует время. Так, на рис. 3 показана минимальная программа для рисования. Она может быть предоставлена преподавателем ещё до объяснения тонкостей программирования графического интерфейса, и студентам нужно только добавить код для создания фигур и аффинных отображений, а также собственно для рисования.

Аффинные отображения в Java представляются объектами класса AffineTransform. На рис. 4 приведены основные методы этого класса, меняющие отображение. Чтобы получить объект AffineTransform, содержащий поворот, масштабирование или перенос, можно создать тождественное отображение с помощью конструктора, а затем применить к нему нужный метод.

import java.awt.*; import java.awt.geom.*; import javax.swing.*;

public class Drawing extends JPanel { public Drawing() {

setBackground(Color.WHITE); setOpaque(true);

setPreferredSize(new Dimension(500, 500));

}

@Override

public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g;

g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,

RenderingHints.VALUE_ANTIALIAS_ON); // Код для рисования записывается сюда

}

private static void createAndShowGUI() { JFrame frame = new Jframe("");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(new Drawing()); frame.pack(); frame.setVisible(true);

}

public static void main(String[] args) {

SwingUtilities.invokeLater(Drawing::createAndShowGUI);

}

}

Рис 3. Минимальна программа для рисования

Методы AffineTransform Действие

A = new AffineTransform() A = E (единичная матрица)

A = new AffineTransform(A1) A = Аг

A.concatenate(A1) A = AAi

A.rotate(theta) A = AR{6)

A.scale(x,y) A = AS(x,y)

A.translate(x,y) A = AT(x, y)

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Рис. 4. Методы AffineTransform. Переменная A имеет тип AffineTransform

Для представления фигур в Java имеются классы Line2D (отрезок), Rectangle2D (прямоугольник), Ellipse2D (эллипс), Arc2D (дуга эллипса), а также QuadCurve и CubicCurve (кривые Безье второй и третьей степени, соответственно). К этим названиям добавляется .Double для обозначения классов с координатами,

представленными числами типа double. Кроме того, имеется класс Path2D.Double для представления составных фигур. В нем есть методы moveTo(x, y) для перемещения текущей точки в (х, у), lineTo(x, y) для соединения текущей точки с (х,у) отрезком, а также метод append() для добавления целой фигуры. Аффинное отображение А можно применить к фигуре s вызовом A.createTransformedShape(s).

Использование Java для проверки решения задач про аффинные отображения

Пусть S — репер, задающий экранную систему координат. Невырожденную

матрицу А можно рассматривать как матрицу перехода ^w от S к некоторому реперу W, задающему мировую систему координат. Тогда A.concatenate(A1) вводит новую мировую систему координат с репером W', где ^W' =

Таким образом в окне программы легко задать систему координат используемую в той или иной задаче. Студент может решить задачу по нахождению отображения на бумаге и затем проверить правильность решения, скомпилировав и запустив программу.

Пример 2.

В декартовой системе координат дана прямая I с уравнением у = х + 1. Найти матрицу Si симметрии относительно I в исходной системе координат (рис. 5).

Пусть Т — репер, задающий исходную систему координат, и пусть Т' получается из Т сдвигом на единицу вверх и последующим поворотом на 45°. Матрица искомой симметрии в Т' есть

5(1,-1)

(см. (1)), поэтому согласно хорошо известному факту о матрице отображения в другом репере Si = D S(l, —V)D, где

D = D-p. Матрицу D можно представить с помощью композиции переходов: £> = Д(-тг/4)Т(0,-1). в итоге

Si = Г(0,1)Д(тг/4)Я(1, -1)Д(-7Г/4)Т(0, -1). (3)

Преподаватель высылает студенту или выкладывает на сайт курса файл-оболочку на рис. 3, где в метод paintComponent() вставлен код на рис. 6. Преобразование cs соответствует мировой системе координат, где начало находится в левом нижнем углу окна (метод getHeight ( ) возвращает высоту окна в пикселях), ось У направлена вверх, а единичный отрезок равен 50 пикселям. Программа рисует отрезок из (0) 1) в (4,5), представляющий прямую, относительно которой нужно осуществить симметрию. Также рисуется треугольник с координатами (1.3), (1,4) и (2,4)

в качестве примера фигуры. Отображение at, определение которого студенту нужно закончить, инициализировано тем же преобразованием cs.

AffineTransform cs = new AffineTransform(); cs.translate(0, getHeight()); cs.scale(50, -50);

Path2D.Double s = new Path2D.Double();

s.moveTo(1, 3); s.lineTo(1, 4); s.lineTo(2, 4); s.closePath(); g2.draw(cs.createTransformedShape(new Line2D.Double(0, 1, 4, 5))); g2.draw(cs.createTransformedShape(s)); AffineTransform at = new AffineTransform(cs);

Рис. 6. Заготовка программы в задаче про симметрию относительно прямой

Формула (3) и рисование образа фигуры при отображении записывается в Java в виде кода на рис. 7.

at.translate(0, 1);

at.rotate(Math.PI/4);

at.scale(1, -1);

at.rotate(-Math.PI/4);

at.translate(0, -1);

g2.draw(at.createTransformedShape(s));

Рис. 7. Решение задачи про симметрию относительно прямой

В решении данной задачи можно сделать ряд ошибок, и важно не только избежать их, но и уметь объяснить каждый шаг. Так, матрица Т(0, -1)Д(-тг/4) с перепутанным порядком поворота и параллельного переноса есть матрица перехода из Т' в репер с началом в

(л/2/2,1 - л/2/2)

вместо Т. Кроме того, поскольку матрица преобразования известна в Т', но неизвестна в Т, нужно рассматривать матрицу перехода из Т' в Т, а не наоборот, несмотря на то, что Т задаёт исходную систему координат. Для решения подобной задачи часто требуется несколько попыток.

В качестве решения задачи студент высылает код на рис. 7 или всю программу, а также краткое объяснение формулы (3).

Пример 3.

w

w

V2

e2

e2 ,

О е1 О' е1

Рис. 8. Масштабирование листа формата А4

Отношение высоты к ширине листа бумаги любого формата серии А (например, А4) равно >/2*1,414 Это позволяет в точности разместить две уменьшенные и повёрнутые на 90° копии страницы на одной странице, как показано на рис. 8. Пусть при таком преобразовании точка Р переходит в Р', и пусть заданы реперы = е1 > ег) и = > е1 > е2) с началами в левых нижних углах страниц. Найти матрицу, преобразующую , если размер исходной страницы есть

ю х И в единицах, задаваемых векторами е1 и е2.

Пусть / есть искомое отображение; требуется найти матрицу \f\tj: =

и ' ' К?). Записывая матрицы последовательных переходов слева направо, получаем, что искомая матрица есть

Г(0, Л/2)Д(-7г/2)5(1/>/2,1/^2). (4)

Вместе с задачей студенту даётся заготовка на рис. 9. В ответ он высылает код на рис. 10, рисующий уменьшенную страницу, вместе с объяснением формулы (4). Эта формулу можно получить, рассматривая композицию отображений вместо последовательности переходов к новым реперам, но в любом случае требуется предъявить доказательство правильности полученной матрицы.

Приведём ещё несколько примеров аналогичных задач.

AffineTransform cs = new AffineTransform();

cs.translate(0, getHeight());

cs.scale(1, -1);

double w = 210;

double h = 297;

Rectangle2D.Double page = new Rectangle2D.Double(0, 0, w, h);

g2.draw(cs.createTransformedShape(page));

cs.translate(1.2 * w, 0);

g2.draw(cs.createTransformedShape(page));

AffineTransform at = new AffineTransform(cs);

Рис. 9. Заготовка программы в задаче про поворот страницы

at.translate(0, pageHeight/2); at.rotate(-Math.PI/2);

at.scale(Math.sqrt(2)/2, Math.sqrt(2)/2); g2.draw(at.createTransformedShape(page));

Рис. 10. Решение задачи про поворот страницы

Пример 4.

Дан график функции sina; на отрезке [—7г/2,7г/2]. Найти аффинное преобразование, которое нужно к нему применить, чтобы этот график был нарисован в центре окна размером w х h пикселей, а единичный отрезок занимал 30 пикселей. Также найти преобразования, переводящие исходный график в изображения графиков следующих функций: cosa; на [0,7г]; arcsina; на [—1,1]; arceos ж на [—1,1].

Пример 5.

Метод void drawString(String str, float x, float y) печатает строку str в точке с координатами (х, у). Точка находится непосредственно слева от строки на её базовой линии, как показано на рис. 11. Аффинное преобразование действует на печатаемые символы. Направление текста совпадает с направлением оси Ох мировой системы координат, а буквы направлены в ту сторону от базовой линии, которая противоположна оси Оу. Таким образом, при тождественном аффинном преобразовании буквы расположены обычным образом (а не перевёрнуты).

Требуется нарисовать окружность радиуса г и буквы слова «Окружность», равномерно распределенные вокруг неё. Вертикальная ось букв должна быть направлена к центру окружности, как показано на рис. 11. Расстояние от центра до базовой линии букв равно 1,1г. Найти функцию, которая по номеру г возвращает матрицу преобразования, которое нужно применить перед вызовом drawString(c, 0, 0), где c — г-я буква слова.

У

jZircumference

(х,у)

drawStringO'Circumference", х, у)

Рис. 11. К примеру 5

В качестве более крупного программного проекта по теме аффинных отображений студентам предлагается дописать заготовку программы, которая, аналогично примеру 1, помещает изображение в один из углов или в центр окна (рис. 12). Масштаб изображения в пикселях на сантиметр при этом может быть фиксированным, или изображение может занимать всю ширину или всю высоту окна. Режимы изображения задаются кнопками справа. Код, реализующий графический

интерфейс предоставляется преподавателем, и студенты должны лишь написать код, возвращающий требуемое аффинное преобразование в зависимости от значений переменных, которые соответствуют кнопкам. Так, преобразование (2) получается с помощью следующего фрагмента.

AffineTransform at = new AffineTransform(); at.translate(xs, ys); at.scale(r / m, -r / m); at.translate(-xw, -yw);

Положение • Внизу слева О Внизу справа О Вверху слева О Вверху справа О В центре

Масштаб

□ [фиксированный масштаб ✓] Фиксированное отношение

Рис. 12. Программный проект

Заключение

В статье рассматривается компетенция ОПК-4 «Способность находить, анализировать, реализовывать программно и использовать на практике математические алгоритмы, в том числе с применением современных вычислительных систем» для бакалавриата по направлению «Математика и компьютерные науки». Предложены возможные показатели и описаны оценочные средства для этой компетенции.

Аффинные отображения широко используются при построении изображения на экране компьютера. Теория этих отображений несложная и, как правило, рассматривается в курсах аналитической геометрии и линейной алгебры. Однако одного знания теории недостаточно для развития навыка построения изображения двумерных объектов. Первые попытки изобразить фигуру, заданную в абстрактных мировых координатах, часто приводят к тому, что изображение находится за пределами компьютерного окна или имеет неожиданную форму.

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

забыть, что в матрице поворота нужно изменить знак на побочной диагонали, если ось У направлена вниз.

Для развития навыка решения подобных задач незаменимым является возможность проверить правильность ответа на компьютере. Благодаря тому, что формулы, задающие аффинные отображения, записываются в Java почти так же легко, как на бумаге, есть возможность предоставить студентам заготовку программы, куда нужно только вписать операторы для создания требуемого отображения. Это позволяет студентам проверить себя и делает обучение более наглядным. Преподаватель оценивает фрагменты, присланные студентами (для этого можно запустить полученную программу), а также теоретические объяснения используемых формул. Таким образом, компетенцию ОПК-4 можно развивать дистанционно.

Использовать компьютер для проверки решения задач можно прямо во время собеседования во время промежуточной аттестации, внося изменения в заготовку программы и перекомпилируя её. Так, например, уровень владения навыками ОПК-4 может оценить по количеству попыток решения упражнения в примере 4.

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

Литература

1. Гергель В.П., Гугина Е.В., Кузенков О.А. Разработка образовательного стандарта Нижегородского госуниверситета по направлению «Фундаментальная информатика и информационные технологии» // Современные информационные технологии и ИТ-образование. — 2010. — Т. 1, № 6. — С. 51-60.

2. Ключевые ориентиры для разработки и реализации образовательных программ в предметной области «Информационно-коммуникационные технологии» / И.Ю. Петрова [и др.] // Бильбао. — 2013.

3. Захарова И.В., Кузенков О.А. Опыт реализаций требований образовательных и профессиональных стандартов в области ИКТ в российском образовании // Современные информационные технологии и ИТ-образование. — 2016. — Т. 12, № 3-1. — С. 17-31.

4. Модернизация программ математических дисциплин ННГУ им. Н.И. Лобачевского в рамках проекта МЕТАМАТН / О.А. Кузенков [и др.] // Нижегородское образование. — 2016. — № 1. — С. 4-10.

5. Макаров Е.М. Элементы двумерной графики в Java. — Нижегородский государственный университет им. Н.И. Лобачевского, 2017. — URL: http://www.unn.ru/books/met files/graphics-java.pdf (дата обращения: 21.12.2017).

6. Никулин Е. А. Компьютерная геометрия и алгоритмы машинной графики. — СПб: БХВ-Петербург, 2003.

7. Klawonn F. Introduction to Computer Graphics Using Java 2D and 3D. — 2nd ed. — Springer-Verlag, 2012.

8. Eck D. J. Introduction to Computer Graphics / Hobart and William Smith Colleges. — 2016. — URL: http://math.hws.edu/graphicsbook (дата обращения: 21.12.2017).

i Надоели баннеры? Вы всегда можете отключить рекламу.