Vector3 — Aspose.3D FOSS for Java

Example

Vector3 este un vector cu precizie dublă, cu 3 componente cu x, y, și z componente. Este utilizat în tot Aspose.3D pentru poziții, direcții, normale și valori de scară. Toate operațiile aritmetice returnează noi Vector3 instanțe; originalul nu este modificat.

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()Construiește vectorul zero (0, 0, 0)
Vector3(double x, double y, double z)Construiește din trei componente
Vector3(Vector3 other)Constructor de copiere

Câmpuri publice

Vector3 folosește câmpuri publice pentru accesarea componentelor (nu metode getter/setter):

ExampleExampleExampleExample
xdoublev.xcomponenta X
ydoublev.yComponenta Y
zdoublev.zComponenta Z

Proprietăți calculate

ExampleExampleExampleExample
lengthdoublegetLength()Lungimea euclidiană (sqrt(x^2+y^2+z^2)), numai pentru citire
length2doublegetLength2()Lungime pătratică, numai pentru citire; mai ieftină decât getLength() când este necesară doar compararea

Câmpuri statice

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

ExampleTip de returnareExample
set(double x, double y, double z)voidSetează toate cele trei componente la loc
dot(Vector3 rhs)doubleProdus scalar cu altul Vector3
cross(Vector3 rhs)Vector3Produs vectorial – returnează un vector perpendicular pe ambele operanzi
normalize()Vector3Returnează o copie cu lungime unitate; returnează vectorul zero dacă lungimea este zero
angleBetween(Vector3 dir)doubleUnghi în radiani între acest vector și dir
angleBetween(Vector3 dir, Vector3 up)doubleUnghi semnat în radiani proiectat pe planul definit de up
sin()Vector3Sinus pe componentă
cos()Vector3Cosinus pe componentă
compareTo(Vector3 other)intComparare lexicografică: returnează -1, 0 sau 1
Vector3.parse(String s)Vector3Static. Analizează "x y z" reprezentare șir

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));

Vezi și

 Română