Является ли вычисление векторов верным?
#include <iostream>
#include <math.h>
#define PLAYER_POSITION_X 100
#define PLAYER_POSITION_Y 321
#define ENEMY_POSITION_X 96
#define ENEMY_POSITION_Y 320
typedef struct VectorPointer
{
float x;
float y;
} Vector;
float VectorDistance(Vector* first, Vector* second)
{
return static_cast<float>(sqrt(first->x - second->x + first->y - second->y));
}
void VectorInit(Vector* vector, float pPosX, float pPosY)
{
vector->x = pPosX;
vector->y = pPosY;
}
int main(int argc, char* argv[])
{
Vector* player = (Vector*)malloc(sizeof(Vector));
Vector* enemy = (Vector*)malloc(sizeof(Vector));
VectorInit(player, PLAYER_POSITION_X, PLAYER_POSITION_Y);
VectorInit(enemy, ENEMY_POSITION_X, ENEMY_POSITION_Y);
std::cout << "Distance: " << VectorDistance(player, enemy) << std::endl;
free(player);
free(enemy);
return 0;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
В принципе, метрики бывают разные. Но если вы говорите об обычном векторе на плоскости — конечно, нет. Во-первых, потому что тогда вообще непонятно, что такое "расстояние между векторами", а во-вторых, если принять, что это расстояние между концами этих вектором, исходящих из начала координат, то тут надо использовать теорему Пифагора:
но никак не

