teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

7

文字の修正

2021/12/21 03:26

投稿

jy8666
jy8666

スコア2

title CHANGED
@@ -1,1 +1,1 @@
1
- pythonで3Dモデル上でのベクトル距離を求めたい
1
+ pythonでベクトル距離
body CHANGED
@@ -1,7 +1,3 @@
1
- n回目に3Dモデル上をクリックしたときに選択を確定するかしないか(Yes/No)判定を行いたいのですが、なぜか無制限に座標が取得されてうまく動きません。
2
-
3
- 実現させたいことは以下の通りです。
4
-
5
1
  ①n点目のクリック時に、選択確定の判定((__yes/no__)判定)を行う
6
2
  ②'__yes__'判定ならそのまま完了させる
7
3
  ③'__no__' 判定なら、最初に戻って座標を選び直す

6

文字の修正

2021/12/21 03:26

投稿

jy8666
jy8666

スコア2

title CHANGED
File without changes
body CHANGED
@@ -1,19 +1,10 @@
1
- ### 前提
2
- クリックしたときに選択を確定するかしないか(Y/N)判定をたいのですが、なぜか無制限に座標が取得されて
1
+ n回目に3Dモデル上をクリックしたときに選択を確定するかしないか(Yes/No)判定を行いたいのですが、なぜか無制限に座標が取得されてく動きせん
3
2
 
4
- ###実現たいこと
3
+ 実現させたいことは以下の通りです。
5
4
 
6
- 点目のクリック時に、選択確定の判定(__yes/no__)判定)を行う
5
+ n点目のクリック時に、選択確定の判定((__yes/no__)判定)を行う
6
+ ②'__yes__'判定ならそのまま完了させる
7
- '__no__' 判定の時に、最初に戻って座標を選び直す
7
+ '__no__' 判定なら、最初に戻って座標を選び直す
8
8
 
9
- ### 発生している問題
10
9
 
11
- 座標が無制限に取得されてしまう点。
12
-
13
-
14
- ### 試したこと
15
-
16
- for文が回せないならdata[1],data[2]をつくってみるかーと思いましたが、書ける頭がなくて撃沈。
17
-
18
- ### 補足情報(FW/ツールのバージョンなど)
19
- Pyvistaはあまり使用されてのか、情報が少なす。
10
+ 上記のような結果が求めらる方法を教えくださ。よろしくお願いたします。

5

文字の修正

2021/12/19 16:10

投稿

jy8666
jy8666

スコア2

title CHANGED
File without changes
body CHANGED
@@ -1,109 +1,19 @@
1
1
  ### 前提
2
+ クリックしたときに選択を確定するかしないか(Y/N)の判定をしたいのですが、なぜか無制限に座標が取得されてしまいます。
2
3
 
3
- Pyvistaを使ってSTLファイル上での座標取得を行っています。
4
- マウスクリックで座標位置を2つ取得し、2点間のベクトル距離を求めたいです。
5
-
6
-
7
4
  ###実現したいこと
8
- 2点目をクリックしたときに選択を確定するかしないか(Y/N)の判定をしたいのですが、なぜか無制限に座標が取得されてしまいます。
9
5
 
10
- 実現したいことは大きく3つです。
11
6
  ①2点目のクリック時に、選択確定の判定((__yes/no__)判定)を行う
12
7
  ②'__no__' 判定の時に、最初に戻って座標を選び直す
13
- ③ベクトル距離を求める
14
8
 
15
-
16
- PyvistaやSTLファイルを扱ったプログラムについて情報が少なく解決方法が見つかりません。
17
- よろしくお願いします。
18
-
19
9
  ### 発生している問題
20
10
 
21
11
  座標が無制限に取得されてしまう点。
22
12
 
23
- クリック位置を取得する関数 `plotter.track_click_position` は左クリックで処理する関数なので、for文で無理やり回そうとしたのが原因だと思います。
24
13
 
25
- エラーメッセージは出ていません。
26
-
27
- ### 該当のソースコード
28
-
29
- ```Python
30
- import pyvista as pv
31
- import numpy as np
32
-
33
- # track_click_positionのコールバック関数
34
- # 左クリックしたらoutput関数を処理する
35
-
36
- for i in range(2):
37
-
38
- def left_click(data):
39
- if i==0 or 1:
40
- data = np.array(data)
41
- plotter.add_points(data, render_points_as_spheres=True, point_size=10.0, color='red')
42
-
43
- print('point:')
44
- print(data,i+1)
45
- print(type(data))
46
-
47
- elif i==1:
48
- while True:
49
- dic={'y':True,'yes':True,'n':False,'no':False}
50
- try:
51
- return dic[input('確定しますか? Yes/No >> ').lower()]
52
- except:
53
- pass
54
- if dic==True:
55
- print('OK!')
56
- else:
57
- print('continue')
58
-
59
- else:
60
- #座標取得に戻る
61
- print('error')
62
-
63
-
64
- # STLの平行移動をするコード
65
- def translation(points, Tx, Ty, Tz):
66
- T = np.array([Tx, Ty, Tz])
67
- for i in range(3):
68
- points[:, i] = points[:, i] + T[i]
69
- return points
70
-
71
-
72
- filename = "Lt_tibia.stl"
73
- mesh = pv.read(filename)# 3Dモデルのファイルを読み込み
74
- plotter = pv.Plotter() # プロッターを生成
75
- plotter.add_mesh(mesh) # 3Dモデルをプロッターに追加
76
- point_data = mesh.points # 3Dモデルの座標データを取得
77
- mesh.points = translation(point_data, -268, -203, 945) # モデル全体を平行移動 -> 原点を調整
78
-
79
- plotter.show_grid()
80
- cent = np.array([0, 0, 0])
81
- direction = np.array([0, 0, 1])
82
- plotter.add_arrows(cent, direction, mag=10)
83
-
84
- points = np.array([0, 0, 0]) #原点
85
- actor = plotter.add_points(points, render_points_as_spheres=True,
86
- point_size=10.0,color='yellow')
87
-
88
-
89
- print('座標位置を選択してください')
90
-
91
- plotter.track_click_position(callback=left_click, side='left') #コールバック関数呼び出し
92
-
93
- plotter.show()
94
-
95
-
96
-
97
- ```
98
-
99
14
  ### 試したこと
100
15
 
101
16
  for文が回せないならdata[1],data[2]をつくってみるかーと思いましたが、書ける頭がなくて撃沈。
102
17
 
103
18
  ### 補足情報(FW/ツールのバージョンなど)
104
- Pyvistaはあまり使用されてないのか、情報が少ないです。
19
+ Pyvistaはあまり使用されてないのか、情報が少ないです。
105
-
106
- <環境>
107
- Windows10
108
- Anaconda
109
- Python3.8.1

4

文字の修正

2021/12/19 03:15

投稿

jy8666
jy8666

スコア2

title CHANGED
File without changes
body CHANGED
@@ -1,12 +1,12 @@
1
- ### 前提・実現したいこと
1
+ ### 前提
2
2
 
3
- Pyvistaを使ってSTLファイル上での座標取得を行おうとしています。
3
+ Pyvistaを使ってSTLファイル上での座標取得を行ています。
4
4
  マウスクリックで座標位置を2つ取得し、2点間のベクトル距離を求めたいです。
5
5
 
6
6
 
7
+ ###実現したいこと
7
- 2点目をクリックしたときに選択を確定するかしないか(Y/N)の判定をしたいのですが、座標値の表示部分をfor文で回すと、なぜか無制限に座標が取得されてしまいます。
8
+ 2点目をクリックしたときに選択を確定するかしないか(Y/N)の判定をしたいのですが、なぜか無制限に座標が取得されてしまいます。
8
9
 
9
-
10
10
  実現したいことは大きく3つです。
11
11
  ①2点目のクリック時に、選択確定の判定((__yes/no__)判定)を行う
12
12
  ②'__no__' 判定の時に、最初に戻って座標を選び直す

3

文字の修正

2021/12/16 17:52

投稿

jy8666
jy8666

スコア2

title CHANGED
@@ -1,1 +1,1 @@
1
- 3Dモデル上でベクトル距離を求めたい
1
+ pythonで3Dモデル上でベクトル距離を求めたい
body CHANGED
File without changes

2

文字の修正

2021/12/16 17:46

投稿

jy8666
jy8666

スコア2

title CHANGED
@@ -1,1 +1,1 @@
1
- 3Dモデル上での座標位置のベクトル距離を求めたい
1
+ 3Dモデル上でベクトル距離を求めたい
body CHANGED
@@ -1,10 +1,9 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
3
  Pyvistaを使ってSTLファイル上での座標取得を行おうとしています。
4
+ マウスクリックで座標位置を2つ取得し、2点間のベクトル距離を求めたいです。
4
5
 
5
- マウスクリックで2点座標位置を取得し、2点間のベクトル距離を求めたいです。
6
6
 
7
-
8
7
  2点目をクリックしたときに選択を確定するかしないか(Y/N)の判定をしたいのですが、座標値の表示部分をfor文で回すと、なぜか無制限に座標が取得されてしまいます。
9
8
 
10
9
 

1

文字の修正

2021/12/16 17:42

投稿

jy8666
jy8666

スコア2

title CHANGED
File without changes
body CHANGED
@@ -1,22 +1,26 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
3
  Pyvistaを使ってSTLファイル上での座標取得を行おうとしています。
4
+
4
5
  マウスクリックで2点座標位置を取得し、2点間のベクトル距離を求めたいです。
5
6
 
6
- 2点目をクリックしたときに選択を確定するかしないか(Y/N)の判定を行いたいのですが、座標値を表示する部分をfor文で回すと、なぜか無制限に座標が取得されてしまいます。
7
7
 
8
+ 2点目をクリックしたときに選択を確定するかしないか(Y/N)の判定をしたいのですが、座標値の表示部分をfor文で回すと、なぜか無制限に座標が取得されてしまいます。
9
+
10
+
8
11
  実現したいことは大きく3つです。
9
12
  ①2点目のクリック時に、選択確定の判定((__yes/no__)判定)を行う
10
13
  ②'__no__' 判定の時に、最初に戻って座標を選び直す
11
14
  ③ベクトル距離を求める
12
15
 
13
16
 
14
- PyvistaやSTLファイルを扱ったプログラムについて情報が少なく解決方法が見つかりません。
17
+ PyvistaやSTLファイルを扱ったプログラムについて情報が少なく解決方法が見つかりません。
15
18
  よろしくお願いします。
16
19
 
17
- ### 発生している問題・エラーメッセージ
20
+ ### 発生している問題
18
21
 
19
22
  座標が無制限に取得されてしまう点。
23
+
20
24
  クリック位置を取得する関数 `plotter.track_click_position` は左クリックで処理する関数なので、for文で無理やり回そうとしたのが原因だと思います。
21
25
 
22
26
  エラーメッセージは出ていません。
@@ -95,8 +99,8 @@
95
99
 
96
100
  ### 試したこと
97
101
 
102
+ for文が回せないならdata[1],data[2]をつくってみるかーと思いましたが、書ける頭がなくて撃沈。
98
103
 
99
-
100
104
  ### 補足情報(FW/ツールのバージョンなど)
101
105
  Pyvistaはあまり使用されてないのか、情報が少ないです。
102
106