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


C++ Vector2D::dot方法代码示例

本文整理汇总了C++中Vector2D::dot方法的典型用法代码示例。如果您正苦于以下问题:C++ Vector2D::dot方法的具体用法?C++ Vector2D::dot怎么用?C++ Vector2D::dot使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Vector2D的用法示例。


在下文中一共展示了Vector2D::dot方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: IsHyperplane

bool IsHyperplane(const Point2D& p0, const Point2D& p1, const Point2D& q)
{
	Vector2D e = p1 - p0;
	Vector2D norm = Vector2D(-e.y, e.x);
	printf("		%f\n",norm.dot(q - p0));
	if( GREATER(norm.dot(q - p0) , 0) )
		return true;
	return false;
}
开发者ID:chongbingbao,项目名称:Programmers_Computational_Geometry,代码行数:9,代码来源:ConvexIntersectConvex.cpp

示例2:

Vector2D
Vector2D::proj(Vector2D s, Vector2D t)
{

	t.normalise();
	Vector2D proj = t;
	float multiple = proj.dot(s, t) / proj.dot(t, t);
	proj.mult(multiple);
	return proj;

}
开发者ID:MarekBillington,项目名称:Asteroids-Game,代码行数:11,代码来源:Vector2D.cpp

示例3: ExtremePoint_Naive

/*
\brief 暴力算法,求多边形上方向是u的极点,设凸多边形是逆时针顺序的。
*/
int ExtremePoint_Naive( const Point2D* p, int n, const Vector2D& u)
{
	int i , mxI = 0;
	int count = 0;
	Real mx = u.dot(p[0]);
	for( i=1 ; i<n ; i++ )
	{
		if( u.dot(p[i]) > mx )
		{
			mx = u.dot(p[i]);
			mxI = i;
		}
	}
	return mxI;
}
开发者ID:chongbingbao,项目名称:Programmers_Computational_Geometry,代码行数:18,代码来源:ExtremePoint.cpp

示例4: Direction

/*
\brief 判断e与u是否同方向。
\return	返回1,	若e与u同方向;
		返回0,	若e与u垂直;
		返回-1,若e与u方向相反;
*/
int Direction(const Vector2D& e, const Vector2D& u)
{
	Real d = e.dot(u);
	if( fabs(d) < EPS )	return 0;
	if( d < 0 )		return -1;
	return 1;
}
开发者ID:chongbingbao,项目名称:Programmers_Computational_Geometry,代码行数:13,代码来源:ExtremePoint.cpp

示例5: intersect

 int intersect(const Circle2D& c, Vector2D& p1, Vector2D& p2) {
     if(center == c.center) {
         if(noEps(r - c.r) == 0) return -1; // overlap
         else return 0;
     }
     Vector2D v0 = Vector2D((c.center - center)*2);
     double u = c.center.dot(c.center) - center.dot(center) + sqr(r) - sqr(c.r);
     if(noEps(v0.x) != 0) return intersect(Line2D(Vector2D(u/v0.x, 0), ~v0), p1, p2);
     else return intersect(Line2D(Vector2D(0, u/v0.y), ~v0), p1, p2);
 }
开发者ID:NTU223,项目名称:codebook,代码行数:10,代码来源:cg.cpp

示例6:

double SurfaceToImplicit2::signedDistanceLocal(
    const Vector2D& otherPoint) const {
    Vector2D x = _surface->closestPoint(otherPoint);
    Vector2D n = _surface->closestNormal(otherPoint);
    n = (isNormalFlipped) ? -n : n;
    if (n.dot(otherPoint - x) < 0.0) {
        return -x.distanceTo(otherPoint);
    } else {
        return x.distanceTo(otherPoint);
    }
}
开发者ID:sumitneup,项目名称:fluid-engine-dev,代码行数:11,代码来源:surface_to_implicit2.cpp

示例7: IsPointInConv

int IsPointInConv(const Point2D* v, int n, const Point2D& p)
{
	int left = 0 , right = 0 , middle;
	Vector2D edge , normal;
	Real tmp;
	while(true)
	{
		if( (right - left + n) % n == 1 )
		{
			edge = v[right] - v[left];
			Vector2D e0 = p - v[left];
			normal.set(edge.y , -edge.x);
			tmp = normal.dot(e0);
			if( GREATER(tmp,0) )
				return OUTSIDE;
			else if( LESS(tmp,0) )
				return INSIDE;
			if( LESS(edge.dot(e0),0) )
				return OUTSIDE;
			SrVector2D e1 = p - v[right];
			if( GREATER(edge.dot(e1),0) )
				return OUTSIDE;
			return ON;
		}
		middle = left < right?((left + right) >> 1):((left + right + n) >> 1) % n;

		edge = v[middle] - v[left];
		normal.set(edge.y , -edge.x);

		tmp = normal.dot(p - v[left]);
		if( GEQUAL(tmp,0) )
			right = middle;
		else
			left = middle;
	}
}
开发者ID:chongbingbao,项目名称:Programmers_Computational_Geometry,代码行数:36,代码来源:ConvexIntersectConvex.cpp

示例8: IsBelow

/*
\brief 判断点a是否在b的下方。
*/
bool IsBelow(const Point2D& a , const Point2D& b, const Vector2D& u)
{
	return u.dot(a-b) < 0;
}
开发者ID:chongbingbao,项目名称:Programmers_Computational_Geometry,代码行数:7,代码来源:ExtremePoint.cpp

示例9: IsAbove

/*
\brief 判断点a是否在b的上方。
*/
bool IsAbove(const Point2D& a , const Point2D& b, const Vector2D& u)
{
	return u.dot(a-b) > 0;
}
开发者ID:chongbingbao,项目名称:Programmers_Computational_Geometry,代码行数:7,代码来源:ExtremePoint.cpp


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