Математический движок определения и просчета коллизий геометрических фигур на декартовой системе координат
Описание классов
DOMLineSegment
Отрезок линии, геометрический самописный класс
конструктор (DOMPoint p1, DOMPoint p2)
свойства:
DOMPoint p1;
DOMPoint p2;
методы:
Dx() - расстояние между точками по X
Dy() - расстояние между точками по Y
Collision(obj) - определяет наличие столкновения с одним из геометрических объектов
ConvertToDOMPointArray() - возвращает точки в виде массива
Clone() - возвращает копию объекта
DOMLine
Линия, геометрический самописный класс
конструктор (DOMPoint p1, DOMPoint p2)
свойства:
DOMPoint p1;
DOMPoint p2;
методы:
Dx() - расстояние между точками по X
Dy() - расстояние между точками по Y
Collision(obj) - определяет наличие столкновения с одним из геометрических объектов
ConvertToDOMPointArray() - возвращает точки в виде массива
Clone() - возвращает копию объекта
статические методы:
DOMLine.GetCollisionInfo( objLine1, objLine2) - возвращает информацию о колизии двух линий а также отрезков по которым они строились.
return {
isInfinityCollision - флаг говорящий о на наличии бесконечного ряда точек пересечения
isCollision - в случае если обнаружен бесконечный ряд точек пересечения будет true если на линиях пересеклись отрезки, либо false если нет.
в случае если НЕТ бесконечного ряда точек пересечения то будет true если есть конкретное пересечение, либо false если пересечения нет.
Px, Py - координаты единственной точки пересечения, если присутствует бесконечный ряд то значения будут NaN
t1, t2 - коэфичент движения по проекциям осей, t1 - вдоль первой линии, t2 - вдоль второй линии,
отображающие "время" точки пересечения, в случае с бесконечным рядом будут NaN
соответственно "время" от [0;1] - означает что Px, Py находится на отрезке прямой (t1 первой прямой, t2 второй прямой)
isParallel - флаг говорящий что линии расположены параллельно
};
DOMPoint
Точка, геометрический встроенный класс
конструктор (x,y)
методы:
Collision(obj) - определяет наличие столкновения с одним из геометрических объектов
GetAngle(point) - возвращает угол между двумя точками DOMPoint, стоит помнить что ось Y перевернута и угол в 45' будет смотреть в право вниз
GetLength(point) - возращает расстояние между двумя точками
GetRadialPoint(angle, length) - возвращает новую точку которая находится относительно текущей на указанном угле и дистанции
angle - угол
length - расстояние от текущей точки до новой
Clone() - возвращает копию объекта
GetVector(point) - возвращает вектор построенный между двумя точками
DOMQuad
Четырех угольник (не должен быть вывернутым иначе работать не будет нормально Collision), геометрический встроенный класс
конструктор (DOMPoint p1, DOMPoint p2, DOMPoint p3, DOMPoint p4)
свойства:
DOMPoint p1;
DOMPoint p2;
DOMPoint p3;
DOMPoint p4;
методы:
Collision(obj) - определяет наличие столкновения с одним из геометрических объектов
ConvertToDOMPointArray() - возвращает точки в виде массива
ConvertToDOMLineSegmentArray() - возвращает массив DOMLineSegment описывающий текущий четырехугольник
Clone() - возвращает копию объекта
DOMRect
Прямоугольная горизонтальная область, геометрический встроенный класс
конструктор (x,y, width, height)
свойства:
x
y
width
height
методы:
Collision(obj) - определяет наличие столкновения с одним из геометрических объектов
ConvertToDOMPointArray() - возвращает точки в виде массива
ConvertToDOMLineSegmentArray() - возвращает массим DOMLineSegments сторон прямоугольной области
ConvertToDOMQuad() - возвращает объект DOMQuad описывающий туже самую область
Clone() - возвращает копию объекта
DOMMatrix
Матрица трансформации, встроенный класс
конструктор ()
на самом деле конструкторов у неё несколько, читайте документацию, конструктор без параметров возвращает изначальную матрицу которая не изменяет координаты
свойства:
смотри документацию
методы:
DOMPoint transformPoint( DOMPoint ) - встроенный метод, который преобразовывает входящую точку в трансформированную (смотри документацию)
DOMMatrix invertSelf() - встроенный метод, возвращает обратную матрицу (тоесть матрицу которая выполняет обратное действие)
GetAngle() - возвращает угол в радианах, стоит помнить что ось Y перевернута и угол в "45'" будет смотреть в право в низ и далее по часовой стрелке.
Clone() - возвращает копию объекта
DOMVector
Вектор смещения, самописный класс
конструктор ()
свойства:
dx - смещение по X (работает как get и set)
dy - смещение по Y (работает как get и set)
angle - угол смещения (работает как get и set)
length - расстояние до dx,dy (работает как get и set)
методы:
SetOffset( dx, dy ) - задает dx и dy, автоматически считает расстояние и угол
SetRadial( angle, length ) - задает angle, length, автоматически считает dx, dy
Clone() - возвращает копию объекта
Описание
Математический движок определения и просчета и определения коллизий геометрических фигур на декатовой системе координат