2016-03-20 3 views
0

Ich neu auf dieser Website und jython/Python-Programmierung. Ich entschuldige mich für Fehler in diesem Beitrag. Meine Frage: Ich lerne gerade über die Spiegelung von Bildern im Jython-Programm namens JES (Jython Environment for Students), und ich habe eine Frage, die ein Bild entlang der Diagonalen spiegeln soll. Nach der Untersuchung (vor allem auf dieser Seite) Ich habe mit diesem Code kommen, das zu tun:Wie spiegelt man ein Bild auf einer Diagonale in JES

def mirrorDiagonalBlueMotorcyle(pic): 
    # Set up source picture & target picture 
    height=getHeight(pic) 
    width=getWidth(pic) 
    newPic=makeEmptyPicture(height,width) 
    # Now for the actual mirroring 
    mirrorPoint=0 
    for x in range(0,width,1): 
     for y in range(mirrorPoint,height): 
     sourcePixel=getPixel(pic,y,x) 
     targetPixel=getPixel(newPic,x,y) 
     color=getColor(sourcePixel) 
     setColor(targetPixel,color) 
     mirrorPoint+= 1 
    show(newPic) 
    return newPic 

jedoch das resultierende Bild nicht ein Spiegelbild, sondern ein Bild, das whited heraus auf der Diagonalen

hat

Wie programmiere ich das Programm, um das Bild und nicht nur den weißen Teil des Bildes zu spiegeln?

Edit: Dies ist das Ergebnis von dem, was gesagt PM 2Ring mich zu tun: Motorcycle after removing the mirrorPoint

Antwort

0

Der Täter ist mirrorPoint: es nur den Bereich des Quellbildes auf einer Seite der Diagonale wird gespiegelt gewährleistet. So loswerden die mirrorPoint Sachen, und ändern Sie Ihre innere Schleife zu

for y in range(0,height): 
+0

Ich habe das versucht und ich habe das volle Bild. Es war jedoch kein Spiegel der unteren linken Seite des Bildes. Gibt es noch etwas, das mir fehlt? – Sam

+0

@Sam: Ich verstehe nicht, was du meinst. Diese Transformation spiegelt das Bild um die Diagonale "y = x" wider. Ich habe kein JES, daher kann ich den Code nicht testen. –

+0

Ich habe das Bild hinzugefügt, das aus der obigen Änderung im Fragenbereich resultiert. – Sam