2014-09-14 1 views
1

그래픽 과정에서 점을 사용하여 기본 모양을 그리는 방법을 배우고 있으며을 그리는 방법은 을 알 수 없습니다. 직사각형 그리기와 비슷하다고 생각했지만 기울기와 다른 종류의 삼각형 같은 많은 변수를 고려해야합니다.세 점이 주어진 상태에서 처음부터 삼각형 그리기

다음은 그냥 정점의 끝 지점에 시작 지점을 통해 루프이 있기 때문에

drawRectangle(point 1, point 2){ 
    xStart = min(point 1.x, point 2.x) 
    yStar = min(point 1.y, point 2.y) 

    xEnd = max(point 1.x, point 2.x) 
    yEnd = max(point 1.y, point 2.y) 

    for(int i = yStart, i<= yEnd, i++){ 
     for(int j = xStart, j<= yEnd, j++){ 
      drawPoint(i, j); 
     } 
    } 
} 

drawRectangle이 꽤 정직 사각형 그리기 내 작업 기능입니다. 그러나 삼각형에는 세 가지 점이 있습니다. 어떻게해야합니까? 저는 아마도 삼각형을 두 개로 나눠서 생각할 것입니다. 그래서 각 반은 평평한 "기본"을 가졌을 것입니다. 그러나 그것이 가능한 접근인지 아닌지는 확실하지 않습니다.

편집 : 어쩌면 나는 삼각형을 그릴 말할 때, 나는 당신이의 Graphics 인터페이스를 사용한다 색으로 채워진 삼각형을

+0

3 개의 꼭지점을 삼각형에 사용할 수 있습니까? – Nabin

+0

3 개의 정점은 평면에서 임의의 3 점입니다! – user3277633

+0

삼각형의 3면의 기울기를 계산해도 괜찮습니까? – Nabin

답변

0

을 의미 불분명했다. 당신은 같은 라인으로 세 점을 연결해야합니다

void drawTriangle(Point one, Point two, Point three, Graphics g){ 
    g.drawLine(one.x, one.y, two.x, two.y); 
    g.drawLine(one.x, one.y, three.x, three.y); 
    g.drawLine(two.x, two.y, three.x, three.y); 
} 

삼각형, 세 점을 부여하고 Graphics 객체의 인스턴스를 그릴 것입니다. 이것은 for 루프를 사용하는 것보다 훨씬 쉽습니다.

편집 :

다음

같은를 사용하여 클래스 (나는 drawPoint 1 개 픽셀을 그리는 것을 가정하고)만을 방법을 사용하여 픽셀에 의해,이 "처음부터"픽셀을 수행하는 방법이다 "는 연결 도트 "아이디어가 있지만 for 루프는 다음과 같습니다.

drawTriangle(point 1, point 2, point 3) { 
    for(int x = 1.x, x <= 2.x, x++){ 
     for(int y = 1.y, y <= 2.y, y++){ 
      drawPoint(x, y); 
     } 
    } 
    for(int x = 1.x, x <= 3.x, x++){ 
     for(int y = 1.y, y <= 3.y, y++){ 
      drawPoint(x, y); 
     } 
    } 
    for(int x = 2.x, x <= 3.x, x++){ 
     for(int y = 2.y, y <= 3.y, y++){ 
      drawPoint(x, y); 
     } 
    } 
} 

이렇게하면 3 점이 모두 연결됩니다.

+0

나는 이것이 그가 원하는 것을 의심한다 :-) – Nabin

+1

이것이 효과가 있을지 모르지만 나는 스크래치 방식으로 더 많은 것을 찾고있다. – user3277633

+0

"처음부터"사전 자바 인터페이스를 사용하지 않고 있다는 것을 의미합니까? –