2010-11-18 3 views
3

나는 음수를 사용하여 fillRect()의 반대 방향으로갑니다. 그것은 내 컴퓨터에서 잘 작동하지만 내 친구들은 제대로 작동 하는지를 볼 수 없습니다. 나는 무엇을해야합니까?fillRect()의 음수

page.fillRect (12, 12, -5, 10); 
+1

에서 작업을 수행하려는 경우? 자바 버전은 무엇입니까? – Riduidel

+0

Windows를 사용하고 있으며 친구들이 Windows를 사용하고 있습니다. 내 친구들은 최신 자바를 사용하고 있습니다. (보기 위해 컴퓨터에 설치해야했습니다.) 나는 일식을 사용하고 있었다. 그것은 효과가있어서 내 웹 사이트에 업로드했고 크롬과 파이어 폭스 모두에서 열심히 새로 고친 후에도 효과가있었습니다. – Strawberry

답변

0

내 생각에 당신과 당신의 마음은 2 가지 다른 버전의 자바를 사용하고 있습니다. 당신의 지원은 음수 값으로 채워지고 당신의지지는 그렇지 않습니다. (또는 심지어 sdk 대 jre).

이 내용은 애플릿을 모든 버전에서 실행하는 다른 방법으로 작성해야한다는 것입니다.

x를 -5로 이동하지 않는 이유는 무엇입니까?

좀 더 깔끔한 방법으로 당신과 당신의 친구가 사용하고있는 OS

public void myfillRect(graphics page, int x, int y, int width, int height){ 
    if(width <0) 
     x-=Math.abs(width); 
    if(height <0) 
     y-=Math.abs(height); 

    page.rectfill(x,y,Math.abs(width), Math.abs(height)); 
} 
+0

좋아, 그럼 그 막대 그래프, 그래서 그것을 부정적인 방향으로 가고 싶어요. – Strawberry

+0

내가 포스터로 제공하는 솔루션으로이 작업을 수행 할 것입니다. 직사각형을 뒤쪽으로 칠해달라고 요청하는 대신 단순히 앞으로 그려 넣을 것이지만 뒤에서 보면 같은 효과를 얻을 수 있습니다. 다른 문제가 누락 되었습니까? –

+0

당신, 내 친구,이 녹색 체크 표시를 버리세요. – Strawberry

1

여기에는 두 개의 학교가 있습니다.

하나는 네거티브 차원이있는 모든 다각형이 무의미하며 렌더링해서는 안된다는 것입니다. -10 픽셀 너비 란 무엇입니까?

다른 하나는 음수 치수가 해당 치수 축의 다각형을 반전시킵니다.

대부분의 페인팅 시스템은 후자의 논리를 적용합니다. 자바로 페인팅 한 경험은 항상 그렇습니다. 그렇지만 부정적 차원이 자주있는 것은 아니기 때문에 내 경험이 그다지 중요하지 않을 수 있습니다. 당신이 무엇을 할 수 있는지에 관해서는

:

  1. 당신은 당신의 친구가 자신의 자바 버전을 업데이트해야 할 필요가있을 수 있습니다.
  2. 그렇지 않으면 음수 치수를 검사하고 x, y 원점을 전치시켜 치수가 양수가되도록 반전을 수행해야합니다. 즉, 직사각형 [10,10, -5,5]는 [5,10,5,5]와 공간적으로 동일합니다. 음수 치수가 원점 좌표에 추가 된 다음 절대 좌표로 지정됩니다. 참고로 이것은 음의 기원이 될 수 있지만, 그리기 시스템이 이 아니고 꽤 엉망이 된입니다.

가능하면 개인적으로는 가능한 한 최신 JVM이 필요합니다.

그렇지 않으면 내 추천 코드는 다음과 같습니다 또한

public void fillRect(Graphics gc, int x, int y, int width, int height) { 
    if(width <0) { x+=width; width =-width; } 
    if(height<0) { x+=height; height=-height; } 
    gc.fillRect(x,y,width,height); 
    } 

, 다른 드로잉 작업 비슷해야합니다 있습니다.

마지막으로,이 동작은 매우 놀랍기 때문에 다른 모든 실수가 의심 스럽습니다. 최소한의 테스트 프로그램으로 모든 것을 단순화하고 디버그 출력을 사용하고 페인팅 프리미티브의 덤프를 감싸기 전에 확인해야합니다.

+0

그것은 실제로 나의 목표입니다. 나는 반대 방향으로 간다. – Strawberry

+0

나는 부정적인 픽셀을 지원하지 않는 논리가 어리석은다고 생각한다.하지만이 예제는 모든 버전이 똑같은 것은 아님을 보여준다. –