|
-1 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 106
|
|
Вычисление положения точек относительно вектора направления, зная координаты точки и угол02.11.2015, 13:49. Показов 11773. Ответов 12
Метки нет (Все метки)
Здравствуйте! Разрабатываю игру, в игре есть точка с определенными координатами и направление точки( то есть куда смотрит ГГ (он и есть точка))
1) нужно найти заданное количество точек (их координаты), которые располагаются на прямой перпендекуляроной направлению "точки" и проходящей через эту точку. (при этом я задаю расстояние, на котором находится точка от ГГ) 2) нужно найти заданное количество точек (их координаты), которые располагаются на прямой перпендекуляроной направлению "точки" и находящиеся на расстоянии от точки .(при этом я задаю расстояние, на котором находится точка от ГГ)
0
|
|
| 02.11.2015, 13:49 | |
|
Ответы с готовыми решениями:
12
Значение вектора направления повернутого на угол относительно другого вектора Как найти координаты вектора, зная длину и угол?
|
|
-1 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 106
|
|
| 02.11.2015, 14:32 [ТС] | |
|
расстояния равные между точками проходящими по прямой перпендикулярной направлению "точки" (вектора)
Добавлено через 40 минут начала координат не в точке, а в левом вверхнем угле экрана
0
|
|
|
Модератор
|
|
| 02.11.2015, 14:49 | |
|
Исходя из скалярного произведения находишь 2 вектора, перпендикулярных к вектору направления гг. Далее умножаешь эти вектора на нужную величину и находишь координаты точек. Для второго случая, если я правильно понял, прибавляешь нужный вектор сдвига, который находишьумножением на вектор направления гг.
0
|
|
|
-1 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 106
|
|
| 02.11.2015, 15:00 [ТС] | |
|
Здравствуй Дорогой The trick, Всегда рад тебя видеть! Пожалуйста, напиши конкретнее, именно какие уравнения, как школьнику.. Я очень плохо дружу с геометрией. А как раз встал на этом месте, а на деле это малая часть всего, чего еще стоит сделать, но геометрия и алгебра , подводят....
Мне не известен сам вектор, а только его поворот, на рисунке он равен 315 градусам и координаты точки. Буду очень тебе благодарен!
0
|
|
|
Модератор
|
|
| 02.11.2015, 15:09 | |
|
Если известен только угол, то вектор направления можно найти как {cos a; sin a}, где a - угол. Скалярное произведение перпендикулярных векторов равно нулю, для перпендикулярного вектора нужно просто поменять местами координаты и у одной из них поменять знак.
0
|
|
|
-1 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 106
|
|
| 02.11.2015, 16:25 [ТС] | |
|
The trick, это даже без разницы где находится центр отсчета?
0
|
|
|
-1 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 106
|
|
| 02.11.2015, 16:44 [ТС] | |
|
The trick,
координаты точки к примеру равны (3.2) угол к примеру равен 270 гр x1=cos(270) y1=sin(270) направляющий вектор равен (0,-1) получается 1 точка (1,0) получается 2 точка (-1,0) а если точек больше ? как тут учитывать положение точки ГГ? и расстояние которое мне нужно от точки ГГ? Добавлено через 3 минуты The trick, что если мой герой находится по координатам х=254 у=454 нужно найти. что обсуждается вверху, чтобы расстояние было от ГГ до точек на расстоянии 30 каких либо едениц (по существу, пикселей)?
0
|
|
|
Модератор
|
|||
| 02.11.2015, 16:54 | |||
Сообщение было отмечено smsgeorge как решение
РешениеВсе вычисления идут относительно координат игрока, так что принимай за них {0; 0}, просто итог потом просуммируешь с координатами. Если направление равно d (0, -1), то два перпендикуляра будут a (-1, 0) и b (1, 0). Находим приращение координат для нужного расхождения A = 30 * a и B = 30 * b. Заводишь цикл сколько нужно точек, к примеру 3 в каждую сторону a1 = A * 1, b1 = B * 1 a2 = A * 2, b2 = B * 2 a3 = A * 3, b3 = B * 3 Теперь полученные точки прибавляешь к позиции игрока p (254; 454) для получения координат на игровом поле.
1
|
|||
|
-1 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 106
|
|
| 03.11.2015, 08:44 [ТС] | |
|
The trick, огромная благодарность тебе! сегодня буду реализовывать. Слушай, еще такой вопрос возник. У меня есть ГГ (точка с координатами) и направление куда он повернут, есть 2 точка, нужно определить угол поворота до точки. По существу имеем, ГГ (координаты) угол поворота ГГ и 2 точку на которую нужно определить угол поворота.
0
|
|
|
Модератор
|
|
| 03.11.2015, 10:52 | |
Сообщение было отмечено smsgeorge как решение
Решение
Найти можно вычислив арккосинус скалярного произведения вектора направления игрока и вектора цели. Оба вектора должны быть нормированы. Это вернет угол в диапазоне от 0..π.
1
|
|
|
-1 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 106
|
|
| 03.11.2015, 17:13 [ТС] | |
|
Благодарю!
Добавлено через 15 минут The trick, Благодараю. а если мне угол нужен больше 180
0
|
|
|
Модератор
|
||||||
| 03.11.2015, 20:34 | ||||||
|
Ну угол между векторами не может быть больше 180 грудусов. Для нахождения значения со знаком, сперва нужно уточнить направление отсчета, для этого нужно ввести 3-й вектор. К примеру ты можешь найти перпендикуляр к вектору ГГ и посчитать скалярное произведение с ним. Какой из двух перпендикуляров ты выберешь в ту сторону и будет считаться угол. Но если тебе нужен именно угол, то можешь воспользоваться функцией atan2, она возвращает угол с учетом знака относительно оси абсцисс.
2
|
||||||
| 03.11.2015, 20:34 | |
|
Помогаю со студенческими работами здесь
13
Найти координаты точки, зная расстояние до других точек Как найти вектор направления тела, зная угол поворота? Вычисление времени ,зная координаты по осям x,y,z после каждого передвижения ,и, соответственно зная скорость Найти угол направления к точки в 2D плоскости Найти угол направления к точки в 2D плоскости Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|