示例#1
0
btVector3 randomBVec3InRange( std::pair< btVector3, btVector3 > range =
                        std::pair< btVector3, btVector3 >(
                            btVector3( -1, -1, -1),
                            btVector3(  1,  1,  1) ) )
{
    return(
        btVector3( 
            randomFloatInRange(
                std::pair< float, float >( range.first[0], range.second[0] ) ),
            randomFloatInRange(                                                
                std::pair< float, float >( range.first[1], range.second[1] ) ),
            randomFloatInRange(                                                
                std::pair< float, float >( range.first[2], range.second[2] ) ) ) );
}
示例#2
0
		void init(){
			mouseX = 0;
			mouseY = 0;
			selectedIndex = -1;	
			//use time to get more random initial SOM arrangement
			srand(time(NULL));

			TSPFileReader trainingVectorFactory;
			vector<neuron> TrainingNeurons;

			//TrainingNeurons = trainingVectorFactory.retrieveTrainingVectors("./maps/RGB.tsp");
	
			neuron myNewNeuron;
			//data randomly generated
			for(int i=0; i<300; i++){
				for (int j=0;j<3;j++){
					myNewNeuron.push_back(randomFloatInRange(0,255)); 
				}
				TrainingNeurons.push_back(myNewNeuron);
				myNewNeuron.clear();
			}

			//clustered data added
			for(int i=0; i<100; i++){
				for(int j=0;j<3;j++){
					//add only high-blue values
					if(j==0){
						myNewNeuron.push_back(randomFloatInRange(0,255)); 
					}else{
						myNewNeuron.push_back(0); 
					}
				}
				TrainingNeurons.push_back(myNewNeuron);
				myNewNeuron.clear();
			}
			//clustered data added
			for(int i=0; i<100; i++){
				for(int j=0;j<3;j++){
					//add only high-blue values
					if(j==1){
						myNewNeuron.push_back(randomFloatInRange(0,255)); 
					}else{
						myNewNeuron.push_back(0); 
					}
				}
				TrainingNeurons.push_back(myNewNeuron);
				myNewNeuron.clear();
			}
			//clustered data added
			for(int i=0; i<100; i++){
				for(int j=0;j<3;j++){
					//add only high-blue values
					if(j==2){
						myNewNeuron.push_back(randomFloatInRange(0,255)); 
					}else{
						myNewNeuron.push_back(0); 
					}
				}
				TrainingNeurons.push_back(myNewNeuron);
				myNewNeuron.clear();
			}

			cam = new camera();
			cam->translateRight(0.75);
			cam->translateUp(0.75);
			cam->translateForward(-1.75);


			//colourcube: 3d data, 3d mesh(10x10x10), 1000 training iterations
			mySOM.init(TrainingNeurons,7,7,7,50);

			terminateProgram = false;
		}