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


C++ vec3::Cross方法代码示例

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


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

示例1: Rotation

	const Quaternion Quaternion::Rotation(const vec3& unitVec0, const vec3& unitVec1)
	{
		float cosHalfAngleX2, recipCosHalfAngleX2;
		cosHalfAngleX2 = sqrt((2.0f * (1.0f + unitVec0.Dot(unitVec1))));
		recipCosHalfAngleX2 = (1.0f / cosHalfAngleX2);
		return Quaternion((unitVec0.Cross(unitVec1) * recipCosHalfAngleX2), (cosHalfAngleX2 * 0.5f));
	}
开发者ID:Antranilan,项目名称:Sparky,代码行数:7,代码来源:Quaternion.cpp

示例2: set

void Camera::set(const vec3& eyepos, const vec3& look, const vec3& up)
{
	eye = eyepos;
	n = eyepos - look;
	v = up.Cross(n);
	u = n.Cross(v);
	mRadius = n.Length(); // cache this distance

	u.Normalize();
	v.Normalize();
	n.Normalize();
}
开发者ID:chenwan,项目名称:fluidsim,代码行数:12,代码来源:camera.cpp

示例3: set

void ACamera::set(const vec3& eyepos, const vec3& look, const vec3& up)
{
   mEye = eyepos;
   mN = eyepos - look;
   mV = up.Cross(mN);
   mU = mN.Cross(mV);
   mRadius = mN.Length(); // cache this distance

   mU.Normalize();
   mV.Normalize();
   mN.Normalize();
}
开发者ID:codemodo,项目名称:animation_toolkit,代码行数:12,代码来源:aCamera.cpp

示例4: CreateFromVectors

	static CQuaternion CreateFromVectors(vec3 v0, vec3 v1)  {
		CQuaternion q;
		
		if (v0 == -v1) {//Create from Axis Angle
		  //int a = 1;
		}

		vec3 c = v0.Cross(v1);
		float d = v0.Dot(v1);
		
		float s = (float)  sqrt((1+d)*2);

		q.x = c.x /s;
		q.y = c.y/s;
		q.z = c.z/s;
		q.w = s / 2.0f;
		return q;
	}
开发者ID:AcnodeLabs,项目名称:Athenaeum,代码行数:18,代码来源:CQuaternion.hpp

示例5: FreeCamera

	const mat4 FreeCamera(vec3 eye, vec3 dir, vec3 up)
	{
		// Builds a look-at style view matrix.
		// This is essentially the same matrix used by gluLookAt().
		vec3 target = eye + dir;
		vec3 zAxis = eye - target;
		zAxis.Normalize();

		vec3 xAxis = up.Cross(zAxis);
		xAxis.Normalize();

		vec3 yAxis = zAxis.Cross(xAxis);
		yAxis.Normalize();

		mat4 res;
		float* m = &res[0];

		m[0*4 + 0] = xAxis[0];
		m[1*4 + 0] = xAxis[1];
		m[2*4 + 0] = xAxis[2];
		m[3*4 + 0] = -xAxis.Dot(eye);

		m[0*4 + 1] = yAxis[0];
		m[1*4 + 1] = yAxis[1];
		m[2*4 + 1] = yAxis[2];
		m[3*4 + 1] = -yAxis.Dot(eye);

		m[0*4 + 2] = zAxis[0];
		m[1*4 + 2] = zAxis[1];
		m[2*4 + 2] = zAxis[2];
		m[3*4 + 2] = -zAxis.Dot(eye);

		m[0*4 + 3] = 0.0f;
		m[1*4 + 3] = 0.0f;
		m[2*4 + 3] = 0.0f;
		m[3*4 + 3] = 1.0f;
		return res;
	}
开发者ID:Mikalai,项目名称:punk_project,代码行数:38,代码来源:helper.cpp

示例6:

void RigidBody3::ApplyForceAtBodyPoint(const vec3& force, const vec3& point)
{
	// forces += force;
	torques += force.Cross( modelMatrix.RotateFromLocalToGlobal(point) );
}
开发者ID:gurki,项目名称:gameengine,代码行数:5,代码来源:RigidBody3.cpp


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