Java 旋转矩形中的碰撞检测

Java 旋转矩形中的碰撞检测,java,android,math,collision-detection,Java,Android,Math,Collision Detection,我有以下参数 x、 旋转矩形的y坐标(仅左上角) 旋转角 矩形通过中心旋转 矩形的宽度和高度 必须检查矩形内存在的点的坐标 如何检查点是否位于矩形内 任何指点都将不胜感激。谢谢。如果您同意使用awt,您可以创建一个形状实例,然后使用:Shape.contains(Point2D p) 文件如下: Java 2D教程如下: HTH如果您对使用awt没有问题,那么可以创建一个形状实例,然后使用:Shape.contains(Point2D p) 文件如下: Java 2D教程如下: HTH将所有坐标

我有以下参数

  • x、 旋转矩形的y坐标(仅左上角)
  • 旋转角
  • 矩形通过中心旋转
  • 矩形的宽度和高度
  • 必须检查矩形内存在的点的坐标
  • 如何检查点是否位于矩形内


    任何指点都将不胜感激。谢谢。

    如果您同意使用awt,您可以创建一个形状实例,然后使用:Shape.contains(Point2D p)

    文件如下: Java 2D教程如下:


    HTH

    如果您对使用awt没有问题,那么可以创建一个形状实例,然后使用:Shape.contains(Point2D p)

    文件如下: Java 2D教程如下:


    HTH

    将所有坐标转换为旋转参考坐标系,其中矩形位于中心并沿轴对齐。然后检查坐标范围

    要在帧之间转换,请使用以下公式:

    请注意,抱歉,此链接更适合静态情况:

    将所有坐标转换为旋转参考坐标系,其中矩形位于中心并沿轴对齐。然后检查坐标范围

    要在帧之间转换,请使用以下公式:

    请注意,抱歉,此链接更适合静态情况:
    基本检查

    如果矩形未旋转,则问题仅限于检查点(x,y)是否在某个范围内

    (rectangle.x, rectangle.x + rectangle.width)
    (rectangle.y, rectangle.y + rectangle.height)
    
    添加旋转

    旋转矩形时,可以进行反向旋转,使点处于“未旋转状态”,并进行上一次检查

    如何“取消旋转”该点

    嗯。如果矩形旋转27º,“取消旋转”必须为-27º(从同一旋转点的中心开始)

    如何旋转给定旋转点中心的点?

    嗯,你必须:

  • 平移物体使(0,0)成为中心点:它是,平移原点(-x,-y),其中(x,y)是旋转点
  • 在原点上应用旋转(请参见下面的部分)
  • 撤消第一个变换(平移(x,y)),其中(x,y)是旋转点
  • 原点旋转

    你必须使矩阵相乘,其中A是矩阵,x是旋转点的(x,y)向量


    矩阵A已生成

    基本检查

    如果矩形未旋转,则问题仅限于检查点(x,y)是否在某个范围内

    (rectangle.x, rectangle.x + rectangle.width)
    (rectangle.y, rectangle.y + rectangle.height)
    
    添加旋转

    旋转矩形时,可以进行反向旋转,使点处于“未旋转状态”,并进行上一次检查

    如何“取消旋转”该点

    如果你的矩形旋转了27º,“不旋转”必须是-27º(从同一旋转点的中心开始)

    如何旋转给定旋转点中心的点?

    嗯,你必须:

  • 平移物体使(0,0)成为中心点:它是,平移原点(-x,-y),其中(x,y)是旋转点
  • 在原点上应用旋转(请参见下面的部分)
  • 撤消第一个变换(平移(x,y)),其中(x,y)是旋转点
  • 原点旋转

    你必须使矩阵相乘,其中A是矩阵,x是旋转点的(x,y)向量


    矩阵A是构建的

    多边形中的点(PIP)问题()多边形中的点(PIP)问题()嗨,大卫,我在Android上编程,所以我没有AWT的访问权限。我明白了-你能在事后添加问题标签吗?如果你在上面粘贴标签,你可能会涉及到一些Android窥视。我已经添加了大卫:)谢谢你的建议。嗨,大卫,我在Android上编程,所以我没有访问AWT的权限。我明白了-你能在事后添加问号吗?如果你在上面贴上问号,你可能会涉及到一些Android窥视。我已经加上大卫:)谢谢你的建议。