用python和canvas创建400×400 的画布,x轴放大倍数为 80,y轴放大倍数为 35,以红色实线绘制坐标轴,并绘制-3 * x * x * x -3 * x *x + 4 * sin(x)的图像,x的取值范围为-1.7~1.7,精度(即步长)为0.02。
时间: 2024-02-13 13:03:29 浏览: 66
Android 自定义画布canvas 实现绘制和清空画布功能
好的,以下是Python代码:
```python
from tkinter import *
from math import sin
# 创建画布
root = Tk()
root.geometry("400x400")
canvas = Canvas(root, width=400, height=400)
canvas.pack()
# 绘制坐标轴
canvas.create_line(20, 380, 380, 380, arrow=LAST, fill="red") # x轴
canvas.create_line(20, 380, 20, 20, arrow=LAST, fill="red") # y轴
# 绘制函数图像
for i in range(0, 171):
x = -1.7 + i * 0.02
y = -3 * x ** 3 - 3 * x ** 2 + 4 * sin(x)
canvas.create_oval((x + 1.7) * 80 + 20, 400 - (y * 35 + 200), (x + 1.7) * 80 + 21, 400 - (y * 35 + 200), width=0, fill="blue")
root.mainloop()
```
这段代码中,我们使用了Python的GUI库`tkinter`创建了一个400x400的画布,并且通过`Canvas`类的`create_line()`方法和`create_oval()`方法绘制了坐标轴和函数图像。其中,绘制函数图像的方法是先计算出每个像素点对应的函数值,然后将该点绘制到画布上。在本题中,我们将x的取值范围限制为-1.7~1.7,精度为0.02,通过计算得到每个像素点对应的x值和y值,然后将该点绘制到画布上。
阅读全文