public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; int i, j, k; System.out.println("Starting painting"); // draw sets if (firstTimeAround) { drawSet(g2); render(); viewer.save("final_product_full.png"); firstTimeAround = false; } // render(); /* for(i=0;i<viewer.getWidth();i++){ for(j=0;j<viewer.getHeight();j++){ viewer.setPixel(i,j,Color3.BLACK); } } */ g2.setBackground(Color.BLACK); // if(newRender){ for (i = minX; i < maxX; i++) { // System.out.println("line "+i); for (j = minY; j < maxY; j++) { g2.setColor( new Color( (float) viewer.getPixel(i, j).getR(), (float) viewer.getPixel(i, j).getG(), (float) viewer.getPixel(i, j).getB())); // g2.drawLine(i,j,1,1); Ellipse2D.Double node_circ = new Ellipse2D.Double(i, j, 1, 1); g2.fill(node_circ); g2.setColor(Color.BLACK); // if(j*scale<viewer.getHeight()){ // j=0;//viewer.getHeight(); // } } // if(i*scale<viewer.getWidth()){ // i=0;//viewer.getWidth(); // } } // g2.drawImage(viewer.1) newRender = false; // } System.out.println("end painting"); }
void render() { Color3 endColor = Color3.BLACK; System.out.println("RE calculating the image"); int i, j, k; for (i = 0; i < viewer.getWidth(); i++) { for (j = 0; j < viewer.getHeight(); j++) { endColor = Color3.BLACK; for (k = 0; k < numScreens; k++) { float tempr = ((float) screens[k].getPixel(i, j).getR()) * ((float) ((instrument) proj_class.instruments.get_object(k)).getLevel() / (float) 100.0); float tempg = ((float) screens[k].getPixel(i, j).getG()) * ((float) ((instrument) proj_class.instruments.get_object(k)).getLevel() / (float) 100.0); float tempb = ((float) screens[k].getPixel(i, j).getB()) * ((float) ((instrument) proj_class.instruments.get_object(k)).getLevel() / (float) 100.0); if ((tempr != 0) || (tempg != 0) || (tempb != 0)) { float newr = tempr + (float) endColor.getR(); float newg = tempg + (float) endColor.getG(); float newb = tempb + (float) endColor.getB(); if (newr > 1) { newr = 1; } if (newg > 1) { newg = 1; } if (newb > 1) { newb = 1; } endColor = new Color3(newr, newg, newb); } } viewer.setPixel(i, j, endColor.toRGB()); } } newRender = true; repaint(); }
public void loadData() { // if(!dataLoaded){ scale = 1; maxX = 0; maxY = 0; minX = 640; minY = 480; numScreens = proj_class.instruments.get_num_objects(); screens = new Bitmap[numScreens]; levels = new int[numScreens]; int i; for (i = 0; i < (proj_class.instruments.get_num_objects()); i++) { ((instrument) proj_class.instruments.get_object(i)).setLevel(100); } for (i = 0; i < numScreens; i++) { screens[i] = new Bitmap(640, 480, false); int x, y; for (x = 0; x < 640; x++) { for (y = 0; y < 480; y++) { screens[i].setPixel(x, y, Color3.BLACK); } } levels[i] = 0; int j; for (j = 0; j < proj_class.photonmap.getStoredPhotons(); j++) { Photon pho = proj_class.photonmap.getPhoton(j); if (pho != null) { if (pho.lightSource == i) { screens[i].setPixel((int) pho.x, 480 - (int) pho.z, new Color3(pho.R, pho.G, pho.B)); if ((int) pho.x > maxX) { maxX = (int) pho.x; } if ((480 - (int) pho.z) > maxY) { maxY = (480 - (int) pho.z); } if ((int) pho.x < minX) { minX = (int) pho.x; } if ((480 - (int) pho.z) < minY) { minY = (480 - (int) pho.z); } } } } screens[i].save("lightscreen" + i + ".png"); } viewer = new Bitmap(640, 480, false); int j; for (i = 0; i < viewer.getWidth(); i++) { for (j = 0; j < viewer.getHeight(); j++) { viewer.setPixel(i, j, Color3.BLACK); } } // dataLoaded=true; // } int tempx = 0; int tempy = 0; if (maxX != 0) { tempx = 640 / maxX; } if (maxY != 0) { tempy = 480 / maxY; } if (tempx > 0) { if (tempx > tempy) { scale = tempx; } } if (tempy > 0) { if (tempy > tempx) { scale = tempy; } } }