Benutzer-Werkzeuge

Webseiten-Werkzeuge


protokolle:10.01.19

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
protokolle:10.01.19 [2019/04/10 13:41]
akahra
protokolle:10.01.19 [2019/08/28 00:08] (aktuell)
morningstar
Zeile 2: Zeile 2:
  
   * Fertigstellung des Raumes   * Fertigstellung des Raumes
 +<​code>​
 +# -*- coding: utf-8 -*-
 +from __future__ import division
 +from kivy.app import App
 +from kivy.uix.widget import Widget
 +from kivy.core.window import Window
 +from kivy.graphics import Line
 +width = None
 +height = None
 +Raum = None
 +class RaumWidget(Widget):​
 +    ​
 +    def eingabeZuPixel(self):​
 +        self.door_width = 1.5
 +        self.offset = [20,20]
 +        prop_window = (Window.size[0]-40)/​(Window.size[1]-40) #​width/​height
 +        prop_modell = self.width/​self.height
 +        if prop_window>​prop_modell:​
 +            self.skalierung = (Window.size[1]-40)/​self.height
 +            self.offset[0] = (Window.size[0]-self.skalierung*self.width)/​2
 +        else:
 +            self.skalierung = (Window.size[0]-40)/​self.width
 +            self.offset[1] = (Window.size[1]-self.skalierung*self.height)/​2
 +        self.height *= self.skalierung
 +        self.width *= self.skalierung
 +        self.door_width *= self.skalierung
 +
 +    def raumZeichnen(self,​width,​height):​
 +        self.width = width
 +        self.height = height
 +        self.eingabeZuPixel()
 +        door_R = [self.offset[0]+self.width/​2+self.door_width/​2,​self.offset[1]]
 +        corner_BR = [self.offset[0]+self.width,​self.offset[1]]
 +        corner_TR = [corner_BR[0],​self.offset[1]+self.height]
 +        corner_TL = [self.offset[0],​corner_TR[1]]
 +        corner_BL = self.offset
 +        door_L = [door_R[0]-self.door_width,​self.offset[1]]
 +        koordinaten = [door_R,​corner_BR,​corner_TR,​corner_TL,​corner_BL,​door_L]
 +        self.posDoor = [self.offset[0]+self.width/​2,​self.offset[1]]
 +        with self.canvas:​
 +            self.canvas.clear()
 +            Line(points=koordinaten)
 +    ​
 +    def resizeRaum(self,​parent,​w,​ h):
 +        self.raumZeichnen(width,​height)
 +
 +
 +class RaumApp(App):​
 +    def build(self):​
 +        self.parent = Widget()
 +        self.painter = RaumWidget()
 +        self.painter.raumZeichnen(width,​height)
 +        Window.bind(on_resize=self.painter.resizeRaum)
 +        self.parent.add_widget(self.painter)
 +        return self.parent
 +
 +
 +if __name__ == '​__main__':​
 +    global width
 +    global height
 +    global Raum
 +    width = int(raw_input("​Breite: ​ "))
 +    height = int(raw_input("​Hoehe: ​ "))
 +    Raum = RaumApp()
 +    Raum.run()
 +
 +def getPosDoor():​
 +    global Raum
 +    return Raum.painter.posDoor
 +</​code>​
   * Änderung von move_it sodass die Punkte nicht mehr auf 0/0 sondern auf die Tür zulaufen   * Änderung von move_it sodass die Punkte nicht mehr auf 0/0 sondern auf die Tür zulaufen
 +<​code>​
 +class Mover(object):​
 +    ​
 +
 +    def __init__(self,​ circles):
 + posDoor = getPosDoor()
 +        self.circles = circles
 +        self.v = 5
 +        while True:
 +            time.sleep(0.1)
 +            for circ in self.circles:​
 +                richtung = np.array((posDoor[0]-circ.pos[0],​ posDoor[1]-circ.pos[1]))
 +                richtung = 1/​np.linalg.norm(richtung) * richtung
 +                circ.pos = (circ.pos[0]+self.v*richtung[0],​circ.pos[1]+self.v*richtung[1])
 +                print circ.pos
 +</​code>​
   * Versuch der Verknüpfung beider Bereiche - in Arbeit   * Versuch der Verknüpfung beider Bereiche - in Arbeit
  
 +
 +|[[protokolle:​20.12.18|Zurück]] ​   |   ​[[protokolle:​17.01.19|Weiter]]|
protokolle/10.01.19.1554896465.txt.gz · Zuletzt geändert: 2019/04/10 13:41 von akahra