本博客主要为了学习Python使用,若有错误欢迎指正。
本章利用 Tkinter 的一层包装 graphics.py 编写图形
1. 简单的图形编程 (像素)
以前面的年利率为例作图
# futval_graph
from graphics import *
def main():
print("This program plots the growth of a 10-year investment.")
principal = float(input("Enter the initial principal: "))
apr=float(input("Enter the annualized interest rate: "))
win = GraphWin("Investment Growth Chart",320,240)
win.setBackground("white")
Text(Point(20,230),' 0.0k').draw(win)
Text(Point(20,180),' 2.5k').draw(win)
Text(Point(20,130),' 5.0k').draw(win)
Text(Point(20,80),' 7.5k').draw(win)
Text(Point(20,30),'10.0k').draw(win)
for year in range(0,11):
if year==0:
principal = principal
else:
principal = principal * (1+apr)
x_lower_left = 25 * year + 40
height = principal * 0.02
bar = Rectangle(Point(x_lower_left,230),Point(x_lower_left+25,230-height))
bar.setFill("green")
bar.setWidth(2)
bar.draw(win)
input("Press <Enter> to quit")
win.close()
main()
2. 简单图形编程(坐标,更加推荐)
# futval_graph
from graphics import *
def main():
print("This program plots the growth of a 10-year investment.")
principal = float(input("Enter the initial principal: "))
apr=float(input("Enter the annualized interest rate: "))
win = GraphWin("Investment Growth Chart",320,240)
win.setBackground("white")
win.setCoords(-1.75,-200,11.5,10400)
Text(Point(-1,0),' 0.0k').draw(win)
Text(Point(-1,2500),' 2.5k').draw(win)
Text(Point(-1,5000),' 5.0k').draw(win)
Text(Point(-1,7500),' 7.5k').draw(win)
Text(Point(-1,10000),'10.0k').draw(win)
for year in range(0,11):
if year==0:
principal = principal
else:
principal = principal * (1+apr)
bar = Rectangle(Point(year,0),Point(year+1,principal))
bar.setFill("green")
bar.setWidth(1)
bar.draw(win)
input("Press <Enter> to quit")
win.close()
main()
3. 交互式图形
# File: triangle.pyw
from graphics import *
def main():
win = GraphWin("Draw a Triangle",350,350)
win.setCoords(0.0,0.0,10.0,10.0)
message = Text(Point(5,0.5),"Click on three points")
message.draw(win)
p1=win.getMouse()
p1.draw(win)
p2=win.getMouse()
p2.draw(win)
p3=win.getMouse()
p3.draw(win)
triangle = Polygon(p1,p2,p3) # Polygon -> 多边形
triangle.setFill("peachpuff")
triangle.setOutline("cyan")
triangle.draw(win)
message.setText("Click anywhere to quit.")
win.getMouse()
win.close()
main()
4. 处理文本输入问题
5. graphics 模块参考