Перейти к содержанию

Electr0

Администраторы
  • Постов

    10 387
  • Зарегистрирован

  • Посещение

  • Победитель дней

    417

Весь контент Electr0

  1. До после похоже RotateYaw обладает не документированной проблемой D, которую я помню еще по временам когда сам строил, она не знает когда предмет повернут на бок если не поворачивать предметы на бок то все ок: здесь нужен другой метод для поворотов углов >< если поворачивать на один градус все время можно нарисовать это
  2. после добавления поддержки аргументов нарисовал это, нажимая на 45, -45, 90, -90, центральная полоска это оригинальный вектор от точки А к точке Б
  3. Вот так все и не понятно как и тогда когда последний раз пробовал
  4. Вектор не равен позиции на координатной плоскости
  5. Return Value Dot product of the two vectors. но зачем мне один float, когда координата состоит из 3 float'ов
  6. скорее всего GetVectorAngles возращает не то что мы думаем
  7. Calculates the dot product of two vectors это не дает позицию из трех точек в пространстве
  8. а как создать вектор АС если я не знаю точку эту
  9. завтра попробую иначе
  10. пробовал, но там искажение какое-то появляется, в общем длинна конца другая совсем, и сам угол не правильный.
  11. там не то ><, там просто присваивает указанную ось от объекта по которому выравниваем, а в нашем случае надо как-то узнать позицию конца вектора под углом 90 град, понятия не имею как ее узнать
  12. После этого надо переместить вектор с длиной 181,9847189 и градусами 0.074962 253.020523 90.00000 так, чтобы он исходил из точки А. Его конец и будет точкой, куда надо переместить второй объект, чтобы второй объект повернулся относительно первого на 90 градусов если бы я еще знал как это правильно сделать
  13. это что ? типа длинна вектора?, а это не равно дистанции между объектом А и объектом Б?
  14. давай проще, вот смотри я имею угол вектора между точками А и Б, так, я должен прибавить к ним угол на который будем поворачивать, допустим 90 градусов, окей из fTempVecAng:: 0.074962 253.020523 0.000000 стало fTempVecAng:: 0.074962 343.020523 0.000000, дальше я не понял..
  15. до сих пор не вижу объяснение что за чем там считается
  16. эм поясни что за чем D
  17. //--------------------------------------------------------- // get position just in front of you // and the angles you are facing in horizontal //--------------------------------------------------------- GetClientFrontLocationData( client, Float:position[3], Float:angles[3], Float:distance = 50.0 ) { new player = GetPlayerIndex( client ); decl Float:_origin[3], Float:_angles[3]; GetClientAbsOrigin( player, _origin ); GetClientEyeAngles( player, _angles ); decl Float:direction[3]; GetAngleVectors( _angles, direction, NULL_VECTOR, NULL_VECTOR ); position[0] = _origin[0] + direction[0] * distance; position[1] = _origin[1] + direction[1] * distance; position[2] = _origin[2]; angles[0] = 0.0; angles[1] = _angles[1]; angles[2] = 0.0; } Накопал в архивах, вот это функция получения позиции перед игроком учитывая его взгляд. По идее это как-то можно эксплуатировать, завтра попробую
  18. ну, вот я создал вектор из точки А (первый предмет в цикле помеченных ) до точки Б (следующий после первого) Получилось вот что: Объект А: [FS] Углы: 360.842529 270.000000 0.000000 [FS] Позиция: 2696.005126 4924.954589 -976.147644 Объект Б: [FS] Углы: 360.716156 0.000000 0.000000 [FS] Позиция: 2642.860351 4750.902832 -976.385742 Вектор между точками А и б (функция MakeVectorFromPoints. там просто вычитание позиции А из Б): fTempVec:: -53.144775 -174.051757 -0.238098 Угол из вектора между этими точками ( функция GetVectorAngles): fTempVecAng:: 0.074962 253.020523 0.000000 Дальше нужно как-то повернуть вектор на нужные нам углы, и узнать конечную точку повернутого вектора, это и есть будущая позиция после поворота
  19. Сделал взятие центральной позиции, и отрисовку отладочного луча к центру следующих помеченных предметов в стеке
  20. есть, https://sm.alliedmods.net/new-api/vector
  21. Ладно берем стек помеченных предметов, беру первый помещенный в качестве отправной точки. Я знаю как сделать вектор между позициями центров предметов, а дальше не знаю, как я понял я должен каким-то образом повернуть этот вектор на величину равную углу на который будем поворачивать, дальше узнать положение крайней точки вектора в пространстве. Насчет rotate yaw, тоже есть вопрос ведь те объекты которые близко к точке поворота их нужно больше поворачивать чём те что дальше (не факт но что-то такое возможно есть) и это все для каждого предмета по отдельности. Каждый раз относительно первого предмета.
  22. Блин сложно , учитывая что объектов сотни, и их нужно вокруг чего-то поворачивать
×
×
  • Создать...