简单渲染流水管线C++代码实现(二)---向量

这一篇接着来一步步实现。
本篇主要是介绍向量,然后利用C++实现它(先实现二维向量,往后会进一步实现三维向量),并通过今天实现的东西,做一个小游戏(鼠标点选位置,人物朝目标位置移动)
1.首先是实现二维向量:vector2.h
理论:
在这里插入图片描述

#pragma once
#include <cmath>
#include <cassert>
//二维向量:没有叉乘cross
class Vector2
{
public:
	float x;
	float y;
	//构造
	Vector2(float _x = 0.0f, float _y = 0.0f):x(_x),y(_y){}
	void Set(float _x = 0.0f, float _y = 0.0f)
	{
		x = _x;
		y = _y;
	}
	//负号重载
	Vector2 operator - () const
	{
		return Vector2(-x, -y);
	}
	//向量相等判定重载
	BOOL IsEqual(const Vector2& that) const
	{
		if (x == that.x && y == that.y)
			return true;
		return false;
	}
	//向量加法
	Vector2 operator + (const Vector2 &that) const
	{
		return Vector2(x + that.x, y + that.y);
	}
	Vector2& operator += (const Vector2& that)
	{
		x += that.x;
		y += that.y;
		return *this;
	}
	//向量减法
	Vector2 operator - (const Vector2& that) const
	{
		return Vector2(x - that.x, y - that.y);
	}
	Vector2& operator -= (const Vector2& that)
	{
		x -= that.x;
		y -= that.y;
		return *this;
	}
	//向量乘标量
	Vector2 operator * (float t) const
	{
		return Vector2(x * t, y * t);
	}
	Vector2& operator *= (float t)
	{
		x *= t;
		y *= t;
		return *this;
	}
	//向量除标量
	Vector2 operator / (float t)
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值