2
0
Эх сурвалжийг харах

Object3D: Added rotateAroundWorldAxis()

Mr.doob 4 жил өмнө
parent
commit
0cd0ea62c6

+ 11 - 0
docs/api/en/core/Object3D.html

@@ -347,6 +347,17 @@
 		Method Assumes no rotated parent.
 		</p>
 
+		<h3>[method:this rotateAroundWorldAxis]( [param:Vector3 point], [param:Vector3 axis], [param:Float angle] )</h3>
+		<p>
+		point -- The point to rotate around.<br />
+		axis -- A normalized vector in world space.<br />
+		angle -- The angle in radians.<br /><br />
+
+		Rotate the object around an axis in world space. (The axis passes through point.) The axis is assumed to be normalized.<br /><br/ >
+
+		This method does not support objects having rotated parent(s).
+		</p>
+
 		<h3>[method:this rotateX]( [param:Float rad] )</h3>
 		<p>
 		rad - the angle to rotate in radians.<br /><br />

+ 11 - 0
docs/api/ko/core/Object3D.html

@@ -335,6 +335,17 @@
 		부모의 회전은 고려하지 않습니다.
 		</p>
 
+		<h3>[method:this rotateAroundWorldAxis]( [param:Vector3 point], [param:Vector3 axis], [param:Float angle] )</h3>
+		<p>
+		point -- The point to rotate around.<br />
+		axis -- A normalized vector in world space.<br />
+		angle -- The angle in radians.<br /><br />
+
+		Rotate the object around an axis in world space. (The axis passes through point.) The axis is assumed to be normalized.<br /><br/ >
+
+		This method does not support objects having rotated parent(s).
+		</p>
+
 		<h3>[method:this rotateX]( [param:Float rad] )</h3>
 		<p>
 		rad - 회전시킬 라디안 각도입니다.<br /><br />

+ 11 - 0
docs/api/zh/core/Object3D.html

@@ -321,6 +321,17 @@
 		方法假设该物体没有旋转过的父级。
 	</p>
 
+	<h3>[method:this rotateAroundWorldAxis]( [param:Vector3 point], [param:Vector3 axis], [param:Float angle] )</h3>
+	<p>
+		point -- The point to rotate around.<br />
+		axis -- A normalized vector in world space.<br />
+		angle -- The angle in radians.<br /><br />
+
+		Rotate the object around an axis in world space. (The axis passes through point.) The axis is assumed to be normalized.<br /><br/ >
+
+		This method does not support objects having rotated parent(s).
+	</p>
+
 	<h3>[method:this rotateX]( [param:Float rad] )</h3>
 	<p>
 		rad - 将要旋转的角度(以弧度来表示)。<br /><br />

+ 14 - 0
src/core/Object3D.js

@@ -191,6 +191,20 @@ class Object3D extends EventDispatcher {
 
 	}
 
+	rotateAroundWorldAxis( point, axis, angle ) {
+
+		_q1.setFromAxisAngle( axis, angle );
+
+		this.applyQuaternion( _q1 );
+
+		this.position.sub( point );
+		this.position.applyQuaternion( _q1 );
+		this.position.add( point );
+
+		return this;
+
+	}
+
 	rotateX( angle ) {
 
 		return this.rotateOnAxis( _xAxis, angle );