Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 获取线路';s坐标到数组_Iphone_Objective C_Xcode_Ipad - Fatal编程技术网

Iphone 获取线路';s坐标到数组

Iphone 获取线路';s坐标到数组,iphone,objective-c,xcode,ipad,Iphone,Objective C,Xcode,Ipad,我不是在玩游戏,因为我找不到好的碰撞检测方法来检测旋转矩形的碰撞,所以我决定尝试以下方法: 我有一个旋转的矩形(我想我可以得到它的角点坐标(如果必要的话,可能是CGRect或三角函数的函数) 我想得到连接两个角点的直线上的所有坐标(即使只是int值,或者以一定的增量,这样就不会太长),并将它们放入一个数组中。然后我可以检查球的包含矩形,如果它包含数组的任何点,它的包围矩形不会旋转。如果是的话,它们就会相撞 有没有一种简单的方法将这些坐标放入数组?假设我知道开始和结束? 我知道这将不是很有效,但现

我不是在玩游戏,因为我找不到好的碰撞检测方法来检测旋转矩形的碰撞,所以我决定尝试以下方法: 我有一个旋转的矩形(我想我可以得到它的角点坐标(如果必要的话,可能是CGRect或三角函数的函数) 我想得到连接两个角点的直线上的所有坐标(即使只是int值,或者以一定的增量,这样就不会太长),并将它们放入一个数组中。然后我可以检查球的包含矩形,如果它包含数组的任何点,它的包围矩形不会旋转。如果是的话,它们就会相撞

有没有一种简单的方法将这些坐标放入数组?假设我知道开始和结束? 我知道这将不是很有效,但现在我正在使用OpenGL颜色检测,它太慢了,工作不好,所以我需要一种新的方法


谢谢

您已经有了通过矩形边缘的线。只要在你的4个角的X,Y坐标上,你就有了你的4条线

一般来说,对于碰撞,你几乎总能找到一种方法来伪造它,如果你真的需要的话,我只会麻烦使用一个旋转的矩形来进行碰撞,很多时候你可以选择一个看起来像矩形的东西,然后给它一个圆形碰撞

如果坚持使用旋转的矩形,可以尝试的另一种方法是对两个对象应用反向旋转,然后检查碰撞。因此,如果矩形旋转45度,则将矩形向后旋转45度,使其与轴对齐,然后也将圆心旋转45度。现在您有了一个更简单的碰撞

您可以在这里获得更多信息:

可能更容易找到线段和圆的交点。谢谢你的评论,这正是我所追求的,只是不知道如何得到这条线,并在客观条件下检查交叉点,谢谢你的回答。关于你的第一句话。我有四个角,但它如何给我线?这是我最初的问题。你有4行,你必须检查每一行从左上到右上,从右上到右下,等等,我的意思是,我怎样才能得到这些点之间的线呢?前面的链接会经过它,对于从左上到右上的线,你想通过从右上减去左上得到一个向量。该值将是seg_vA的向量,代码中的向量仅由点、x和y表示。我不相信Obj-C中有内置向量类。如果您需要向量数学方面的帮助,这里有一个简单的类: