本文整理汇总了C++中Point2d::components方法的典型用法代码示例。如果您正苦于以下问题:C++ Point2d::components方法的具体用法?C++ Point2d::components怎么用?C++ Point2d::components使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Point2d
的用法示例。
在下文中一共展示了Point2d::components方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Error
Circle2d::Circle(
const Point2d& firstPoint,
const Point2d& secondPoint,
const Point2d& thirdPoint
) : _radius(0.0) {
double a = (secondPoint - firstPoint).norm();
double b = (thirdPoint - secondPoint).norm();
double c = (firstPoint - thirdPoint).norm();
double s = (a + b + c) / 2.0;
if(s - a <= Zero() || s - b <= Zero() || s - c <= Zero()) {
// Points are collinear
throw Error(new PlaceholderError());
}
double a2 = a * a;
double b2 = b * b;
double c2 = c * c;
double t1 = a2 * (b2 + c2 - a2);
double t2 = b2 * (c2 + a2 - b2);
double t3 = c2 * (a2 + b2 - c2);
double sum = t1 + t2 + t3;
t1 /= sum;
t2 /= sum;
t3 /= sum;
_centerPoint = Point2d(
t1 * thirdPoint.components() +
t2 * firstPoint.components() +
t3 * secondPoint.components()
);
double firstRadius = (firstPoint - _centerPoint).norm();
double secondRadius = (secondPoint - _centerPoint).norm();
double thirdRadius = (thirdPoint - _centerPoint).norm();
_radius = (firstRadius + secondRadius + thirdRadius) / 3.0;
assert(_radius - firstRadius == Zero());
assert(_radius - secondRadius == Zero());
assert(_radius - thirdRadius == Zero());
}