NGN_MATH.H

MÉTODOS de la clase Vector2

Esta clase incluye todos los métodos y propiedades necesarios para el uso básico de vectores en 2 dimensiones. Hay 3 variaciones de la clase, Vector2, Vector2I32 y Vector2I64, con sus respectivas sobrecargas. Todas las clases tienen soporte para las operaciones de suma y resta entre vectores del mismo tipo, así como soporte para las operaciones de multiplicación y división entre un vector y un escalar, además de las operaciones lógicas de igualdad y diferencia.


Método

float Vector2.Magnitude() const;
int32_t Vector2I32.Magnitude() const;
int64_t Vector2I64.Magnitude() const;

Descripción

Devuelve la magnitud del vector. En el caso de vectores de números enteros, devuelve el resultado más aproximado posible.

Ejemplo

Vector2 my_vector = {10.0f, 25.0f};
float d = my_vector.Magnitude();

Método

void Vector2.Normalize();

Descripción

Este método solo está disponible en los vectores de punto flotante. Normaliza y actualiza el contenido del vector (convierte el contenido de las coordenadas X e Y a valores entre -1.0f y 1.0f).

Ejemplo

Vector2 my_vector = {10.0f, 25.0f};
my_vector.Normalize();

Método

Vector2 Normal() const;

Descripción

Este método solo está disponible en los vectores de punto flotante. Devuelve el valor normalizado del contenido de un vector, sin modificar el contenido del vector.

Ejemplo

Vector2 my_vector = {10.0f, 25.0f};
Vector2 normal = my_vector.Normal();

Método

static Vector2 Zero();
static Vector2I32 Zero();
static Vector2I64 Zero();

Descripción

Devuelve un vector donde todos sus componentes tienen un valor de cero.

Ejemplo

Vector2 my_vector = Vector2::Zero();

PROPIEDADES de la clase Vector2

Propiedad

Vector2.x;
Vector2.y;

Descripción

Propiedades principales del vector. Almacenan las coordenadas X e Y. Estas propiedades son del tipo del vector declarado (float, int32_t o int64_t).

Ejemplo

Vector2 my_vector;
my_vector.x = 13.5f;
my_vector.y = 27.34f;

MÉTODOS de la clase NGN_Math

Esta clase incluye funciones matemáticas básicas para ayudar al desarrollo de cualquier videojuego, como el cálculo de ángulos o distancias.


Método

float GetDistance(float x1, float y1, float x2, float y2);
float GetDistance(Vector2 a, Vector2 b);
uint32_t GetDistance(int32_t x1, int32_t y1, int32_t x2, int32_t y2);
uint32_t GetDistance(Vector2I32 a, Vector2I32 b);

Descripción

Devuelve la distancia entre 2 puntos (4 sobrecargas). En el caso de usar números enteros, se devuelve el valor más aproximado redondeado.

Ejemplo

float d = ngn->math->GetDistance(100.0f, 100.0f, 200.0f, 300.0f);

Método

float GetAngle(float x1, float y1, float x2, float y2);
float GetAngle(Vector2 a, Vector2 b);

Descripción

Devuelve el ángulo que forman 2 puntos (2 sobrecargas) respecto la horizontal. El primer parámetro determina el vértice del ángulo y el segundo parámetro la apertura de ese ángulo. El resultado es devuelto en RADIANES.

Ejemplo

Vector2 origin = {10.0f, 10.0f};
Vector2 destination = {100.0f, 15.0f};
float a = ngn->math->GetAngle(origin, destination);

Método

float GetManhattan(float x1, float y1, float x2, float y2);
float GetManhattan(Vector2 a, Vector2 b);
uint32_t GetManhattan(int32_t x1, int32_t y1, int32_t x2, int32_t y2);
uint32_t GetManhattan(Vector2I32 a, Vector2I32 b);

Descripción

Devuelve la distancia Manhattan entre 2 puntos (4 sobrecargas). Esta distancia es la suma de las diferencias en valor absoluto de las diferentes coordenadas (abs(x1 - x2) + abs(y1 - y2)).

Ejemplo

float d = ngn->math->GetGetManhattan(100.0f, 100.0f, 200.0f, 300.0f);

Método(s)

int32_t RandomInt(int32_t min_value, int32_t max_value);
int32_t RandomInt();
float RandomFloat(float min_value, float max_value);
float RandomFloat();
double RandomDouble(double min_value, double max_value);
double RandomDouble();

Descripción

Devuelve un número aleatorio según el tipo del método, comprendido entre el rango especificado. Si no se especifica un rango, el número se generará entre 0 y el valor máximo del tipo correspondiente.

Ejemplo(s)

int32_t a = ngn->math->RandomInt(-3, 120);
int32_t b = ngn->math->RandomInt();
float c = ngn->math->RandomFloat(100.0f, 999.9f);
float d = ngn->math->RandomFloat();
double e = ngn->math->RandomDouble(-99.99, 99.99);
double f = ngn->math->RandomDouble();

Método(s)

uint32_t Adler32Checksum(const std::vector<uint8_t>& buffer, uint32_t start_index = 0);

Descripción

Calcula y devuelve una suma de verificación (checksum) Adler-32 de 32 bits para el búfer de datos proporcionado. Opcionalmente, se permite especificar el índice a partir del cual comenzará el cálculo. Por defecto, se procesan todos los datos. El tamaño máximo de los datos a procesar está limitado por el índice de 32 bits a 4 GiB (2^32 bytes).

Ejemplo(s)

uint32_t chk_save = ngn->math->Adler32Checksum(save_data);
uint32_t chk_config = ngn->math->Adler32Checksum(config_data, 64);
Volver al Índice English Version Volver Arriba