2016-09-28 5 views
0

이 존 Zelle의 graphics.py 사용하여 파이썬 3.5.2에 대한 코드 문제 : 나는 시간의 좋은 금액을 보냈습니다Zelle 그래픽으로 플롯을 다시 그리는 방법은 무엇입니까?

여기에 대한 답을 찾고 있지만, 단지 그것을 알아낼 수 없습니다. 함수 undraw()getMouse()처럼 존재합니다. 그러나 plot() 명령의 경우에는 draw() 명령에서만 작동하지 않는 것 같습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 그리고 어떻게 창문을 열어두고 다음 그림을 그리기 전에 이전 그림을 지울 수 있습니까? graphics의 기능에 대한

의 PDF 문서 :

        http://mcsp.wartburg.edu/zelle/python/graphics/graphics.pdf

win = GraphWin("Plot",500,500) # Creates a window 

for m in range(0,j): # Loop for each function 
    # Randomizes a color for each function 
    color = random.choice(['red','black','green','yellow','pink','blue']) 
    for h in range(0,t): # Loop for each pair of values "x,y" 
     # Find points and plot each point in win 
     win.plot(axis[h],points[m][h],color) 
    win.getMouse() # Pause before clicking 
    win.undraw() # AttributeError: 'GraphWin' object has no attribute 'undraw' 
+1

정보가 충분하지 않음을 :

그러나, 토대는립니다 객체를 추적하지 Tkinter를이고, GraphWin 캔버스의 하위 클래스, 그래서 당신이 할 수있는 . 같은 것을 추가하십시오 : 어떤 언어? 무슨 lib? 무엇이 정확하게'승리'이고 그것이 정의되고 선언 된 곳인가? – Spektre

답변

0

첫 번째 문제는 이렇게 win.undraw() 단순히 잘못, undraw()GraphicsObject하지 GraphWin의 방법이라는 것이다.

두 번째 문제는 그려진 개체와 달리 Zelle Graphics 수준에서 수행 한 작업을 추적하지 않는 저수준 픽셀 설정 방법입니다. ... 지금은 너무 + 닫기

win = GraphWin("Plot", 500, 500) # Creates a window 

for m in range(j): # Loop for each function 
    color = random.choice(['red', 'black', 'green', 'yellow', 'pink', 'blue']) # Randomizes a color for each function 
    for h in range(t): # Loop for each pair of values "x, y" 
     win.plot(axis[h], points[m][h], color) # Find points and plot each point in win 
    win.getMouse() # Pause before clicking 
    win.delete("all") # Clear out old plot 
+0

'win.delete ("all")'이 상속 된'Canvas.delete()'메소드를 호출하고 (특별한 사전 정의 된 태그''all "') 매개 변수를 전달했다면 당신의 답은 더 명확해질 것이라고 생각합니다. 사람들은'GraphWin'이 그 이름으로 메소드의 정의를 가지고 있지 않다는 것을 깨닫지 못할 수도 있습니다. – martineau