public void draw() { if (_pointLists.size() <= 0) return; pushStyle(); noFill(); PVector vec; PVector firstVec; PVector screenPos = new PVector(); int colorIndex = 0; // draw the hand lists Iterator<Map.Entry> itrList = _pointLists.entrySet().iterator(); while (itrList.hasNext()) { strokeWeight(2); stroke(_colorList[colorIndex % (_colorList.length - 1)]); ArrayList curList = (ArrayList) itrList.next().getValue(); // draw line firstVec = null; Iterator<PVector> itr = curList.iterator(); beginShape(); while (itr.hasNext()) { vec = itr.next(); if (firstVec == null) firstVec = vec; // calc the screen pos context.convertRealWorldToProjective(vec, screenPos); vertex(screenPos.x, screenPos.y); } endShape(); // draw current pos of the hand if (firstVec != null) { strokeWeight(8); context.convertRealWorldToProjective(firstVec, screenPos); point(screenPos.x, screenPos.y); } colorIndex++; } popStyle(); }
// this method basically will chop up the blocks and get their frequencies private static void getBlockFrequency() throws Exception { directory = "../../thesis-datasets/morph_file_100MB/"; ReadFile.readFile(directory, fileList); // read the two files HashMap<Integer, Integer> blockFreq = new HashMap<Integer, Integer>(); // this stores the block in the map along there frequencies int start = 0; // start of the sliding window int end = start + window - 1; // ending boundary preliminaryStep(directory); // System.out.println("Choping the document TDDD " + fileList.get(0)); long[] divisorArray = { 1000 }; // run the frequency code for these divisor values (AKA expected block Size) for (long i : divisorArray) { long divisor1 = i; long divisor2 = i / 2; long divisor3 = i / 4; long remainder = 7; long minBoundary = min_multiplier * i; long maxBoundary = max_multiplier * i; // System.out.println("Running Likelihood for " + i + " " + divisor2 + " " + divisor3); int totalBlocks = chopDocument( fileArray.get(0), hashed_File_List.get(0), divisor1, divisor2, divisor3, remainder, minBoundary, maxBoundary, blockFreq); // now output the block sizes, along with there frequencies and probilities for (Map.Entry<Integer, Integer> tuple : blockFreq.entrySet()) { // output the block freq double prob = (double) tuple.getValue() / (double) totalBlocks; System.out.println(tuple.getKey() + " " + tuple.getValue() + " " + prob); } blockFreq.clear(); } }