質問編集履歴
3
インデントの修正、ファイル名の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -7,11 +7,11 @@
|
|
7
7
|
そのためにファイルを分けた方が見やすいし、構成しやすいかなと考え構築しています。
|
8
8
|
|
9
9
|
### 実現したいこと
|
10
|
-
|
10
|
+
bezier.pyで定義した関数の引数?をtrain.pyで呼び出せるようにしたい。
|
11
11
|
|
12
12
|
### 該当のソースコード
|
13
13
|
pythonコード
|
14
|
-
```
|
14
|
+
```bezier.py
|
15
15
|
import numpy as np
|
16
16
|
import math
|
17
17
|
|
@@ -42,7 +42,7 @@
|
|
42
42
|
|
43
43
|
```
|
44
44
|
|
45
|
-
```
|
45
|
+
```train.py
|
46
46
|
|
47
47
|
from bezier import bezier_class
|
48
48
|
import numpy as np
|
@@ -52,13 +52,13 @@
|
|
52
52
|
def control_point():
|
53
53
|
q1 = [0, 0]
|
54
54
|
q2 = [random.uniform(0, 1), random.uniform(0, 1)]
|
55
|
-
|
55
|
+
q3 = [random.uniform(0, 1), random.uniform(0, 1)]
|
56
|
-
|
56
|
+
q4 = [random.uniform(0, 1), random.uniform(0, 1)]
|
57
|
-
|
57
|
+
q5 = [random.uniform(0, 1), random.uniform(0, 1)]
|
58
|
-
|
58
|
+
q6 = [1., 1.]
|
59
|
-
|
59
|
+
Q = [q1, q2, q3, q4, q5, q6] #←ここのQが定義されてない判定?になる(暗い文字になる)
|
60
60
|
|
61
|
-
|
61
|
+
# ベジェ曲線を描く関数を実行
|
62
62
|
|
63
63
|
|
64
64
|
px, py, t = bezier_curve(Q) #Qに赤波線
|
2
読みやすくした
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,12 +1,15 @@
|
|
1
1
|
### 前提
|
2
|
-
曲線をランダムな制御点で描くプログラムを作
|
2
|
+
曲線をランダムな制御点で描くプログラムを作るために、ディレクトリを分けてきれいにしようとしています。
|
3
|
+
|
4
|
+
一つのファイルで実行すると動作しますので、コードに問題はないはずです。
|
5
|
+
|
6
|
+
ランダムな曲線の生成を繰り返し、それを画像として保存するプログラムを作りたいと思い
|
3
|
-
|
7
|
+
そのためにファイルを分けた方が見やすいし、構成しやすいかなと考え構築しています。
|
4
8
|
|
5
9
|
### 実現したいこと
|
6
10
|
ファイル1.pyで定義した関数の引数?をファイル2.pyで呼び出せるようにしたい。
|
7
11
|
|
8
|
-
|
9
|
-
###
|
12
|
+
### 該当のソースコード
|
10
13
|
pythonコード
|
11
14
|
```file1.py
|
12
15
|
import numpy as np
|
@@ -39,8 +42,6 @@
|
|
39
42
|
|
40
43
|
```
|
41
44
|
|
42
|
-
### 該当のソースコード
|
43
|
-
|
44
45
|
```file2.py
|
45
46
|
|
46
47
|
from bezier import bezier_class
|
1
classを入れてみたができなかった
test
CHANGED
File without changes
|
test
CHANGED
@@ -5,39 +5,49 @@
|
|
5
5
|
### 実現したいこと
|
6
6
|
ファイル1.pyで定義した関数の引数?をファイル2.pyで呼び出せるようにしたい。
|
7
7
|
|
8
|
-
|
8
|
+
|
9
9
|
### 発生している問題・エラーメッセージ
|
10
10
|
pythonコード
|
11
11
|
```file1.py
|
12
|
-
# Bernstein多項式を計算する関数
|
13
|
-
def bernstein(n, t):
|
14
|
-
B = []
|
15
|
-
for k in range(n + 1):
|
16
|
-
# 二項係数を計算してからBernstein多項式を計算
|
17
|
-
nCk = math.factorial(n) / (
|
18
|
-
math.factorial(k) * math.factorial(n - k))
|
19
|
-
B.append(nCk * t ** k * (1 - t) ** (n - k))
|
20
|
-
|
12
|
+
import numpy as np
|
21
|
-
|
13
|
+
import math
|
22
14
|
|
15
|
+
class bezier_class:
|
16
|
+
# Bernstein多項式を計算する関数
|
17
|
+
def bernstein(n, t):
|
18
|
+
B = []
|
19
|
+
for k in range(n + 1):
|
20
|
+
# 二項係数を計算してからBernstein多項式を計算
|
21
|
+
nCk = math.factorial(n) / (
|
22
|
+
math.factorial(k) * math.factorial(n - k))
|
23
|
+
B.append(nCk * t ** k * (1 - t) ** (n - k))
|
24
|
+
# print(nCk, k, n - k)
|
25
|
+
return B
|
23
26
|
|
24
|
-
# ベジェ曲線を描く関数
|
27
|
+
# ベジェ曲線を描く関数
|
25
|
-
def bezier_curve(Q):
|
28
|
+
def bezier_curve(Q):
|
26
|
-
self = len(Q) - 1
|
29
|
+
self = len(Q) - 1
|
27
|
-
dt = 0.03333333
|
30
|
+
dt = 0.03333333
|
28
|
-
t = np.arange(0, 1, dt)
|
31
|
+
t = np.arange(0, 1, dt)
|
29
|
-
B = Q.bernstein(self, t)
|
32
|
+
B = Q.bernstein(self, t)
|
30
|
-
px = 0
|
33
|
+
px = 0
|
31
|
-
py = 0
|
34
|
+
py = 0
|
32
|
-
for i in range(len(Q)):
|
35
|
+
for i in range(len(Q)):
|
33
|
-
px += np.dot(B[i], Q[i][0])
|
36
|
+
px += np.dot(B[i], Q[i][0])
|
34
|
-
py += np.dot(B[i], Q[i][1])
|
37
|
+
py += np.dot(B[i], Q[i][1])
|
35
|
-
return px, py, t
|
38
|
+
return px, py, t
|
39
|
+
|
36
40
|
```
|
37
41
|
|
38
42
|
### 該当のソースコード
|
39
43
|
|
40
44
|
```file2.py
|
45
|
+
|
46
|
+
from bezier import bezier_class
|
47
|
+
import numpy as np
|
48
|
+
from matplotlib import pyplot as plt
|
49
|
+
import random
|
50
|
+
|
41
51
|
def control_point():
|
42
52
|
q1 = [0, 0]
|
43
53
|
q2 = [random.uniform(0, 1), random.uniform(0, 1)]
|