I want to build real-time 3D points that lie on the surface of a unit sphere (r = 1).
Two spin vectors work here. One vector rotates around the Y axis, X and Z values are calculated using cos () and sin () of a circle lying entirely on the X / Z plane, all Y values being 0. The other rotates around X, Z and Y values calculated with using cos () and sin () of a circle lying entirely on the Z / Y plane, all X values being 0. The angular momentum of two vectors is usually not the same. However, the endpoints of the vectors lie along the surface of the common sphere with a radius equal to 1. Therefore, they have the same magnitude and both come from the same 0, 0, 0 point.
Let's say that the first vector has an angular momentum term called angXZ, and the second angZY. This means that at any moment I can calculate two points: one for each spin vector, using angXY and angZY. With these two three-dimensional points, what is the formula for calculating the third point, which would also lie on the surface of the unit sphere and be the correct interpolation between the two points calculated from angXZ and angZY?
I see in my head that for any two three-dimensional points lying on the surface of a unit sphere, there is one and only circle (plane), the circle of which they both lie. I can also understand that calculating the coordinates of an interpolated point comes down to halving the angle that the two calculated points create when projected onto a circle whose circumference they both share. But I just can't wrap my head around translations and math.
Is there a simple formula that takes two three-dimensional points lying on the surface of a unit sphere to calculate the third point, which would also lie on this surface, and would be the correct interpolation between the first two points?
I use Delphi Pro 6 if that matters.
: , , , . , , , . - , XYZ , ?
?