|
|
Модератор форума: Slon |
Форум РЕДАКТОР - ArmA 2 Скрипты Просчет координат (Просчет координат искомого объекта) |
Просчет координат |
› Понедельник
› 28.12.2009
› 20:06
› Сообщение #
Здравия желаю, товарищи.
Мне необходимо разместить объект в 100 метрах от текущей позиции игрока в направлении 45*. Там приходится использовать sin cos tan, я уже разрабатывал эту формулу, но очень давно, поэтому не помню - хоть убей! Прошу напомните мне как это возможно сделать. В общем каким образом можно вычислить координаты второго объекта, имея лишь первый объект (отправная точка) и его координаты, расстояние от первого до второго объектов, а также направление на второй объект. Желательно указать обратный просчет, т. е. имея координаты и первого и второго объекта, вычислить направление и расстояние до него. С уважением, Марк |
› Понедельник
› 28.12.2009
› 22:00
› Сообщение #
Для указания положения объекта на карте , 2 способа записи координат
2D - [с запада на восток, с юга на север] - в метрах 3D - [с запада на восток, с юга на север, высота] координата [0 ,0, 0] - нижний левый угол карты на уровне моря _pos - эта переменная будет помнить координаты _obj - эта, имя обекта _dir - угол в градусах _dis - расстояние в метрах Определение координат объекта, возвращает значения 3D _pos = getPos _obj; _pos = getPosALS _obj; _pos = getPosATL _obj; Определение координат маркера, возвращает значения 3D _pos = getMarkerPos "Mk"; Определение координат проходимой поверхности в здании, возвращает значения 3D _pos = _haus buildingPos 0 Определение угла поворота объекта, возвращает значение в градусах _dir = getDir _obj; Поместить объект в указанное место, Указать можно 2D и 3D _obj setPos _pos; Поместить Маркер в указанное место, Указать можно 2D и 3D "Mk" setMarkerPos _pos; Повернуть объект на угол _obj setDir _dir; Расстояние между двумя точками, сравнивать можно 2D и 3D _dis = _pos0 distance _pos1; _dis = [25, 37] distance [3600, 400]; Дальше пойдут вычисления Определить угол меж двумя точками на карте _pos0 = getPos Tank; _pos1 = getPos Car; _dir = ((_pos0 select 0)-(_pos1 select 0)) atan2 ((_pos0 select 1)-(_pos1 select 1)); Вычислить точку относительно Игрока под углом 40 градусов и расстоянии 100м (2D) _pos = getPos Player; _pos1 = [(_pos select 0) + sin 40 * 100,(_pos select 1) + cos 40 * 100]; Вычислить точку впереди Игрока на рсстоянии 10м (2D) _pos = getPos Player; _dir = getDir Player; _pos1 = [(_pos select 0) + sin _dir * 10,(_pos select 1) + cos _dir * 10]; Вычислить точку Над игроком высота 15м _pos = getPos Player; _pos set [2, (_pos select 2) + 15]; |
› Понедельник
› 28.12.2009
› 22:42
› Сообщение #
Когда чтото невыходит, нужно по-шагово отображать ход выполнения программы на экране.
Тогда будет видно что пошло нетак pos = getPos Player; |
› Воскресенье
› 27.03.2011
› 12:17
› Сообщение #
блин народ объясните мне как всё это всё делать плиз
Добавлено (27.03.2011, 12:17) |
› Воскресенье
› 27.03.2011
› 12:20
› Сообщение #
сначала придумай Что делать, потом будем разбираться Как.
для начала http://arma.at.ua/forum/46-5573-1 |
› Воскресенье
› 24.04.2011
› 20:46
› Сообщение #
Ужасно! (( т.е. для работы с координатами нужно создавать или двигать объекты...
можно заменить пустыми объектами или логикой.. |
› Воскресенье
› 24.04.2011
› 20:52
› Сообщение #
Лучше невидимую верт.площадку. с её помощю можно узнать наклон поверхности.
|
› Пятница
› 29.04.2011
› 17:07
› Сообщение #
getTerrainHeightASL (getpos this) - нашел то, что искал!!
|
› Пятница
› 29.04.2011
› 17:36
› Сообщение #
хорошая штука, но работает только после патча
Game: ArmA 2: Operation Arrowhead Version: 1.55 |
| |||
| |||
Чат сайта |