[Tutor] Assistance with Psuedocode

Joe Ohmer ohmerj1 at mymail.nku.edu
Thu Nov 18 00:44:51 CET 2010


Hello,

The following code works well but I don't understand why the mysteryEffect code block changes the picture.
Doesn’t 64*(r/64) just equal r? (Same with g and b.) So this function should not change the picture at all. But it does! If anyone can explain how and why this actually changes the picture I would appreciate it greatly.


#Creates, duplicates and shows the pic
def main():
  pic1= makePicture( pickAFile() )
  pic2= duplicatePicture( pic1)
  fadeDownFromBlack( pic1 )
  show( pic1 )
  mysteryEffect( pic2 )
  show( pic2 )

#Does a 50% fade of the upper half of the picture
def fadeDownFromBlack( pic1 ):
  w=getWidth(pic1)
  h=getHeight(pic1)
  for y in range(0,h/2):
    for x in range(0,w):
      px= getPixel( pic1, x, y )
      setRed(px,y*(2.0/h)*getRed(px))
      setGreen(px,y*(2.0/h)*getGreen(px))
      setBlue(px,y*(2.0/h)*getBlue(px))
    repaint( pic1 )

#Adds a rainbow effect to the picture
def mysteryEffect( pic2 ):
  for px in getPixels( pic2 ):
    r= getRed ( px )
    g= getGreen( px )
    b= getBlue( px )
    setRed( px, 64*(r/64))
    setGreen( px, 64*(g/64))
    setBlue( px, 64*(b/64))
  repaint( pic2 )

Thanks,
Joe
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20101117/f64c646c/attachment-0001.html>


More information about the Tutor mailing list