누군가가 두 점 사이에 직선을 그리는 함수를 작성하는 방법을 물었습니다. 그래서 나는 그들에게 해결책을 제공하기 위해이 질문과 대답을 게시했습니다.
사용자의 질문을 의역했습니다.
두 가지 점이있는 경우 :
(x1,y1) (x2,y2)
기존 사진을 찍고 새 사진을 만드는 코드를 작성할 수 있습니다. 사진을 복사하는 방법을 알고 있습니다. 선에서 점을 찾는 방법을 알 수 없습니다.
def straightLine(picture):
height = getHeight(picture)
width = getWidth(picture)
newPicture = makeEmptyPicture(width, height)
x1=//some value
y1=//some value
x2=//some value
y2=//some value
for y in range(0, height):
for x in range(0, width):
pxl = getPixel(picture,x,y)
newPxl = getPixel(picture,x,y)
color = getColor(pxl)
setColor(newPxl,color)
return picture
두 점 사이의 선을 찾으려면 다음 공식을 사용해야합니다 .
(y-y0) / (y1-y0) = (x-x0) / (x1-x0)
내 코드 에서 사용자가 입력 한 첫 번째 및 두 번째 점 을 사용 x1,y1
하고 x2,y2
대표했습니다.
다음과 같이 x를 풀기 위해 위의 방정식을 조작하십시오.
def drawAnyLine(p):
w= getWidth(p)
h= getHeight(p)
newPic= makeEmptyPicture(w,h)
x1=requestIntegerInRange("Enter x1 between 1 and " , 1,w)
y1=requestIntegerInRange("Enter y1 between 1 and " , 1,h)
x2=requestIntegerInRange ("Enter x2 between 1 and ", 1, w)
y2=requestIntegerInRange("Enter y2 between 1 and ", 1, h)
for y in range (y1,y2):
for x in range (x1,x2):
x = (y-y1)*(x2-x1)/(y2-y1) +x1
pxl = getPixel(p, x, y)
newPxl= getPixel(newPic,x,y)
color = getColor(pxl)
setColor ( newPxl, color)
return (newPic)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다