Comments (6)
@chenxinhang12345 Do this:
const v1 = new THREE.Vector3().setFromSpherical( s1 );
from three.js.
... because Spherical
and Cylindrical
coordinates are not unique, just as 2D polar coordinates are not unique.
const s1 = new THREE.Spherical( 1, 0, 0 );
const s2 = new THREE.Spherical( 1, 0, 2 * Math.PI );
Likewise, quaternion.equals( q )
is also incorrect because quaternions are not unique.
//
As a side note, I am not in favor of methods that compare floating point values using equality. I would have preferred
Vector3.equals( vector, tolerance = 0 )
.
from three.js.
Spherical
and Cylindrical
coordinates are not unique, and neither class has an equals()
method.
Can you please explain your use case?
from three.js.
Yeah you are right. Those classes shouldn't have .equals
methods.
from three.js.
Spherical and Cylindrical coordinates are not unique, and neither class has an equals() method.
Do you mind explaining this in more detail? Why can we compare euclidian coordinates but not spherical ones? The following does work as expected:
const v1 = new THREE.Vector3( 1, 0, 0 );
const v2 = new THREE.Vector3( 1, 0, 0 );
console.log( v1.equals( v2 ) ); // true
const s1 = new THREE.Spherical().setFromVector3( v1 );
const s2 = new THREE.Spherical().setFromVector3( v2 );
console.log( equals( s1, s2 ) ); // true
function equals( s1, s2 ) {
return ( ( s1.radius === s2.radius ) && ( s1.phi === s2.phi ) && ( s1.theta === s2.theta ) );
}
Demo: https://jsfiddle.net/8fbkpr60/1/
from three.js.
Instead of adding .equals()
, would it be a good idea to add toVector3()
so that we could compare the derived Euclidian coordinates?
from three.js.
Related Issues (20)
- It appears that the resources associated with DRACOLoader may not be completely released, leading to memory consumption issues HOT 4
- I wish an example for the outputStruct node HOT 3
- Adding postprocessing support to the three. js editor HOT 1
- WebGLRenderer.setSize cannot set properties of undefined (setting 'width') HOT 2
- Enhance target type for SpotLight and DirectionalLight HOT 1
- Build a grid through custom coordinates HOT 1
- FBXLoader loads default Unreal model with wrong rotation HOT 4
- Editor can't import glTF with .ktx2 textures HOT 1
- MRT needs a filter if there are several objects with different shader counts in the scene HOT 3
- File Export Whole Scene feature was removed 😨 HOT 2
- RectAreaLight passes through material HOT 6
- Editor: drop event in UIOutliner of ui.three.js not being call HOT 9
- Editor: Export GLB and GLTF fails to fetch HOT 2
- MeshToonMaterial support for WebGPU HOT 1
- why my scene can not showed fully, after wheel scale and drag? who can help me? thanks HOT 1
- Black/gray outline shows around transparent textures when mipmaps are used. HOT 7
- MeshPhysicalMaterial: Wrong blending with nested transmissive objects. HOT 11
- Add StorageBufferAttribute to current version of Three.js HOT 1
- Stencil params getting out of sync. HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from three.js.