This tutorial explains how to use the Vector2 class from Gazebo Math library.
C++ example
Compile the code
To compile the code, go to gz-math/examples and use cmake:
When the code is compiled, run:
The ouput of the program:
Code
Create a Vector2 called vec2 of doubles using the typedef Vector2d. The initial x and y values are zero. The x and y component of vec2 can be set at anytime.
The Vector2 class is a template, so you can also create a Vector2 using gz::math::Vector2<double>:
It's also possible to set initial values. Here we are using a Vector2 of floats:
We can output the contents of each vector using std::cout.
You can also get access to each component in the vector using the X(), Y() accessors or the [] operator, The operator is clamped to the range [0, 1].
The Vector2 class overloads many common operators, such as:
There are also many useful function such as finding the distance between two vectors.
There are more functions in Vector2. Take a look at the API
Ruby examples
This example will only work if the Ruby interface library was compiled and installed. For example, on Ubuntu:
Modify the RUBYLIB environment variable to include the Gazebo Math library install path. For example, if you install to /usr:
Move to the examples folder:
Execute the examples:
Code
Create a Vector2 of doubles using the typedef Vector2d. It's possible to set initial values or use another object to create a identical copy.
You can get access to each component in the vector using the X(), Y() accessors.
The Vector2 class overloads many common operators, such as:
There are also many useful functions, such as finding the distance between two vectors or normalizing a vector.
You can create vectors with 3 dimensions using the typedef Vector3d:
You can also get access to each component in the vector using the X(), Y() and Z() accessors: