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


C++ Vector4::CrossProduct方法代码示例

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


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

示例1: BuildViewMatrix

void Camera::BuildViewMatrix(const Maths::Vector4 &position, const Maths::Vector4 &lookAt, const Maths::Vector4 &up)
{
	Vector4 viewDir = lookAt - position;
	Vector4 viewSide, viewUp;
	
	// store values
	m_up = up;
	m_position = position;
	m_lookAt = lookAt;

	viewDir.Normalize();
	viewUp = up - viewDir * up.DotProduct( viewDir );
	viewUp.Normalize();
	viewSide = viewDir.CrossProduct( viewUp );

	// setup inverse rotation matrix
	Matrix4 rotation;
	rotation.SetRows( viewSide, viewUp, Vector4( -viewDir.X, -viewDir.Y, -viewDir.Z, -viewDir.W ), Vector4( 0.0f, 0.0f, 0.0f, 1.0f ) );

	//transform translation
	Vector4 invPos;
	Matrix4::Transform( rotation, position, invPos );
	m_inversePosition = -invPos;

	// build view matrix
	Matrix4 view;
	Matrix4::Multiply( view, rotation, m_viewMatrix );
	m_viewMatrix( 0, 3 ) = m_inversePosition.X;
	m_viewMatrix( 1, 3 ) = m_inversePosition.Y;
	m_viewMatrix( 2, 3 ) = m_inversePosition.Z;
	m_viewMatrix( 3, 3 ) = m_inversePosition.W;

	m_viewDir = viewDir;
}
开发者ID:ookumaneko,项目名称:Software-Renderer,代码行数:34,代码来源:Camera.cpp

示例2: testCrossProduct

void testCrossProduct(){
	Vector4 a;
	Vector4 b;
	a.SetVector4(1,2,0,1);
	b.SetVector4(2,1,1,1);
	Vector4* c;
	c = a.CrossProduct(b,a);
	c->DisplayVector4();

	delete c;
}
开发者ID:dapurv5,项目名称:csl307-assignments,代码行数:11,代码来源:test.cpp


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