package medusa.georgios.Layouts;
/*
 * VectorNormalization.java
 *
 * Created on November 24, 2006, 12:14 PM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */
//0011 extrema = minmax(values);
//0012 oldmin = extrema(1);  oldmax = extrema(2);
//0013 
//0014 oldrange = oldmax - oldmin;
//0015 newrange = newmax - newmin;
//0016 
//0017 % special case
//0018 if (oldrange == 0)
//0019     values = repmat((newmax + newmin)/2, size(values));
//0020     return;
//0021 end
//0022 
//0023 % Rescaling conceptually uses the following formula:
//0024 %     zero_to_one = (oldvalues - oldmin) ./ oldrange;
//0025 %     newvalues   = (zero_to_one .* newrange) + newmin;
//0026 % But doing it out longhand like this takes two matrix multiplications
//0027 % and two matrix additions.  The command below takes a more convoluted
//0028 % route to do the same thing with half the number of full matrix operations.
//0029 scale = oldrange ./ newrange;
//0030 shift = oldmin - (scale .* newmin);
//0031 values = (values - shift) ./ scale;


import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import medusa.georgios.vecmathpackage.Point3d;



/**
 *
 * @author Georgios
 */



public class Point3d_VectorNormalization {

    ArrayList Normalized_vector=new ArrayList();
    double lower_limit, upper_limit;
    
    public Point3d_VectorNormalization(ArrayList list, double Lower_limit, double UpperLimit) {
        double tmp;
        Run_Point3d_VectorNormalization(list,  Lower_limit,  UpperLimit);
    }
    
    public Point3d_VectorNormalization(ArrayList float_list, double Lower_limit, double UpperLimit,int mode) { 
      
        ArrayList plist = new ArrayList();
        for (int i = 0; i < float_list.size(); i++)
        {
            Point3d ppp = new Point3d(float_list.get(i),float_list.get(i),float_list.get(i));
            plist.add(ppp);
        }
        Run_Point3d_VectorNormalization(plist,  Lower_limit,  UpperLimit);
    }
    
    public Point3d_VectorNormalization(String filename, double Lower_limit, double UpperLimit) {  
       
        ArrayList float_list = new ArrayList();
        StringBuffer input = new StringBuffer();
        String  thisLine;
        try{
            FileInputStream fin =  new FileInputStream(filename);
            BufferedReader myInput = new BufferedReader(new InputStreamReader(fin));
            while ((thisLine = myInput.readLine()) != null) {
                    float_list.add(Float.parseFloat(thisLine));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        
        
        ArrayList plist = new ArrayList();
        for (int i = 0; i < float_list.size(); i++) 
            plist.add(new Point3d(float_list.get(i),float_list.get(i),float_list.get(i)));
        Run_Point3d_VectorNormalization(plist,  Lower_limit,  UpperLimit);
    }
    
    
    
       public void Run_Point3d_VectorNormalization(ArrayList list, double Lower_limit, double UpperLimit) {
        double tmp,new_value_X=0,new_value_Y=0,new_value_Z=0;
        if(UpperLimit list_log = new ArrayList();
        for (int i = 0; i < list.size(); i++) {
            Point3d p = new Point3d((list.get(i).x),(list.get(i).y),list.get(i).z);
            list_log.add(p);
        }
      
        double maximum_x=-9999;
        double minimum_x=9999;
        double maximum_y=-9999;
        double minimum_y=9999;
        for (int i = 0; i < list_log.size(); i++)
        {
            if(list_log.get(i).x>maximum_x)maximum_x=list_log.get(i).x;
            if(list_log.get(i).y>maximum_y)maximum_y=list_log.get(i).y;
            if(list_log.get(i).x old = new ArrayList();
//           for (int i = 0; i < 5; i++) 
//              old.add(new Point3d(Math.random(),Math.random(),0)); 
//         Value_Normalization arr= new  Value_Normalization(old,lower_limit,upper_limit);
//         ArrayList New =  arr.Return_Normalized_Vector();
//         for (int i = 0; i < New.size(); i++) {
//             System.out.print(old.get(i)+"---->"+New.get(i)+"\t");
//             if(New.get(i).x>upper_limit) {System.out.print("error x upper limit\t");error=true;}
//             if(New.get(i).y>upper_limit) {System.out.print("error y upper limit\t");error=true;}
//             if(New.get(i).x old = new ArrayList();
////
//              old.add(new Point3d(27.284480738588833, 31.72191636083955, -3.24624068648941E-16)); 
//              old.add(new Point3d(27.466757077474767, 36.68702809377519, 5.569718453552241)); 
//              old.add(new Point3d(32.15876804941409, 40.40254461246098, 5.5697194535522385)); 
//              old.add(new Point3d(38.36979899957279, 34.03834058199091, 5.569720453552236)); 
//              old.add(new Point3d(22.149222921708414, 37.67372064188468, 5.5697214535522335)); 
//              old.add(new Point3d(21.7974413348074, 44.019514649062366, 5.569722453552231)); 
              
old.add(new Point3d(-0.346661665793603, -0.2900696819081146, -3.24624068648941E-16));
old.add(new Point3d(-0.39953170261075266, 0.3191490753659873, -5.892990639115484E-16));
old.add(new Point3d(-0.3995317026107714, 0.3191490753659655, -4.012103159957673E-16));
old.add(new Point3d(0.09553733049546638, -0.7852678541994769, 5.526088161660622E-16));
old.add(new Point3d(0.5250938702598295, 0.21851969268781998, 0.7071067811865471));
old.add(new Point3d(0.5250938702598309, 0.21851969268781896, -0.7071067811865471));


              
         Point3d_VectorNormalization arr= new  Point3d_VectorNormalization(old,lower_limit,upper_limit);
         
         //Value_Normalization arr= new  Value_Normalization("Vector_To_Normalize.txt",lower_limit,upper_limit);
         ArrayList New =  arr.Return_Normalized_Vector();
          for (int i = 0; i < New.size(); i++) 
             System.out.println(New.get(i).x);
           
       }
}

 

Ads help maintain this website.