最近仿真软件的进度是利用生成的大量3d模型,进行多角度的模型截图,用于构建神经网络做模型识别作用,因此为了构建神经网络,我们需要不同角度的大量的模型图片,因此我们需要实现多角度的3d模型旋转算法。
package casc.cast.c504.I2P;
import java.awt.AWTException;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.event.InputEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class rotation {
public static void rotate(int x, int y ) throws Exception {
Robot r = null;
try {
r = new Robot();
} catch (AWTException e) {
e.printStackTrace();
}
if (r != null) {
// r.mouseWheel(5); //鼠标滑轮进行模型放大
// Robot robot = new Robot();
r.mouseMove(700, 600); //初试控制鼠标的位置
r.mousePress(InputEvent.BUTTON1_MASK);//点击鼠标左键
r.mouseMove(700+x, 600+y);
r.mouseRelease(InputEvent.BUTTON1_MASK);//放下鼠标左键
// r.mouseWheel(-4);
r.mouseMove(700, 600);//返回鼠标初试位置
Thread.sleep(3000L);
}
}
public static void main(String[] args) throws Exception {
rotate(10,10);
}
}
我们的旋转算法主要是利用robot方法,控制鼠标的点击以及移动,因为我们利用轻量级查看器Autodest FBX Review导入obj模型,此时我们选择最简单的旋转方式,通过鼠标的上下移动可以达到控制模型的旋转,但缺点是不够精确,无法具体控制旋转的角度,只能通过不断的测试移动的距离,基本确定360度的移动距离。
Autodest FBX Review:https://blog.csdn.net/YuanKY214/article/details/83178069