Русское сообщество по скриптингу

Плагин для разворота векторов

Плагины для AMX Mod X, которые не удовлетворяют правилам оформления.

Модератор: Leonidddd

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

Плагин для разворота векторов

Сообщение fixteam » 12 ноя 2023, 15:02

Автор: ft
Версия: 1.0.0
Описание: Реализует возможность поворота векторов по X и Y на заданные углы.
Данный плагин создан, чтобы помочь скриптерам. Добавляет возможность поворота векторов по горизонту и по вертикали (любой поворот в любых плоскостях по факту).
После подключения include-файла появятся две функции (нативных) для разворота векторов в ваших плагинах:


Код: Выделить всё
ft_rotate(Float:fResult[3], Float:fVec[3], Float:angleX, Float:angleY)

Поворачивает вектор, представленный точкой (началом) и самим вектором.

  • fResult[3] В этот массив записывается развернутый вектор
  • fVec[3] Исходный вектор
  • angleX Угол поворота по X (лево-право)
  • angleY Угол поворота по Y (вверх-вниз)

P.S. Сам намучался с изучением геометрии GoldSrc, надеюсь кому-то будет полезно! :crazy:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось fixteam 20 ноя 2023, 21:28, всего редактировалось 3 раз(а).
Аватара пользователя
fixteam
 
Сообщения: 168
Зарегистрирован: 19 фев 2018, 20:08
Откуда: Москва
Благодарил (а): 28 раз.
Поблагодарили: 1 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn, C++, Python, Js, Php

Re: Плагин для разворота векторов

Сообщение RockTheStreet » 12 ноя 2023, 18:16

Исходник не добавлен лишь по одной причине: чтобы люди не увидели насколько эта обёртка над обёрткой бесполезная.
Касательно телепатии: если Вы передаете Ваши проблемы телепатическим путем - ответы будут передаваться тоже телепатически.
Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком.
Аватара пользователя
RockTheStreet
 
Сообщения: 79
Зарегистрирован: 12 авг 2021, 23:13
Благодарил (а): 5 раз.
Поблагодарили: 9 раз.
Опыт программирования: Больше трех лет
Языки программирования: JS, PHP

Re: Плагин для разворота векторов

Сообщение fixteam » 12 ноя 2023, 19:31

Вперёд к реализации :yahoo:
Аватара пользователя
fixteam
 
Сообщения: 168
Зарегистрирован: 19 фев 2018, 20:08
Откуда: Москва
Благодарил (а): 28 раз.
Поблагодарили: 1 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn, C++, Python, Js, Php

Re: Плагин для разворота векторов

Сообщение nemec21 » 12 ноя 2023, 22:38

Или бекдур'ы кидаем?)
Твою реализацию можно посмотреть через Lysis
Последний раз редактировалось nemec21 22 ноя 2023, 19:02, всего редактировалось 1 раз.
Аватара пользователя
nemec21
 
Сообщения: 730
Зарегистрирован: 07 фев 2016, 17:08
Откуда: Беларусь
Благодарил (а): 203 раз.
Поблагодарили: 31 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6

Re: Плагин для разворота векторов

Сообщение fixteam » 13 ноя 2023, 17:38

nemec21 писал(а):Или бедкоды кидаем?)
Твою реализацию можно посмотреть через Lysis

Почему гов... бедкод-то?

Беру прямую с Z = 1.0, если она коллинеарны с исходным вектором, то беру прямую с X = 1.0. С помощью векторного произведения нахожу нормаль плоскости. Далее векторным произведением нахожу третий перпендикуляр - нормаль плоскости "ось горизонтального поворота".
1. Сначала выполняется горизонтальный поворот: вычисляю первый базис (случайное число + проекция на ось поворота), второй вычисляю по формуле с нормалью, нормализую, третий базис вычисляю векторным произведением первого и второго (он пригодится для новой оси вертикального поворота, так как вектор по горизонту мы поворачиваем "вместе с вертикальной плоскостью").
Далее вычисляю повернутый вектор через два базиса (поворот в плоскости), используя матрицу поворота + проекции.
2. Теперь выполняется вертикальный поворот: нахожу нормаль (ось вертикального вращения) через векторное произведение получившегося вектора и третьего базиса. Нормализую. Далее всё так, как и в первом повороте: беру два базиса для поворота в плоскости и поворачиваю. (Третий базис нужен только для сохранения прямой для последующего вертикального поворота, на картинке отображена эта прямая фиолетовым цветом).

Сразу трёхмерный поворот не знаю как выполнить, если есть алгоритм более легкий, выполняющий функционал - я очень заинтересован в том, чтобы его увидеть и изучить!

UPD: Или хотя бы теоретическую часть его прочитать #без_гугл_в_помощь
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
fixteam
 
Сообщения: 168
Зарегистрирован: 19 фев 2018, 20:08
Откуда: Москва
Благодарил (а): 28 раз.
Поблагодарили: 1 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn, C++, Python, Js, Php

Re: Плагин для разворота векторов

Сообщение RockTheStreet » 19 ноя 2023, 10:18

fixteam писал(а):
nemec21 писал(а):Или бедкоды кидаем?)
Твою реализацию можно посмотреть через Lysis

Почему гов... бедкод-то?

Беру прямую с Z = 1.0, если она коллинеарны с исходным вектором, то беру прямую с X = 1.0. С помощью векторного произведения нахожу нормаль плоскости. Далее векторным произведением нахожу третий перпендикуляр - нормаль плоскости "ось горизонтального поворота".
1. Сначала выполняется горизонтальный поворот: вычисляю первый базис (случайное число + проекция на ось поворота), второй вычисляю по формуле с нормалью, нормализую, третий базис вычисляю векторным произведением первого и второго (он пригодится для новой оси вертикального поворота, так как вектор по горизонту мы поворачиваем "вместе с вертикальной плоскостью").
Далее вычисляю повернутый вектор через два базиса (поворот в плоскости), используя матрицу поворота + проекции.
2. Теперь выполняется вертикальный поворот: нахожу нормаль (ось вертикального вращения) через векторное произведение получившегося вектора и третьего базиса. Нормализую. Далее всё так, как и в первом повороте: беру два базиса для поворота в плоскости и поворачиваю. (Третий базис нужен только для сохранения прямой для последующего вертикального поворота, на картинке отображена эта прямая фиолетовым цветом).

Сразу трёхмерный поворот не знаю как выполнить, если есть алгоритм более легкий, выполняющий функционал - я очень заинтересован в том, чтобы его увидеть и изучить!

UPD: Или хотя бы теоретическую часть его прочитать #без_гугл_в_помощь

Расписал ты конечно жесть. Аж смех берёт, ведь человек под 'бедкод' имел ввиду бэкдур'ы.
Касательно телепатии: если Вы передаете Ваши проблемы телепатическим путем - ответы будут передаваться тоже телепатически.
Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком.
Аватара пользователя
RockTheStreet
 
Сообщения: 79
Зарегистрирован: 12 авг 2021, 23:13
Благодарил (а): 5 раз.
Поблагодарили: 9 раз.
Опыт программирования: Больше трех лет
Языки программирования: JS, PHP

Re: Плагин для разворота векторов

Сообщение fixteam » 20 ноя 2023, 23:10

Есть какие-то способы защиты? Никогда не беспокоился по этому поводу, но интересно :shout:
Аватара пользователя
fixteam
 
Сообщения: 168
Зарегистрирован: 19 фев 2018, 20:08
Откуда: Москва
Благодарил (а): 28 раз.
Поблагодарили: 1 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn, C++, Python, Js, Php

Re: Плагин для разворота векторов

Сообщение Fedcomp » 26 ноя 2023, 16:37

Перенес в неутвержденные плагины так как нету исходника.
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4923
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 806 раз.
Поблагодарили: 1311 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust


Вернуться в Неутвержденные плагины

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0