Vector3 — Aspose.3D FOSS for Java

Overview

Vector3 เป็นเวกเตอร์ 3 ส่วนที่ใช้ความแม่นยำแบบ double-precision พร้อมกับ 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();

Overview

OverviewOverview
Vector3()สร้างเวกเตอร์ศูนย์ (0, 0, 0)
Vector3(double x, double y, double z)สร้างจากสามส่วนประกอบ
Vector3(Vector3 other)คอนสตรัคเตอร์คัดลอก

ฟิลด์สาธารณะ

Vector3 ใช้ ฟิลด์สาธารณะ สำหรับการเข้าถึงส่วนประกอบ (ไม่ใช่เมธอด getter/setter):

OverviewOverviewOverviewOverview
xdoublev.xส่วนประกอบ X
ydoublev.yส่วนประกอบ Y
zdoublev.zส่วนประกอบ Z

คุณสมบัติที่คำนวณ

OverviewOverviewOverviewOverview
lengthdoublegetLength()ความยาวยูคลิด (sqrt(x^2+y^2+z^2)), อ่านอย่างเดียว
length2doublegetLength2()ความยาวกำลังสอง, อ่านอย่างเดียว; ถูกกว่า getLength() เมื่อจำเป็นต้องเปรียบเทียบเท่านั้น

ฟิลด์สถิตย์

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

Overview

Overviewประเภทการคืนค่าOverview
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" การแสดงผลเป็นสตริง

Overview

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

ดูเพิ่มเติม

 ภาษาไทย