text: """
  Function：分类-训练样本，ax + b 分割的样本
  Author：lzb
  Date：2021.01.01
  """
  
  import numpy as np
  from matplotlib import pyplot as plt
  
  from activation import dichotomy
  from sample.points_sample import PointsSample
  
  """
  class：StraightLineSample
  说明：
  1、重载两个函数： _create_sy_list, draw_segment
  2、对于 StraightLineSample 而言，其输入只可能是2个维度的向量，其输出只可能是1个维度的向量
  3、所以代码中，针对输入输出的向量维度，有很多写死的地方
  """
  
  
  class StraightLineSample(PointsSample):
      # a
      __a = 2
  
      # b
      __b = -10
  
      """
      功能：重载父类的 _create_sy_list
      参数：NULL
      返回值：NULL
      说明：
      1、对于 SinSample 而言，其输入只可能是2个维度的向量，其输出只可能是1个维度的向量
      2、所以代码中，针对输入输出的向量维度，直接写死
      """
  
      def _create_sy_list(self):
          # 1. 初始化
          self._sy_list = list()
  
          # 2. 构建 sy_list，sy 是分类 C1 or C2
          for i in range(0, self._sample_count):
              # sx 是一个 [2, 1] 的矩阵
              sx = self._sx_list[i]
              x0 = sx[0][0]  # 对应到坐标系的 x
              x1 = sx[1][0]  # 对应到坐标系的 y
  
              # sy 是一个 [1, 1] 的矩阵
              sy = np.empty([1, 1])
  
              # 计算 sin(x0)
              sl_x0 = self.__a * x0 + self.__b
  
              # 比较
              if x1 >= sl_x0:
                  sy[0][0] = dichotomy.Dichotomy.C1.value
              else:
                  sy[0][0] = dichotomy.Dichotomy.C2.value
  
              self._sy_list.append(sy)
  
      """
      功能：重载父类的 draw_segment
      参数：NULL
      返回值：NULL    
      """
  
      def draw_segment(self):
          # 1. 绘制 ax + b 图像
          x = np.arange(-(self._sx_max[0]), (self._sx_max[0] * 1.01))
          y = self.__a * x + self.__b
          plt.plot(x, y, color='blue', linewidth=1.0)
  