当前位置: 首页>>代码示例>>C++>>正文


C++ Hit::globalX方法代码示例

本文整理汇总了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;
}
开发者ID:JuantAldea,项目名称:trax,代码行数:39,代码来源:PhysicsRecord.cpp


注:本文中的Hit::globalX方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。