Ru/Angle: Difference between revisions
(Created page with "{{lang|QAngle}} {{toc-right}} '''QAngle''' это класс C++, который представляет трехмерный угол Эйлера, смещенный от...") |
Thunder4ik (talk | contribs) m (→top: clean up) |
||
Line 8: | Line 8: | ||
* '''Z''' поворот +вправо/-влево | * '''Z''' поворот +вправо/-влево | ||
<code>(-45,10,0)</code> означает | <code>(-45,10,0)</code> означает 45° вверх, 10° влево and 0° поворота. | ||
{{Tip|Иногда называют rX, rY и rZ чтобы отделять их от углов [[vector]] .}} | {{Tip|Иногда называют rX, rY и rZ чтобы отделять их от углов [[vector]] .}} |
Revision as of 01:43, 6 January 2024
QAngle это класс C++, который представляет трехмерный угол Эйлера, смещенный от кардинальной Z axis. Каждый QAngle содержит три значения поворота vec_t:
- X движение +вниз/-вверх
- Y движение +влево/-вправо
- Z поворот +вправо/-влево
(-45,10,0)
означает 45° вверх, 10° влево and 0° поворота.


Объявление
QAngle angMyAngle = QAngle(-45,10,0);
- Вы также можете назначить переменные-члены X, Y и Z отдельно.
- Префикс
ang
(иногдаa
) определяет переменную как угол.
Направление
Как ни странно, ни одна из осей вращения источника не совпадает с их position axes сверстниками.
Еще более "запутанно", что Хаммер перечисляет оси вращения как Y, Z, X! Это совершенно неправильно, но, к счастью, это всего лишь метки: значения хранятся в одной строке (например, "-45 10 0") и интерпретируются игрой как rX rY rZ.
Помните, что эффективное направление угла определяется его системой отсчета. Как правило, он будет либо привязан к миру, либо к сущности.
Преобразование из векторов
Поскольку нет никаких конкретных datadesc keyfield для углов, один, выбранный в Hammer, прибудет как vector. Его координаты будут представлять градусы поворота, а не координаты, поэтому перед использованием его необходимо зафиксировать:
QAngle angMyAngle = QAngle(vecFromHammer.x, vecFromHammer.y, vecFromHammer.z);
// Conversion back to a vector, if required
AngleVectors(angMyAngle, &vecFromHammer);