当前位置: 首页>>代码示例>>Java>>正文


Java Area.intersects方法代码示例

本文整理汇总了Java中java.awt.geom.Area.intersects方法的典型用法代码示例。如果您正苦于以下问题:Java Area.intersects方法的具体用法?Java Area.intersects怎么用?Java Area.intersects使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在java.awt.geom.Area的用法示例。


在下文中一共展示了Area.intersects方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: eraseBorderGlyphs

import java.awt.geom.Area; //导入方法依赖的package包/类
/**
 * Erase from text image the glyphs that intersect or touch a staff core area.
 * <p>
 * (We also tried to remove too small glyphs, but this led to poor recognition by OCR)
 *
 * @param glyphs all the glyph instances in image
 * @param cores  all staves cores
 */
private void eraseBorderGlyphs (List<Glyph> glyphs,
                                List<Area> cores)
{
    for (Glyph glyph : glyphs) {
        // Check position WRT staves cores
        Rectangle glyphBox = glyph.getBounds();
        glyphBox.grow(1, 1); // To catch touching glyphs (on top of intersecting ones)

        for (Area core : cores) {
            if (core.intersects(glyphBox)) {
                glyph.getRunTable().render(g, glyph.getTopLeft());

                break;
            }
        }
    }
}
 
开发者ID:Audiveris,项目名称:audiveris,代码行数:26,代码来源:SheetScanner.java

示例2: lookup

import java.awt.geom.Area; //导入方法依赖的package包/类
/**
 * Retrieve the chord(s) embraced by the slur side.
 *
 * @param slur the provided slur
 * @param side desired side
 * @return the map of chords found, perhaps empty, with their data
 */
private Map<Inter, ChordLink> lookup (SlurInter slur,
                                      HorizontalSide side)
{
    Map<Inter, ChordLink> found = new HashMap<Inter, ChordLink>();
    SlurInfo info = slur.getInfo();
    Area area = info.getChordArea(side == LEFT);
    Point slurTarget = info.getTargetPoint(side == LEFT);

    // Look for intersected chords
    for (Inter chord : chords.get(side)) {
        Rectangle chordBox = chord.getBounds();

        if (area.intersects(chordBox)) {
            // Check the chord contains at least one suitable head on desired slur side
            if (chordHasHead((AbstractChordInter) chord, slur, side)) {
                found.put(chord, new ChordLink(slurTarget, (AbstractChordInter) chord));
            }
        }
    }

    return found;
}
 
开发者ID:Audiveris,项目名称:audiveris,代码行数:30,代码来源:SlursLinker.java

示例3: erasedInters

import java.awt.geom.Area; //导入方法依赖的package包/类
/**
 * Report all erased inters in provided system that intersect the provided box.
 *
 * @param system    the system being processed
 * @param box       the box to be intersected
 * @param crossable true for crossable, false for non-crossable
 * @return the collection of erased inter instances with proper crossable characteristic
 */
private Set<Inter> erasedInters (SystemInfo system,
                                 Rectangle box,
                                 boolean crossable)
{
    Set<Inter> found = new LinkedHashSet<Inter>();
    List<Inter> inters = skeleton.getErasedInters(crossable).get(system);

    for (Inter inter : inters) {
        if (inter.getBounds().intersects(box)) {
            Area area = inter.getArea();

            if ((area == null) || area.intersects(box)) {
                found.add(inter);
            }
        }
    }

    return found;
}
 
开发者ID:Audiveris,项目名称:audiveris,代码行数:28,代码来源:CurvesBuilder.java

示例4: getSystemsOf

import java.awt.geom.Area; //导入方法依赖的package包/类
/**
 * Report the systems that intersect the provided rectangle
 *
 * @param rect  the provided rectangle
 * @param found (output) list to be populated (allocated if null)
 * @return the containing systems info, perhaps empty but not null
 */
public List<SystemInfo> getSystemsOf (Rectangle2D rect,
                                      List<SystemInfo> found)
{
    if (found != null) {
        found.clear();
    } else {
        found = new ArrayList<SystemInfo>();
    }

    for (SystemInfo system : systems) {
        Area area = system.getArea();

        if ((area != null) && area.intersects(rect)) {
            found.add(system);
        }
    }

    return found;
}
 
开发者ID:Audiveris,项目名称:audiveris,代码行数:27,代码来源:SystemManager.java

示例5: getBoundsForActiveGene

import java.awt.geom.Area; //导入方法依赖的package包/类
/**
 * Get the motion bounds for any biomolecule that is going to be associated
 * with the currently active gene.  This is used to keep the biomolecules
 * from wandering outside of the area that the user can see.
 */
public MotionBounds getBoundsForActiveGene() {

    // The bottom bounds are intended to be roughly at the bottom of the
    // viewport.  The value was empirically determined.
    double bottomYPos = DnaMolecule.Y_POS - 2000;

    // Get the nominal bounds for this gene.
    Area bounds = new Area( new Rectangle2D.Double( activeGene.get().getCenterX() - BIOMOLECULE_STAGE_WIDTH / 2,
                                                    bottomYPos,
                                                    BIOMOLECULE_STAGE_WIDTH,
                                                    BIOMOLECULE_STAGE_HEIGHT ) );

    // Subtract off any off limits areas.
    for ( Shape offLimitMotionSpace : offLimitsMotionSpaces ) {
        if ( bounds.intersects( offLimitMotionSpace.getBounds2D() ) ) {
            bounds.subtract( new Area( offLimitMotionSpace ) );
        }
    }

    return new MotionBounds( bounds );
}
 
开发者ID:mleoking,项目名称:PhET,代码行数:27,代码来源:ManualGeneExpressionModel.java

示例6: hit

import java.awt.geom.Area; //导入方法依赖的package包/类
/**
 * @see Graphics2D#hit(Rectangle, Shape, boolean)
 */
public boolean hit(Rectangle rect, Shape s, boolean onStroke) {
    if (onStroke) {
        s = stroke.createStrokedShape(s);
    }
    s = transform.createTransformedShape(s);
    Area area = new Area(s);
    if (clip != null)
        area.intersect(clip);
    return area.intersects(rect.x, rect.y, rect.width, rect.height);
}
 
开发者ID:albfernandez,项目名称:itext2,代码行数:14,代码来源:PdfGraphics2D.java

示例7: intersectedGlyphs

import java.awt.geom.Area; //导入方法依赖的package包/类
/**
 * Look up in a collection of glyph instances for <b>all</b> glyph
 * instances intersected by a provided area.
 *
 * @param collection the collection of glyph instances to be browsed
 * @param area       the intersecting area
 * @return the glyph instances found, which may be an empty list
 */
public static Set<Glyph> intersectedGlyphs (Collection<? extends Glyph> collection,
                                            Area area)
{
    Set<Glyph> set = new LinkedHashSet<Glyph>();

    for (Glyph glyph : collection) {
        if (area.intersects(glyph.getBounds())) {
            set.add(glyph);
        }
    }

    return set;
}
 
开发者ID:Audiveris,项目名称:audiveris,代码行数:22,代码来源:Glyphs.java

示例8: hit

import java.awt.geom.Area; //导入方法依赖的package包/类
@Override
public boolean hit(Rectangle rect, Shape s, boolean onStroke) {
	if(onStroke) {
		return hit(rect, getStroke().createStrokedShape(s), false);
	}
	
	Area area = new Area(s);
	return area.intersects(rect);
}
 
开发者ID:mickleness,项目名称:pumpernickel,代码行数:10,代码来源:AbstractGraphics2D.java

示例9: intersectedInters

import java.awt.geom.Area; //导入方法依赖的package包/类
/**
 * Lookup the provided list of interpretations for those whose related glyph
 * intersect the given area.
 *
 * @param inters the list of interpretations to search for
 * @param order  if the list is already sorted by some order, this may speedup the search
 * @param area   the intersecting area
 * @return the intersected interpretations found
 */
public static List<Inter> intersectedInters (List<Inter> inters,
                                             GeoOrder order,
                                             Area area)
{
    List<Inter> found = new ArrayList<Inter>();
    Rectangle bounds = area.getBounds();
    double xMax = bounds.getMaxX();
    double yMax = bounds.getMaxY();

    for (Inter inter : inters) {
        if (inter.isDeleted()) {
            continue;
        }

        Rectangle iBox = inter.getBounds();

        if (area.intersects(iBox)) {
            found.add(inter);
        } else {
            switch (order) {
            case BY_ABSCISSA:

                if (iBox.x > xMax) {
                    return found;
                }

                break;

            case BY_ORDINATE:

                if (iBox.y > yMax) {
                    return found;
                }

                break;

            case NONE:
            }
        }
    }

    return found;
}
 
开发者ID:Audiveris,项目名称:audiveris,代码行数:53,代码来源:SIGraph.java

示例10: isBirdDied

import java.awt.geom.Area; //导入方法依赖的package包/类
public boolean isBirdDied(Bird bird) {
	
	int[] xpoints1 = {x, x, x + top.getWidth(null), x + top.getWidth(null)};
	int[] ypoints1 = {y - top.getHeight(null), y, y, y - top.getHeight(null)};
	
	int[] xpoints2 = {x, x, x + bottom.getWidth(null), x + bottom.getWidth(null)};
	int[] ypoints2 = {y + GameFrame.w, y + GameFrame.w + bottom.getHeight(null), y + GameFrame.w + bottom.getHeight(null), y + GameFrame.w };
	
	Polygon p1 = new Polygon(xpoints1, ypoints1, 4);
	Polygon p2 = new Polygon(xpoints2, ypoints2, 4);
	
	Area a1 = new Area(p1);
	Area a2 = new Area(p2);
	
	return a1.intersects(bird.getX(), bird.getY(), 35, 30) || a2.intersects(bird.getX(), bird.getY(), 35, 35) || bird.getY() > 450 || bird.getY() < 0;
	
}
 
开发者ID:ard333,项目名称:flappy-bird,代码行数:18,代码来源:Pipe.java

示例11: computeTiledROIs

import java.awt.geom.Area; //导入方法依赖的package包/类
/**
 * Create a collection of tiled ROIs corresponding to a specified parentROI if it is larger than sizeMax.
 * 
 * If the parentROI is smaller, it is returned as is.
 * 
 * @param parentROI
 * @param sizePreferred
 * @param sizeMax
 * @param fixedSize
 * @param overlap
 * @return
 */
public static Collection<? extends ROI> computeTiledROIs(ROI parentROI, ImmutableDimension sizePreferred, ImmutableDimension sizeMax, boolean fixedSize, int overlap) {

	PathArea pathArea = parentROI instanceof PathArea ? (PathArea)parentROI : null;
	Rectangle2D bounds = AwtTools.getBounds2D(parentROI);
	if (pathArea == null || (bounds.getWidth() <= sizeMax.width && bounds.getHeight() <= sizeMax.height)) {
		return Collections.singletonList(parentROI);
	}


	List<ROI> pathROIs = new ArrayList<>();

	Area area = getArea(pathArea);

	double xMin = bounds.getMinX();
	double yMin = bounds.getMinY();
	int nx = (int)Math.ceil(bounds.getWidth() / sizePreferred.width);
	int ny = (int)Math.ceil(bounds.getHeight() / sizePreferred.height);
	double w = fixedSize ? sizePreferred.width : (int)Math.ceil(bounds.getWidth() / nx);
	double h = fixedSize ? sizePreferred.height : (int)Math.ceil(bounds.getHeight() / ny);

	// Center the tiles
	xMin = (int)(bounds.getCenterX() - (nx * w * .5));
	yMin = (int)(bounds.getCenterY() - (ny * h * .5));

	for (int yi = 0; yi < ny; yi++) {
		for (int xi = 0; xi < nx; xi++) {

			double x = xMin + xi * w - overlap;
			double y = yMin + yi * h - overlap;

			Rectangle2D boundsTile = new Rectangle2D.Double(x, y, w + overlap*2, h + overlap*2);

			//				double x = xMin + xi * w;
			//				double y = yMin + yi * h;
			//				
			//				Rectangle2D boundsTile = new Rectangle2D.Double(x, y, w, h);
			//					logger.info(boundsTile);
			ROI pathROI = null;
			Shape shape = getShape(pathArea);
			if (shape.contains(boundsTile))
				pathROI = new RectangleROI(boundsTile.getX(), boundsTile.getY(), boundsTile.getWidth(), boundsTile.getHeight(), parentROI.getC(), parentROI.getZ(), parentROI.getT());
			else if (pathArea instanceof RectangleROI) {
				Rectangle2D bounds2 = boundsTile.createIntersection(bounds);
				pathROI = new RectangleROI(bounds2.getX(), bounds2.getY(), bounds2.getWidth(), bounds2.getHeight(), parentROI.getC(), parentROI.getZ(), parentROI.getT());
			}
			else {
				if (!area.intersects(boundsTile))
					continue;
				Area areaTemp = new Area(boundsTile);
				areaTemp.intersect(area);
				if (!areaTemp.isEmpty())
					pathROI = new AWTAreaROI(areaTemp, parentROI.getC(), parentROI.getZ(), parentROI.getT());					
			}
			if (pathROI != null)
				pathROIs.add(pathROI);
			x += w;
		}
	}
	return pathROIs;
}
 
开发者ID:qupath,项目名称:qupath,代码行数:73,代码来源:PathROIToolsAwt.java


注:本文中的java.awt.geom.Area.intersects方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。