计算射线与平面的交点

#include "stdafx.h"
#include<iostream>
using namespace std;

struct Point3{
	float x;
	float y;
	float z;
};
struct Vector{
	float x;
	float y;
	float z;
};
struct Ray{       //一点,和一个方向向量(两点求差)确定一条射线,
	Point3 p0;
	Vector u;
};
struct Plane{     //一点,和一个法向量确定一个平面
	Point3 p1;
	Vector n;
};

float operator*(Vector v1,Vector v2)
{
	float x = v1.x*v2.x+v1.y*v2.y+v1.z*v2.z;
	return x;
}
float operator*(Vector v1, Point3 v2)
{
	float x = v1.x*v2.x + v1.y*v2.y + v1.z*v2.z;
	return x;
}
Point3 operator*(float t, Vector v)
{
	Point3 p;
	p = { t*v.x, t*v.y, t*v.z };
	return p;
}

Vector operator-(Vector v1, Vector v2)
{
	Vector v3 = { v2.x-v1.x, v2.y-v1.y, v2.z-v1.z };
	return v3;
}

Point3 operator+(Point3 v1, Point3 v2)
{
	Point3 v3 = { v1.x + v2.x, v1.y + v2.y, v1.z + v2.z };
	return v3;
}
Point3 operator-(Point3 v1, Point3 v2)
{
	Point3 v3 = { v2.x - v1.x, v
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值