プロが教えるわが家の防犯対策術!

次の---以下のように物理の斜方投射のプログラムはできたのですが、
目盛り線とx軸、y軸を追加したいのですが、
この文を追加しても

for i=1 in range(50):
canvas.create_line(0, 100 +i * 10, 800, 100 + i * 10)

目盛り線が追加できませんでした。
何が間違っていて、どうしたらよいでしょうか?

また目盛り線はグレーにx軸、y軸は黒で描きたいのですが
どうしたら良いでしょうか?

-----------------------------
tkinterとmathをインポートして

def move():
global x
global y
global vy
global t

canvas.delete('ball')
canvas.create_oval(x-MARGIN, (HEIGHT-y)-MARGIN, x+MARGIN, (HEIGHT-y)+MARGIN, fill='red', tags='ball')



if 0 <= x and x <= WIDTH and 0 <= y and y <= HEIGHT:
x = x + vx0 * dt
v1 = vy
v2 = vy - g * dt
y = y + (v1+ v2) / 2.0 * dt
vy = v2
t = t + dt
else:
x = x0
y = y0
vy = vy0
t = t0

window.after(50, move)


#WIDTH, HEIGHT = 1000, 500
WIDTH, HEIGHT = 800, 600
MARGIN = 10

t0 = 0.0
dt = 0.1
g = 9.8

v0 = float(input('初速度を入力してください'))
degrees = float(input('角度を入力してください'))

theta = degrees * math.pi / 180
vx0 = v0 * math.cos(theta)
vy0 = v0 * math.sin(theta)
x0 = 0
y0 = 3 * HEIGHT / 4
x = x0
y = y0
vy = vy0
t = t0

geo_str = str(WIDTH+MARGIN*2) + 'x' + str(HEIGHT+MARGIN*2)
window = tkinter.Tk()
window.geometry(geo_str)
window.title('moving')

canvas = tkinter.Canvas(window, width=WIDTH, height=HEIGHT, bg='white')
canvas.place(x=MARGIN, y=MARGIN)
canvas.create_oval(x-MARGIN, (HEIGHT-y)-MARGIN, x+MARGIN, (HEIGHT-y)+MARGIN, fill='red', tags='ball')


move()
window.mainloop()

A 回答 (3件)

あ〜、こういう事がしたいのか?



# 横軸
for i in range(1, 60):
 canvas.create_line(0, i * 10, 800, i * 10,
          fill = '#000000' if i == 59 else '#d2d2d2')
# 縦軸
for i in range(1, 80):
 canvas.create_line(i * 10, 0, i * 10, 600,
          fill = '#000000' if i == 1 else '#d2d2d2')
「物理の斜方投射の目盛り線とx軸、y軸の追」の回答画像2
    • good
    • 0
この回答へのお礼

回答大変有難うございます。そういうことです!
canvas.create_oval
の下にご提示の文を書きましたが実行できなくなりました。
どこにどのように文を追加したら良いでしょうか?

お礼日時:2023/05/26 22:37

> canvas.create_oval


> の下にご提示の文を書きましたが実行できなくなりました。

いや、それで良い筈ですよ。
多分そのままコピペしたでしょ?
教えて!gooはクソサイトなんでインデント消えるトコを全角スペース入れて見栄え良くしてんだけど、実行時にその「全角スペース」は邪魔になる。
一旦そのスペース消してインデントし直してみて。
多分それがエラーの原因でしょう。
    • good
    • 0
この回答へのお礼

助かりました

有難うございます。
自分でいちから文を半角、全角に注意して真似て書いて、最後にインデントしたら実行できました!!
大変有難うございました。

お礼日時:2023/05/27 06:10

ちとインデントが消えてるんで何をやってるのか分からんな。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!