私は、カメの動きを制御するために、Pythonのカメモジュールにベクターを作っていました。私はカメの回転に使用するためにベクトルの回転角を見つけることが可能かどうか疑問に思っていました。私は終点の1つから回転角度を探したい。助けてくれてありがとう。タートルの見出しを探すVec2D
0
A
答えて
0
Vec2DインスタンスにはX & Y値のみが含まれます。どのようにカメが向かうかを知るためには、Vec2Dではなく、カメ自身に含まれる3番目の向きの値が必要です。 (技術的には、あなたはおそらく同様にチルトを知っておく必要がありますが、それはほとんど使用されませんです。)
回転Vec2Dのは見出しに関係のない、それが原点となす角度に相対的ですタートルの例えば、我々は亀の見出しを無視して、このよう四角形を描画することができます
from turtle import Turtle, Screen
screen = Screen()
yertle = Turtle('turtle')
yertle.goto(200, 200)
for _ in range(4):
yertle.goto(yertle.position().rotate(90))
screen.exitonclick()
単にorginに対する相対Vec2Dの位置を回転させることによって。 Vec2Dが原点に対してなす角度は、という引数となりますが、取得するVec2Dの方法はありません。私たちは、このコードのために心の中では具体的な目的をしたんので、私の数学を簡素化するためにmode('logo')
を使用
import math
from turtle import Turtle, Screen
screen = Screen()
screen.mode('logo')
def argument(self):
""" Returns the argument of the vector, the angle clockwise from 0."""
arg_in_rad = math.acos(self[1]/abs(self))
arg_in_deg = math.degrees(arg_in_rad)
if self[0] < 0:
return 360 - arg_in_deg
return arg_in_deg
yertle = Turtle('turtle')
yertle.goto(200, 200)
for _ in range(4):
print(argument(yertle.position()))
yertle.goto(yertle.position().rotate(90))
screen.exitonclick()
注:This vector packageは、我々の目的のために修正することができるものがあります。これは起源に対するタートルの位置の角度を印刷しますが、forward()
コマンドを実行すると、タートルの見出しについては何も教えてくれません。
タートルの動きを記録したり再生したりする場合は、Vec2Dとタートルの向きを組み込んだ独自のデータ構造を作成できます。あなたは、リスト内Vec2D位置にカメの位置を設定次に組み合わせturtle.setheading(turtle.towards(position))
を使用する場合
しかし、周りのカメの向きを保ち、そしてちょうどVec2D位置のリストを使用して、一つの方法は、ありますリストのVec2Dの位置。そのようにして、カメは次の場所に向かって常に向いています:
from turtle import Turtle, Screen
positions = [(-3.0, 10.0), (-2.0, 13.0), (0.0, 17.0), (5.0, 23.0), (6.0, 24.0),
(11.0, 27.0), (22.0, 30.0), (49.0, 31.0), (72.0, 26.0), (116.0, 3.0),
(135.0, -31.0), (132.0, -52.0), (128.0, -65.0), (122.0, -84.0),
(109.0, -118.0), (82.0, -158.0), (20.0, -188.0), (-52.0, -181.0),
(-132.0, -136.0), (-213.0, -45.0), (-244.0, 97.0), (-206.0, 225.0)]
screen = Screen()
yertle = Turtle('turtle')
for target, position in enumerate(positions, start=1):
yertle.goto(position)
if target < len(positions):
yertle.setheading(yertle.towards(positions[target]))
screen.mainloop()
関連する問題
- 1. タートルを別のタートルに移動する
- 2. タートルとタートルとの違いタートル()とx = turtle.Turtle()
- 3. 列見出しと集計を探します
- 4. タートルをタートルの画面に設定する方法
- 5. タートルのグラフィックエラー(Python)
- 6. タートルのスクリーンからの脱出を防ぎますか?
- 7. タートル:Pycharmで聞いていないonscreenclickへの呼び出し
- 8. タートル再帰のエラー
- 9. タートル画面に変数を出力する方法は?
- 10. 私が見逃しているものがわからない(タートル)
- 11. カメのタートルのグラフィックは?
- 12. Pythonでのクリックを待ちますタートル
- 13. タートルと木をTranscryptで
- 14. タートルの描画自動センタリング
- 15. Pythonの反転サークル(タートル)
- 16. RapydScriptのタートルと描画ツリー
- 17. Excelの見出し、サブ見出し、サブ見出しのリストを作成
- 18. リストからタートルを削除する
- 19. タートルでscpにパスワードを渡すには?
- 20. タートルを使用する方法svn import
- 21. 探索/検出とのIntelliJ
- 22. Pythonのタートルで四角形を描く
- 23. あるタートルの変数を別のタートルの変数に割り当てる方法はありますか?
- 24. のpython Tkinterのタートル画面の背景
- 25. 弾性探索クラスタの発見 - ユニキャストホスト
- 26. Pythonのタートル定位置のエラー
- 27. タートルのための無限ループlisten
- 28. Block APIへのAPI呼び出しを探すアプリケーションID
- 29. シェル出力の.NETパーサを探しています
- 30. Python 3.5.1でドットを描くタートル
ベクトルの回転角度を計算する方法はありませんか?原点(または他の任意の点)に対して、@ rbhog、 – rbhog
10が確実です。しかし、ベクトルの回転はカメの見出しではありません。 2つの異なること。パスに沿ったカメの場合、カメの見出しはパスの次の位置に向かっています。 – cdlane
私が理解しようとしたのは、任意の点と比較して回転角を見つけて、他のコマンドでカメの見出しを設定する方法でした。 – rbhog