Moving/scaling selections based on formula (exponentially, etc)

Imagine I have a line with five points, left to right.

What I would like to is, having the first point (Point[0]) as a base, manipulate the positions of the further points using a formula, such as:

Point[n]['z-value'] = Point[n-1]['z-value']/2

so that when Point[1] is at Z 2, Point[2] would be at Z 1, Point[3] would be at Z .5, Point[4] would be at Z .25... etc, to the end of the line.

I understand the basics of implementing this with Python, but before I delve into that, I'd like to make sure such a feature does not already exist.

If not, what would be the direction for beginning to implement something that would manipulate line points in order?

Alternatively/in addition, what would the right direction be for implementation on order of selected vertices in a mesh, as opposed to lines/shapes/splines?

• Sounds lot like proportional editing? docs.blender.org/manual/en/dev/editors/3dview/object/editing/… Having the n+1 structure is a bit problematic or special usage case because often the vertex order doesn't make sense in mesh structure. Proportional edit uses distance, can you make use of that? Mar 5 '18 at 11:29
• @kheetor That might work. Happen to know what relationship between influence & movement is? Yeah, I put the mesh bit separate as I suspected they weren't stored in orders, so I meant more towards operating on verts in order selected. Mar 6 '18 at 6:23
• Looking into it: I see the different different falloff types are formulas of their own. So if anything, happen to know where these formulas can be found? It would be interesting if I could work my own in, then. Also would be interesting to not have to use a circle... Mar 6 '18 at 6:32
• If you want to make one mathematically accurate operation then using proportional editing is not the best option. You can move vertices around quite easily with python scripting and it's not hard to get into. I recommend just start experimenting and if you hit a snag we'll help you out. Mar 6 '18 at 11:08