【发布时间】:2018-09-12 20:40:28
【问题描述】:
Interpolate Date- Catmull 我收到以下错误:TypeError: can't multiply sequence by non-int of type 'float'
Interpolate Date-Linear 我收到以下错误:Unexpexted Token "v3"
我是 Python 新手,想知道我在使用此代码时做错了什么。 谢谢 下面是 D 和 t 的输入。
IN[0]
-1.075000
-0.885818
-0.688475
-0.483791
-0.301645
-0.114591
0.077063
0.273042
0.473106
0.677038
1.025973
1.306626
1.592869
1.884406
2.363634
2.597338
2.833636
3.072438
3.313663
3.557232
3.803073
4.051116
4.301297
4.807834
5.069212
5.349055
5.649760
5.971703
IN[1]
0.000000
0.055556
0.111111
0.166667
0.222222
0.277778
0.333333
0.388889
0.444444
0.500000
0.555556
0.611111
0.666667
0.722222
0.777778
0.833333
0.888889
0.944444
1
0.000000
0.027778
0.055556
0.083333
0.111111
0.138889
0.166667
0.194444
0.222222
0.250000
0.277778
0.305556
0.333333
0.361111
0.388889
0.416667
0.444444
0.472222
0.500000
0.527778
0.555556
0.583333
0.611111
0.638889
0.666667
0.694444
0.722222
0.750000
0.777778
0.805556
0.833333
0.861111
0.888889
0.916667
0.944444
0.972222
1
D=IN[0]
t=IN[1]
a=[]
def SampleLinear(v0, v1, t):
value = v0 * (1.0 - t) + v1 * t
return value
def Interpolate (values, parameter):
num = len(values) - 1
num2 = parameter * float(num)
num3 = int((float(floor(num2)))
v3 = values[num3]
v4 = values[num3]
value = SampleLinear(v3, v4, num2 - float(num3))
return value
for i in t:
a.append(Interpolate(D,i))
OUT = a
D=IN[0]
t=IN[1]
a=[]
def SampleCatmull(v00,v0,v1,v11,t):
num = -0.5 * v00 + 1.5 * v0 - 1.5 * v1 + 0.5 * v11
num2 = v00 - 2.5 * v0 + 2.0 * v1 - 0.5 * v11
num3 = -0.5 * v00 + 0.5 * v1
value = num * (t * t * t) + num2 * (t * t) + num3 * t + v0
return value
def Interpolate(values, parameter):
num = len(values) - 1
num2 = parameter * float(num)
num3 = float(floor(num2))
num6 = values[num3]
v7 = 0
v8 = 0
num7 = values[num3]
if num3 <= 0:
v7 = num6 - (num7 - num6)
else:
v7 = values[num3 - 1]
if num3 >= num - 1:
v8 = num7 - (num6 - num7)
else:
v8 = values[num3 + 2]
value = SampleCatmull(v7, num6, num7, v8, num2 - float(num3))
return value
for i in t:
a.append(Interpolate(D, i))
OUT = a
【问题讨论】:
-
IN中有什么内容?请发布代码而不是图片。 -
IN[0]= 要插入的值; IN[1]= 参数
-
好的,但请显示您的变量
IN -
0 0.055556 0.111111 0.166667 0.222222 0.277778 0.333333 0.388889 0.444444 0.5 0.555556 0.611111 0.666667 0.722222 0.777778 0.833333 0.888889 0.944444 1 0 0.027778 0.055556 0.083333 0.111111 0.138889 0.166667 0.194444 0.222222 0.25 0.277778 0.305556 0.333333 0.361111 0.388889 0.416667 0.444444 0.472222 0.5 0.527778 0.555556 0.583333 0.611111 0.638889 0.666667 0.694444 0.722222 0.75 0.777778 0.805556 0.833333 0.861111 0.888889 0.916667 0.944444 0.972222 1
-
- 1.075 -0.885818 -0.688475 -0.483791 -0.301645 -0.114591 0.077063 0.273042 0.473106 0.677038 1.025973 1.306626 1.592869 1.884406 2.363634 2.597338 2.833636 3.072438 3.313663 3.557232 3.803073 4.051116 4.301297 4.553555 4.807834 5.069212 5.349055 5.64976 5.971703 跨度>
标签: python interpolation revit-api