SplineData.GetPoint(r) problem
-
On 10/08/2013 at 04:54, xxxxxxxx wrote:
Hi guys. Another weird issue with me:)
I have a Spline GUI in interface. Once it's loaded it looks like this:
And console spits point position like this:Point:0 position Vector(0, 1, 0)
Point:1 position Vector(1, 1, 0)Everything seems to nice and dandy, however, ... Once I manualy add points on that spline:
console seems to be spiting something weird:Point:0 position Vector(0, 1, 0)
Point:1 position Vector(1, 0, 0)
Point:2 position Vector(1, 0, 0)
Point:3 position Vector(1, 0, 0)
Point:4 position Vector(1, 0, 0)
Point:5 position Vector(1, 0, 0)Why are all points starting from point 1 are at position 1,0,0? I don't get it.
Here's the code I am using.
pointCount = op[SPLINE_SIZE].GetKnotCount() print ("Knot count " , pointCount) for i in range (0, pointCount) : PointPos = op[SPLINE_SIZE].GetPoint(i) print ("Point:%s position %s " % (i, PointPos))
-
On 10/08/2013 at 05:24, xxxxxxxx wrote:
You should not use an index, but a position.
SplineData.GetPoint
(r)[](file:///D:/pgrooff/Documents/pim/c4d/Python%20Help%20R14/help/modules/c4d/CustomDataType/SplineData/index.html?highlight=getpoint#SplineData.GetPoint)Gets a point from its X coordinate.
Parameters: r (float) – The x position Return type: Vector
[URL-REMOVED]Returns: The position _<_t_>_
So for example spline.GetPoint(60.0), get the values for x=60.
I have set the range to 100.By the way did you set the range correctly?
E.g. self.sd.SetRange(xmin=0, xmax=100, xsteps=1, ymin=0, ymax=100, ysteps=1)Note: I do not use a .res file to define the SplineControl.
You can check the range using:
sdrange = spline.GetRange() print sdrange['xmin'], sdrange['xmax'], sdrange['xsteps'], sdrange["ymin"], sdrange["ymax"], sdrange["ysteps"]
[URL-REMOVED] @maxon: This section contained a non-resolving link which has been removed.
-
On 10/08/2013 at 05:34, xxxxxxxx wrote:
Yes indeed. So I ended up using GeKnots()
knots = op[SPLINE_SIZE].GetKnots() print knots[I]["vPos"]
Uhuu