本文整理汇总了C++中Hit::globalX方法的典型用法代码示例。如果您正苦于以下问题:C++ Hit::globalX方法的具体用法?C++ Hit::globalX怎么用?C++ Hit::globalX使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Hit
的用法示例。
在下文中一共展示了Hit::globalX方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getCircleParams
tCircleParams PhysicsRecord::getCircleParams(const Hit & p1, const Hit & p2, const Hit & p3) const{
tCircleParams params;
//circle fit
//map points to parabloid: (x,y) -> (x,y,x^2+y^2)
fVector3 pP1 (p1.globalX(),
p1.globalY(),
p1.globalX() * p1.globalX() + p1.globalY() * p1.globalY());
fVector3 pP2 (p2.globalX(),
p2.globalY(),
p2.globalX() * p2.globalX() + p2.globalY() * p2.globalY());
fVector3 pP3 (p3.globalX(),
p3.globalY(),
p3.globalX() * p3.globalX() + p3.globalY() * p3.globalY());
//span two vectors
fVector3 a(pP2.x - pP1.x, pP2.y - pP1.y, pP2.z - pP1.z);
fVector3 b(pP3.x - pP1.x, pP3.y - pP1.y, pP3.z - pP1.z);
//compute unit cross product
fVector3 n(a.y*b.z - a.z*b.y,
a.z*b.x - a.x*b.z,
a.x*b.y - a.y*b.x );
double value = sqrt(n.x*n.x+n.y*n.y+n.z*n.z);
n.x /= value; n.y /= value; n.z /= value;
//formula for orign and radius of circle from Strandlie et al.
params.center = fVector2((-n.x) / (2*n.z),
(-n.y) / (2*n.z));
double c = -(n.x*pP1.x + n.y*pP1.y + n.z*pP1.z);
params.radius = sqrt((1 - n.z*n.z - 4 * c * n.z) / (4*n.z*n.z));
return params;
}