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


Java Circle2D类代码示例

本文整理汇总了Java中math.geom2d.conic.Circle2D的典型用法代码示例。如果您正苦于以下问题:Java Circle2D类的具体用法?Java Circle2D怎么用?Java Circle2D使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


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

示例1: transform

import math.geom2d.conic.Circle2D; //导入依赖的package包/类
@Override
public CircleLine2D transform(CircleInversion2D inv) {
	// Extract inversion parameters
       Point2D center 	= inv.getCenter();
       double r 		= inv.getRadius();
       
       Point2D po 	= this.getProjectedPoint(center);
       double d 	= this.getDistance(po);

       // Degenerate case of a point belonging to the line:
       // the transform is the line itself.
       if (Math.abs(d)<Shape2D.ACCURACY){
       	return new StraightLine2D(this);
       }
       
       // angle from center to line
       double angle = Angle2D.getHorizontalAngle(center, po);

       // center of transformed circle
       double r2 	= r*r/d/2;
       Point2D c2 	= Point2D.createPolar(center, r2, angle);

       // choose direction of circle arc
       boolean direct = !this.isInside(center);
       
       // return the created circle
       return new Circle2D(c2, r2, direct);
   }
 
开发者ID:kefik,项目名称:Pogamut3,代码行数:29,代码来源:StraightLine2D.java

示例2: findIntersections

import math.geom2d.conic.Circle2D; //导入依赖的package包/类
/**
 * Compute the intersections, if they exist, of two circulinear elements.
 */
public static Collection<Point2D> findIntersections(
		CirculinearElement2D elem1, 
		CirculinearElement2D elem2) {
	
	// First try to use linear shape methods
	if(elem1 instanceof LinearShape2D) {
		return elem2.getIntersections((LinearShape2D) elem1);
	}		
	if(elem2 instanceof LinearShape2D) {
		return elem1.getIntersections((LinearShape2D) elem2);
	}
	
	// From now, both elem1 and elem2 are instances of CircleShape2D
	// It is therefore possible to extract support circles
	Circle2D circ1 = ((CircularShape2D) elem1).getSupportingCircle();
	Circle2D circ2 = ((CircularShape2D) elem2).getSupportingCircle();
	
	// create array for storing result (max 2 possible intersections)
	ArrayList<Point2D> pts = new ArrayList<Point2D>(2);
	
	// for each of the circle intersections, check if they belong to
	// both elements
	for(Point2D inter : Circle2D.getIntersections(circ1, circ2)) {
		if(elem1.contains(inter) && elem2.contains(inter))
			pts.add(inter);
	}
	
	// return found intersections
	return pts;
}
 
开发者ID:kefik,项目名称:Pogamut3,代码行数:34,代码来源:CirculinearCurve2DUtils.java

示例3: computeBuffer

import math.geom2d.conic.Circle2D; //导入依赖的package包/类
/**
 * Compute buffer of a point set.
 */
public static CirculinearDomain2D computeBuffer(PointSet2D set, 
		double dist) {
	// create array for storing result
	Collection<CirculinearContour2D> contours = 
		new ArrayList<CirculinearContour2D>(set.getPointNumber());
	
	// for each point, add a new circle
	for(Point2D point : set) {
		contours.add(new Circle2D(point, Math.abs(dist), dist>0));
	}
	
	// process circles to remove intersections
	contours = splitIntersectingContours(contours);
	
	// Remove contours that cross or that are too close from base curve
	ArrayList<CirculinearContour2D> contours2 = 
		new ArrayList<CirculinearContour2D>(contours.size());
	for(CirculinearContour2D ring : contours) {
		
		// check that vertices of contour are not too close from original
		// curve
		double minDist = getDistanceCurvePoints(ring, set.getPoints());
		if(minDist<dist-Shape2D.ACCURACY)
			continue;
		
		// keep the contours that meet the above conditions
		contours2.add(ring);
	}

	return new GenericCirculinearDomain2D(new CirculinearBoundarySet2D(contours2));
}
 
开发者ID:kefik,项目名称:Pogamut3,代码行数:35,代码来源:CirculinearCurve2DUtils.java

示例4: drawCircle

import math.geom2d.conic.Circle2D; //导入依赖的package包/类
protected void drawCircle(Graphics2D g, ScreenTransform t, Pair<Integer, Integer> location, int range) {
    int x = location.first();
    int y = location.second();
    int d = t.xToScreen(x + range) - t.xToScreen(x);
    Circle2D circle2D = new Circle2D(t.xToScreen(x), t.yToScreen(y), d, true);
    circle2D.draw(g);
}
 
开发者ID:MRL-RS,项目名称:visual-debugger,代码行数:8,代码来源:MrlBaseHumanLayer.java

示例5: render

import math.geom2d.conic.Circle2D; //导入依赖的package包/类
@Override
public Collection<RenderedObject> render(Graphics2D g, ScreenTransform t, int width, int height) {
    if (xy != null) {
        int radius = 20;
        int x = t.xToScreen(xy.first());
        int y = t.yToScreen(xy.second());
        g.setColor(valueColor);
        g.drawOval(x - radius, y - radius, radius << 1, radius << 1);

        Circle2D circle2D = new Circle2D(t.xToScreen(xy.first()), t.yToScreen(xy.second()), 3d, true);
        circle2D.draw(g);
    }
    return new ArrayList<RenderedObject>();
}
 
开发者ID:MRL-RS,项目名称:visual-debugger,代码行数:15,代码来源:MrlLocationLayer.java

示例6: paintData

import math.geom2d.conic.Circle2D; //导入依赖的package包/类
@Override
    protected void paintData(Human h, Shape shape, Graphics2D g, ScreenTransform t) {
        g.setColor(Color.MAGENTA.darker());
        Circle2D circle2D = new Circle2D(t.xToScreen(h.getX()), t.yToScreen(h.getY()), 18d, true);
        circle2D.draw(g);
//        g.fill(shape);
    }
 
开发者ID:MRL-RS,项目名称:visual-debugger,代码行数:8,代码来源:MrlSampleHumansLayer.java

示例7: transform

import math.geom2d.conic.Circle2D; //导入依赖的package包/类
@Override
public CircleLine2D transform(CircleInversion2D inv) {
    // Extract inversion parameters
    Point2D center = inv.center();
    double r = inv.radius();

    // projection of inversion center on the line
    Point2D po = this.projectedPoint(center);
    double d = this.distance(center);

    // Degenerate case of a point belonging to the line:
    // the transform is the line itself.
    if (Math.abs(d) < Shape2D.ACCURACY) {
        return new StraightLine2D(this);
    }

    // angle from center to line
    double angle = Angle2D.horizontalAngle(center, po);

    // center of transformed circle
    double r2 = r * r / d / 2;
    Point2D c2 = Point2D.createPolar(center, r2, angle);

    // choose direction of circle arc
    boolean direct = this.isInside(center);

    // return the created circle
    return new Circle2D(c2, r2, direct);
}
 
开发者ID:pokowaka,项目名称:android-geom,代码行数:30,代码来源:StraightLine2D.java

示例8: createParallelContour

import math.geom2d.conic.Circle2D; //导入依赖的package包/类
public CirculinearContour2D createParallelContour(
        CirculinearContour2D contour, double dist) {

    // straight line is already a circulinear contour
    if (contour instanceof StraightLine2D) {
        return ((StraightLine2D) contour).parallel(dist);
    }
    // The circle is already a circulinear contour
    if (contour instanceof Circle2D) {
        return ((Circle2D) contour).parallel(dist);
    }

    // extract collection of parallel curves, that connect each other
    Collection<CirculinearContinuousCurve2D> parallelCurves = getParallelElements(
            contour, dist);

    // Create a new boundary with the set of parallel curves
    return new BoundaryPolyCirculinearCurve2D(parallelCurves,
            contour.isClosed());
}
 
开发者ID:pokowaka,项目名称:android-geom,代码行数:21,代码来源:BufferCalculator.java

示例9: computeBuffer

import math.geom2d.conic.Circle2D; //导入依赖的package包/类
/**
 * Compute buffer of a point set.
 */
public CirculinearDomain2D computeBuffer(PointSet2D set, double dist) {
    // create array for storing result
    Collection<CirculinearContour2D> contours = new ArrayList<CirculinearContour2D>(
            set.size());

    // for each point, add a new circle
    for (Point2D point : set) {
        contours.add(new Circle2D(point, Math.abs(dist), dist > 0));
    }

    // process circles to remove intersections
    contours = CirculinearCurves2D.splitIntersectingContours(contours);

    // Remove contours that cross or that are too close from base curve
    ArrayList<CirculinearContour2D> contours2 = new ArrayList<CirculinearContour2D>(
            contours.size());
    for (CirculinearContour2D ring : contours) {

        // check that vertices of contour are not too close from original
        // curve
        double minDist = CirculinearCurves2D.getDistanceCurvePoints(ring,
                set.points());
        if (minDist < dist - Shape2D.ACCURACY)
            continue;

        // keep the contours that meet the above conditions
        contours2.add(ring);
    }

    return new GenericCirculinearDomain2D(new CirculinearContourArray2D(
            contours2));
}
 
开发者ID:pokowaka,项目名称:android-geom,代码行数:36,代码来源:BufferCalculator.java

示例10: CircleInversion2D

import math.geom2d.conic.Circle2D; //导入依赖的package包/类
public CircleInversion2D(Circle2D circle) {
    this.circle = circle;
}
 
开发者ID:kefik,项目名称:Pogamut3,代码行数:4,代码来源:CircleInversion2D.java

示例11: setCircle

import math.geom2d.conic.Circle2D; //导入依赖的package包/类
public void setCircle(double xc, double yc, double r) {
    this.circle = new Circle2D(xc, yc, r);
}
 
开发者ID:kefik,项目名称:Pogamut3,代码行数:4,代码来源:CircleInversion2D.java

示例12: getBuffer

import math.geom2d.conic.Circle2D; //导入依赖的package包/类
public CirculinearDomain2D getBuffer(double dist) {
	return new GenericCirculinearDomain2D(
			new Circle2D(this, Math.abs(dist), dist>0));
}
 
开发者ID:kefik,项目名称:Pogamut3,代码行数:5,代码来源:Point2D.java

示例13: render

import math.geom2d.conic.Circle2D; //导入依赖的package包/类
@Override
public Shape render(E area, Graphics2D g, ScreenTransform t) {
    java.util.List<Edge> edges = area.getEdges();
    if (edges.isEmpty()) {
        return null;
    }

    int count = edges.size();
    int[] xs = new int[count];
    int[] ys = new int[count];
    int i = 0;
    for (Edge e : edges) {
        xs[i] = t.xToScreen(e.getStartX());
        ys[i] = t.yToScreen(e.getStartY());
        ++i;
    }
    Polygon shape = new Polygon(xs, ys, count);

    paintShape(area, shape, g);

    if (drawOverAllData
            && (StaticViewProperties.selectedObject == null || !agentEntitiesMap.containsKey(StaticViewProperties.selectedObject.getID()))) {
        if (overallEntities.contains(area.getID().getValue())) {
            paintData(area, shape, g);
        }
    } else if (StaticViewProperties.selectedObject != null
            && agentEntitiesMap.containsKey(StaticViewProperties.selectedObject.getID())
            && agentEntitiesMap.get(StaticViewProperties.selectedObject.getID()).contains(area.getID().getValue())) {
        paintData(area, shape, g);
    }

    if (area.equals(StaticViewProperties.selectedObject)) {
        Circle2D circle2D = new Circle2D(t.xToScreen(area.getX()), t.yToScreen(area.getY()), 18d);
        circle2D.draw(g);
    }

    for (Edge edge : edges) {
        paintEdge(edge, g, t);
    }
    return shape;
}
 
开发者ID:MRL-RS,项目名称:visual-debugger,代码行数:42,代码来源:MrlBaseAreaLayer.java

示例14: defaultCircle

import math.geom2d.conic.Circle2D; //导入依赖的package包/类
protected void defaultCircle(Human h, Graphics2D g, ScreenTransform t) {
    Circle2D circle2D = new Circle2D(t.xToScreen(h.getX()), t.yToScreen(h.getY()), 18d, true);
    circle2D.draw(g);
}
 
开发者ID:MRL-RS,项目名称:visual-debugger,代码行数:5,代码来源:MrlBaseAnimatedHumanLayer.java

示例15: render

import math.geom2d.conic.Circle2D; //导入依赖的package包/类
@Override
    public Shape render(E area, Graphics2D g, ScreenTransform t) {
        java.util.List<Edge> edges = area.getEdges();
        if (edges.isEmpty()) {
            return null;
        }

        int count = edges.size();
        int[] xs = new int[count];
        int[] ys = new int[count];
        int i = 0;
        for (Edge e : edges) {
            xs[i] = t.xToScreen(e.getStartX());
            ys[i] = t.yToScreen(e.getStartY());
            ++i;
        }
        Polygon shape = new Polygon(xs, ys, count);

        paintShape(area, shape, g);

        if (drawOverAllData
                && (StaticViewProperties.selectedObject == null || !agentEntitiesMap.containsKey(StaticViewProperties.selectedObject.getID()))) {
            if (overallEntities.contains(new BuildingDto(area.getID().getValue()))) {
//                paintData(area, shape, g);
            }
        } else {
            if (StaticViewProperties.selectedObject != null) {
                Map<Integer, BuildingDto> maps = agentEntitiesMap.get(StaticViewProperties.selectedObject.getID());
                if (agentEntitiesMap.containsKey(StaticViewProperties.selectedObject.getID())
                        && maps.keySet().contains(area.getID().getValue())) {
                    BuildingDto buildingDto = maps.get(area.getID().getValue());
                    paintData(area, (K) buildingDto, shape, g);
                }
            }
        }

        if (area.equals(StaticViewProperties.selectedObject)) {
            Circle2D circle2D = new Circle2D(t.xToScreen(area.getX()), t.yToScreen(area.getY()), 18d);
            circle2D.draw(g);
        }

        for (Edge edge : edges) {
            paintEdge(edge, g, t);
        }
        return shape;
    }
 
开发者ID:MRL-RS,项目名称:visual-debugger,代码行数:47,代码来源:MrlBaseAreaDtoLayer.java


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