我正在嘗試編寫一個python函數,它可以將圖片上任意位置的三角形區域複製到新的空白圖片上。我可以將圖片中的矩形區域複製到新的空白圖片,但我不知道如何複製三角形。這是我的,但它只複製一個矩形區域。對不起,如果它看起來凌亂或過於複雜,但我只是開始如何在Python中編寫。在Python中將三角形區域從一張圖片複製到另一張圖片
def copyTriangle():
file=pickAFile()
oldPic=makePicture(file)
newPic=makeEmptyPicture(getWidth(oldPic),getHeight(oldPic))
xstart=getWidth(oldPic)/2
ystart=getHeight(oldPic)/2
for y in range(ystart,getHeight(oldPic)):
for x in range(xstart,getWidth(oldPic)):
oldPixel=getPixel(oldPic,x,y)
colour=getColor(oldPixel)
newPixel=getPixel(newPic,x,y)
setColor(newPixel,colour)
@Yve:你是不正確這裏。如果三角形底座在'ystart = 100',並且它的高度爲'5',那麼我的答案'範圍(ystart,ystart + getHeight)=(100,105)',這是正確的,而' ystart,getHeight)= range(100,5)'這是沒有意義的。部分原因在於,這取決於定義,我不知道'h'是什麼意思,但對於'getHeight',我的原始答案是正確的。 – tom10
@伊夫:這很可笑。你只是有效地爲循環做'range(0,h)'並在循環內部添加'ystart'。如果你在循環的範圍內執行它,它是'range(ystart,ystart + getHeight)'。它基本上只是術語的定義,但是在對我的答案進行投票時,詢問是否正確合理,而不是我是在做「1 + 2」而不是「2 + 1」是合理的。 – tom10
@ Yve:好的,所以你似乎在說使用'range(ystart + getHeight(oldPic))'是錯的,但是'range(ystart + getHeight)'是正確的?我有這個權利嗎?那麼,你認爲'getHeight'和'getHeight(oldPic)'之間的區別是什麼? – tom10