Язык программирования Java




Вопросы к экзамену КГиГМ

Преобразования координат. Линейные, аффинные и проективные отображения

 

1. Переход к новому базису: его матрица, связь между старыми и новыми координатами вектора. Матрица композиции переходов и обратного перехода.

 

 

2. Линейное отображение: его матрица, связь между координатами образа и прообраза. Матрица отображения в другом базисе. Матрица композиции отображений.

 

 

 

3. Точечные аффинные пространства. Координаты в аффинных пространствах. Переход к новому реперу, связь между старыми и новыми координатами точки.

 

 

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

 

 

 

5. Однородные координаты. Матрица перехода к новому реперу, матрица аффинного отображения и обратного отображения в однородных координатах.

 

6. Аффинные комбинации точек (барицентры), их независимость от выбора системы координат. Деление отрезка в данном отношении как нахождение аффинной комбинации.

 

7. Барицентрическая система координат. Связь между обычными и барицентрическими координатами. Инвариантность аффинных комбинаций точек при аффинных отображениях.

 

8. Простые аффинные отображения на плоскости и в пространстве: поворот вокруг начала (осей) координат, симметрия относительно осей координат (координатных плоскостей), масштабирование, сдвиг, параллельный перенос, проекция вдоль осей координат. Их матрицы, геометрический смысл коэффициентов матриц.

 

9. Представление аффинного преобразования в виде композиции простых преобразований с целью нахождения его матрицы, примеры.

 

 

10. Преобразование мировых координат в экранные, примеры.

 

 

11. Классификация и свойства параллельных проекций. Матрица косоугольной проекции вдоль вектора (a,b,c) (c 6= 0) на плоскость xy. (Домашнее задание 4, №3.)

 

12. Матрица проекции на плоскость Ax+By+Cz = 0 вдоль вектора (p,q,r). (Домашнее задание 4, №5.)

 

13. Матрица ортогональной проекции. Ортогональная изометрическая проекция.

 

14. Матрица ортогональной проекции. Ортогональная диметрическая проекция. (Домашнее задание 4, №2.)

 

 

15. Кавальерная и кабинетная косоугольные проекции. Фронтальная изометрическая, горизонтальная изометрическая, фронтальная диметрическая проекции.

 

16. n-мерное проективное пространство, построенное из n + 1-мерного линейного пространства. Проективная система координат. Проективные отображения, их матрицы.

 

 

17. Пополненные аффинные плоскость и пространство. Формула проективного отображения в аффинных координатах. Аффинное отображение как частный случай проективного.

 

 

18. Доказательство того, что центральная проекция есть проективное отображение. Матрица центральной проекции проективного пространства на плоскость.

 

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

 

 

Язык программирования Java

20. Объектно-ориентированное программирование на Java: классы, объекты, поля, методы, конструкторы, статические поля и методы.

 

Класс - это набор полей (переменных) и методов (функций).

public class Point {

public int x; // поля

public int y;

// конструктор

public Point(int x, int y) { // нет возвращаемого типа

this.x = x; this.y = y;

}

// методы

public void move(int newX, int newY) {

x = newX; y = newY;

} // нет точки с запятой

public int getX() {

return x;

}

} // нет точки с запятой

Если конструктора нет то Java определяет конструктор по умолчанию без аргументов, но он

требует скобки: new Point();

Объект класса Point создается вот так:

Point p = new Point(100, 200);

Статические поля и методы относятся к классу в целом, а не к отдельным объектам.

private static int numObjects = 0;

public static int getNumObjects(){ return numObjects; }

 

21. Наследование в Java: классы, абстрактные классы и интерфейсы. Примеры из пакета java.awt.geom. Использование подкласса JPanel для рисования.

 

class D extends C{

// поля и методы D

}

Подкласс D расширяет надкласс (родительский, базовый класс) C.

Класс Object: вершина иерархии.

Ключевое правило ООП: объекты подкласса считаются объектами родительского класса

C x = new D(arguments);

Любой класс можно объявить абстрактным с помощью ключевого класса abstract. Нельзя создавать объекты абстрактного класса, но можно объявить подклассы. Абстрактный класс – это “пересечение” функциональности своих подклассов.

abstract void abstractMethod(int argument);

Если есть хотя бы один абстрактный метод, то класс должен быть объявлен абстрактным.

Интерфейс: похож на абстрактный класс, у которого все методы абстрактные. Может иметь константы(static final). По умолчанию члены интерфейса открытые(public). Для подкласса интерфейса вместо extends используется implements (“реализует”).

Важно: класс может реализовывать несколько интерфейсов.

Подкласс JPanel

import java.awt.*;

import javax.swing.*;

public class DrawingPanel extends JPanel {

public DrawingPanel() {

setBackground(Color.WHITE);

setOpaque(true);

// Можно сказать setPreferredSize(new Dimension(500, 500));

// или переопределить getPreferredSize ниже

}

 

@Override public Dimension getPreferredSize() {

return new Dimension(500, 500);

}

@Override protected void paintComponent(Graphics g) {... }

}

 

Примеры из пакета java.awt.geom? Я хз что он хотел за примеры.

 

 

22. Векторная графика в Java: пакет java.awt.geom, интерфейс java.awt.Shape, классы java.awt.Graphics2D, java.awt.geom.Path2D и java.awt.geom.AffineTransform.

 

Пакет java.awt.geom

- мировая система координат

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

- координаты типа float или double

Рисование на панели осуществляется в методе

@Override

protected void paintComponent(Graphics g) {... }

Graphics2D является подклассом Graphics (оба класса абстрактные)

Аргумент paintComponent() является на самом деле объектом подкласса Graphics2D

Кроме информации в Graphics, содержит AffineTransform (аффинное отображение) и Stroke (перо)

Некоторые методы класса Graphics2D

void setStroke(Stroke s)

void draw(Shape s)

void fill(Shape s)

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

Будем использовать javax.swing.Timer

Конструктор: Timer(int delay, ActionListener listener)

delay: интервал перед первым срабатыванием и между последующими срабатываниями, в миллисекундах

Интерфейс java.awt.event.ActionListener объявляет метод void actionPerformed(ActionEvent e)

Объект класса, реализующего ActionListener, есть обработчик событий, или «слушатель» (listener)

Его метод actionPerformed() вызывается при каждом срабатывании таймера

Сплайны

24. Полярные формы, их существование. Построение параметрических полиномиальных кривых с помощью алгоритма де Кастельжо.

 

 

25. Получение полиномов Бернштейна при вычислении полярных форм. Определение кривых Безье для заданного набора контрольных точек с помощью полиномов Бернштейна.

 

 

 

26. Свойства полиномов Бернштейна: график, начальная и конечная точки, неотрицательность на [0,1], симметричность (), равенство суммы единице.

 

 

27. Свойства кривых Безье: принадлежность выпуклой оболочке контрольных точек, рекурсивное свойство, инвариантность при аффинных отображениях.

 

 

28. Производная кривой Безье.

29. Увеличение степени кривой Безье.

 

Допустим была кривая с такими опорными точками: p0, p1, p2, p3.

Тогда при повышении степени получим эти опорные точки q0, q1, q2, q3, q4.

q0 = p0

q1=3/4 p1 + 1/4 p0

q2 = 1/2 p2 + 1/2 p1

q3 = 1/4 p3 + 3/4 p2

q4 = p3

 

 

30. Кубический сплайн. Вычисление производных в промежуточных узлах.

 

 

31. Кубический базис Эрмита. Матрицы перехода между этим базисом и кубическим базисом Бернштейна, а также стандартным (т.е. степенным) базисом.

 

Триангуляция

32. Диаграмма Вороного для множества точек. Ячейка точки, её представление в виде пересечения полуплоскостей, выпуклость ячейки. Характеризация вершин диаграммы Вороного.

 

 

33. Мотивация для триангуляции Делоне. Допустимые триангуляции. Характеризация допустимых триангуляций в терминах описанных окружностей.

 

 

34. Допустимость оптимальной триангуляции. Допустимость триангуляции, двойственной к диаграмме Вороного.

 

 

 

 

35. Итеративный алгоритм построения триангуляции Делоне, примеры.

Там брался граф и бралась как-то точка. Далее по часовой стрелке рассматривались треугольники и если в окружности, построенного по вершинам треугольника не было точек, то он норм и шли дальше. Если нет, то меняли диагональ 4-х угольника на другую и проверяли. И так далее.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2021-04-24 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: