でリストのリストをループ:私はこのような他のリストを含むリストを持っているのPython
self.trails = [
[10, 50],
[20, 30],
[100,50],
[25, 75]
]
そして、私はそれをループにしようと、彼らはいくつかの他の座標の近すぎる場合は任意の項目を削除しています:
def distance_real(x1,y1,x2,y2):
return Math.sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2))
class MathClass
trails = [
[10, 50],
[20, 30],
[100,50],
[25, 75]
]
def run(self):
pointx = 10
pointy = 15
while 1:
for trail in self.trails:
d = distance_real(pointx, pointy, trail[0], trail[1])
if d < 5:
self.trails.remove(trail)
time.sleep(1.0/30)
このコードでは、すべてのトレイルが削除されるわけではありません。 forループを追加して5回ループした後、正常に削除されました。
アイデア? forループを使用するのは、トレイルに数千のエンティティが含まれており、コードが数ミリ秒以内に実行されるため、私の場合は効率的ではありません。
これらの座標のうち、5未満の '(10,15)'までの距離はありません。 –
@Rawing数字はデモンストレーションのためだけのものです。 – Globala