포스트 스크립트에서 개체를 어떻게 그룹화 할 수 있습니까?

j0h

포스트 스크립트로 그림을 만들었는데, 6 개의 사각형 모음입니다. 이 출력을 개체로 그룹화하고 싶습니다. 예,이 이미지를 출력 할 함수의 정의를 만들 수 있다는 것을 알고 있습니다. 내 문제는 모든 좌표를 수정하는 대신이 이미지를 그룹으로 회전하고 싶다는 것입니다. 그것을 만든 모든 사각형의. 포스트 스크립트에이 기능이 있는지 확실하지 않습니다. Scalable Vector Graphics에는 <g>태그가 있습니다. 그것이 정확히 관련이 없다면 미안하지만 내가하고 싶은 사각형을 그룹화하는 기능입니다.

이 그림을 생성하는 코드는 다음과 같습니다.

%!PS
%I made PS extensions executable via evince on my system
/Sq {0 0 moveto 0 100 lineto 100 100 lineto 100 0 lineto closepath} def
gsave

150 150 translate

6{
Sq 87 -50.1 translate
60 rotate
}repeat

0 0 0 setrgbcolor
closepath
1 setlinewidth
stroke

사각형

closepath루프 외부에서 설정을 시도했고 Sq함수 내부 에서 사각형은 그룹화 된 선입니다. 그 길을 닫으면 안 될까요? 정말 모르겠어요.

KenS

PostScript에는 '그룹'이라는 개념이 없으므로 개체를 그룹화 할 수 없습니다. 양식에 넣을 수는 있지만 드물고 어떤 경우에도 원하는 것을 실제로 수행하지 않습니다.

당신이 언급했듯이 명백한 해결책은 단순히 그림을 그리는 함수를 정의하는 것입니다. 그것은 '그룹'이거나 PostScript에서 얻을 수있는 것과 비슷합니다.

그런 다음 함수를 호출하기 전에 CTM을 수정하기 만하면됩니다. 회전을 적용하는 방법은 명확하지 않지만 다음은 예입니다.

%!PS
%I made PS extensions executable via evince on my system
/Sq {0 0 moveto 0 100 lineto 100 100 lineto 100 0 lineto closepath} def

/Polygon {
  6{
    Sq 87 -50.1 translate
    60 rotate
  }repeat

  0 0 0 setrgbcolor
  1 setlinewidth
  stroke
} bind def

gsave
150 150 translate
Polygon
grestore

gsave
250 250 translate
45 rotate
Polygon
grestore

showpage

회전은 현재 지점을 중심으로 CTM을 회전합니다. 이 경우 다각형이 첫 번째 정점을 중심으로 회전 함을 의미합니다. 중심을 중심으로 회전하려면 다각형 중심의 좌표를 계산하고 해당 지점으로 이동 한 다음 회전을 수행 한 다음 계산해야합니다. 폴리곤 그리기를 시작하기 전에 초기 정점의 좌표 (CTM이 이제 회전됨을 기억합니다!).

원래 프로그램에는 몇 가지 사소한 문제가 있습니다. 일치하는 grestore없이 gsave를 수행하므로 gsave는 효과가 없으며 gstate 스택에 저장 상태를 남깁니다. 모든 하위 경로가 닫히기 때문에 두 번째 'closepath'가 필요하지 않습니다 (이 경우에도 문제가 발생하지 않음). 프로그램은 또한 'showpage'를 실행하지 않으므로 기술적으로 준수하는 PostScript 인터프리터는 아무것도 그리지 않습니다. Display PostScript를 사용하는 NeWS 클론은 실행될 때 그래픽 프리미티브를 그립니다.

lineto 및 moveto 대신 rmoveto 및 rlineto를 사용하는 경우 CTM을 '번역'할 필요가 없도록 코드를 다시 작성할 수 있으며 moveto를 사용하여 현재 지점을 설정할 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Node 스크립트 내에서 React 컴포넌트를 어떻게 사용할 수 있습니까?

분류에서Dev

로그인 화면 이전에 시작되는 스크립트를 어떻게 실행할 수 있습니까?

분류에서Dev

스크립 렛에서 자바 스크립트 var를 어떻게 사용할 수 있습니까?

분류에서Dev

어떻게 스크립트를 기대할 수 있습니까?

분류에서Dev

포스트 슬러그를 어떻게 확인할 수 있습니까?

분류에서Dev

로그인 스크립트에 html, javascript 웹 스토리지를 어떻게 사용할 수 있습니까?

분류에서Dev

쉘 스크립트를 사용하여 파일에서 값 그룹을 어떻게 합산 할 수 있습니까?

분류에서Dev

TimeSpan 인수를 스크립트에 어떻게 전달할 수 있습니까?

분류에서Dev

React에 스크립트 함수를 어떻게 추가 할 수 있습니까?

분류에서Dev

목록의 텍스트를 포함하는 스크립트 그룹에서 항목을 어떻게 찾을 수 있습니까?

분류에서Dev

스크립트에서 대화 형 쉘에 함수가 있는지 어떻게 확인할 수 있습니까?

분류에서Dev

bash 스크립트에서 따옴표를 어떻게 대체 할 수 있습니까?

분류에서Dev

bash 스크립트에서 따옴표를 어떻게 대체 할 수 있습니까?

분류에서Dev

QTP에서 개발 한 테스트 스크립트에 vbscript를 통해 로컬 객체가 존재하는지 어떻게 확인할 수 있습니까?

분류에서Dev

pug에 전달 된 변수를 pug 스크립트에서 어떻게 액세스 할 수 있습니까?

분류에서Dev

내 자바 스크립트 객체를 어떻게 최적화 할 수 있습니까?

분류에서Dev

자바 스크립트에서 객체의 값에 어떻게 액세스 할 수 있습니까?

분류에서Dev

무작위 프로그램 AHK 스크립트를 어떻게 개선 할 수 있습니까?

분류에서Dev

시트에서 인쇄 할 위치를 Google 스크립트에 어떻게 알릴 수 있습니까?

분류에서Dev

자바 스크립트 객체를 어떻게 결합 할 수 있습니까?

분류에서Dev

Jade에서는 어떻게 외부 자바 스크립트에서 함수를 호출 할 수 있습니까?

분류에서Dev

mongodb에서 부울 필드를 어떻게 그룹화 할 수 있습니까?

분류에서Dev

이 데이터를 mysql에서 어떻게 그룹화 할 수 있습니까?

분류에서Dev

이 함수를 jquery에서 순수 자바 스크립트로 어떻게 변환 할 수 있습니까?

분류에서Dev

내 자바 스크립트를 어떻게 개선 할 수 있습니까? 코드 펜 포함

분류에서Dev

sudo 접두어가 있지만 플래그를 기반으로하는 bash 스크립트에서 명령을 어떻게 실행할 수 있습니까?

분류에서Dev

객체 값에 따라 자바 스크립트에서 색상을 어떻게 변경할 수 있습니까?

분류에서Dev

AngularJS 스크립트에서 벵골어를 어떻게 사용할 수 있습니까?

분류에서Dev

CSS에서 자바 스크립트 변수를 어떻게 사용할 수 있습니까?

Related 관련 기사

  1. 1

    Node 스크립트 내에서 React 컴포넌트를 어떻게 사용할 수 있습니까?

  2. 2

    로그인 화면 이전에 시작되는 스크립트를 어떻게 실행할 수 있습니까?

  3. 3

    스크립 렛에서 자바 스크립트 var를 어떻게 사용할 수 있습니까?

  4. 4

    어떻게 스크립트를 기대할 수 있습니까?

  5. 5

    포스트 슬러그를 어떻게 확인할 수 있습니까?

  6. 6

    로그인 스크립트에 html, javascript 웹 스토리지를 어떻게 사용할 수 있습니까?

  7. 7

    쉘 스크립트를 사용하여 파일에서 값 그룹을 어떻게 합산 할 수 있습니까?

  8. 8

    TimeSpan 인수를 스크립트에 어떻게 전달할 수 있습니까?

  9. 9

    React에 스크립트 함수를 어떻게 추가 할 수 있습니까?

  10. 10

    목록의 텍스트를 포함하는 스크립트 그룹에서 항목을 어떻게 찾을 수 있습니까?

  11. 11

    스크립트에서 대화 형 쉘에 함수가 있는지 어떻게 확인할 수 있습니까?

  12. 12

    bash 스크립트에서 따옴표를 어떻게 대체 할 수 있습니까?

  13. 13

    bash 스크립트에서 따옴표를 어떻게 대체 할 수 있습니까?

  14. 14

    QTP에서 개발 한 테스트 스크립트에 vbscript를 통해 로컬 객체가 존재하는지 어떻게 확인할 수 있습니까?

  15. 15

    pug에 전달 된 변수를 pug 스크립트에서 어떻게 액세스 할 수 있습니까?

  16. 16

    내 자바 스크립트 객체를 어떻게 최적화 할 수 있습니까?

  17. 17

    자바 스크립트에서 객체의 값에 어떻게 액세스 할 수 있습니까?

  18. 18

    무작위 프로그램 AHK 스크립트를 어떻게 개선 할 수 있습니까?

  19. 19

    시트에서 인쇄 할 위치를 Google 스크립트에 어떻게 알릴 수 있습니까?

  20. 20

    자바 스크립트 객체를 어떻게 결합 할 수 있습니까?

  21. 21

    Jade에서는 어떻게 외부 자바 스크립트에서 함수를 호출 할 수 있습니까?

  22. 22

    mongodb에서 부울 필드를 어떻게 그룹화 할 수 있습니까?

  23. 23

    이 데이터를 mysql에서 어떻게 그룹화 할 수 있습니까?

  24. 24

    이 함수를 jquery에서 순수 자바 스크립트로 어떻게 변환 할 수 있습니까?

  25. 25

    내 자바 스크립트를 어떻게 개선 할 수 있습니까? 코드 펜 포함

  26. 26

    sudo 접두어가 있지만 플래그를 기반으로하는 bash 스크립트에서 명령을 어떻게 실행할 수 있습니까?

  27. 27

    객체 값에 따라 자바 스크립트에서 색상을 어떻게 변경할 수 있습니까?

  28. 28

    AngularJS 스크립트에서 벵골어를 어떻게 사용할 수 있습니까?

  29. 29

    CSS에서 자바 스크립트 변수를 어떻게 사용할 수 있습니까?

뜨겁다태그

보관