Vector3 — Aspose.3D FOSS for Java

Example

Vector3 е вектор с двойна точност и 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 използва публични полета за достъп до компонентите (не методи за получаване/запис):

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Връща копие с единична дължина; връща нулев вектор, ако дължината е нула
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));

Вижте също

 Български