从C中的结构标准化Vector

时间:2015-02-13 00:49:22

标签: c

typedef struct 
{
    float x, y, z;
} VECTOR;

编写一个函数,该函数采用指向VECTOR结构的指针并规范化x,y和z分量

我意识到你可以通过获取长度并将x,y和z除以长度来标准化Vector。但是如何使用此处提供的代码执行此操作。 以下是我对此的尝试。

Void Norm(*VECTOR)
{
    x = x / *VECTOR.Length;
    y = y / *VECTOR.Length;
    z = z / *VECTOR.Length;
}

1 个答案:

答案 0 :(得分:2)

#include <math.h>

typedef struct 
{
    float x, y, z;
} VECTOR;

void normalize( VECTOR* p )
{
    float w = sqrt( p->x * p->x + p->y * p->y + p->z * p->z );
    p->x /= w;
    p->y /= w;
    p->z /= w;
}