2014-11-25 6 views
0

이 코드는 오류없이 실행되며 색상과 코 드의 쇼 번호를 모두 인쇄하지만 아무것도 표시되지 않는 것으로 보입니다.JES에서 파이썬으로 어안 효과 만들기, 코드 결과는 빈 이미지

import math 
def fisheye(): 
    file = pickAFile() 
    pic = makePicture(file) 
    h = getHeight(pic) 
    w = getWidth(pic) 
    maxradius = sqrt(w**2 + h**2)/2 
    fisheye = makeEmptyPicture(int(w+maxradius), int(h+maxradius),white) 
    for x in range(0,w): 
    for y in range(0,h): 
     nyS = ((2*x)/h) - 1 
     nxS = ((2*y)/w) - 1 
     r = sqrt(nxS**2 + nyS**2) 
     if(r >= 0.0 and r <= 1.0): 
     nr = (r + (1.0-r))/2.0 
     if(nr <= 1.0): 
      t = math.atan2(nyS,nxS) 
      nx = nr*cos(t) 
      ny = nr*sin(t) 
      x2 = (((nx+1)*w)/2.0) 
      y2 = (((ny+1)*h)/2.0) 
      color = getColor(getPixel(pic, x, y)) 
      print max(color) 
      setColor(getPixel(pic, int(x2),int(y2)) , color) 
    explore(fisheye) 

답변

0

문제는 setColor()에 전화로 나타납니다 희망 누군가가 내가하지 않는 것을 볼 수 있습니다. 이 성명서에서 getPixel()에 대한 전화는 pic이 아니고 fisheye이 아니라는 것을 나타냅니다.

하면 다음이 문을 변경하십시오

setColor(getPixel(fisheye, int(x2),int(y2)) , colour)