weixin_43280061 2023-08-04 00:48 采纳率: 0%
浏览 28
已结题

关于#java#的问题:获取不规则多边形顶点坐标

问题描述:
坐标系中有一个不规则多边形,如图所示: 不规则多边形可能是凹多边形也可能是凸多边形。
已经知道多边形的内的点和多边形的顶点所在的坐标点,且坐标点是整数点。
要求:
获取顶点坐标 。
使用Java/C#代码

如图所示:

img

img

  • 写回答

19条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-04 04:51
    关注
    获得4.00元问题酬金

    【以下回答由 GPT 生成】

    解决方案

    要获取不规则多边形的顶点坐标,可以使用几何算法来实现。下面是一个可以用Java代码来实现的解决方案:

    1. 创建一个名为Polygon的类,并在类中定义一个List<Point>类型的字段来存储多边形顶点的坐标。
    import java.awt.Point;
    import java.util.List;
    
    public class Polygon {
        private List<Point> vertices;
    
        public Polygon(List<Point> vertices) {
            this.vertices = vertices;
        }
    
        // 其他方法和属性...
    }
    
    1. Polygon类中创建一个方法getVertices,用于计算和返回不规则多边形的顶点坐标。该方法使用Java的几何库来计算多边形的顶点坐标,并返回一个集合。
    import java.awt.Point;
    import java.awt.Polygon;
    import java.util.ArrayList;
    import java.util.List;
    
    public class Polygon {
        private List<Point> vertices;
    
        public Polygon(List<Point> vertices) {
            this.vertices = vertices;
        }
    
        public Polygon getVertices() {
            List<Point> result = new ArrayList<>();
    
            // 将顶点坐标转换为数组
            int[] xPoints = new int[vertices.size()];
            int[] yPoints = new int[vertices.size()];
    
            for (int i = 0; i < vertices.size(); i++) {
                Point vertex = vertices.get(i);
                xPoints[i] = vertex.x;
                yPoints[i] = vertex.y;
            }
    
            // 使用Java的几何库来计算多边形的顶点坐标
            java.awt.Polygon polygon = new java.awt.Polygon(xPoints, yPoints, vertices.size());
            for (int i = 0; i < polygon.npoints; i++) {
                result.add(new Point(polygon.xpoints[i], polygon.ypoints[i]));
            }
    
            return result;
        }
    
        // 其他方法和属性...
    }
    
    1. 在你的主程序中,使用以下代码来获取不规则多边形的顶点坐标。
    import java.awt.Point;
    import java.util.Arrays;
    
    public class Main {
        public static void main(String[] args) {
            // 创建不规则多边形的顶点
            List<Point> vertices = Arrays.asList(
                    new Point(0, 0),
                    new Point(0, 10),
                    new Point(10, 10),
                    new Point(10, 5),
                    new Point(5, 5),
                    new Point(5, 0));
    
            // 创建多边形对象
            Polygon polygon = new Polygon(vertices);
    
            // 获取多边形的顶点坐标
            List<Point> polygonVertices = polygon.getVertices();
    
            // 打印多边形的顶点坐标
            for (Point vertex : polygonVertices) {
                System.out.println("(" + vertex.x + ", " + vertex.y + ")");
            }
        }
    }
    

    在上述示例中,我们通过创建一个Polygon对象,并传入多边形的顶点坐标列表来初始化多边形对象。然后,我们调用getVertices方法来计算并返回多边形的顶点坐标。最后,我们在主程序中打印出顶点坐标。请将多边形的顶点坐标替换为您自己的坐标。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 系统已结题 8月12日
  • 创建了问题 8月4日

悬赏问题

  • ¥15 两台交换机分别是trunk接口和access接口为何无法通信,通信过程是如何?
  • ¥15 C语言使用vscode编码错误
  • ¥15 用KSV5转成本时,如何不生成那笔中间凭证
  • ¥20 ensp怎么配置让PC1和PC2通讯上
  • ¥50 有没有适合匹配类似图中的运动规律的图像处理算法
  • ¥15 dnat基础问题,本机发出,别人返回的包,不能命中
  • ¥15 请各位帮我看看是哪里出了问题
  • ¥15 vs2019的js智能提示
  • ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了
  • ¥15 uniapp的h5项目写一个抽奖动画