Hello, I am doing some experiment with point cloud visualization, and found a procedure to generate normals from these
point clouds. The idea is to use the points to generate the normal. The problem is that I may be misunderstanding what should be done. For instance, if I have two points with coordinates (0,0,5) and (0,0,10), so I expected the normal to be (0,0,1), in that way the point can be "reached" by taking the normal and multiplying it by a constant, but what I am getting it is a (1,0,0) or a (0,1,0) normal that can never "reach" neither of these points, so that's why I think I am doing something wrong.
I attached an screenshot of the procedure, and here I will simulate my calculations done with these two points, so hopefully someone will be able to see a mistake.
Here is the screenshot:
[attachment=29452:Screenshot.png]
Here is the simulation: H = [ || (0,0,5) - (0,0,5) || / 2 ] + [ || (0,0,10) - (0,0,5)|| / 2 ]
H = 0 + 2.5 = 2.5
Wp (0,0,5) = e ^ [ (|| (0,0,5) - (0,0,5) ||) / 2.5² ] = e^0 = 1
Wp (0,0,10) = e ^ [ (|| (0,0,10) - (0,0,5) ||) / 2.5² ] = e^(5/6.25) = e^0.8 =~ 2.22
Mp = (Wp (0,0,5) * (0,0,5) + Wp (0,0,10) * (0,0,10)) / Wp (0,0,5) + Wp (0,0,10)
= [1 * (0,0,5) + 3.22 * (0,0,10)] / 1 + 2,22 = (0,0,37.2) / 3.22 = (0,0,11.55)
C = | (0,0,5) - (0,0,11.55) | = (0,0,-6.55) Inverse C = | (0,0) |
| (0,0,10) - (0,0,11.55) | = (0,0,-1.55) | (0,0) |
| (-6.55,-1.55) |
Inverse C * C = |0 0 0 | eigenvalues = 0, 0, 45.307
|0 0 0 |
|0 0 45.3| eigenvectors = (1,0,0) (0,1,0) (0,0,1)
normal = (1,0,0) or (0,1,0)
Anyone saw anything wrong ?