2015-05-29 165 views
0

我只是想使用pygame.draw.line方法繪製三角形。更改後返回舊值

我定義了一個函數drawTriangle,它以起始x和y座標爲參數,將它們放入一個元組中,然後再創建兩個元組,它們的值取決於起始x和y座標。

這三個點將是三角形的頂點。然後該函數繪製3行 - 從點1到點2,從點2到點3,然後從點3返回到點1。

問題是,當我運行該程序時,只繪製了一條線。

def drawTriangle(startx, starty): 
    point1 = (startx, starty) 
    point2 = (startx + 20, starty + 20) 
    point3 = (startx -30, starty - 30) 

    pygame.draw.line(SURFACE, GREEN, point1, point2) 
    pygame.draw.line(SURFACE, GREEN, point2, point3) 
    pygame.draw.line(SURFACE, GREEN, point3, point1) 
+2

嘗試打印點1,2和3的值繪製前行,但我認爲你的標題migth不是最好的。 –

+0

這不會畫一個三角形... – Veltro

回答

1

所有的點都位於同一行。 可能是需要:

def drawTriangle(startx, starty): 
    point1 = (startx, starty) 
    point2 = (startx + 20, starty + 20) 
    point3 = (startx -30, starty + 30) 

    pygame.draw.line(SURFACE, GREEN, point1, point2) 
    pygame.draw.line(SURFACE, GREEN, point2, point3) 
    pygame.draw.line(SURFACE, GREEN, point3, point1) 
+0

我是一個白癡。我搞砸了點,得到了一個三角形。我所有的觀點都顯然是在同一條線上。 –

+0

他們是。所有的點都是'(startx + D,starty + D)'(對於D = 0,20,-30),它們位於'y = x'這一行上。 – chepner