<bdo id='HLiCn'></bdo><ul id='HLiCn'></ul>

  • <i id='HLiCn'><tr id='HLiCn'><dt id='HLiCn'><q id='HLiCn'><span id='HLiCn'><b id='HLiCn'><form id='HLiCn'><ins id='HLiCn'></ins><ul id='HLiCn'></ul><sub id='HLiCn'></sub></form><legend id='HLiCn'></legend><bdo id='HLiCn'><pre id='HLiCn'><center id='HLiCn'></center></pre></bdo></b><th id='HLiCn'></th></span></q></dt></tr></i><div id='HLiCn'><tfoot id='HLiCn'></tfoot><dl id='HLiCn'><fieldset id='HLiCn'></fieldset></dl></div>

  • <small id='HLiCn'></small><noframes id='HLiCn'>

  • <tfoot id='HLiCn'></tfoot>
  • <legend id='HLiCn'><style id='HLiCn'><dir id='HLiCn'><q id='HLiCn'></q></dir></style></legend>

        如何确定一个点是否在二维凸多边形内?

        How to determine if a point is inside a 2D convex polygon?(如何确定一个点是否在二维凸多边形内?)
          <bdo id='M6BzV'></bdo><ul id='M6BzV'></ul>

            • <tfoot id='M6BzV'></tfoot>

              1. <small id='M6BzV'></small><noframes id='M6BzV'>

              2. <i id='M6BzV'><tr id='M6BzV'><dt id='M6BzV'><q id='M6BzV'><span id='M6BzV'><b id='M6BzV'><form id='M6BzV'><ins id='M6BzV'></ins><ul id='M6BzV'></ul><sub id='M6BzV'></sub></form><legend id='M6BzV'></legend><bdo id='M6BzV'><pre id='M6BzV'><center id='M6BzV'></center></pre></bdo></b><th id='M6BzV'></th></span></q></dt></tr></i><div id='M6BzV'><tfoot id='M6BzV'></tfoot><dl id='M6BzV'><fieldset id='M6BzV'></fieldset></dl></div>
                  <tbody id='M6BzV'></tbody>
                <legend id='M6BzV'><style id='M6BzV'><dir id='M6BzV'><q id='M6BzV'></q></dir></style></legend>
                • 本文介绍了如何确定一个点是否在二维凸多边形内?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我有一个凸多边形(通常只是一个旋转的正方形),我知道所有 4 个点.如何确定给定点(黄色/绿色)是否在多边形内部?

                  I have a convex polygon (typically just a rotated square), and I know all of 4 points. How do I determine if a given point (yellow/green) is inside the polygon?

                  对于这个特定项目,我无权访问 JDK 的所有库,例如 AWT.

                  For this particular project, I don't have access to all of the libraries of the JDK, such as AWT.

                  推荐答案

                  本页:http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html 展示了如何做这适用于任何多边形.

                  This page: http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html shows how to do this for any polygon.

                  我有一个 Java 实现,但它太大了,无法在此处完整发布.但是,您应该能够解决:

                  I have a Java implementation of this, but it is too big to post here in its entirety. However, you should be able to work it out:

                  class Boundary {
                      private final Point[] points; // Points making up the boundary
                      ...
                  
                  
                      /**
                       * Return true if the given point is contained inside the boundary.
                       * See: http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html
                       * @param test The point to check
                       * @return true if the point is inside the boundary, false otherwise
                       *
                       */
                      public boolean contains(Point test) {
                        int i;
                        int j;
                        boolean result = false;
                        for (i = 0, j = points.length - 1; i < points.length; j = i++) {
                          if ((points[i].y > test.y) != (points[j].y > test.y) &&
                              (test.x < (points[j].x - points[i].x) * (test.y - points[i].y) / (points[j].y-points[i].y) + points[i].x)) {
                            result = !result;
                           }
                        }
                        return result;
                      }
                  }
                  

                  这是 Point 类的草图

                  And here is a sketch of the Point class

                  /**
                   * Two dimensional cartesian point.
                   */
                  public class Point {
                    public final double x;
                    public final double y;
                    ...
                  }
                  

                  这篇关于如何确定一个点是否在二维凸多边形内?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  How can I detect integer overflow on 32 bits int?(如何检测 32 位 int 上的整数溢出?)
                  Local variables before return statements, does it matter?(return 语句之前的局部变量,这有关系吗?)
                  How to convert Integer to int?(如何将整数转换为整数?)
                  How do I create an int array with randomly shuffled numbers in a given range(如何在给定范围内创建一个随机打乱数字的 int 数组)
                  Inconsistent behavior on java#39;s ==(java的行为不一致==)
                  Why is Java able to store 0xff000000 as an int?(为什么 Java 能够将 0xff000000 存储为 int?)
                  <legend id='vgPnf'><style id='vgPnf'><dir id='vgPnf'><q id='vgPnf'></q></dir></style></legend>

                        <tbody id='vgPnf'></tbody>
                      <tfoot id='vgPnf'></tfoot>
                      • <i id='vgPnf'><tr id='vgPnf'><dt id='vgPnf'><q id='vgPnf'><span id='vgPnf'><b id='vgPnf'><form id='vgPnf'><ins id='vgPnf'></ins><ul id='vgPnf'></ul><sub id='vgPnf'></sub></form><legend id='vgPnf'></legend><bdo id='vgPnf'><pre id='vgPnf'><center id='vgPnf'></center></pre></bdo></b><th id='vgPnf'></th></span></q></dt></tr></i><div id='vgPnf'><tfoot id='vgPnf'></tfoot><dl id='vgPnf'><fieldset id='vgPnf'></fieldset></dl></div>
                          <bdo id='vgPnf'></bdo><ul id='vgPnf'></ul>

                          <small id='vgPnf'></small><noframes id='vgPnf'>