You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Geodesic curve (on surface) from one point in specified direction
And additional node, with working name of "Proportional mapping"; more technical / mathematical name would be "exponential mapping"
I wanted to discuss, how useful they are, and which of them should be in main Sverchok, and with which priority.
Everyone is welcome to test these nodes in sverchok-extra. After some time, the documentation will be ready, and then they can be moved to main Sverchok.
Geodesic curve between two points on a surface
This is more or less obvious. Given two points on a surface, generate a shortest curve on a surface connecting them.
I must say that this node can be slow, if you want to have good precision, and probably you will have to manually tweak parameters for some time to get good results.
Also I must note that this node does not have idea that the surface may be "closed" (as a cylinder, torus or sphere), so if the shortest way between two points is over surface boundary - it will not try it that way.
Geodesic curve from point and direction
Given original point and direction, draw geodesic curve from this point in this direction.
This node is faster.
Proportional mapping
This node's idea is nearly the same as for "Bend along Surface Field" node. However, the problem of "bend along surface" is, that it distorts the object being bent according to UV parametrization of the surface. So, if you want only to bend the object along the surface curvature, but not distort it along U/V, "bend along surface" will not suit you.
In general, it is not possible to bend a flat object along curved surface without distorting it. Try to wrap a sheet of paper onto a globe without wrinkling the paper. However, within some small neighborhood of one point or one curve on the surface, it is possible (if the surface is not too curved).
So this node tries to build a mapping onto not whole surface, but onto some vicinity of one point of the surface, or for vicinity of a curve on a surface.
For example, let's say we have a point on a surface. We can draw geodesic lines in all directions from this point.
A good quality of geodesic lines is that they are always "naturally" (arc-length) parametrized. So, when we go along such curve from original point, curve's T parameter is always equal to distance we traveled along the curve. So, as on illustration above, we have a good mapping of radial grid onto a surface. The further we go from original point, and the more curved the surface is, the more distorted this mapping will be; however, near the origin this mapping will be good enough, so we can interpolate this mapping between the points we calculated (using RBF from scipy), to generate a field to map any object onto the surface.
Such mapping cannot be continued onto whole surface, as 1) we always map only a circular region, while the surface is not circular; 2) far from origin the distortion will be too high. However, if we want, we may generate several such mappings around several points on the surface:
This field can be used to make "almost ideal" pavings around one point on the surface, for example:
Other things achievable with this idea:
Similarly, we can draw geodesic lines perpendicular to some curve on a surface, and then use them to map some rectangular region onto the surface.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
In Sverchok-Extra, there are several nodes available, based on idea of geodesic curve from mathematics:
I wanted to discuss, how useful they are, and which of them should be in main Sverchok, and with which priority.
Everyone is welcome to test these nodes in sverchok-extra. After some time, the documentation will be ready, and then they can be moved to main Sverchok.
Geodesic curve between two points on a surface
This is more or less obvious. Given two points on a surface, generate a shortest curve on a surface connecting them.
I must say that this node can be slow, if you want to have good precision, and probably you will have to manually tweak parameters for some time to get good results.
Also I must note that this node does not have idea that the surface may be "closed" (as a cylinder, torus or sphere), so if the shortest way between two points is over surface boundary - it will not try it that way.
Geodesic curve from point and direction
Given original point and direction, draw geodesic curve from this point in this direction.
This node is faster.
Proportional mapping
This node's idea is nearly the same as for "Bend along Surface Field" node. However, the problem of "bend along surface" is, that it distorts the object being bent according to UV parametrization of the surface. So, if you want only to bend the object along the surface curvature, but not distort it along U/V, "bend along surface" will not suit you.
In general, it is not possible to bend a flat object along curved surface without distorting it. Try to wrap a sheet of paper onto a globe without wrinkling the paper. However, within some small neighborhood of one point or one curve on the surface, it is possible (if the surface is not too curved).
So this node tries to build a mapping onto not whole surface, but onto some vicinity of one point of the surface, or for vicinity of a curve on a surface.
For example, let's say we have a point on a surface. We can draw geodesic lines in all directions from this point.
A good quality of geodesic lines is that they are always "naturally" (arc-length) parametrized. So, when we go along such curve from original point, curve's T parameter is always equal to distance we traveled along the curve. So, as on illustration above, we have a good mapping of radial grid onto a surface. The further we go from original point, and the more curved the surface is, the more distorted this mapping will be; however, near the origin this mapping will be good enough, so we can interpolate this mapping between the points we calculated (using RBF from scipy), to generate a field to map any object onto the surface.
Such mapping cannot be continued onto whole surface, as 1) we always map only a circular region, while the surface is not circular; 2) far from origin the distortion will be too high. However, if we want, we may generate several such mappings around several points on the surface:
This field can be used to make "almost ideal" pavings around one point on the surface, for example:
Other things achievable with this idea:
Similarly, we can draw geodesic lines perpendicular to some curve on a surface, and then use them to map some rectangular region onto the surface.
Beta Was this translation helpful? Give feedback.
All reactions