¥D­¶ ¦a¹Ï ¯Á¤Þ ·j´M ·s»D «e´ÁÂø»x ¬ÛÃöÁpµ² Ãö©ó LinuxFocus
[Top Bar]
[Bottom Bar]
[Photo of the Author]
Emre Demiralp

�@�̤��СG

�ڬO�촵�Z�������wù�B�S�ǰ|���@�W�ǥ͡A�P�ɤ]�O�촵�Z�����z�u�j�Ǭ�������t�p�������Ǫ��޲z�����@�C�o�ǹ���Ǫ��D�y�ާ@�t�άOLINUX�C

����: PovRay�APostScript�A�ʵe�ACD�]�p�A�s�{�A������v�A�����C1994�~�_����LINUX�Τ�C

�ؿ�:

  1. �ި�
  2. �̾ާ@��
  3. �ƾǹB���

PostScript���G-�ާ@�ƴ̡A�̾ާ@�ũM�ƾǹB���

[Ilustration]

�K�n:

���n�p�y,�L�H�������C
-�g�ը�樥-
�@�̴y�z�FPostScript�y�����ާ@�ƴ̡A���ФF�̾ާ@�M�ƾǹB��šC����}���O��ާ@�ƴ̪������ĭz�A�o�N�b�Z�򳹸`���~��C



�ި��G

�o�O�ĤG�g���_ PostScript ���t�C�峹�C���媺�D�n�ت��O�׭z��̪��ާ@�C�ާ@�ƴ̥i��O PostScript ���̥D�n�������C��ȡB�⥺�μƾǹB��B�`���M�޿�B�ⳣ�b�o���S�����s�x�Ϥ��i��C�O���I��̬O�@���S�����s�x�ϡA�Q PostScript �ΨӰ���L�G�Ҧ��ڭ̭n�D���������ާ@�C��̥H�Z�i���X���W�h�O���H���C�A�i�H�⥦�ζH�Ʀ��@�ڤ@�ݫʳ����ɺޡC���A�V��������J�Y���ɡA���|�N�ޤ��Ҧ����F�賣���V�ʳ����@�ݥH����X�Ŷ��C�]���A�̦Z�i�J�������`�O���}�f�����@�ݳ̪�C��̤��������i�H�O�r�Ŧ�B�Ʀr�`�q�B��X�B�ƾڶ��K�K   

�̾ާ@��

���M��̤��������w�g�ƦC���ǡA���P���٦s�b�ۤ@�Ǥ��\�ڭ̭��s��o�Ǥ����i��ƦC���̾ާ@�šC�o�Ǿާ@���Τ_��̤����@�өΦh�Ӥ����C�ާ@�ū���w�q���a��̤��������C���̬O�_�ݭn�Ѽơ]�b PostScript �����y���Q�٬��ާ@�ơ^�̩Ҷi�檺�ާ@�өw�C�Y�ݭn�ѼơA�h���̭��������Q���J��̤��C���Z�A�ާ@�Ũ̾ڳo�ǰѼƪ����������ʧ@�C�o���ڭ̵��X�F�o�Ǿާ@���@�ӦC���A�}���ԲӪ������C�ڭ��٦b�Z�����X�F�@�ǨҤl�H�ĩ���h���Ӹ`�C 

pop: ���ާ@�ŧR���ާ@�ƴ̳��]�̦Z�i�J�^�������C

exch: ���ާ@�Źﴫ�ާ@�ƴ̳�����Ӥ����C

dup: ���ާ@�Ŵ_��̦Z�i�J�ާ@�ƴ̪������}�N����J�ާ@�ƴ̡A�Y�_��̳������C 

copy: ���ާ@�Żݭn�@�Ӧb����e�Q���J�ާ@�ƴ̪��㫬�ާ@�ơ]�Y�Ѽơ^�C�]���㫬�ѼƬ�n�A�h���X�R�O n copy �C���ާ@�����Z�A��_�̳���n�Ӥ����������@���@��̦Z�i�J�������ӳQ�m�J�ާ@�ƴ̤��C�������Acopy �O�@�ӧ�_��ާ@�šC 

index: ���ާ@�Żݭn�@�Ӧb����e�Q���J�ާ@�ƴ̪��㫬�ާ@�ơC�]���㫬�ѼƬ�n�A�h���X�R�O n index �C�ާ@�����Z�A�̳���n�Ӥ������@�ӫ����@���̦Z�i�J�������Q�m�J�ާ@�ƴ̡C�������Aindex �ާ@�ů�襤�ާ@�ƴ̪��@�Ӥ��������A�ͦ����������A�}�m�J�ާ@�ƴ̤��C���������ޥH�̳��������s�}�l�C 

roll: ���ާ@�Żݭn��Ӧb����e�Q���J�ާ@�ƴ̪��㫬�ѼơC�]���̤��O��m�Mn�A�h���X�R�O m n index �C�o��m�����[�J�u��ާ@�]roll�^�������ơAn�����u��ާ@�����ơC�@���u��ާ@�w�q���G�ާ@�ƴ̳������ܬ��̤�����m�Ӥ����A�ӭ�̳��H�U��m-1�Ӥ����̦��V�̳����ʤ@�Ӧ�m�C���L�{�u�bn��1�ɦ��ߡC��n��2�ɡA�N�i��s�򪺨⦸�u��ާ@�C�������Am 2 roll ���Ĥ_ m 1 roll m 1 roll �C�Ѽ�n�i�H���t�ơC�o�ɵo�ͪ��ާ@�L�{�Pn�����ƮɬۤϡC�o�N���۩R�O m n roll m -n roll �N���|���ͥ���ĪG�A�Y�S�����ܾާ@�ƴ̡C���������ޥH�̳��������s�}�l�C

clear: ���ާ@�ŧR���ާ@�ƴ̤����Ҧ������C 

count: ���ާ@�ŭp��ާ@�ƴ̤��������ӼơC�p�⵲�G�@���@�ӷs�����ӳQ���J�ާ@�ƴ̤��C�p�G���Q�n���s�����A�A�i�H���X�զX�R�O count pstack pop �C�o��count�ާ@�����G�b�Q���ާ@��pstack�������ܦZ�Apop�ާ@�A�q�ާ@�ƴ̤��R�����s�����C  

mark: ���ާ@�Ŧb�ާ@�ƴ̤���J�@�ӼаO�š]-marktype-�^�C�o�Ӥ����i�H�N�ާ@�ƴ̤��������E�����l���C�t�~��Ӿާ@�� cleartomark �M counttomark �b����ɻݭn�b�̤��j�M�������C�Y�䤣��A�h�t��X���~�H���C 

cleartomark: ���ާ@�ŧR���ާ@�ƴ̤��q�̳��}�l��Ĥ@�ӼаO�� -marktype- �������Ҧ������A�]�A -marktype- �����C�Y�̤��S�� -marktype- �����A�h�t��X���~�H���C 

counttomark: ���ާ@�űq�ާ@�ƴ̤����̳������}�l�p�ơA����J�� -marktype- ��������C�p�Ƶ��G�O�@�㫬�ȡA�@���̦Z�������Q���J�ާ@�ƴ̡C�ҹJ�쪺 -marktype- �������[�J�p�ƭȡC�Y�̤��S�� -marktype- �����A�h PostScript ���Ϳ��~�H���A��������ާ@�C 

�{�b���ڭ̰Q�פ@�U��̡C�p�G�A�Q�ݨ�H�W�ާ@������L�{�A���������Ұ� PostScript �������C���p�b�Ĥ@�g�峹���Ҵ��쪺�ALINUX �@�ɤ��ϥΤ@�ؤ��@�������n��-- ghostscript �C�b�R�O�椤���X�A�����ѼơAgostsript ��H���P���覡�ҰʡC�q�`�����k�u�n�b X���f���ҤU��J gs �C�Ѥ_X���f���]�m���D�A���ɷ|�Ұʤ��F�C�o�ɷ|�X�{�@�����_�L�k�Ы�²�K�ϧα���f�����~�H���C�p�G����ѨM�����D�A�N�n���� gostscript �ϥ�x11�X�ʳ]�ơC�����A�A������J gs -sDEVICE=x11 �C���ެO�a�Ѽƪ��٬O���a�Ѽƪ�²��R�O gs�]�p�G��Ұʪ��ܡ^�A���|�Ыؤ@�Ӧb�|�ܴ����@�_��ܪ��㦳�զ�I�����ťյ��f�C�Ѥ_��ܤ譱�P����L���A�ڭ̤��ݭn����ܵ��f�A�i�H�⥦�h���C�����ت�,�ڭ̳q�L�b�R�O�� gs �� gs -sDEVICE=x11 �Z�[�J�Ѽ� -dNODISPLAY �� gostscript �������ҰʦZ���a��ܵ��f�C�p�G�o�˰��F�A�h�b��ܧ��@�q���v�n�����Z�A�K�|�b�s�@�檺�}�l�X�{ gostscript �����ܲ�GS>�C�o�ɡAgostscript �i�H�B�z����J���R�O�F�C���ɾާ@�ƴ̬O���C 

���d�ݾާ@�ƴ̪����e�A�A�i�H�ϥΤ��ާ@��-- pstack �C�����ҥH�Q�٬����ާ@�šA�O�]�����N�ާ@�ƴ̪��H���e���T�٬O�̹����Э��X���C�p�G�b���ܲŦZ��J���R�O�A���S����ܥ���F��A�Ӧb�s�@�檺�}�l�X�{�F���ܲ�GS>�A�o���n�����ާ@�ƴ̬O�Ū��C

�������e���ާ@�ƴ̡A�A�i�H�b���ܲŦZ��J�������C�Ҧp�A�A�Q�e�J����1�A�h�b���ܲŦZ��J1�N�i�H�F�C���Z�A�U�@�檺�}�l�|�X�{�s�����ܲšC�����ɡA���ܲŤ��OGS>�A�ӬOGS<1>�C�o�طs�����ܲŪ��ܥX�F�ާ@�ƴ̤��������ӼơC�]���A�p�G�b�A�� gostscript �|�ܴ����X�{�F���ܲ� GS<123> �A�h�N���ۦb�ާ@�ƴ̤���123�Ӥ����C 

�A�i�H�b�@���ާ@�����ާ@�ƴ̿�J�h�Ӥ����C�����A�A�����s��a��J�Ҧ��������A�}�ΪŮ���}�C�Ҧp�A�p�G�A�b���ܲŦZ��J1 2 3 4 5 6 �A�h����1,2,3,4,5,6���N�Q���O���J�ާ@�ƴ̡C�p�G�b�o���Z����pstack�ާ@�A�����|�H����������ܡA�}�B�̦Z�i�J�������̥���ܡC�H�W��өR�O�檺��ܹL�{��ܦp�U�G

GS>1 2 3 4 5 6 
GS<6>pstack
6
5
4
3
2
1
GS<6>
�b�@����B�ާ@����{��������J�}��ܰ�̤��e�]�O�i�઺�C�Ҧ��ݭn�����u�O�b�N�Q��J�������Z���[�Wpstack�R�O�A�Y�G
GS>1 2 3 4 5 6 pstack
6
5
4
3
2
1
GS<6>
��{�b����A�ڭ̿�J���������O�Ʀr�C�Ʀr���O�Ұߤ@���\�����������A�i�H��J�䥦�����������p�ܶq����X�B�r�Ŧ�B�ƾڶ����C�ڭ̷|�b�Z���ԲӽפΡC�M�ӡA�{�b�ڭ̥��������G�p�G�A�Q��J�p��Ӧr��a�Φr�Ŧ�abc�ɡA�|�X�{���~�H���C�o�O�]�� PostScript �L�k�z�ѳo�ǪF��C�p�G�A�Q��J�r�ũΦr�Ŧ�A�����N���̥Ρ]�^�]��_�ӡC�o���ڭ̴��Τ@�ӳQ�٬� marktype ���S�������������C�����ڭ̵��X�U�����@�ӹ�ܨҤl�G
GS>1 2 3 mark 4 5 6 pstack
6
5
4
-marktype-
3
2
1
GS<7>
�{�b�ڭ̨Ӭݤ@�ǥΤ_���a�ާ@�ƴ̪��ާ@�šC�ڱN���X�@�ӹ�ܨҤl�ӻ����o�Ǿާ@�ŬO�p��@�Ϊ��A�}�����o�@�p�`�A�Ӥ���Ƨ@��i�@�B�����������C
GS>1 2 3 mark 4 5 6 pstack
6
5
4
-marktype-
3
2
1
GS<7>pop pstack
5
4
-marktype
3 
2
1
GS<6>exch pstack
4
5
-marktype
3
2
1
GS<6>dup pstack
4
4
5
-marktype-
3
2
1
GS<7>2 copy pstack
4
4
4
4
5
-marktype
3
2
1
GS<9>5 index pstack
-marktype-
4
4
4
4
5
-marktype
3
2
1
GS<10>cleartomark cleartomark pstack
3
2
1
GS<3>3 1 roll pstack
2
1
3
GS<3>count pstack
3
2
1
3
GS<4>mark 7 8 pstack
8
7
-marktype-
3
2
1
3
GS<7>counttomark pstack
2
8
7
-marktype-
3
2
1
3
GS<8>clear pstack
GS>
 

�ƾǹB���

���F�Τ_���a PostScript �ާ@�ƴ̪��ާ@�ť~�A�٦��@�Ǻ⥺�M�ƾǹB��šC�U���ڭ̵��X�o�ǹB��šA���O�S�����X�Ҥl�C���F�H�W����ܨҤl�A�{�bŪ�����ӥi�H�ۤv�N�o�ǨҤl�|�X�ӡC  

add: ���R�O�ݭn��ӰѻP�[�k�B�⪺�ƭȫ��ѼơC�]�o��ӭȬ�m�Mn�A�h�R�O���ܬ� m n add �C����ɡAm�Mn���Z�i�J�ާ@�ƴ̡A�̦Z�@�B�O�N�ާ@�ƴ̳�����Ӥ����ۥ[�C�Ӿާ@���ͤ@�ӭȬ�m�Mn���M���s�����C�ާ@�����Z�Am�Mn�S���Q�O�d�b�ާ@�ƴ̤��A�ۥ[�����G���F�ާ@�ƴ̪��̳������C

div: ���R�O�ݭn��ӰѻP���k�B�⪺�ƭȫ��ѼơC�]�o��ӭȬ�m�Mn�A�h�R�O���ܬ� m n div �C��������Padd�ۦP�C���k�ާ@�b�B�I�ƪ��⥺��¦�W�i��C�ާ@�����Z�A���G�@���s�����d�b�ާ@�ƴ̤��A���O�dm�Mn�C

idiv: ���R�O�ݭn��ӰѻP��ư��k�B�⪺�ƭȫ��ѼơC�]�o��ӭȬ�m�Mn�A�h�R�O���ܬ� m n idiv �C���F�Ӱ��k�ާ@���⥺�B���¦���~�A�䥦�������P div �ۦP�C�o�O�@�ؾ�ƺ⥺���k�B��C�p�G�ѼƤ��O��ơA���]�|����U�h�C

mod: ���R�O�ݭn��Ӿ㫬�ѼơC���p��X�Ĥ@�ӰѼư��H�ĤG�ӰѼƦZ�ұo���E�ơC�Y�ѼƤ����@�Ӥ��O��ơA�h���楢�ѡC���浲���Z�A�ұo�����G�@���s�����d�b�ާ@�ƴ̤��C

mul: �P�_ add ,div �C���O�@�ӻݭn��Ӽƭȫ��Ѽƪ��G�i��ާ@�šC�ұo���G�O�Ѽƪ��n�A�}�B�@���@�ӷs�����Q�O�d�b�ާ@�ƴ̤��C

sub: �P�_ add ,div ,mul �C�ߤ@���P���B�b�_�ާ@�����C���q�Ĥ@�ӰѼƤ���h�ĤG�ӰѼƪ��ȡC�ѼƩM���G���O�ƭȫ����C���槹�Z�A���G�Q�O�d�b�ާ@�ƴ̤��C 

exp: �o�O�@�ӤG���ƾǹB��šA�ݭn��ӰѼơC�Ĥ@�ӬO��ơA�ĤG�ӬO���ơC��������ƹB��C�Ѽƪ��ȥ����b����ƹB��Ҥ��\���S�ò¤º¡C�ұo���G�O�@�B�I�ơA�@���s�����Q�O�d�b�ާ@�ƴ̤��C 

atan: �o�O�t�@�ӥΤ_�D���׭Ȫ��G���ƾǹB��šC�ұo���׭Ȧb0�שM360�פ����C���ݭn��ӰѼơC�Ĥ@�ӰѼƩM�ĤG�ӰѼƤ���N���ҨD���ת������ȡC����@�ӰѼƳ��i�H���s�A�����ೣ���s�C�Ѽƪ��Ÿ��M�w�F�ұo���G�Ҧb�H���C�Ĥ@�ӰѼƭȬ����N����y�b�H���A�����a�A�ĤG�ӰѼƬ����N����x�b�H���C 

abs: �o�O�@�Ӥ@���ƾǹB��šA�u�ݭn�@�ӰѼơA�ұo���G�O��������ȡC�P�W�A�����G�@���@�ӷs�����Q�O�d�b�ާ@�ƴ̤��C

neg: ���ܥ��Ȧ����Ѽƪ��Ÿ��C�o�O�@�Ӥ@���⥺�B��šC 

ceiling: �o�O�@�Ӥ@���B��šA��ѼƦV�W����C

floor: �o�O�@�Ӥ@���B��šA��ѼƦV�U����C

round: �o�O�@�Ӥ@���B��šA�����ѼƳ̪񪺾�ơC

truncate: �o�O�@�Ӥ@���B��šA�h���Ѽƪ��p�Ƴ����C 

sqrt: �o�O�@�Ӥ@���B��šA�p��Ѽƪ�����ڡC

cos: �o�O�@�Ӥ@���B��šA�p��Ѽƪ��E���ȡC�ѼƥH���׭Ȫ��Φ����X�C

sin: �o�O�@�Ӥ@���B��šA�p��Ѽƪ������ȡC�ѼƥH���׭Ȫ��Φ����X�C

ln: �o�O�@�Ӥ@���B��šA�p��Ѽƪ��۵M��ƭȡC

log: �o�O�@�Ӥ@���B��šA�p��Ѽƪ��H10��������ƭȡC 

�b�������大�e�A���L�I�ݭn���X�C���M�ڭ̦b�H�W�w���Ҵ��ΡA�i��O�������A�Y�R�O���Ѽơ]�b PostScript �����y���Q�٬��ާ@�ơ^�i��|���ͤ@�ǥO�H�·Ъ����D�C�R�O�]�b PostScript �����y���Q�٬��ާ@�š^�b�ާ@�ƴ̤��M�D�����ѼơC�p�G���A���̳Q�R�O�ҥΡA�}�B�Q�q�ާ@�ƴ̤��R���C�]���A���N�εL�N�a���X�@�Ӧb�ާ@�ƴ̤����s�b���һݭn���ѼƭȪ��R�O�A���h�������_�̳����������P�һݰѼ��������ǰt�����~�H���A���h�|�R���̳����@�Ǥ����C�Τᥲ���`�N��o�@�I�C 

�b�������e�A�ڭ̫�ij�Q�n�ϥ� PostScript ���Τ�h�g�@�ǧ�[�_���M�������{�ǡC�b���t�C�H�Z���g�����A�N���Ч�h�����_ PostScript �y�����Ӹ`�C�ڭ̼֤_�������_���媺������D�M��ij�C

�� Jorge M.Paulo �MJose Quesada�fij


�D�~��LinuxFocus�s��p�պ��@
© Emre Demiralp
LinuxFocus 1999