多角度3d模型旋轉演算法
阿新 • • 發佈:2018-12-18
最近模擬軟體的進度是利用生成的大量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度的移動距離。