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

        <bdo id='YJGzS'></bdo><ul id='YJGzS'></ul>
      <tfoot id='YJGzS'></tfoot>

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

    1. <legend id='YJGzS'><style id='YJGzS'><dir id='YJGzS'><q id='YJGzS'></q></dir></style></legend>
      1. 如何确定一个点是否在二维凸多边形内?

        时间:2023-09-30

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

            <tfoot id='Ln1SB'></tfoot>

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

                  <tbody id='Ln1SB'></tbody>
                • <bdo id='Ln1SB'></bdo><ul id='Ln1SB'></ul>

                • <legend id='Ln1SB'><style id='Ln1SB'><dir id='Ln1SB'><q id='Ln1SB'></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;
                    ...
                  }
                  

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

                  上一篇:如何在 Java 中绘制一个看起来像样的圆圈 下一篇:在jframe中创建java的正方形、矩形、三角形

                  相关文章

                  最新文章

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

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

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

                      <tfoot id='OAfAF'></tfoot>