@chris fullmer said:
With just 2 splines, I take the centerpoint of each collective spline. Then get the vector between those 2 centerpoints. That is the vector I use on each vertex to find the handle point - just follow the vector 1/2 the distance to the other point that the curve will connect to.
Hmm. First, terminology: The splines are the starting curves and the Beziers are the curves that connect the vertexes of those starting curves. Right?
(An aside, what is a "loft"? Is that a standard term? Where does it come from? Is is meant to convey an image of a sail filled with wind or a bedsheet settling down after you've fluffed it in the air? If so, then fabric metaphors rule and the bamboo-mat, reversed pleats glitch.)
So, you find the centerpoint of each collective spline. One point for the top spline and one point for the bottom spline. I'm assuming not the center vertex but the geometrical center of the extents of the spline, right?
A vector between them. A line from the geometrical center of one spline to the geometrical center of the other, then half that distance to create top and bottom vectors. Then those half-vectors are applied to each point on each of the splines and a Bezier generated between them, with those half-vectors determining the angle at which the Bezier curves connect to that splines, top an bottom.
OK, that was one question, the attachment angles.
That explains why the half circles don't generate edges that will join with other half circles. The centerpoint of each half-circle spline is not the center of the arc, it it offset, so the Beziers at the ends of each spline start at each end with an inward tilt, even if all four endpoints of the splines are coplanar. Knowing that should also give the solution to the half-circle joining problem. Extend the ends of arcs with lines until the center of the arc-plus-lines spline lands at the center of the arc.
@unknownuser said:
I probably will have to do a video to show the workings of it.
Not needed for me. But, like with the "bug" about not being able to join half-circle lofts, knowing what it is doing internally can help solve problems.
@chris fullmer said:
I'm sure that doesn't answer all the questions. ... Do you just want to understand how the curves are working?
I'm looking for explanations of the behaviors that don't match my expectations. The half circles not generating edges that could join is one. I think I've got that one, including a work-around.
The other is the three-spline example with all the pleats in the top spline. The pleats "transmit" from the top half to the bottom half while being exactly gone when the surface passes through the middle spline. That is really counter intuitive to me, from the perspective of what you appear to be trying to do. So it falls in the category of a "bug" to me. Not one that stops the tool from performing, but one that generates slightly undesirable results.
The fact that the pleats are gone at the middle spline and reappear, reversed, in the bottom half is indeed explained. You are generating Beziers that run from the top through the middle to the bottom, and each Bezier has four vectors, top, two in the middle, and bottom, that all have identical angles. The path of each Bezier as it passes through the middle is affected by the offset of the pleats and thus transmits that pleating to the bottom half.
All explained, it is indeed doing what you told it to do. No bugs there. But is that the result you actually desired, or did you stop there because the results were pretty?
What I'm getting at is that I think the reversed pleats are somehow wrong. One alternative would be to have no pleats in the bottom half, with the center spline essentially forcing an end to the pleats, but I think that's not right either.
Personally, in the pleats example, I would rather have the center spline modify the path but not force the surface to go exactly through it because that forces the pleats to disappear and reappear reversed, which just looks wrong to me. And I assume it is not an effect that people will be actually trying for very often. The tool generates pretty results and I think people would not encounter that "bug" very often and would ignore it when they do, but it still strikes me as somehow wrong.
I think where I'm leading to is to have the top and bottom be absolutes and have middle splines be guides, not necessarily exact matches. If the middle spline modified the path of what you would get without it, but without forcing an absolute match at that place, I think the feel of using the tool would be more "organic" and the results more like what I think people would expect. I think my desired result in that example would be to have the pleats continue through the middle spline without going to zero and without reversing, but with that spline having an influence on the flow of the pleats.
Maybe I'm looking for the vertexes of the middle spline to act more like Bezier control points rather than absolute vertexes.
Maybe you find the Bezier curve center (inflection point?) between the top and the bottom and then deflect that toward the corresponding point in the middle control spline. Where there is only one control spline, you deflect it half way between? When there are two control curves, you deflect each Bezier inflection point by 1/3 from the control spline point towards the no-controls Bezier point? Or maybe a slider could adjust the influence of the intermediate control splines from zero to absolute. At zero, it would be as if there were no intermediate curves and at 100 you would get the current effect, including the forced alignment to the curve and the pleat flipping.
Personally, since I asked the question that you were suggesting you answer with a video, I'd rather you spend the time trying my slider idea than making a video. But it's your project.
I hope this helps,
August