📄 xgplan.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 + -