2012-08-13 4 views
-1

두 점 집합을 사용하여 직사각형을 그리려면 어떻게해야합니까? dc를 사용하여 (X1 = 10, Y1 = 20) 및 (X2 = 100, Y2 = 200)라고 말하십시오. DrawRectangle() 메서드. 한 세트의 점만 필요하지만 두 세트의 점을 사용하여 사각형을 그릴 필요가 있습니까? 당신이 (X1, Y1)이 왼쪽이고, (X2, Y2)가 오른쪽 하단 것을 알고있는 경우wxpython에서 두 점으로 사각형을 그립니다.

+0

'dc.DrawRectangle()'은 2 점을받습니다 ... – irrelephant

+0

오, 죄송합니다. 나는 2 세트의 좌표를 의미하며 곧 질문을 편집 할 것입니다. – user1401950

+0

'dc.DrawRectangle (10, 20, 100, 200); '? – irrelephant

답변

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

1

, 당신은 사용할 수 있습니다

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

더 일반적으로,

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

은 항상 작동해야합니다 (적어도 x 축과 y 축에 정렬 된 사각형의 경우).

관련 문제