hbui
2024-07-24 a9f3557648135eca0766a51baddf7d39a22a6e01
num-int/src/numint/guimain.py
@@ -17,6 +17,8 @@
        fig = Figure(figsize=(width, height), dpi=dpi)
        self.axes = fig.add_subplot(111)
        super(PlotCanvas, self).__init__(fig)
        self.left = 0.0
        self.right = 0.0
class MainWindow(QMainWindow):
@@ -46,13 +48,13 @@
            if epsilon is not None and len(epsilon.strip()) > 0:
                eps = parse_value(epsilon)
                print(f"plot f(x) = {fn_expr}, {a}, {b}, epsilon = {eps}")
                (self.x, self.y, *_) = numint_epsilon(f, a, b, eps)
                (self.x, self.y, self.left, self.right, self.num_of_iterations, *_) = numint_epsilon(f, a, b, eps)
                self._update_plot_eps()
            else:
                section = self.ui.section.text()
                sec = parse_value(section)
                print(f"plot f(x) = {fn_expr}, {a}, {b}, section = {sec}")
                (self.x, self.y, *_) = numint_section(f, a, b, sec)
                (self.x, self.y, self.left, self.right, self.num_of_iterations, *_) = numint_section(f, a, b, sec)
                self._update_plot_eps()
        except Exception as ex:
            print(ex)
@@ -62,12 +64,16 @@
        self.canvas.axes.cla()  # Clear the canvas.
        # self.canvas.axes.stairs(self.y[1:],   self.x, baseline=0, fill=True, alpha=0.5, label=self.fn_expr)
        # self.canvas.axes.stairs(self.y[0:-1], self.x, baseline=0, fill=True, alpha=0.5, label=self.fn_expr)
        self.canvas.axes.step(self.x, self.y, color="blue",   where="pre",  label=self.fn_expr)
        self.canvas.axes.step(self.x, self.y, color="orange", where="post", label=self.fn_expr)
        self.canvas.axes.step(self.x, self.y, color="blue",   where="pre",  label="right")
        self.canvas.axes.step(self.x, self.y, color="orange", where="post", label="left")
        self.canvas.axes.plot(self.x, self.y, color="black")
        self.canvas.axes.plot(self.x, self.y, color="black", label=self.fn_expr)
        self.canvas.draw()
        self.ui.leftSum.setText(f"{self.left}")
        self.ui.rightSum.setText(f"{self.right}")
        self.ui.numOfSections.setText(f"{self.num_of_iterations}")
def main():
    app = QApplication(sys.argv)