编写程序,分别采用面向对象和面向函数两种方编写程序,分别采用面向对象和面向函数两种方式绘制正弦曲线和余弦曲线式绘制正弦曲线和余弦曲线
时间: 2024-09-06 10:04:49 浏览: 47
在编程中,面向对象(Object-Oriented Programming, OOP)和面向函数(Functional Programming, FP)是两种不同的编程范式。下面分别介绍如何用这两种范式来绘制正弦曲线和余弦曲线。
面向对象方式绘制正弦曲线和余弦曲线:
```python
import matplotlib.pyplot as plt
import numpy as np
# 定义一个函数来绘制曲线
def draw_curve(axis, data, title):
axis.plot(data)
axis.set_title(title)
axis.grid(True)
plt.show()
# 使用面向对象的方式绘制正弦曲线和余弦曲线
class CurveDrawer:
def __init__(self, x, sine_data, cosine_data):
self.x = x
self.sine_data = sine_data
self.cosine_data = cosine_data
def draw_sine(self, axis):
draw_curve(axis, self.x, self.sine_data, "Sine Curve")
def draw_cosine(self, axis):
draw_curve(axis, self.x, self.cosine_data, "Cosine Curve")
# 创建曲线绘制对象
x = np.linspace(0, 2 * np.pi, 100)
sine_data = np.sin(x)
cosine_data = np.cos(x)
drawer = CurveDrawer(x, sine_data, cosine_data)
# 绘制曲线
drawer.draw_sine(plt.gca())
drawer.draw_cosine(plt.gca())
```
面向函数方式绘制正弦曲线和余弦曲线:
```python
import matplotlib.pyplot as plt
import numpy as np
# 使用函数直接绘制曲线
def plot_sine_and_cosine(x):
sine_data = np.sin(x)
cosine_data = np.cos(x)
plt.figure(figsize=(10, 5))
plt.subplot(1, 2, 1)
plt.plot(x, sine_data, label='Sine')
plt.title('Sine Curve')
plt.grid(True)
plt.legend()
plt.subplot(1, 2, 2)
plt.plot(x, cosine_data, label='Cosine')
plt.title('Cosine Curve')
plt.grid(True)
plt.legend()
plt.show()
# 生成数据点
x = np.linspace(0, 2 * np.pi, 100)
plot_sine_and_cosine(x)
```
在这两个例子中,面向对象的方式通过创建一个`CurveDrawer`类来封装绘图的逻辑,提供方法来绘制正弦曲线和余弦曲线。面向函数的方式则是直接使用函数来进行绘图操作。
阅读全文