Gibt es tutorials für morpholib?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Drachenbauer
User
Beiträge: 3
Registriert: Dienstag 8. November 2022, 21:11

Dieser Youtuber:
https://www.youtube.com/channel/UCu7Zwf ... yRA/videos
sagt in seinen Videobeschreibungen, dass er seine Animationen mit dem Package morpholib erstellt:
https://github.com/morpho-matters/morpholib

Da habe ich Lust bekommen, selber mal damit mit herum zuspielen.
Also habe ich die neueste Version von Python, darin dann das morpholib-Package und dazu noch die Pycharm-Umgebung zum Programmieren installiert.

Die Codes, die in dem Github Link unter Galerie in dem Dateisystem zu finden sind, kann ich so ausführen, aber das Fenster, in dem die Animationen erscheinen, flimmert komisch mit horizontalen grünen Streifen und die Linien sehen ein wenig verwackelt aus.
Wie kommt es zu diesen Grafikfehlern (Ich habe direkt vorher mit dem Turtle-Package herum getestet, könnte das vielleicht jetzt miteinander kollidieren?)

Dann wollte ivh mal ein Polygon erstellen, wo ich direkt Koordinaten für die einzelnen Punkte angeben möchte, um z.B. eine Drachenform zu erzeugen

Code: Alles auswählen

import morpholib as morpho
morpho.importAll()

from morpholib.tools.basics import *
from morpholib.video import *
from morpholib.grid import Polygon

import math, cmath, random

def kite():
    class Kite(morpho.Skit):
        def makeFrame(self):
            kitepolygon = morpho.grid.Polygon(vertices = [(0, 1), (2, 0), (0, -3), (-2, 0)])

            kitepolygon.width = 4
            kitepolygon.color = (1,1,0)
            kitepolygon.alphaEdge = 0
            kitepolygon.fill = (1,1,0)
            kitepolygon.alphaFill = 0
            kitepolygon.alpha = 0

            kitepolygon.commitTransforms()

            return morpho.Frame([kitepolygon])

    kite1 = Kite()
    kite1 = morpho.Actor(kite1)
    kite1.newendkey(6*30).t = 6

    animation = morpho.Animation(kite1)
    animation.play()

kite()
Die Koordinaten sollten eine Drachenform ergeben, bei der der Schnittpunkt der Diagonalen im Koordinaten-Ursprung liegt.

was muss ich tun, damit die Form auch angezeigt wird, muss ich die Koordinaten vielleicht anders angeben?
wenn ich so wie es jetzt ist, die Zeile mit commitTransforms nutze, regt es sich über die art auf, wie ich die Koordinaten für das Polygon zur Verfügung stelle:
File "C:\Users\"User-Name"\AppData\Roaming\Python\Python311\site-packages\morpholib\grid.py", line 2740, in <lambda>
newVertices = self.fimage(lambda s: (mat*(rot*s))+self.origin).vertices
~~~^~
TypeError: can't multiply sequence by non-int of type 'complex'
Wenn ich die Zeile auskommentiere, kommt nur ein leeres Fenster.
Drachenbauer
User
Beiträge: 3
Registriert: Dienstag 8. November 2022, 21:11

https://www.geogebra.org/calculator/vfjkjth3
Hier habe ich mal auf der Geogebra-Seite gezeichnet, wie ich mir das Ergebnis von meinem morpholib-Code in etwa vorstelle.

Leider finde ich keinen Weg, meinen Beitrag zu bearbeiten.
Daher als neuer Post.
Drachenbauer
User
Beiträge: 3
Registriert: Dienstag 8. November 2022, 21:11

Jetzt kann ich meine Antwort auch nicht mehr bearbeiten.
Hier noch mal ein besserer Geogebra link:
https://www.geogebra.org/geometry/pkxtbd79
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das bearbeiten geht nur 15 Minuten. Um nachträgliche Verfälschungen zu vermeiden. Inhaltlich kann ich zu dieser Bibliothek leider nichts sagen.
Antworten