小编Ant*_*zan的帖子

旋转位矩阵

假设我使用大小为8的char数组来表示图像的碰撞掩码.char的每个位代表一个像素.实际上,我将使用长[64]阵列作为64x64矩阵.

所以一个框将显示为:

00000000
01111110
01111110
01111110
01111110
01111110
01111110
00000000
Run Code Online (Sandbox Code Playgroud)

45度的示例输出应该如下所示,尽管旋转可以是任何角度.这种形状对于45度旋转可能不准确,正如我手工完成的那样.

00011000
00111100
01111110
11111111
11111111
01111110
00111100
00011000
Run Code Online (Sandbox Code Playgroud)

另一个示例输出向右旋转小 - 10度?这些值可能是错误的,因为在数学上我不知道它究竟会如何旋转,但我认为如果每个位的旧形状覆盖率超过50%是安全的,那么它就是1.

00000000
00111111
01111111
01111110
01111110
11111110
11111100
00000000
Run Code Online (Sandbox Code Playgroud)

在没有旋转的情况下,使用此stackoverflow回复中定义的位移来快速查找这些位掩码之间的冲突:https://stackoverflow.com/a/336615/4595736

现在,在过去我使用过Path2D,Rectangles,Shapes等...并使用AffineTransform来旋转对象.Path2D是唯一提供我想要的复杂形状的类,但是用于访问每个点的"链接列表"行为并不像我希望的那样快.

在Java中旋转二进制映射的最佳方法是什么?

看起来像Matrices的Java库也不是最快的.

java game-engine affinetransform

6
推荐指数
1
解决办法
415
查看次数

标签 统计

affinetransform ×1

game-engine ×1

java ×1