Pythonプログラミングとアルゴリズムの基本チュートリアル(第2版)第13章グラフィックスの描画の実践、7、8、9、10、11への回答


オンラインで答えを見つけたかったのですが、前の答えはすべてあったのですが、この章の最後に質問がなかったので、自分でメモして補足しました。もちろん、答えは参照用です。

7.例13.7を参照して、Canvasコンポーネントを使用して文字列とグラフィックスを描画するプログラムを作成し、関数y = cos(x)を描画します。プログラム操作の結果を図13-20に示します。

参照コード:

from tkinter import *
import math

WIDTH, HEIGHT = 510, 210
ORIGIN_X, ORIGIN_Y = 2, HEIGHT/2 #原点

SCALE_X, SCALE_Y = 40, 100 #x轴、y轴缩放倍数
ox, oy = 0, 0
x, y = 0, 0
arc = 0 #弧度
END_ARC = 360 * 2 #函数图形画两个周期

root = Tk()
c = Canvas(root, bg = 'white', width = WIDTH, height = HEIGHT)
c.pack()

c.create_text(200, 20, text = 'y = cos(x)')
c.create_line(0, ORIGIN_Y, WIDTH, ORIGIN_Y)
c.create_line(ORIGIN_X, 0, ORIGIN_X, HEIGHT)
for i in range(0, END_ARC+1, 10):
    arc = math.pi * i / 180
    x = ORIGIN_X + arc * SCALE_X
    y = ORIGIN_Y - math.cos(arc) * SCALE_Y
    c.create_line(ox, oy, x, y)
    ox, oy = x, y

root.mainloop()

スクリーンショットを実行します。
ここに画像の説明を挿入します

8.例13.8と例13.9のプログラミングを参照し、亀の絵を使用して、同じ水平線上に赤い三角形、緑の正方形、青い正五角形を描き、説明文を書きます。その中で、赤い三角形は原点から描かれており、3つの数字は100ポイントで区切られています。最後に、「Drawingcompleted!」という単語を三角形から200ポイント離れた場所に、Arialフォント、20フォントサイズで印刷します。実行中のプログラムのスクリーンショットを図13-21に示します。

参照コード:

#导入模块和创建对象
import turtle
p = turtle.Turtle()
p.pensize(3)
p.speed(1)

#红色三角形
p.goto(0,0)
p.color("red")
for i in range(3):
    p.forward(50)
    p.left(120)
p.up()


#绿色正方形
p.goto(150,0)
p.down()
p.color("green")
for i in range(4):
    p.forward(50)
    p.left(90)
p.up()

#蓝色五边形
p.goto(300,0)
p.down()
p.color("blue")
for i in range(5):
    p.forward(50)
    p.left(72.5)
p.up()

p.goto(-200,0)
p.down()
p.write("绘制完成!",font={
    
    "Arial",20})

スクリーンショットを実行します。
ここに画像の説明を挿入します

9.例13.13を参照し、plot()関数を使用してグラフを描画し、X軸座標値が0、1、2、3、4、および対応するY軸座標で直線グラフを描画します。値y = 6x +5。プログラムの実行効果を図13-22に示します。

参照コード:

注:matplotlibは個別にダウンロードしてインポートする必要があります

# 导入 matplotlib 模块中的子模块 pyplot 并起别名 plt
import matplotlib.pyplot as plt
# 导入 math 模块
import math
# 给定横坐标的值
x = [ i for i in range(5)]
# 给定纵坐标的值
y = [6*i + 5 for  i in x]
#绘制
plt.plot(x,y)
#显示
plt.show()

スクリーンショットを実行します。
ここに画像の説明を挿入します

10.例13.14を参照して、Matplotlibモジュールを使用してy = cos(x)の関数曲線を描画します。プログラムの実行効果を図13.23に示します。

参照コード:

# 导入 matplotlib 模块中的子模块 pyplot 并起别名 plt
import matplotlib.pyplot as plt
# 导入 math 模块
import math
# 给定横坐标的值
x = [ 2*math.pi*i/100 for i in range(160)]
# 给定纵坐标的值
y = [math.cos(i) for  i in x]
#绘制
plt.plot(x,y)
#显示
plt.show()

スクリーンショットを実行します。
ここに画像の説明を挿入します

11.例13.15を参照し、NumPyモジュールとMatplotlib.pyplotツールキットを使用して描画します。

参照コード:

# 导入Numpy模块
import numpy as np
# 导入 matplotlib 模块中的子模块 pyplot 并起别名 plt
import matplotlib.pyplot as plt
def fun(t):
    return np.exp(-t) * np.sin(2 * np.pi * t)
t1 = np.arange(0.0,5.0,0.1)
t2 = np.arange(0.0,5.0,0.02)
plt.figure(1)
plt.subplot(211)
plt.plot(t1,fun(t1),'bo',t2,fun(t2),'k')
plt.subplot(212)
plt.plot(t2,np.sin(2 * np.pi * t2),'r--')
plt.show()

スクリーンショットを実行します。
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/weixin_43520670/article/details/111218779