Ich benutze die svgwrite
Bibliothek in Python und, weil Svg Y-Achse nach unten gehen, während ich finde es bequemer, es nach oben zu haben, habe ich eine Funktion YInvert
, die den Trick macht für mich. Allerdings habe ich diese Funktion nutzen, jedesmal wenn ich eine Funktion aus svgwrite
verwenden, z.B .:Wie (Funktion) definieren Funktion mit komplexen Argument
dwg.line((xI,YInvert(yI)), (xII,YInvert(yII)), stroke='blue', stroke_width=0.1)
Dies ist jedoch unbequem. Wie könnte ich die Funktion dwg.line
neu definieren (oder eine neue Funktion definieren LineNew
), um automatisch die YInvert
? Ich möchte das Argument in der gleichen Form sein, damit meine ich, dass ich verwenden könnte:
dwg.line((xI,yI), (xII,yII), stroke='blue', stroke_width=0.1)
oder
LineNew((xI,yI), (xII,yII), stroke='blue', stroke_width=0.1)
Ich benutze auch zum Beispiel
dwg.circle(center=(10,YInvert(10)), r=0.2, fill='black')
so Suche für etwas, das für eine Vielzahl von Argumenten gelten würde, fügen Sie einfach die YInvert
Funktion an der richtigen Stelle (n).
Was genau möchten Sie fragen? Wenn Sie eine Funktion schreiben möchten, die diese Methode umschließt und 'YInvert' anwendet, tun Sie das einfach. Oder schreiben Sie vielleicht eine 'invertAllY'-Methode, die eine Liste von (x, y) -Koordinaten aufnehmen und eine Liste von (x, y ') -Inversionen zurückgeben kann. – jonrsharpe
Ich frage, wie man eine solche Funktion 'LineNew' schreibt, die den' YInvert' umschließt. Vor allem, wie kann ich verwalten, dass eine Funktion als Argument etwas in Klammern hat. Außerdem weiß ich nicht, wie man Argumente wie "stroke" und "fill" weitergibt. – fales
Klingt so, als würden Sie viele Funktionen für bestimmte Parameter patchen. Möchten Sie eine allgemeine Lösung? –