ProcessingをPythonで書いています。
階乗の関数factorialで最大再帰深度を超えたという趣旨のエラーがでました。
引数は3以下しか取らないので最大再帰深度を超えたということは考えづらいです。
他に原因があると思われるのですが詳しい方がいらっしゃいましたら教えていただきたいです。
以下はエラーです。
RuntimeError: maximum recursion depth exceeded
以下はエラー部分が含まれる関数です。
python
1def factorial(n): 2 if(n==1):return n 3 return n*factorial(n-1)
以下は全体のコードです。
Python
1size_x = 512 2size_y = 384 3px0 = 200 4py0 = 10 5px1 = 450 6py1 = 400 7px2 = 50 8py2 = 400 9px3 = 300 10py3 = 10 11 12def setup(): 13 size(size_x, size_y) 14 noLoop() 15 16def draw(): 17 background(0) 18 stroke(255,255,255) 19 bezier(px0, py0, px1, py1, px2, py2, px3, py3) 20 21def factorial(n): 22 if(n==1):return n 23 return n*factorial(n-1) 24 25def bernstein(n, i, t): 26 b = factorial(n)/(factorial(i)*factorial(n-i))*t^i*(1-t)^(n-i) 27 return b 28 29def bezier(x0, y0, x1, y1, x2, y2, x3, y3): 30 t = 0 31 while(t < 1): 32 x = x0*bernstein(3,0,t)+x1*bernstein(3,1,t)+x2*bernstein(3,2,t)+x3*bernstein(3,3,t) 33 y = y0*bernstein(3,0,t)+y1*bernstein(3,1,t)+y2*bernstein(3,2,t)+y3*bernstein(3,3,t) 34 point(x,y) 35 t += 0.001
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/07 15:00