Vector3 — Aspose.3D FOSS for Java

Example

Vector3 은(는) double-precision 3-컴포넌트 벡터이며 x, y, 및 z 컴포넌트입니다. 이는 Aspose.3D 전반에 걸쳐 위치, 방향, 법선 및 스케일 값에 사용됩니다. 모든 산술 연산은 새로운 Vector3 인스턴스를 반환합니다; 원본은 변경되지 않습니다.

import com.aspose.threed.*;

// Construct from components
Vector3 v = new Vector3(1.0, 2.0, 3.0);

// Copy constructor
Vector3 v2 = new Vector3(v);

// Default (zero vector)
Vector3 zero = new Vector3();

Example

ExampleExample
Vector3()제로 벡터를 생성합니다 (0, 0, 0)
Vector3(double x, double y, double z)세 개의 컴포넌트로부터 생성합니다
Vector3(Vector3 other)복사 생성자

공개 필드

Vector3 사용합니다 public 필드 컴포넌트 접근을 위해 (getter/setter 메서드가 아니라):

ExampleExampleExampleExample
xdoublev.xX 컴포넌트
ydoublev.yY 컴포넌트
zdoublev.zZ 컴포넌트

계산된 속성

ExampleExampleExampleExample
lengthdoublegetLength()유클리드 길이 (sqrt(x^2+y^2+z^2)), 읽기 전용
length2doublegetLength2()제곱 길이, 읽기 전용; 더 저렴합니다 getLength() 비교만 필요할 때

정적 필드

ExampleExampleExample
ZEROVector3Vector3(0, 0, 0)
ONEVector3Vector3(1, 1, 1)
UNIT_XVector3Vector3(1, 0, 0)
UNIT_YVector3Vector3(0, 1, 0)
UNIT_ZVector3Vector3(0, 0, 1)

Example

Example반환 타입Example
set(double x, double y, double z)void세 구성 요소를 제자리에서 설정합니다
dot(Vector3 rhs)double다른 벡터와의 내적 Vector3
cross(Vector3 rhs)Vector3크로스 곱 – 두 피연산자 모두에 수직인 벡터를 반환합니다
normalize()Vector3단위 길이 복사본을 반환합니다; 길이가 0이면 영벡터를 반환합니다
angleBetween(Vector3 dir)double이 벡터와 사이의 라디안 각도 dir
angleBetween(Vector3 dir, Vector3 up)double정의된 평면에 투영된 라디안 단위 부호 각도 up
sin()Vector3요소별 사인
cos()Vector3요소별 코사인
compareTo(Vector3 other)int사전식 비교: -1, 0, 또는 1을 반환합니다
Vector3.parse(String s)Vector3정적. 구문 분석합니다 "x y z" 문자열 표현

Example

import com.aspose.threed.*;
import com.aspose.threed.Scene;

// Basic arithmetic
Vector3 a = new Vector3(1.0, 0.0, 0.0);
Vector3 b = new Vector3(0.0, 1.0, 0.0);

// Dot and cross products
double dot = a.dot(b);           // 0.0
Vector3 perp = a.cross(b);      // Vector3(0, 0, 1)

// Normalize
Vector3 direction = new Vector3(3.0, 4.0, 0.0);
Vector3 unit = direction.normalize();   // Vector3(0.6, 0.8, 0.0)
System.out.println(unit.getLength());    // 1.0

// Angle between vectors
double angle = a.angleBetween(b);
System.out.println(Math.toDegrees(angle));   // 90.0

// Use with a scene node transform
Scene scene = new Scene();
Node node = scene.getRootNode().createChildNode("box");
node.getTransform().setTranslation(new Vector3(10.0, 0.0, 0.0));

참고

 한국어