Discussions
Categories
- 385.5K All Categories
- 4.9K Data
- 2.5K Big Data Appliance
- 2.4K Data Science
- 453.4K Databases
- 223.2K General Database Discussions
- 3.8K Java and JavaScript in the Database
- 47 Multilingual Engine
- 606 MySQL Community Space
- 486 NoSQL Database
- 7.9K Oracle Database Express Edition (XE)
- 3.2K ORDS, SODA & JSON in the Database
- 585 SQLcl
- 4K SQL Developer Data Modeler
- 188K SQL & PL/SQL
- 21.5K SQL Developer
- 46 Data Integration
- 46 GoldenGate
- 298.4K Development
- 4 Application Development
- 20 Developer Projects
- 166 Programming Languages
- 295K Development Tools
- 150 DevOps
- 3.1K QA/Testing
- 646.7K Java
- 37 Java Learning Subscription
- 37.1K Database Connectivity
- 201 Java Community Process
- 108 Java 25
- 22.2K Java APIs
- 138.3K Java Development Tools
- 165.4K Java EE (Java Enterprise Edition)
- 22 Java Essentials
- 176 Java 8 Questions
- 86K Java Programming
- 82 Java Puzzle Ball
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 94.3K Java SE
- 13.8K Java Security
- 208 Java User Groups
- 25 JavaScript - Nashorn
- Programs
- 667 LiveLabs
- 41 Workshops
- 10.3K Software
- 6.7K Berkeley DB Family
- 3.6K JHeadstart
- 6K Other Languages
- 2.3K Chinese
- 207 Deutsche Oracle Community
- 1.1K Español
- 1.9K Japanese
- 474 Portuguese
Vector3d Normalize
Why does the normalize() method of Vector3d sometimes return a vector 0.0, -1.0, 0.0 and sometimes 0.0, -0.999999999..., 0.0?
The code is where v1 and v2 lie in the global cartesian xz plane and are perpendicular to each other.
Vector3d v1 = new Vector3d();
Vector3d v2 = new Vector3d();
Vector3d v3 = new Vector3d();
v1.set(somex,somey,somez);
v2.set(someotherx,someothery,someotherz);
v3.cross(v1,v2);
v3.normalize();
My program test for a cross product vector parallel to one of the global axis by checking for 1.0 as a vector component. But fails occasionally because its not exactly 1.0.
Similar behaviour for some vectors in the other global planes.
The code is where v1 and v2 lie in the global cartesian xz plane and are perpendicular to each other.
Vector3d v1 = new Vector3d();
Vector3d v2 = new Vector3d();
Vector3d v3 = new Vector3d();
v1.set(somex,somey,somez);
v2.set(someotherx,someothery,someotherz);
v3.cross(v1,v2);
v3.normalize();
My program test for a cross product vector parallel to one of the global axis by checking for 1.0 as a vector component. But fails occasionally because its not exactly 1.0.
Similar behaviour for some vectors in the other global planes.
Comments
-
I would guess this problem is due to the discrete binary calculation.
This discussion has been closed.