Вопросы с тегом «geometry»

Раздел математики занимается вопросами формы, размера, взаимного расположения фигур и свойств пространства.

39
Обнаружение столкновения шестиугольника для быстро движущихся объектов?

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

38
Я вращаю объект по двум осям, так почему же он продолжает вращаться вокруг третьей оси?

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

37
Как я могу измерить прямолинейность нарисованной линии?

Я работаю над игрой, которая требует, чтобы игроки рисовали линию от точки A (x1, y1) до другой точки B (x2, y2) на экране устройства Android. Я хочу выяснить, насколько хорошо этот рисунок подходит к прямой линии. Например, результат 90% будет означать, что рисунок почти идеально соответствует...

32
Почему мой объект движется быстрее на 45 градусов, чем на 90 градусов?

В моей игре есть объекты, которые движутся быстрее на 45 градусов, чем на 90 градусов. Каждый объект имеет Точка (х, у) позиция Направление Vector2D (x, y) Int скорость И что я делаю во время обновления, так это то, что новая позиция рассчитывается как: position.x += direction.x * speed position.y...

31
Как вы превращаете куб в сферу?

Я пытаюсь сделать четырехугольную сферу на основе статьи , которая показывает результаты, подобные этим: Я могу сгенерировать куб правильно: Но когда я конвертирую все точки по этой формуле (со страницы, указанной выше): x = x * sqrtf(1.0 - (y*y/2.0) - (z*z/2.0) + (y*y*z*z/3.0)); y = y * sqrtf(1.0...

29
Как рассчитать расстояние между точкой и выровненным по оси прямоугольником?

У меня есть 2D-прямоугольник с позициями x, y, высотой и шириной, а также случайно расположенная точка рядом. Есть ли способ проверить, может ли эта точка сталкиваться с прямоугольником, если он ближе определенного расстояния? Представьте себе невидимый радиус за пределами этой точки,...

27
Если трехмерный вектор представляет точку, как она может иметь длину?

Я пытаюсь понять векторную арифметику (и особенно ее использование в движке Unity). Я не могу понять, как вектор может иметь длину (величину), даже если он представляет только точку (положение и направление)? Означает ли это, что величина - это просто расстояние от начальной точки (0, 0, 0)? Или я...

26
Есть ли 3D-эквивалент карт с гексами?

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

25
Как вы программно генерируете сферу?

Может кто-нибудь объяснить, как можно было бы создать сферу, вершины, индексы и текстурные координаты? Существует удивительное отсутствие документации о том, как это сделать, и это то, что я заинтересован в изучении. Я пробовал очевидное: поиск в Google, поиск на gamedev.net и т. Д. Однако ничто не...

25
Является ли манхэттенское расстояние монотонным, когда используется как эвристическая функция?

У меня есть квадратная карта. Допускается только горизонтальное и вертикальное движение (без диагоналей). Стоимость движения всегда 1. Я реализую алгоритм A * на этой карте, используя манхэттенское расстояние в качестве эвристики расстояния. Согласна ли эта эвристика? Можно ли избежать проверки...

20
Как я могу спроецировать 3D точку на 3D линию?

Допустим, у меня есть линия, определяемая двумя точками Aи Bобеими в форме (x, y, z). Эти точки представляют собой линию в трехмерном пространстве. У меня также есть точка P, определенная в том же формате, которой нет в строке. Как бы я рассчитал проекцию этой точки на линию? Я знаю, как сделать...

19
Как я могу определить, движется ли объект CW или CCW по соединенному пути?

Допустим, мы имеем зубчатую форму: И два существа движутся по его контуру. Затем мы полностью сглаживаем форму, вытягивая углы. Мы получаем это: Теперь легко увидеть, что Orange двигается CW, а зеленый CCW. Как я могу сказать, в каком направлении они движутся, не сглаживая форму? Новое изображение...

18
Как я могу преобразовать щелчок мыши в луч?

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

17
Как рассчитать угловые позиции / отметки повернутого / наклоненного прямоугольника?

У меня есть два элемента, 2D точка и прямоугольная область. Точка представляет середину этой области. Я также знаю ширину и высоту этой области. И область наклонена на 40 ° относительно сетки. Теперь я хотел бы рассчитать абсолютные позиции каждой угловой метки этой наклонной области, используя...

17
Как рассчитать площадь неправильной формы?

У меня есть объект комнаты, определенный набором циклических отрезков, для которого мне нужно вычислить площадь. Классы могут быть описаны следующим образом (в псевдокоде): class Point { float x; float y; ... float distanceFrom(Point p); } class Segment { Point start; Point end; ... float length();...

16
Как разрешить столкновения сложных фигур с помощью SAT?

SAT - достойный способ определения столкновений между произвольными выпуклыми многоугольниками. Вы даже получите вектор, необходимый для разрешения столкновения. Чтобы разрешить столкновения между сложными (невыпуклыми) формами, я думал о некоторой сложной форме, которая состоит из нескольких...

16
Как использовать точечное произведение, чтобы получить угол между двумя векторами?

Я учусь использовать нормализованные векторы в моих играх. Я узнал, что для того, чтобы узнать угол между двумя векторами, я могу использовать скалярное произведение. Это дает мне значение от -1 до 1, где 1 означает, что векторы параллельны и направлены в одном направлении (угол составляет 180...

15
Процедурное генерирование здания определенной площади

Я и команда работаем над созданием фабричной игры, которая дает игроку случайную фабрику в начале игры. Чтобы попытаться убедиться в том, что существует чувство «справедливости», в идеале случайно сгенерированная фабрика должна иметь площадь в пределах нескольких единиц (значения заполнителя) 30....

14
Алгоритм создания соседних треугольников

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