pygameモジュールを使っています。
ウィンドウを半分に分割して、左側に関数のグラフを、右側に関数の値を表示したいのですが、
描画処理をwhile文に入れてみたり色々したのですが、どうしても右側に何も表示されません。
python
1import sys 2import pygame 3from pygame.locals import QUIT 4pygame.init() 5window=pygame.display.set_mode((800,300)) 6pygame.display.set_caption("関数のグラフ") 7fpsclock=pygame.time.Clock() 8 9 10func=input("f(x)=x") 11q=input("倍率=") 12 13def main(): 14 while True: 15 a = 400 16 b = 300 17 for event in pygame.event.get(): 18 if event.type==QUIT: 19 pygame.quit() 20 sys.exit() 21 22 window.fill((0,0,0)) 23 24 pygame.draw.line(window,(255,255,255),(0,b/2),(a,b/2)) 25 pygame.draw.line(window,(255,255,255),(a/2,0),(a/2,b)) 26 27 x=0 28 pointlist=[] 29 30 while x<=a: 31 x+=int(q) 32 xpos=x-(a/2) 33 ypos=eval('xpos'+func) 34 y=(b/2-ypos/int(q)) 35 pointlist.append((x,y)) 36 if x==a: 37 break 38 pygame.draw.aalines(window,(255,255,255),False,pointlist) 39 40 pygame.display.update() 41 fpsclock.tick(3) 42 sysfont=pygame.font.sysFont(None,10) 43 message=sysfont.render("f("+str(pointlist[0])+")="+str(pointlist[1])) 44 message_rect=message.get.rect() 45 for fontpos in range(0,301,5): 46 message_rect.topleft = (201, fontpos) 47 48 while fontpos==300: 49 window.blit(message, message_rect) 50 if fontpos==300: 51 break 52 53if __name__=='__main__': 54 main()
どこがおかしいのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/22 06:59
2018/04/22 07:04 編集
2018/04/22 07:06
2018/04/22 07:13
2018/04/22 07:45 編集
2018/04/22 07:48
2018/04/22 08:17