二、Math3D向量的计算

向量的运算

  • 零向量
  • 负向量
  • 向量大小、长度、模
  • 标量与向量的乘法
  • 标准化向量
  • 向量的加法和减法
  • 距离公式
  • 向量点乘
  • 向量投影
  • 向量叉乘

C++语言

1. 零向量    

    [0,0,0]

2. 负向量

一个向量的负向量长度与这个向量的长度是相等的,负向量是这个向量的反向量

    v + -v = -v + v = 0


3. 向量大小、长度、模

      二维向量


                                    


      多维向量


      


例如:


      

代码实现


    #ifndef _VECTOR3_H_INCLUDED_
    #define _VECTOR3_H_INCLUDED_
    #include <math.h>

    class Vector3 {
    //标准三维
    public:
    float x;
    float y;
    float z;

    Vector3() {}
    Vector3(const Vector3 &a) :x(a.x), y(a.y), z(a.z) {}
    Vector3(float nX, float nY, float nZ) :x(nX), y(nY), z(nZ) {}

    void zero() {
        x = y = z = 0.0f;
    }
    Vector3 operator -() const { return Vector3(-x, -y, -z); }
    };

    inline float vectorMag(const Vector3 &a) {
    return sqrt(a.x*a.x + a.y*a.y + a.z*a.z);
    }

    #endif
    #include <iostream>
    #include "Vector3.h"
    using namespace std;
    void print_v(Vector3 v)
    {
    cout << "[" << v.x << "," << v.y << "," << v.z << "]" << endl;
    }

    int main()
    {
    cout << "HELLO Vector" << endl;

    Vector3 v1(100,200,300);
    print_v(v1);

    Vector3 v2(v1);
    print_v(v2);

    Vector3 v3(5, -4, 7);
    float vR = vectorMag(v3);
    cout << vR << endl;

    system("pause");
    return 0;
    }

下一章继续向量的运算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值