本文整理汇总了C++中Vec::Length2方法的典型用法代码示例。如果您正苦于以下问题:C++ Vec::Length2方法的具体用法?C++ Vec::Length2怎么用?C++ Vec::Length2使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Vec
的用法示例。
在下文中一共展示了Vec::Length2方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetSurface
void Primitive ::
GetTangentialVecSurfaceIndices2 (const Point<3> & p, const Vec<3> & v1, const Vec<3> & v2,
ARRAY<int> & surfind, double eps) const
{
for (int j = 0; j < GetNSurfaces(); j++)
{
if (fabs (GetSurface(j).CalcFunctionValue (p)) < eps)
{
Vec<3> grad;
GetSurface(j).CalcGradient (p, grad);
if (sqr (grad * v1) < 1e-6 * v1.Length2() * grad.Length2() &&
sqr (grad * v2) < 1e-6 * v2.Length2() * grad.Length2() ) // new, 18032006 JS
{
if (!surfind.Contains (GetSurfaceId(j)))
surfind.Append (GetSurfaceId(j));
}
}
}
}
示例2: MaxCurvature
double ExplicitCurve2d :: MaxCurvature () const
{
double t, tmin, tmax, dt;
double curv;
Vec<2> tan;
double maxcurv;
maxcurv = 0;
tmin = MinParam ();
tmax = MaxParam ();
dt = (tmax - tmin) / 1000;
for (t = tmin; t <= tmax+dt; t += dt)
if (SectionUsed (t))
{
tan = EvalPrime (t);
curv = fabs ( (Normal(t) * EvalPrimePrime(t)) / tan.Length2());
if (curv > maxcurv) maxcurv = curv;
}
return maxcurv;
}
示例3: MaxCurvatureLoc
double ExplicitCurve2d :: MaxCurvatureLoc (const Point<2> & p, double rad) const
{
double t, tmin, tmax, dt;
double curv;
Vec<2> tan;
double maxcurv;
maxcurv = 0;
tmin = MinParam ();
tmax = MaxParam ();
dt = (tmax - tmin) / 1000;
for (t = tmin; t <= tmax+dt; t += dt)
if (Dist (Eval(t), p) < rad)
{
tan = EvalPrime (t);
curv = fabs ( (Normal(t) * EvalPrimePrime(t)) / tan.Length2());
if (curv > maxcurv) maxcurv = curv;
}
return maxcurv;
}