Seite 1 von 1

Wie kann ich Vektor aufrecht darstellen?

Verfasst: Montag 7. März 2016, 14:40
von Brando
Gerne würde ich einen Vektor, den ich mit np.array gebildet habe so darstellen, dass er aufrecht steht, und die Klammerung die drei Werte des Vektors übergreifend darstellt. Wie kann ich das durch bspw. Interaktion mit Latex?

Re: Wie kann ich Vektor aufrecht darstellen?

Verfasst: Montag 7. März 2016, 14:50
von Brando
ausserhalb von tkinter erreiche ich das durch folgenden Code:

Code: Alles auswählen

from sympy.matrices import *
from sympy.printing import *
from IPython.display import display, HTML, Math, Latex, clear_output
from ipywidgets import widgets
from random import randint

text1 = widgets.Text()

button1 = widgets.Button(description="Auswerten")
button2 = widgets.Button(description="Neue Aufgabe")

x = Matrix()
y = Matrix()

latexWidget = widgets.Latex()

taskWidget = widgets.HTML()
taskWidget.value = "<b>Berechnen Sie:</b>"

mhbox1 = widgets.HBox((taskWidget, latexWidget))
mhbox2 = widgets.HBox((button1, button2))

def init_vectors(b):
        global x, y, text1
        x = Matrix([randint(-20,20), randint(-20,20), randint(-20,20)])
        y = Matrix([randint(-20,20), randint(-20,20), randint(-20,20)])
        text1.value = ""
        display_task()

def display_task():
        global x, y, latexWidget

        clear_output()

        a1 = latex(x)
        a2 = latex(y)

        a1 = a1.replace("left[", "left(")
        a2 = a2.replace("left[", "left(")
        a1 = a1.replace("right]", "right)")
        a2 = a2.replace("right]", "right)")

        str1 = "$\langle" + a1 + ", " + a2 + "\\rangle$"
        latexWidget.value = str1

def evaluate(b):
        global x, y, text1
        z = x.dot(y)

        clear_output()
        display_task()

        if "{0}".format(z) == text1.value:
                display(HTML("<b><font color='green'>Richtig</font></b>"))
        else:
                display(HTML("<b><font color='red'>Falsch</font></b>"))


def exec_la_scalar():
        init_vectors(button2)
        button2.on_click(init_vectors)
        button1.on_click(evaluate)
        display(widgets.VBox((mhbox1, text1, mhbox2)))