vector3.cpp

来自「java实现的简单的分形树。简单易学!是学习分形知识的很好的例子。其java语法」· C++ 代码 · 共 40 行

CPP
40
字号
// --------------------------------------------------------------------------
// Dingus project - a collection of subsystems for game/graphics applications
// --------------------------------------------------------------------------
#include "stdafx.h"

#include "Vector3.h"
#include "Constants.h"
#include "FPU.h"

using namespace dingus;


// Pretty straight from ODE sources :)
void SVector3::planeSpace( SVector3& p, SVector3& q ) const
{
	if( fabsf( z ) > SQRT12 ) {
		// choose p in y-z plane
		float a = y*y + z*z;
		float k = invSqrt( a );
		p.x = 0;
		p.y = -z*k;
		p.z = y*k;
		// set q = n cross p
		q.x = a*k;
		q.y = -x*p.z;
		q.z = x*p.y;
	} else {
		// choose p in x-y plane
		float a = x*x + y*y;
		float k = invSqrt(a);
		p.x = -y*k;
		p.y = x*k;
		p.z = 0;
		// set q = n x p
		q.x = -z*p.y;
		q.y = z*p.x;
		q.z = a*k;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?