Cone rotation from 2 points and radius

I am drawing a cone by parameters from xml. Is it possible to rotate the cone knowing the radius, the coordinates of the top vertex and the center of the base? example xml coords="-3,-6,0;2.5,7,0;" radius=“10”

What do you mean by rotate :thinking: ?

Having top and base-centre coordinates, you can first of all build a ConeGeometry (height is equal to top minus base centre; and the radius you have defined.) After that - you can modify the mesh / geometry in all kinds of ways.

I rotate the cone and save the parameters in xml (2 coordinates and radius), then I need to recreate the same cone with the same rotation
Capture2

In that case - it would be quite handy to just store a transformation matrix of the cone after you rotate it :thinking:

1 Like

What are these coords?

Capture3 top vertex and the center of the base and radius value

So your newly built cone will be something: new THREE.ConeGeometry( radius, v1.distanceTo(v2));

yes, but it will be no rotation, can I get rotation from this data? i tried with lookAt but not successfully

Why it doesn’t work with lookAt?

// v1  - base center, v2 - cone's pinnacle
let h = v1.distanceTo(v2);
let g = new THREE.ConeGeometry( radius, h);
g.translate(0, h * 0.5, 0); // base to 0
g.rotateX(Math.PI * 0.5); // align along Z-axis
let m = new THREE.MeshBasicMaterial(); // or any other material
let o = new THREE.Mesh(g, m);
o.position.copy(v1);
o.lookAt(v2);
scene.add(o);

Haven’t tried it, just from the scratch :sweat_smile:

1 Like

Super !!! Y save my day, thank you so much

1 Like

@kirill321592 you’re welcome :beers: