判断点P是否在ABC内

本文介绍如何在三维空间中判断一个点P(x, y, z)是否位于三角形ABC内部。通过提供解决思路和对应的C++代码实现,帮助理解几何计算的方法。" 119844080,11323087,整理药品名的C++程序,"['C++', '字符串操作']
摘要由CSDN通过智能技术生成

给定三角形ABC和一点P(x,y,z),判断点P是否在ABC内,给出思路并手写代码

#include<iostream>
#include<algorithm>

#define ABS_FLOAT_0 0.0001

using namespace std;

// 求三角形的面积
// 根据向量求三角形的面积
double funAreaTriAngle(double dAx, double dAy, double dBx, double dBy, double dCx, double dCy)
{
	double dABx = dBx - dAx;
	double dABy = dBy - dAy;
	double dACx = dCx - dAx;
	double dACy = dCy - dAy;

	return abs(dABx*dACy - dABy*dACx) / 2.0;

}

// 判断P点是否在三角形ABC中
// 通过ABC,ABP,ACP,BCP的面积判断
bool funTriMid(double dAx, double dAy, double dBx, double dBy, double dCx, double dCy, double dPx, double dPy)
{
	double dAreaABC= funAreaTriAngle(dAx, dAy, dBx, dBy, dCx, dCy);

	double dAreaABP = funAreaTriAngle(dAx, dAy, dBx, dBy, dPx, dPy);
	double dAreaAPC = funAreaTriAngle(dAx, dAy, dPx, dPy, dCx, dCy);
	double dAreaPBC = funAreaTriAngle(dPx, dPy, dBx, dBy, dCx, dCy);

	if (abs(dAreaABC - (dAreaABP + dAreaAPC + dAreaPB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值