前提・実現したいこと
y軸方向に一定速度で動く直線と、y=400という直線との交点を出そうとしています。また、交点の変化を0.1秒ごとに算出したいです。
pygameを使っています。
発生している問題・エラーメッセージ
エラーメッセージは出ませんが、正しい交点が算出できていません。
(y軸方向に一定速度で動く直線は270<x<320と指定しているのに、交点のx座標がx=340から記録されてしまいます。)
どこに不備があるのか教えていただけると嬉しいです…。
該当のソースコード
python
1python 2import pygame 3from pygame.locals import * 4import sys 5import time 6 7BLACK = (0, 0, 0) 8RED = (255, 0, 0) 9WHITE = (255, 255, 255) 10 11pygame.init() #初期化 12screen = pygame.display.set_mode((640, 480)) #画面サイズ 13FPSCLOCK = pygame.time.Clock() 14FPSCLOCK.tick(10) 15pygame.display.flip() 16 17pos_1y=330 18pos_2y=380 19velocity_y=0.01 20 21while True: 22 pos_1y+=velocity_y 23 pos_2y+=velocity_y 24 screen.fill(BLACK) 25 st1=(270, pos_1y) 26 en1=(320, pos_2y) 27 pygame.draw.line (screen, WHITE, st1, en1) 28 x1=270 29 y1= pos_1y 30 x2=320 31 y2= pos_2y 32 x3=0 33 y3=400 34 x4=620 35 y4=400 36 a1 = (y2-y1)/(x2-x1) 37 a3 = (y4-y3)/(x4-x3) 38 x0 = (a1*x1-y1-a3*x3+y3)/(a1-a3) 39 with open('file.txt', 'a') as f: 40 print(x0, file=f) 41 pygame.display.update() 42 for event in pygame.event.get(): 43 if event.type==pygame.QUIT: 44 pygame.quit() 45 sys.exit() 46 if event.type==KEYDOWN: 47 if event.key==K_ESCAPE: 48 pygame.quit() 49 sys.exit() 50 51
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー