本文整理汇总了C++中line::norm2方法的典型用法代码示例。如果您正苦于以下问题:C++ line::norm2方法的具体用法?C++ line::norm2怎么用?C++ line::norm2使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类line
的用法示例。
在下文中一共展示了line::norm2方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: cross
vector<pt> cross(const pt ¢er, double r,
const line &l) {
double di = l.distz(center);
double d2 = l.norm2();
assert(fabs(d2) > eps);
pt mid = center + pt(l.a, l.b) * (-di / d2);
#ifdef DEBUG
assert(l.side(mid) == 0);
#endif
double s = r * r - di * di / d2;
if (s < -eps) return vector<pt>();
if (fabs(di * di - r * r * d2) < eps)
return vector<pt>(1, mid);
pt off = pt(-l.b, l.a) * sqrt(s / d2);
assert(fabs(off.dist2() - s) < eps);
vector<pt> res;
res.pb(mid + off);
res.pb(mid - off);
return res;
}