1. 程式人生 > >多角度3d模型旋轉演算法

多角度3d模型旋轉演算法

最近模擬軟體的進度是利用生成的大量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度的移動距離。