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

关于#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 黄永刚的晶体塑性子程序中输入的材料参数里的晶体取向参数是什么形式的?
  • ¥20 数学建模来解决我这个问题
  • ¥15 计算机网络ip分片偏移量计算头部是-20还是-40呀
  • ¥15 stc15f2k60s2单片机关于流水灯,时钟,定时器,矩阵键盘等方面的综合问题
  • ¥15 YOLOv8已有一个初步的检测模型,想利用这个模型对新的图片进行自动标注,生成labellmg可以识别的数据,再手动修改。如何操作?
  • ¥30 NIRfast软件使用指导
  • ¥20 matlab仿真问题,求功率谱密度
  • ¥15 求micropython modbus-RTU 从机的代码或库?
  • ¥15 django5安装失败
  • ¥15 Java与Hbase相关问题