에러 영역을 반투명하게 나타내고 싶어요.

게시판 IDL Q&A 에러 영역을 반투명하게 나타내고 싶어요.

2 답변 글타래를 보이고 있습니다
  • 글쓴이
    • #1902 Reply
      hongepark
      회원

      안녕하세요.

      제가 여러개의 plot들을 에러 범위와 함께 하나의 그래프에 나타내려고 합니다.
      에러바로 표현하자니 plot들이 너무 많아서 복잡해 보여 에러 영역을 polyfill 이나 cgpolygon을 이용해서 표현해 보았습니다. 그런데 겹치는 부분들은 마지막에 그려진 영역이 다 덮어 버리더군요.
      반투명하게 영역을 나타나게 할 순 없나요?

      또 new graphics를 사용할 때,
      p = plot(x,y) 이 명령어를 입력하면
      Attempt to call undefined procedure/function: ‘PLOT’
      이라는 에러 메세지가 뜹니다. 그런데 같은 프로그램에서
      p = plot3d(x,y,z) 를 입력하면 아무 이상없이 실행이 되는군요.

      IDL 버전은 8.1입니다. 이런 현상은 왜 일어나는 건가요?

    • #1903 Reply
      Sangwoo
      회원

      폴리곤의 vertex들을 설정할 때 시작점이 마지막에 한번 더 나와야 합니다. 그래야 폐곡선의 내부만 색상으로 채워지게 됩니다. 예를 들어서 포인트가 네 개일 경우 vertex의 X좌표 값들이 x1, x2, x3, x4가 있을텐데 여기까지만 적은 상태로 색을 채우면 안되고, x1, x2, x3, x4, x1과 같이 시작점이 막판에 한번 더 등장해야 한다는 의미입니다.

      그리고 두번째 질문과 관련해서는, 이게 아주 드물게 나타나는 버그성 현상인 것으로 보이는데요. 일단 커맨드 입력창에서 plot(x, y)을 타입했을 때 plot이란 글자의 색상이 초록색으로 바뀌는지 확인해보시고요. 만약에 글자 색상이 검은색에서 전혀 변하지 않는다면, IDL을 다시 한번 설치해보시면 어떨까 합니다.

      • #1905 Reply
        hongepark
        회원

        답변 고맙습니다.

        폴리곤의 경우 말씀하신대로 이미 폐곡선이 되도록 설정했고 에러 영역이 채워집니다.
        그런데 제 질문은 서너개의 plot과 각각 이에 해당하는 에러 영역이 겹쳐지는 경우, 마지막으로 그려진 폴리곤이 앞서 그려진 영역을 다 덮어버려 plot들을 알아볼 수가 없었습니다. 그래서 채워지는 색을 반투명으로 해서 여러개가 겹쳐지더라도 다 구분이 가능하도록 그릴 방법이 없는지 질문한 것이었습니다.
        제가 약간 모호하게 글을 쓴 것 같습니다.

        인터넷에서 polygon이란 명령어와 이 명령어에 transparency라는 키워드가 포함되어 있어 테스트 해보았는데, 두번째 질문의 이유로 실행이 되지 않더군요. IDL을 개인 컴퓨터에 설치한 것이 아니고 서버를 통해 이용하고 있어 확인하려면 시간이 좀 걸릴것 같습니다.

        다른 대안이 없는지 궁금합니다.

        • 이 답변은 hongepark에 의해 9 years, 10 months 전에 수정됐습니다.
    • #1909 Reply
      Sangwoo
      회원

      일단 IDL 커맨드 입력창에서 아래와 같은 두 명령을 실행해보세요.

      IDL> .edit plot
      IDL> .edit plot3d

      각 명령을 실행하면 plot 및 plot3d의 소스코드가 에디터창에 뜨게 됩니다. 그리고 각 소스코드 파일이 저장되어 있는 경로가 IDL 인터페이스의 최상단 바에에 표시가 됩니다. 우선 이 과정들이 순조롭게 진행되어야 하고, 만약에 이 과정에서 에디터에 파일이 안나타난다든지 하는 경우가 발생한다면 애초에 설치과정에 뭔가 문제가 있었단 얘기입니다. 그리고 만약 이 과정까지 잘 되는 경우라면, plot.pro가 에디터창에 떠있는 상태에서 컴파일 버튼을 눌러 컴파일을 인위적으로 해준 다음 PLOT 함수를 사용해보세요.

      그리고 서버에 설치된 IDL을 네트웍을 통해 끌어와서 사용하신다면 아마 Floating 버전인 것 같은데, 다른 사용자들도 다른 컴퓨터에서 같은 문제를 겪고 있는지 확인해보시는 것도 필요할 것 같습니다.

2 답변 글타래를 보이고 있습니다
'에러 영역을 반투명하게 나타내고 싶어요.'에 답변달기
글쓴이 정보: