Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
hi, How to get spline offset(0-1) by spline point index ? i want know offset between points to caculate the value points should be. hope for your help!
Hi Mike, thanks for writing us.
With regard to your question, if I properly understood you, you can use the SplineHelp Class and its SplineHelp::GetPosition() method to retrieve the spline's points value given a certain offset.
Something like this:
import c4d # Main function def main(): if op is None: return realSpline = op.GetRealSpline() if realSpline is None: return splineH = c4d.utils.SplineHelp() if splineH is None: return splineH.InitSpline(realSpline) samples = 10 for sample in range(0, samples): offset = float(sample) / samples print splineH.GetPosition(offset) # Execute main() if __name__=='__main__': main()
Best, Riccardo
Hi @r_gigante, Thank you for replying. I'd like to know more about this topic: if I only know the Control Point Index from PointObject.GetPoint(id) of a spline, how could I get the Spline Position of this point?
Control Point Index
PointObject.GetPoint(id)
Spline Position
@r_gigante Thank you for your help! i have another problem that if i only know the spline point index ,how do i get the offset where point locate? just take sample like 1000 and find the nearest sample to the point position?or have faster way in SDK?
@eziopan For new questions please open a new thread. Thanks.
@mike What do you mean with "how do i get the offset where point locate?"
You want the offset for a point with a given index? The C++ version of SplineHelp has the function GetSplinePointSegment() which can be used to get the offset for a given index. Unfortunately, this function is not available in the Python API.
best wishes, Sebastian
@s_bach Thank you for your patient answer.
@s_bach thank you for your answer! I think I have the same question as mike do, so it has been solved now. Thank you again!