質問編集履歴

3

インデントの修正、ファイル名の修正

2023/01/27 06:00

投稿

Tyutohannpa_
Tyutohannpa_

スコア25

test CHANGED
File without changes
test CHANGED
@@ -7,11 +7,11 @@
7
7
  そのためにファイルを分けた方が見やすいし、構成しやすいかなと考え構築しています。
8
8
 
9
9
  ### 実現したいこと
10
- ファイル1.pyで定義した関数の引数?をファイル2.pyで呼び出せるようにしたい。
10
+ bezier.pyで定義した関数の引数?をtrain.pyで呼び出せるようにしたい。
11
11
 
12
12
  ### 該当のソースコード
13
13
  pythonコード
14
- ```file1.py
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
- ```file2.py
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
- q3 = [random.uniform(0, 1), random.uniform(0, 1)]
55
+ q3 = [random.uniform(0, 1), random.uniform(0, 1)]
56
- q4 = [random.uniform(0, 1), random.uniform(0, 1)]
56
+ q4 = [random.uniform(0, 1), random.uniform(0, 1)]
57
- q5 = [random.uniform(0, 1), random.uniform(0, 1)]
57
+ q5 = [random.uniform(0, 1), random.uniform(0, 1)]
58
- q6 = [1., 1.]
58
+ q6 = [1., 1.]
59
- Q = [q1, q2, q3, q4, q5, q6] #←ここのQが定義されてない判定?になる(暗い文字になる)
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

読みやすくした

2023/01/27 05:43

投稿

Tyutohannpa_
Tyutohannpa_

スコア25

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を入れてみたができなかった

2023/01/27 05:33

投稿

Tyutohannpa_
Tyutohannpa_

スコア25

test CHANGED
File without changes
test CHANGED
@@ -5,39 +5,49 @@
5
5
  ### 実現したいこと
6
6
  ファイル1.pyで定義した関数の引数?をファイル2.pyで呼び出せるようにしたい。
7
7
 
8
- 記載されてませんが、importやfrom importはちゃんと書いてます
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
- # print(nCk, k, n - k)
12
+ import numpy as np
21
- return B
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)]