X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=sixth-3d-demos.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fsixth%2Fe3d%2Fexamples%2FRandomPolygonsDemo.java;h=0d34265784f4c1a3edff4e70d3b0d4f5c16b4fe9;hp=3640e4ba720ab282fabb0176b67faf796cef635c;hb=04220ddc40ea23ff3fa0d397d2c53db66f76952c;hpb=cea6336f011484356f2d4294d45849f3c398e2e7 diff --git a/src/main/java/eu/svjatoslav/sixth/e3d/examples/RandomPolygonsDemo.java b/src/main/java/eu/svjatoslav/sixth/e3d/examples/RandomPolygonsDemo.java index 3640e4b..0d34265 100755 --- a/src/main/java/eu/svjatoslav/sixth/e3d/examples/RandomPolygonsDemo.java +++ b/src/main/java/eu/svjatoslav/sixth/e3d/examples/RandomPolygonsDemo.java @@ -1,10 +1,8 @@ /* - * Sixth 3D engine demos. Copyright ©2012-2018, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu + * Sixth 3D engine demos. Author: Svjatoslav Agejenko. + * This project is released under Creative Commons Zero (CC0) license. * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 3 of the GNU Lesser General Public License - * or later as published by the Free Software Foundation. - */ +*/ package eu.svjatoslav.sixth.e3d.examples; @@ -18,28 +16,38 @@ import eu.svjatoslav.sixth.e3d.renderer.raster.shapes.composite.wireframe.Grid3D public class RandomPolygonsDemo { + private static final double POLYGON_AVERAGE_SIZE = 130; + private static final int POLYGON_COUNT = 1000; + private static void addRandomPolygon(final ShapeCollection geometryCollection) { final Point3D polygonLocation = getRandomPoint(1000); - final double polygonAverageSize = 30; - final Point3D point1 = new Point3D(polygonLocation); - point1.add(getRandomPoint(polygonAverageSize)); + point1.add(getRandomPoint(POLYGON_AVERAGE_SIZE)); final Point3D point2 = new Point3D(polygonLocation); - point2.add(getRandomPoint(polygonAverageSize)); + point2.add(getRandomPoint(POLYGON_AVERAGE_SIZE)); final Point3D point3 = new Point3D(polygonLocation); - point3.add(getRandomPoint(polygonAverageSize)); + point3.add(getRandomPoint(POLYGON_AVERAGE_SIZE)); - final Color color = new Color(Math.random(), Math.random(), - Math.random(), 0.5d); + final Color color = new Color( + getColorChannelBrightness(), + getColorChannelBrightness(), + getColorChannelBrightness(), + 1); final SolidPolygon polygon = new SolidPolygon(point1, point2, point3, color); geometryCollection.addShape(polygon); } + /* I don't want very dark polygons, so ensure there is at least some + * brightness present. */ + private static double getColorChannelBrightness() { + return Math.random() * 0.7 + 0.3f; + } + private static Point3D getRandomPoint(final double amplitude) { return new Point3D((Math.random() * amplitude * 2d) - amplitude, (Math.random() * amplitude * 2d) - amplitude, (Math.random() @@ -51,8 +59,8 @@ public class RandomPolygonsDemo { final ViewFrame viewFrame = new ViewFrame(); - final ShapeCollection shapeCollection = viewFrame.getView() - .getContext().getRootShapeCollection(); + final ShapeCollection shapeCollection = viewFrame.getViewPanel() + .getRootShapeCollection(); // add grid final LineAppearance appearance = new LineAppearance(5, new Color(100, @@ -62,7 +70,7 @@ public class RandomPolygonsDemo { new Point3D(-1000, 1000, 1000), 300, appearance)); // add random polygons - for (int i = 0; i < 3000; i++) + for (int i = 0; i < POLYGON_COUNT; i++) addRandomPolygon(shapeCollection); }