나는 음수를 사용하여 fillRect()
의 반대 방향으로갑니다. 그것은 내 컴퓨터에서 잘 작동하지만 내 친구들은 제대로 작동 하는지를 볼 수 없습니다. 나는 무엇을해야합니까?fillRect()의 음수
page.fillRect (12, 12, -5, 10);
나는 음수를 사용하여 fillRect()
의 반대 방향으로갑니다. 그것은 내 컴퓨터에서 잘 작동하지만 내 친구들은 제대로 작동 하는지를 볼 수 없습니다. 나는 무엇을해야합니까?fillRect()의 음수
page.fillRect (12, 12, -5, 10);
내 생각에 당신과 당신의 마음은 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));
}
좋아, 그럼 그 막대 그래프, 그래서 그것을 부정적인 방향으로 가고 싶어요. – Strawberry
내가 포스터로 제공하는 솔루션으로이 작업을 수행 할 것입니다. 직사각형을 뒤쪽으로 칠해달라고 요청하는 대신 단순히 앞으로 그려 넣을 것이지만 뒤에서 보면 같은 효과를 얻을 수 있습니다. 다른 문제가 누락 되었습니까? –
당신, 내 친구,이 녹색 체크 표시를 버리세요. – Strawberry
여기에는 두 개의 학교가 있습니다.
하나는 네거티브 차원이있는 모든 다각형이 무의미하며 렌더링해서는 안된다는 것입니다. -10 픽셀 너비 란 무엇입니까?
다른 하나는 음수 치수가 해당 치수 축의 다각형을 반전시킵니다.
대부분의 페인팅 시스템은 후자의 논리를 적용합니다. 자바로 페인팅 한 경험은 항상 그렇습니다. 그렇지만 부정적 차원이 자주있는 것은 아니기 때문에 내 경험이 그다지 중요하지 않을 수 있습니다. 당신이 무엇을 할 수 있는지에 관해서는
:
가능하면 개인적으로는 가능한 한 최신 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);
}
, 다른 드로잉 작업 비슷해야합니다 있습니다.
마지막으로,이 동작은 매우 놀랍기 때문에 다른 모든 실수가 의심 스럽습니다. 최소한의 테스트 프로그램으로 모든 것을 단순화하고 디버그 출력을 사용하고 페인팅 프리미티브의 덤프를 감싸기 전에 확인해야합니다.
그것은 실제로 나의 목표입니다. 나는 반대 방향으로 간다. – Strawberry
나는 부정적인 픽셀을 지원하지 않는 논리가 어리석은다고 생각한다.하지만이 예제는 모든 버전이 똑같은 것은 아님을 보여준다. –
에서 작업을 수행하려는 경우? 자바 버전은 무엇입니까? – Riduidel
Windows를 사용하고 있으며 친구들이 Windows를 사용하고 있습니다. 내 친구들은 최신 자바를 사용하고 있습니다. (보기 위해 컴퓨터에 설치해야했습니다.) 나는 일식을 사용하고 있었다. 그것은 효과가있어서 내 웹 사이트에 업로드했고 크롬과 파이어 폭스 모두에서 열심히 새로 고친 후에도 효과가있었습니다. – Strawberry