Coder Social home page Coder Social logo

gl-ser / quatvectmatr Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 35 KB

Кватернионно-векторно-матричная библиотека

C++ 62.64% C 37.36%
algorithm c cpp linux mathematical-modelling mathematical-programming mathematics qt qt5 windows quaternion quaternion-algebra quaternion-calculation quaternions matrix vector vectors

quatvectmatr's Introduction

QuatVectMatr

Кватернионно-векторно-матричная библиотека


TVector трёхмерный вектор, имеющий координаты x, y, z

Методы TVector:
	- Empty инициализирует вектор нулями;
	- Data инициализирует вектор заданными значениями;
	- getModul возвращает модуль вектора;
	- getBasis возвращает единичный вектор по направлению заданного.
У TVector имеются перегруженные операции:
	- [+] – сложение двух векторов;
	- [–] – вычитание двух векторов;
	- [*] – скалярное умножение векторов;
	- [^] – векторное умножение векторов;
	- [*] – умножение вектора на скаляр.

TMatrix матрица 3x3, состоящая из трёх объектов типа TVector

FirstString, SecondString, ThirdString – построчные элементы матрицы.
Здесь и далее угол вращения считается положительным, если он виден из конца 
оси, вокруг которой происходит вращение, против часовой стрелки.
Методы TMatrix:
	- Empty инициализирует матрицу нулями; 
	- Data инициализирует матрицу заданными значениями (запись по строкам);
	- DataVect инициализирует матрицу заданными значениями (запись векторами);
	- OXMatrix получает матрицу вращения вокруг оси OX на заданный угол;
	- OYMatrix получает матрицу вращения вокруг оси OY на заданный угол;
	- OZMatrix получает матрицу вращения вокруг оси OZ на заданный угол;
	- ThreeAnglesMatrix получает матрицу вращения по заданным трём углам
          поворота вокруг осей OX, OY, OZ и порядку поворота системы координат 
          вокруг базовых осей;
	- getTrans возвращает транспонированную матрицу.
У TMatrix имеются перегруженные операции:
	- [+] – сложение двух матриц;
	- [–] – вычитание двух матриц;
	- [*] – произведение матрицы на вектор;
	- [*] – произведение двух матриц.

TQuaternion кватернион, имеющий атрибуты q0, q1, q2, q3

q0 – скалярная часть, q1, q2, q3 – векторная часть.
Методы TQuaternion:
	- Empty инициализирует кватернион нулями; 
	- Data инициализирует кватернион заданными значениями;
	- MakeQuat создаёт кватернион вращения из вектора, вокруг которого надо 
          выполнить вращение, и угла, на который надо выполнить вращение;
	- QuatFromMatrixStanley получает кватернион вращения из матрицы поворотов 
          по алгоритму Стенли;
	- ThreeAnglesQuat получает кватернион по заданным трём углам поворота вокруг 
          осей OX, OY, OZ и порядку поворота системы координат вокруг базовых осей;
	- getModulAngle возвращает модуль угла поворота;
	- getNorm возвращает норму (модуль) кватерниона;
	- getBasis возвращает единичный кватернион по направлению заданного;
	- getOpposite возвращает обратный кватернион;
	- getMatrix возвращает матрицу поворотов.
У TQuaternion имеются перегруженные операции:
	- [+] – сложение двух кватернионов;
	- [–] – вычитание двух кватернионов;
	- [*] – произведение двух кватернионов;
	- [*] – произведение кватерниона на вектор (поворот вектора с помощью заданного 
          кватерниона по правилу буравчика).

См. аналог на Object Pascal для Delphi

quatvectmatr's People

Contributors

gl-ser avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.