Rotate surface to other surface normals
8 views (last 30 days)
I have the following problem, for which I have not found a mathematical solution. Or my idea was already right, but I applied it wrong.
The following problem: I define a rectangular reference surface which is described by 5 points in the xy-plane. My base coordinate system is rotated by 90° in a mathematically positive direction around the z-axis (x-axis points positive upwards and y-axis positive to the left). Four corner points and a center point now describe the rectangular (not curved) surface. Now I want to determine the curvature of the reference surface on a curved surface. For this purpose I determine the z-coordinate, in which the center of the reference surface and the curved surface (read from STL-file, therefore consisting of triangular surfaces) intersect. Then I also get the normal vector of the intersected partial surface of the curved surface. Now I want to "rotate" the reference surface or the other four points of the surface into the normal vector of the cut surface, so that the reference surface rests without curvature on the curved surface at the center.
Together with the "curved points" of the reference surface on the curved surface and the distance between the points of the reference surface, which are only inclined around the normal vector, I can then determine the curvature.
So my only obstacle is the rotation of the reference surface, which just won't work. For this I have tried the following on the basis of: Mathworks
The vector a was the normal vector of the intersection with the curved surface and
The vector b was the normal vector of the reference surface, i.e. the normal vector of the xy-plane [0 0 1].
Here is an illustration to show the problem (the red arrow is the normal vector of the intersected surface of the curved surface, and the green arrow the normal vector of the reference surface at the center point)
Does anyone here have an idea how I could implement the whole thing? I hope I could explain it understandable. Thanks a lot for your help.