Example #1
0
 def update_flaeche(self):
     ##         pass
     ##         mlab.clf()
     ##         self.myobj.fig.childeren[0:len(self.myobj.fig.childeren)] = []
     # diese if abfrage brauch ich spaeter um du differenzieren welche
     # flaeche angezeigt werden soll.
     self.myobj.fig.children[0:] = []
     ###########################################
     if self.Flaechen == "parabolischer Zylinder":
         self.myobj = parabolischer_Zylinder(self.Skalierung[0][0], self.Skalierung[0][1], self.Skalierung[0][2])
     elif self.Flaechen == "elliptischer Zylinder":
         self.myobj = elliptischer_Zylinder(self.Skalierung[0][0], self.Skalierung[0][1], self.Skalierung[0][2])
     elif self.Flaechen == "hyperbolischer Zylinder":
         self.myobj = hyperbolischer_Zylinder(self.Skalierung[0][0], self.Skalierung[0][1], self.Skalierung[0][2])
     elif self.Flaechen == "elliptisches Paraboloid":
         self.myobj = elliptisches_Paraboloid(self.Skalierung[0][0], self.Skalierung[0][1], self.Skalierung[0][2])
     elif self.Flaechen == "hyperbolisches Paraboloid":
         self.myobj = hyperbolisches_Paraboloid(self.Skalierung[0][0], self.Skalierung[0][1], self.Skalierung[0][2])
     elif self.Flaechen == "elliptischer Kegel":
         self.myobj = elliptischer_Kegel(self.Skalierung[0][0], self.Skalierung[0][1], self.Skalierung[0][2])
     elif self.Flaechen == "Ellipsoid":
         self.myobj = Ellipsoid(self.Skalierung[0][0], self.Skalierung[0][1], self.Skalierung[0][2])
     elif self.Flaechen == "einschaliges Hyperboloid":
         self.myobj = einschaliges_Hyperboloid(self.Skalierung[0][0], self.Skalierung[0][1], self.Skalierung[0][2])
     elif self.Flaechen == "zweischaliges Hyperboloid":
         self.myobj = zweischaliges_Hyperboloid(self.Skalierung[0][0], self.Skalierung[0][1], self.Skalierung[0][2])
     elif self.Flaechen == "Torus":
         self.myobj = Torus(self.Skalierung[0][0], self.Skalierung[0][1], self.Skalierung[0][2])
     ###########################################
     self.myobj.flaeche_berechnen()
     self.Flaeche_anzeigen = bool("true")
     self.Kurvenpunkt = 0
Example #2
0
 def update_flaeche(self):
     #diese if-abfrage brauch ich spaeter um zu differenzieren welche
     #flaeche angezeigt werden soll.
     self.myobj.fig.children[0:] = []
     ###########################################
     if self.Flaechen == 'parabolischer Zylinder':
         self.myobj = parabolischer_Zylinder(self.Skalierung[0][0],
                                             self.Skalierung[0][1],
                                             self.Skalierung[0][2])
     elif self.Flaechen == 'elliptischer Zylinder':
         self.myobj = elliptischer_Zylinder(self.Skalierung[0][0],
                                            self.Skalierung[0][1],
                                            self.Skalierung[0][2])
     elif self.Flaechen == 'hyperbolischer Zylinder':
         self.myobj = hyperbolischer_Zylinder(self.Skalierung[0][0],
                                              self.Skalierung[0][1],
                                              self.Skalierung[0][2])
     elif self.Flaechen == 'elliptisches Paraboloid':
         self.myobj = elliptisches_Paraboloid(self.Skalierung[0][0],
                                              self.Skalierung[0][1],
                                              self.Skalierung[0][2])
     elif self.Flaechen == 'hyperbolisches Paraboloid':
         self.myobj = hyperbolisches_Paraboloid(self.Skalierung[0][0],
                                                self.Skalierung[0][1],
                                                self.Skalierung[0][2])
     elif self.Flaechen == 'elliptischer Kegel':
         self.myobj = elliptischer_Kegel(self.Skalierung[0][0],
                                         self.Skalierung[0][1],
                                         self.Skalierung[0][2])
     elif self.Flaechen == 'Ellipsoid':
         self.myobj = Ellipsoid(self.Skalierung[0][0],
                                self.Skalierung[0][1],
                                self.Skalierung[0][2])
     elif self.Flaechen == 'einschaliges Hyperboloid':
         self.myobj = einschaliges_Hyperboloid(self.Skalierung[0][0],
                                               self.Skalierung[0][1],
                                               self.Skalierung[0][2])
     elif self.Flaechen == 'zweischaliges Hyperboloid':
         self.myobj = zweischaliges_Hyperboloid(self.Skalierung[0][0],
                                                self.Skalierung[0][1],
                                                self.Skalierung[0][2])
     elif self.Flaechen == 'Torus':
         self.myobj = Torus(self.Skalierung[0][0],
                            self.Skalierung[0][1],
                            self.Skalierung[0][2])
     ###########################################
     self.myobj.flaeche_berechnen()
     self.Flaeche_anzeigen = bool('true')
     self.Kurvenpunkt = 0
Example #3
0
class ExtentDialog(HasTraits):
    """ A dialog to graphical adjust the extents of a filter.
    """

    Flaechen = Enum(
        "parabolischer Zylinder",
        "elliptischer Zylinder",
        "hyperbolischer Zylinder",
        "elliptisches Paraboloid",
        "hyperbolisches Paraboloid",
        "elliptischer Kegel",
        "Ellipsoid",
        "einschaliges Hyperboloid",
        "zweischaliges Hyperboloid",
        "Torus",
    )

    Skalierung = Array(float, (1, 3), array([[1, 1, 1]]))
    Flaeche = Button("berechnen")
    # Data extents
    Kurvenpunkt = Range(0, 100, 0)
    # Kurve berechnen
    Kurve = Button("berechnen")
    # Buttons sollen einen style='button', 'radio', 'checkbox'
    Flaeche_anzeigen = Bool()
    Dreibein = Bool()
    Tangente = Bool()
    zweite_Ableitung = Bool()
    Hauptnormale = Bool()
    Binormale = Bool()
    Flaechen_Tangente_u = Bool()
    Flaechen_Tangente_v = Bool()
    Flaechen_Normale = Bool()
    Normalkruemmung = Bool()
    ################################# neu
    Kruemmung = Bool()
    geodaetische_Kruemmung = Bool()
    ################################# neu ende
    Ebenen = Bool()
    Normalebene = Bool()
    Schmiegebene = Bool()
    rektifizierende_Ebene = Bool()
    Tangentialebene = Bool()
    # funktioniert nicht
    ##     Flaeche2 = ButtonEditor(style='checkbox')
    ##     Flaeche2 = ToolbarButton('sichtbar/unsichtbar',style='checkbox')
    ##     Normalebene = Button('sichtbar/unsichtbar', style='radio')
    ##     def __init__(self, mesh, tangente,ableitung2,hauptnormale,binormale,tangente_fu,tangente_fv,normale_f,normalkruemmung,normalebene,schmiegebene,rektifizierendeebene,tangentialebene_f):
    ## 	self.mesh = mesh
    ## 	self.tangente = tangente
    ## 	self.hauptnormale = hauptnormale
    ## 	self.binormale = binormale
    ## 	self.ableitung2 = ableitung2
    ## 	self.tangente_fu = tangente_fu
    ## 	self.tangente_fv = tangente_fv
    ## 	self.normale_f = normale_f
    ## 	self.normalkruemmung = normalkruemmung
    ## 	self.normalebene = normalebene
    ## 	self.schmiegebene = schmiegebene
    ## 	self.rektifizierendeebene = rektifizierendeebene
    ## 	self.tangentialebene_f = tangentialebene_f
    ## 	HasTraits.__init__(self)

    def __init__(self, myobj):
        self.myobj = myobj
        HasTraits.__init__(self)

    ##     @on_trait_change('Skalierung')
    ##     def update_skalierung(self):
    ##         pass
    ##         self.myobj.skalierung_x = self.Skalierung[0][0]
    ##         self.myobj.skalierung_y = self.Skalierung[0][1]
    ##         self.myobj.skalierung_z = self.Skalierung[0][2]

    @on_trait_change("Kurve")
    def update_kurve(self):
        ##         pass
        # eigentlich sollte ich hier wahrscheinlich die 100 kurvenpunkte berechnen lassen
        # und die dazugehoerigen daten, wie tangente, ...
        ##         self.myobj.tckp = tckp_berechnen(self.myobj.index_u, self.myobj.index_v, 3, 3)
        ##         self.myobj.kurve = mlab.plot3d(self.myobj.xnew, self.myobj.ynew, self.myobj.znew, tube_radius=0.005, color=(1,1,1))
        ##         if self.myobj.
        self.myobj.fig.children[2:] = []
        self.myobj.kurve_berechnen()

    @on_trait_change("Flaeche")
    def update_flaeche(self):
        ##         pass
        ##         mlab.clf()
        ##         self.myobj.fig.childeren[0:len(self.myobj.fig.childeren)] = []
        # diese if abfrage brauch ich spaeter um du differenzieren welche
        # flaeche angezeigt werden soll.
        self.myobj.fig.children[0:] = []
        ###########################################
        if self.Flaechen == "parabolischer Zylinder":
            self.myobj = parabolischer_Zylinder(self.Skalierung[0][0], self.Skalierung[0][1], self.Skalierung[0][2])
        elif self.Flaechen == "elliptischer Zylinder":
            self.myobj = elliptischer_Zylinder(self.Skalierung[0][0], self.Skalierung[0][1], self.Skalierung[0][2])
        elif self.Flaechen == "hyperbolischer Zylinder":
            self.myobj = hyperbolischer_Zylinder(self.Skalierung[0][0], self.Skalierung[0][1], self.Skalierung[0][2])
        elif self.Flaechen == "elliptisches Paraboloid":
            self.myobj = elliptisches_Paraboloid(self.Skalierung[0][0], self.Skalierung[0][1], self.Skalierung[0][2])
        elif self.Flaechen == "hyperbolisches Paraboloid":
            self.myobj = hyperbolisches_Paraboloid(self.Skalierung[0][0], self.Skalierung[0][1], self.Skalierung[0][2])
        elif self.Flaechen == "elliptischer Kegel":
            self.myobj = elliptischer_Kegel(self.Skalierung[0][0], self.Skalierung[0][1], self.Skalierung[0][2])
        elif self.Flaechen == "Ellipsoid":
            self.myobj = Ellipsoid(self.Skalierung[0][0], self.Skalierung[0][1], self.Skalierung[0][2])
        elif self.Flaechen == "einschaliges Hyperboloid":
            self.myobj = einschaliges_Hyperboloid(self.Skalierung[0][0], self.Skalierung[0][1], self.Skalierung[0][2])
        elif self.Flaechen == "zweischaliges Hyperboloid":
            self.myobj = zweischaliges_Hyperboloid(self.Skalierung[0][0], self.Skalierung[0][1], self.Skalierung[0][2])
        elif self.Flaechen == "Torus":
            self.myobj = Torus(self.Skalierung[0][0], self.Skalierung[0][1], self.Skalierung[0][2])
        ###########################################
        self.myobj.flaeche_berechnen()
        self.Flaeche_anzeigen = bool("true")
        self.Kurvenpunkt = 0

    ####         if kugel:
    ####             self.myobj = Kugel(self.Skalierung[0][0],self.Skalierung[0][1],self.Skalierung[0][2])
    ####         elif box:
    ####             self.myobj = Box(self.Skalierung[0][0],self.Skalierung[0][1],self.Skalierung[0][2])
    ##         self.myobj.fig.children[0:] = []
    ##         self.myobj = Ellipsoid(self.Skalierung[0][0],self.Skalierung[0][1],self.Skalierung[0][2])
    ##         self.myobj.flaeche_berechnen()
    ####         self.myobj.fig.children[0:1] = []
    ####         self.myobj.fig.children[1:] = []
    ####         self.myobj.fig.on_mouse_pick(picker_callback)
    ##         #das alles wird jetzt in myobj berechnet und ist in der methode
    ##         #flaeche_berechnen
    ####         self.myobj.x_f_werte = self.myobj.x_f(self.myobj.u_f,self.myobj.v_f)
    ####        self.myobj.y_f_werte = self.myobj.y_f(self.myobj.u_f,self.myobj.v_f)
    ####         self.myobj.z_f_werte = self.myobj.z_f(self.myobj.u_f,self.myobj.v_f)
    ####         self.myobj.mesh = mlab.mesh(self.myobj.x_f_werte,self.myobj.y_f_werte,self.myobj.z_f_werte,color=(0.6,0.6,0.6))
    ##         self.Flaeche_anzeigen = bool('true')
    #### 	flaeche_berechnen(self.myobj.index_u, self.myobj.index_v, 3, 3)

    @on_trait_change("Flaeche_anzeigen")
    def update_flaeche_anzeigen(self):
        self.myobj.mesh.set(visible=self.Flaeche_anzeigen)

    @on_trait_change("Dreibein")
    def update_dreibein(self):
        self.myobj.tangente.set(visible=self.Dreibein)
        self.myobj.hauptnormale.set(visible=self.Dreibein)
        self.myobj.binormale.set(visible=self.Dreibein)

    @on_trait_change("Tangente")
    def update_tangente(self):
        self.myobj.tangente.set(visible=self.Tangente)

    @on_trait_change("zweite_Ableitung")
    def update_ableitung2(self):
        self.myobj.ableitung2.set(visible=self.zweite_Ableitung)

    @on_trait_change("Hauptnormale")
    def update_hauptnormale(self):
        self.myobj.hauptnormale.set(visible=self.Hauptnormale)

    @on_trait_change("Binormale")
    def update_binormale(self):
        self.myobj.binormale.set(visible=self.Binormale)

    @on_trait_change("Flaechen_Tangente_u")
    def update_tangente_fu(self):
        self.myobj.tangente_fu.set(visible=self.Flaechen_Tangente_u)

    @on_trait_change("Flaechen_Tangente_v")
    def update_tangente_fv(self):
        self.myobj.tangente_fv.set(visible=self.Flaechen_Tangente_v)

    @on_trait_change("Flaechen_Normale")
    def update_normale_f(self):
        self.myobj.normale_f.set(visible=self.Flaechen_Normale)

    @on_trait_change("Normalkruemmung")
    def update_normalkruemmung(self):
        self.myobj.normalkruemmung.set(visible=self.Normalkruemmung)

    ############################### neu
    @on_trait_change("Kruemmung")
    def update_kruemmung(self):
        self.myobj.kruemmung.set(visible=self.Kruemmung)

    @on_trait_change("geodaetische_Kruemmung")
    def update_geodaetischekruemmung(self):
        self.myobj.geodaetischekruemmung.set(visible=self.geodaetische_Kruemmung)

    ############################### neu ende

    @on_trait_change("Ebenen")
    def update_ebenen(self):
        self.myobj.normalebene.set(visible=self.Ebenen)
        self.myobj.schmiegebene.set(visible=self.Ebenen)
        self.myobj.rektifizierendeebene.set(visible=self.Ebenen)
        self.myobj.tangentialebene_f.set(visible=self.Ebenen)

    ##     @on_trait_change('Flaeche2')
    ##     def update_flaeche2(self):
    ##         self.myobj.mesh.set(visible=self.Flaeche2)

    @on_trait_change("Schmiegebene")
    def update_schmiegebene(self):
        self.myobj.schmiegebene.set(visible=self.Schmiegebene)

    @on_trait_change("Normalebene")
    def update_normalebene(self):
        self.myobj.normalebene.set(visible=self.Normalebene)

    @on_trait_change("rektifizierende_Ebene")
    def update_rektifizierende(self):
        self.myobj.rektifizierendeebene.set(visible=self.rektifizierende_Ebene)

    @on_trait_change("Tangentialebene")
    def update_tangentialebene(self):
        self.myobj.tangentialebene_f.set(visible=self.Tangentialebene)

    @on_trait_change("Kurvenpunkt")
    def update_kurvenpunkt(self):
        ##         self.vektor.mlab_source.set(x=xnew[vektor.punkte], y=ynew[vektor.punkte],z=znew[vektor.punkte],u=a_n[vektor.punkte], v=b_n[vektor.punkte], w=c_n[vektor.punkte])
        ##         punkt(self.tangente,self.ableitung2,self.hauptnormale,self.binormale,self.tangente_fu,self.tangente_fv,self.normale_f,self.normalkruemmung,self.normalebene,self.schmiegebene,self.rektifizierendeebene,self.tangentialebene_f,self.Kurvenpunkt)
        punkt(self.myobj, self.Kurvenpunkt)

        # die bezeichnung der extra gui.
        # die x_min, ... muessen anscheinend auch die variablennamen sein.

    view = View(
        Item(name="Flaechen", label="Flaechen"),
        Item(name="Skalierung", label="Skalierung x,y,z"),
        Item(name="Flaeche", label="Flaeche"),
        Item(name="Flaeche_anzeigen", label="Flaeche anzeigen"),
        "_",
        Item(name="Kurve"),
        Item(name="Dreibein"),
        Item(name="Tangente"),
        Item(name="zweite_Ableitung", label="zweite Ableitung"),
        Item(name="Hauptnormale"),
        Item(name="Binormale"),
        Item(name="Flaechen_Tangente_u", label="Flaechentangente u"),
        Item(name="Flaechen_Tangente_v", label="Flaechentangente v"),
        Item(name="Flaechen_Normale", label="Flaechennormale"),
        ######################## neu
        Item(name="Kruemmung", label="Flaechenkruemmung"),
        ######################## neu ende
        Item(name="Normalkruemmung"),
        ######################## neu
        Item(name="geodaetische_Kruemmung", label="geodaetische Kruemmung"),
        ######################## neu ende
        "_",
        Item(name="Ebenen"),
        Item(name="Schmiegebene"),
        Item(name="Normalebene"),
        Item(name="rektifizierende_Ebene", label="rektifizierende Ebene"),
        Item(name="Tangentialebene", label="Tangentialebene der Flaeche"),
        "_",
        "Kurvenpunkt",
        title="My GUI",
        resizable=True,
    )
Example #4
0
def torus(major, minor):
    from Torus import Torus
    return Torus(major, minor)
def draw_graph(t):
    """
    :type t: Torus
    """
    graph = t.graph
    positions = t.create_node_positions()
    edge_list = t.create_edge_list()
    intensities = t.edge_color_intensities()
    edge_labels = t.create_edge_labels()

    nx.draw_networkx_edge_labels(graph, positions, edge_labels, font_size=14)
    nx.draw_networkx(graph, positions, edgelist=edge_list, edge_color=intensities, edge_cmap=cm.Reds,
                     node_size=275, font_size=10, with_labels=False)
    plt.draw()


torus = Torus(5, 10, 12)
print "h_queues:\n%r" % torus.h_queues
print "v_queues:\n%r" % torus.v_queues
print "The total weight = %r" % torus.check_weights()
draw_graph(torus)
plt.show()
(phi, pi) = torus.minimizing()
print "Maximum: %r" % phi + " pi: %r" % str(pi)
print "h_queues:\n%r" % torus.h_queues
print "v_queues:\n%r" % torus.v_queues
print "The total weight = %r" % torus.check_weights()
draw_graph(torus)
plt.show()
Example #6
0
class ExtentDialog(HasTraits):
    """ A dialog to graphical adjust the extents of a filter.
    """
    Flaechen = Enum('parabolischer Zylinder',
                    'elliptischer Zylinder',
                    'hyperbolischer Zylinder',
                    'elliptisches Paraboloid',
                    'hyperbolisches Paraboloid',
                    'elliptischer Kegel',
                    'Ellipsoid',
                    'einschaliges Hyperboloid',
                    'zweischaliges Hyperboloid',
                    'Torus',)

    Skalierung = Array(float, (1, 3), array([[1, 1, 1]]))
    Flaeche = Button('berechnen')
    # Data extents
    Kurvenpunkt = Range(0, 100, 0)
    #Kurve berechnen
    Kurve = Button('berechnen')
    #Buttons sollen einen style='button', 'radio', 'checkbox'
    Flaeche_anzeigen = Bool()
    Dreibein = Bool()
    Tangente = Bool()
    zweite_Ableitung = Bool()
    Hauptnormale = Bool()
    Binormale = Bool()
    Flaechen_Tangente_u = Bool()
    Flaechen_Tangente_v = Bool()
    Flaechen_Normale = Bool()
    Normalkruemmung = Bool()
    Kruemmung = Bool()
    geodaetische_Kruemmung = Bool()
    Ebenen = Bool()
    Normalebene = Bool()
    Schmiegebene = Bool()
    rektifizierende_Ebene = Bool()
    Tangentialebene = Bool()


    def __init__(self, myobj):
        self.myobj = myobj
        HasTraits.__init__(self)

    @on_trait_change('Kurve')
    def update_kurve(self):
        # eigentlich sollte ich hier wahrscheinlich die 100 kurvenpunkte
        # berechnen lassen und die dazugehoerigen daten, wie tangente, ...
        self.myobj.fig.children[2:] = []
        self.myobj.kurve_berechnen()

    @on_trait_change('Flaeche')
    def update_flaeche(self):
        #diese if-abfrage brauch ich spaeter um zu differenzieren welche
        #flaeche angezeigt werden soll.
        self.myobj.fig.children[0:] = []
        ###########################################
        if self.Flaechen == 'parabolischer Zylinder':
            self.myobj = parabolischer_Zylinder(self.Skalierung[0][0],
                                                self.Skalierung[0][1],
                                                self.Skalierung[0][2])
        elif self.Flaechen == 'elliptischer Zylinder':
            self.myobj = elliptischer_Zylinder(self.Skalierung[0][0],
                                               self.Skalierung[0][1],
                                               self.Skalierung[0][2])
        elif self.Flaechen == 'hyperbolischer Zylinder':
            self.myobj = hyperbolischer_Zylinder(self.Skalierung[0][0],
                                                 self.Skalierung[0][1],
                                                 self.Skalierung[0][2])
        elif self.Flaechen == 'elliptisches Paraboloid':
            self.myobj = elliptisches_Paraboloid(self.Skalierung[0][0],
                                                 self.Skalierung[0][1],
                                                 self.Skalierung[0][2])
        elif self.Flaechen == 'hyperbolisches Paraboloid':
            self.myobj = hyperbolisches_Paraboloid(self.Skalierung[0][0],
                                                   self.Skalierung[0][1],
                                                   self.Skalierung[0][2])
        elif self.Flaechen == 'elliptischer Kegel':
            self.myobj = elliptischer_Kegel(self.Skalierung[0][0],
                                            self.Skalierung[0][1],
                                            self.Skalierung[0][2])
        elif self.Flaechen == 'Ellipsoid':
            self.myobj = Ellipsoid(self.Skalierung[0][0],
                                   self.Skalierung[0][1],
                                   self.Skalierung[0][2])
        elif self.Flaechen == 'einschaliges Hyperboloid':
            self.myobj = einschaliges_Hyperboloid(self.Skalierung[0][0],
                                                  self.Skalierung[0][1],
                                                  self.Skalierung[0][2])
        elif self.Flaechen == 'zweischaliges Hyperboloid':
            self.myobj = zweischaliges_Hyperboloid(self.Skalierung[0][0],
                                                   self.Skalierung[0][1],
                                                   self.Skalierung[0][2])
        elif self.Flaechen == 'Torus':
            self.myobj = Torus(self.Skalierung[0][0],
                               self.Skalierung[0][1],
                               self.Skalierung[0][2])
        ###########################################
        self.myobj.flaeche_berechnen()
        self.Flaeche_anzeigen = bool('true')
        self.Kurvenpunkt = 0

    
    @on_trait_change('Flaeche_anzeigen')
    def update_flaeche_anzeigen(self):
        self.myobj.mesh.set(visible=self.Flaeche_anzeigen)

    @on_trait_change('Dreibein')
    def update_dreibein(self):
        self.myobj.tangente.set(visible=self.Dreibein)
        self.myobj.hauptnormale.set(visible=self.Dreibein)
        self.myobj.binormale.set(visible=self.Dreibein)

    @on_trait_change('Tangente')
    def update_tangente(self):
        self.myobj.tangente.set(visible=self.Tangente)
    
    @on_trait_change('zweite_Ableitung')
    def update_ableitung2(self):
        self.myobj.ableitung2.set(visible=self.zweite_Ableitung)
    
    @on_trait_change('Hauptnormale')
    def update_hauptnormale(self):
        self.myobj.hauptnormale.set(visible=self.Hauptnormale)
    
    @on_trait_change('Binormale')
    def update_binormale(self):
        self.myobj.binormale.set(visible=self.Binormale)
    
    @on_trait_change('Flaechen_Tangente_u')
    def update_tangente_fu(self):
        self.myobj.tangente_fu.set(visible=self.Flaechen_Tangente_u)

    @on_trait_change('Flaechen_Tangente_v')
    def update_tangente_fv(self):
        self.myobj.tangente_fv.set(visible=self.Flaechen_Tangente_v)
    
    @on_trait_change('Flaechen_Normale')
    def update_normale_f(self):
        self.myobj.normale_f.set(visible=self.Flaechen_Normale)
    
    @on_trait_change('Normalkruemmung')
    def update_normalkruemmung(self):
        self.myobj.normalkruemmung.set(visible=self.Normalkruemmung)
    
    @on_trait_change('Kruemmung')
    def update_kruemmung(self):
        self.myobj.kruemmung.set(visible=self.Kruemmung)
    
    @on_trait_change('geodaetische_Kruemmung')
    def update_geodaetischekruemmung(self):
        self.myobj.geodaetischekruemmung.set(
            visible=self.geodaetische_Kruemmung)
    
    @on_trait_change('Ebenen')
    def update_ebenen(self):
        self.myobj.normalebene.set(visible=self.Ebenen)
        self.myobj.schmiegebene.set(visible=self.Ebenen)
        self.myobj.rektifizierendeebene.set(visible=self.Ebenen)
        self.myobj.tangentialebene_f.set(visible=self.Ebenen)
    
    @on_trait_change('Schmiegebene')
    def update_schmiegebene(self):
        self.myobj.schmiegebene.set(visible=self.Schmiegebene)
    
    @on_trait_change('Normalebene')
    def update_normalebene(self):
        self.myobj.normalebene.set(visible=self.Normalebene)
    
    @on_trait_change('rektifizierende_Ebene')
    def update_rektifizierende(self):
        self.myobj.rektifizierendeebene.set(
            visible=self.rektifizierende_Ebene)
    
    @on_trait_change('Tangentialebene')
    def update_tangentialebene(self):
        self.myobj.tangentialebene_f.set(visible=self.Tangentialebene)
    
    @on_trait_change('Kurvenpunkt')
    def update_kurvenpunkt(self):
        punkt(self.myobj, self.Kurvenpunkt)

    #die bezeichnung der extra-gui.
    #die x_min, ... muessen anscheinend auch die variablennamen sein.
    view = View(Item(name='Flaechen', label = 'Flaechen'),
                Item(name='Skalierung', label='Skalierung x,y,z'),
                Item(name='Flaeche', label='Flaeche'),
                Item(name='Flaeche_anzeigen', label='Flaeche anzeigen'),
                '_',
                Item(name='Kurve'),
                Item(name='Dreibein'),
                Item(name='Tangente'),
                Item(name='zweite_Ableitung', label='zweite Ableitung'),
                Item(name='Hauptnormale'),
                Item(name='Binormale'),
                Item(name='Flaechen_Tangente_u', label='Flaechentangente u'),
                Item(name='Flaechen_Tangente_v', label='Flaechentangente v'),
                Item(name='Flaechen_Normale', label='Flaechennormale'),
                Item(name='Kruemmung', label='Flaechenkruemmung'),
                Item(name='Normalkruemmung'),
                Item(name='geodaetische_Kruemmung',
                     label='geodaetische Kruemmung'),
                '_',
                Item(name='Ebenen'),
                Item(name='Schmiegebene'),
                Item(name='Normalebene'),
                Item(name='rektifizierende_Ebene',
                     label='rektifizierende Ebene'),
                Item(name='Tangentialebene',
                     label='Tangentialebene der Flaeche'),
                '_',
                'Kurvenpunkt', title='My GUI', resizable=True)