⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xgplan.cpp

📁 类似于MatLab的东东,当然肯定没那么好,但基本的数学运算还是有的
💻 CPP
字号:
/********************************************************************************
声明:
  这里的代码版权归潘李亮所有.你可以自由使用分发这些代码.但是不得用于商业用途.
  如有需要请于作者联系.
   在你使用本代码时候,请务必保留本声明
    潘李亮 2003-10
	Stanly Lee. 2003-10

	Email : xheartblue@etang.com

	数学库的代码:
	   本数学库的目的是方便的实现一个图形几何管道.

	   对平面的操作函数集合


	   *******************************************************************************/

#include "XGeomLib.h"
namespace XGeomLib
{
	XPlan::XPlan(XPoint a, XPoint b,XPoint c)
	{
		XVector3D v1 = c - a;
		XVector3D v2 = b - a;
		//Right hand; so v2 X v1
		XVector3D n = v2.cp(v1);
		if( !(n.x == 0 && n.y == 0 && n.z == 0) )
		{
			n.normalize();
			A = n.x;
			B = n.y;
			C = n.z;
			D = n.dp(a);
		}
		else
		{
			//Null plan
			A = 0;
			B = 0;
			C = 0;
			D = 0;
		}
	}

	XPlan::XPlan(XPoint point,XDirection n)
	{
		if( !(n.x == 0 && n.y == 0 && n.z == 0) )
		{
			n.normalize();
			A = n.x;
			B = n.y;
			C = n.z;
			D = n.dp(point);
		}
		else
		{
			//Null plan
			A = 0;
			B = 0;
			C = 0;
			D = 0;
		}
	}

		/*
	* 求一个点和一个平面的关系.
	*/

	float XPlan::operator*(XPoint& p)
	{ 
		return (p.x * A + p.y * B + p.z * C +  D);
	}
	float operator*(XPoint& v ,XPlan& p)
	{
		 return v.x * p.A  + v.y * p.B + v.z * p.C + p.D;
	}
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -