我正在制作一个 2d 物理引擎,当生成一个对象(如椅子)时,它会创建一个两倍于原始图像大小的 2d boolean 数组(以允许旋转)并创建一个与图像相同的形状(排除不透明度小于 1 的像素)我将如何旋转这个数组 x 度?旋转此 x 度的真实值,其中“此”可以是任何形状f=假 t=真f f f f f f ff f f f f f ff f T T T f ff f T T T f ff f T T T f ff f f f f f ff f f f f f f 最佳答案 这是一个基本的图像旋转算法,除了您只是旋转 T/F 位图,对吗?从我的笔记: http://www.leptonica.com/rotation.html http://datagenetics.com/blog/august32013/index.html剪切旋转:卡特穆尔和史密斯非常快;由光栅操作实现。可以就地进行。像素行移动的距离与其垂直方向成正比 离旋转中心的距离。三个交替的序列 H、V、H 剪切机执行旋转。对于小角度( 它可以用两把剪刀完成失真可以累积;如果您要使用旋转图像 180 次旋转,每次 12 度,结果将是有效的 加密。然而,“展开”图像会恢复它。R = [ cos(a) sin(a) ] [ -sin(a) cos(a) ] = [ 1 tan(a/2) ] [ 1 0 ] [ 1 tan(a/2) ] [ 0 1 ] [ -sin(a) 1 ] [ 0 1 ]注意:首先以 90° 的步长旋转,使 a 我有一个类似算法的 C 代码,可以对图像进行任意旋转、缩放和平移,所有这些都使用整数数学,但它又大又多毛,可能不适合您的问题。坦率地说,我只是环顾四周,看看是否已经在 J​​ava 中实现了;寻找二维图形库。关于java - 在java中旋转二维数组n度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16875067/
10-12 12:59
查看更多