Package net.algart.math.patterns

Examples of net.algart.math.patterns.UniformGridPattern


        for (int k = 0; k < ranges.length; k++) {
            ranges[k] = IRange.valueOf(Long.parseLong(args[++argIndex]), Long.parseLong(args[++argIndex]));
        }
        double step = Double.parseDouble(args[++argIndex]);
        int minimalPointCountForDecomposition = Integer.parseInt(args[++argIndex]);
        UniformGridPattern p = Patterns.newRectangularIntegerPattern(ranges)
            .multiply(step).shift(Point.valueOf(origin));
        System.out.println("Created pattern: " + p);
        System.out.println("Integer number of points: " + p.pointCount());
        System.out.println("Approximate number of points: " + p.largePointCount());
        if (p instanceof QuickPointCountPattern && ((QuickPointCountPattern) p).isPointCountVeryLarge()) {
            System.out.println("It is very large");
        }
        if (p.isActuallyRectangular()) {
            System.out.println("It is rectangular");
        }
        if (p.isSurelySinglePoint()) {
            System.out.println("It is 1-point");
        }
        if (p.isSurelyOriginPoint()) {
            System.out.println("It is origin of coordinates");
        }
        if (p.isSurelyInteger()) {
            System.out.println("It is integer");
        }
        if (p.pointCount() < 1000) {
            Pattern samePoints = Patterns.newPattern(p.points());
            System.out.println("Pattern with same points: " + samePoints);
            if (samePoints instanceof UniformGridPattern && ((UniformGridPattern)samePoints).isActuallyRectangular()) {
                System.out.println("It is also rectangular");
            }
        }
        System.out.println("Grid origin: " + p.originOfGrid());
        System.out.println("Grid steps vector: " + Point.valueOf(p.stepsOfGrid()));
        System.out.println("Minimal coordinates: " + p.coordMin());
        System.out.println("Maximal coordinates: " + p.coordMax());
        System.out.println("Minimal grid indexes: " + p.gridIndexMin());
        System.out.println("Maximal grid indexes: " + p.gridIndexMax());
        Set<IPoint> roundedPoints = p.roundedPoints();
        System.out.println(roundedPoints.size() + " rounded points");
        if (roundedPoints.size() < 1000) {
            System.out.println(new TreeSet<IPoint>(roundedPoints));
        }
        Set<Point> points = p.points();
        System.out.println(points.size() + " points");
        if (points.size() < 1000) {
            System.out.println(new TreeSet<Point>(points));
        }
        points = p.lowerSurface(0).points();
        System.out.println(points.size() + " left points:");
        if (points.size() < 1000) {
            System.out.println(new TreeSet<Point>(points));
        }
        points = p.upperSurface(0).points();
        System.out.println(points.size() + " right points:");
        if (points.size() < 1000) {
            System.out.println(new TreeSet<Point>(points));
        }
        points = p.surface().points();
        System.out.println(points.size() + " boundary:");
        if (points.size() < 1000) {
            System.out.println(new TreeSet<Point>(points));
        }
        System.out.println("Carcass:");
        System.out.println("    " + p.carcass() + " " + new TreeSet<Point>(p.carcass().points()));
        List<Pattern> unionDecomposition = p.unionDecomposition(minimalPointCountForDecomposition);
        System.out.println("Union decomposition to " + unionDecomposition.size() + " patterns:");
        for (Pattern q : unionDecomposition) {
            System.out.println("    " + q
                + (!q.hasMinkowskiDecomposition() ? " " + new TreeSet<Point>(q.points()) : ""));
        }
        List<Pattern> minkowskiDecomposition = p.minkowskiDecomposition(minimalPointCountForDecomposition);
        System.out.println("Minkowski decomposition to " + minkowskiDecomposition.size() + " patterns:");
        for (Pattern q : minkowskiDecomposition) {
            System.out.println("    " + q
                + (!q.hasMinkowskiDecomposition() ? " " + new TreeSet<Point>(q.points()) : ""));
        }
View Full Code Here


        }
        long size = srcArray.length();
        long[] shifts = BasicMorphology.toShifts(null, size, dimensions, pattern, false);
        if (shifts.length == 0)
            throw new AssertionError("Empty pattern: it is impossible");
        UniformGridPattern roundedPattern = pattern.round();
        long[] leftShifts = BasicMorphology.toShifts(null, size, dimensions, roundedPattern.lowerSurface(0), false);
        long[] rightShifts = BasicMorphology.toShifts(null, size, dimensions, roundedPattern.upperSurface(0), false);
        if (leftShifts.length != rightShifts.length)
            throw new AssertionError("Unbalanced pattern.lowerSurface / pattern.upperSurface: different lengths");
        PArray processed = asProcessed(requiredType, srcArray, additionalArrays, dimensions,
            shifts, leftShifts, rightShifts);
        T result;
View Full Code Here

TOP

Related Classes of net.algart.math.patterns.UniformGridPattern

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.