2012-08-13 82 views
-1

如何使用两组点来绘制矩形,例如使用dc可以说 (X1 = 10,Y1 = 20)和(X2 = 100,Y2 = 200)。 DrawRectangle()方法。它只需要一组点,但我需要它使用两组点来绘制矩形?在wxpython中绘制一个带有两个点的矩形

+0

'dc.DrawRectangle()'需要2分... – irrelephant 2012-08-13 09:01:06

+0

哦对不起,我的意思是2组坐标,很快就会编辑这个问题 – user1401950 2012-08-13 09:03:27

+0

你在找'dc.DrawRectangle(10,20,100,200 );'? – irrelephant 2012-08-13 09:05:54

回答

1
pt1 = (10, 20) 
pt2 = (100, 200) 
# calculate top left corner coords, width, height 
min_x = min(pt1[0], pt2[0]) # left 
min_y = min(pt1[1], pt2[1]) # top 
width = max(pt1[0], pt2[0])-min_x 
height = max(pt1[1], pt2[1])-min_y 
# draw rectangle 
dc.DrawRectangle(min_x, min_y, width, height) 
+0

谢谢工作出色!:) – user1401950 2012-08-22 08:38:34

1

如果你知道(X1,Y1)为左上角,和(X2,Y2)是右下角,那么你可以使用:

dc.DrawRectangle(X1, Y1, X2-X1, Y2-Y1) 

更一般地,

dc.DrawRectangle(min(X1,X2), min(Y1,Y2), abs(X1-X2), abs(Y1-Y2)) 

应始终工作(至少对于与x和y轴对齐的矩形)。