I posted a question on StackExchange directly 4 days ago (link), being unaware of this specific Blender-StackExchange. So please appologize my double-post. Here is my question that meanwhile keeps me from sleeping at night because I don't get were my fundamental error of thinking is.
In Blender (3.1.2) I tried to connect the "corresponding" points of two curve-circles with the same center (at world-origin) with cones, like the beams of a symbolic sun with the inner circle being the circumference of the sun-disc and the outer circle being the circumference of the tip of the beams. This is just an exercise to later do the same with curves of different shape, for instance between an inner circle and an outer ellipse.
Therefore I want to calculate the relative vectors between corresponding inner and outer points to scale the cones accordingly to these vectors' length. However, I found that my simple vector math don't work as I expected.
I created a simplified scenario without the cones to demonstrate the issue I'm facing. The upper and lower half of the Geometry-Nodes tree attached as screenshot #1 below are identical. The upper part is for the outer circle with radius 2, the lower part for the inner circle with radius 1. Both circles have only 4 points for simplicity (so they appear as rhombs as seen in screenshot #3).
In the 5 boxes I do the following:
Create the circle-curves, convert them to points and capture the point positions.
Subtract the positions of corresponding points to get the relative vectors pointing from the outer to the inner circle's points. The result should consist of a list of the 4 vectors [(1,0,0)(0,1,0)(-1,0,0)(0,-1,0)] with all having length 1 due to the radius difference of 1.
Put small Ico-Spheres to the points of both circles by Instance-to-Points nodes. Here is where also the cones would be instantiated, but on just the inner circle.
Group-output the geometry of the circles and ico-spheres.
Here comes my issue, displayed by 4 Viewer-Nodes (see points a-c below):
a) The geometry-sockets of the top two viewer-nodes are attached to the ico-sphere instances on the outer circle, with the top one showing the positions of their points captured in step 1. The positions are shown correctly.
b) The geometry-sockets of the bottom two viewer-nodes are attached to the ico-sphere instances on the inner circle, with the one on the very bottom showing the positions of their points also captured in step 1. Also here the positions are shown correctly.
c) The value-inputs of the two viewer-nodes in the middle are attached to the same vector array calculated in step 2. So I would expect their outputs showing identical vectors in the corresponding spread-sheets, independent of the geometry the viewer nodes are attached to. But these two viewer nodes show different vector outputs. Why is that?
My expectation would have been the following outputs:
a) From the top-most viewer node (points on outer circle): (2,0,0)(0,2,0)(-2,0,0)(0,-2,0) <-- shown correctly
b) From the bottom-most (points on inner circle): (1,0,0)(0,1,0)(-1,0,0)(0,-1,0) <-- shown correctly
c) From the two at the center (attached to the same vector-subtract node): (1,0,0)(0,1,0)(-1,0,0)(0,-1,0) <-- NOT working as I expected
The outputs of the center viewer-nodes differ depending on whether the geometry of the inner or outer circle is attached to them (see screenshot #2). This leads to also different length calculations, while all 4 vectors should be of length 1 in my opinion.
Where is my fallacy of thinking, and how can I actually calculate the distance-vectors between corresponding points on the inner and outer circle for later scaling of cones positioned between them?
For completnes here screenshot #3 with my entire Blender screen:
Thank's in advance!